Index: /trunk/src/VBox/Devices/BiosCommonCode/biosorg_check.sed
===================================================================
--- /trunk/src/VBox/Devices/BiosCommonCode/biosorg_check.sed	(revision 60422)
+++ /trunk/src/VBox/Devices/BiosCommonCode/biosorg_check.sed	(revision 60422)
@@ -0,0 +1,27 @@
+# $Id$
+## @file
+# For converting biosorg_check_<addr> lines in a wlink mapfile
+# to kmk_expr checks.
+#
+
+#
+# Copyright (C) 2012-2016 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+
+/biosorg_check_/!b end  
+s/\(.*\)/\L\1/g
+s/f000:\(....\). *biosorg_check_0\(\1\)h *//
+/^$/b end
+p
+q 1
+:end
+
Index: /trunk/src/VBox/Devices/BiosCommonCode/commondefs.inc
===================================================================
--- /trunk/src/VBox/Devices/BiosCommonCode/commondefs.inc	(revision 60422)
+++ /trunk/src/VBox/Devices/BiosCommonCode/commondefs.inc	(revision 60422)
@@ -0,0 +1,125 @@
+; $Id$
+;; @file
+; Stuff for drawing the BIOS logo.
+;
+
+;
+; Copyright (C) 2004-2016 Oracle Corporation
+;
+; This file is part of VirtualBox Open Source Edition (OSE), as
+; available from http://www.virtualbox.org. This file is free software;
+; you can redistribute it and/or modify it under the terms of the GNU
+; General Public License (GPL) as published by the Free Software
+; Foundation, in version 2 as it comes in the "COPYING" file of the
+; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;
+
+
+;; Switches back to default CPU mode.
+SET_DEFAULT_CPU macro
+ if VBOX_BIOS_CPU eq 8086
+		.8086
+ elseif VBOX_BIOS_CPU eq 80186
+		.186
+ elseif VBOX_BIOS_CPU eq 80286
+		.286
+ elseif VBOX_BIOS_CPU eq 80386
+		.386
+ else
+  .errnz 1, Unsupported target CPU value: VBOX_BIOS_CPU
+		.386
+ endif
+endm
+
+
+;; Switches back to default CPU mode, max 286.
+SET_DEFAULT_CPU_286 macro
+ if VBOX_BIOS_CPU eq 8086
+		.8086
+ elseif VBOX_BIOS_CPU eq 80186
+		.186
+ else
+		.286
+ endif
+endm
+
+
+;; For handling the pusha instruction depending on target CPU.
+DO_PUSHA        macro
+ if VBOX_BIOS_CPU eq 8086
+        push    ax
+        push    cx
+        push    dx
+        push    bx
+        push    sp
+        push    bp
+        push    si
+        push    di
+ else
+        pusha
+ endif
+endm
+
+
+;; For handling the popad/popa instruction depending on target CPU.
+DO_POPA         macro
+ if VBOX_BIOS_CPU eq 8086
+        pop     di
+        pop     si
+        pop     bp
+        pop     bx ;pop sp
+        pop     bx
+        pop     dx
+        pop     cx
+        pop     ax
+ else
+        popa
+ endif
+endm
+
+
+;; For handling the pushad/pusha instruction depending on target CPU.
+DO_PUSHAD       macro
+ if VBOX_BIOS_CPU eq 8086
+        push    ax
+        push    cx
+        push    dx
+        push    bx
+        push    sp
+        push    bp
+        push    si
+        push    di
+ elseif VBOX_BIOS_CPU lt 80386
+        pusha
+ else
+        pushad
+ endif
+endm
+
+
+;; For handling the popad/popa instruction depending on target CPU.
+DO_POPAD        macro
+ if VBOX_BIOS_CPU eq 8086
+        pop     di
+        pop     si
+        pop     bp
+        pop     bx ;pop sp
+        pop     bx
+        pop     dx
+        pop     cx
+        pop     ax
+ elseif VBOX_BIOS_CPU lt 80386
+        popa
+ else
+        popad
+ endif
+endm
+
+
+;; Adds a special label that will have its address checked after linking.
+BIOSORG_CHECK macro	addr
+public		biosorg_check_&addr
+biosorg_check_&addr:
+		endm
+
Index: /trunk/src/VBox/Devices/Config.kmk
===================================================================
--- /trunk/src/VBox/Devices/Config.kmk	(revision 60421)
+++ /trunk/src/VBox/Devices/Config.kmk	(revision 60422)
@@ -23,4 +23,6 @@
 endif
 
+VBOX_PATH_DEVICES_SRC := $(PATH_ROOT)/src/VBox/Devices
+
 #
 # VBoxBios - Template for building 16-bit BIOS code.
@@ -34,7 +36,7 @@
 TEMPLATE_VBoxBios_BLD_TRG_ARCH = x86
 TEMPLATE_VBoxBios_BINSUFF      = .rom
-TEMPLATE_VBoxBios_INCS         = .
-TEMPLATE_VBoxBios_ASFLAGS      = -q -wx -d1 ## @todo add -0?
-TEMPLATE_VBoxBios_CFLAGS       = -q -3 -wx -zl -zu -s -oafs -ms -hc -d1+
+TEMPLATE_VBoxBios_INCS         = . $(VBOX_PATH_DEVICES_SRC)/BiosCommonCode
+TEMPLATE_VBoxBios_ASFLAGS      = -q -wx -d1 -0
+TEMPLATE_VBoxBios_CFLAGS       = -q -0 -wx -zl -zu -s -oafs -ms -hc -d1+
 TEMPLATE_VBoxBios_CXXFLAGS     = $(TEMPLATE_VBoxBios_CFLAGS)
 TEMPLATE_VBoxBios_DEPS         = $(VBOX_VERSION_HEADER)
@@ -43,9 +45,10 @@
 	option quiet, nofarcalls, map, verbose, statics, symfile \
 	disable 1014, 1023, 2120
-TEMPLATE_VBoxBios_LNK_DEPS = $(VBOX_BIOSSUMS)
+TEMPLATE_VBoxBios_LNK_DEPS = $(VBOX_BIOSSUMS) $(VBOX_PATH_DEVICES_SRC)/BiosCommonCode/biosorg_check.sed
 TEMPLATE_VBoxBios_POST_CMDS = \
-	$(QUIET)$(MV_EXT) -f $(out) $(out).tmp \
+ 	$(QUIET)$(SED_EXT) -n -f $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/biosorg_check.sed $(outbase).map \
+	&& $(MV_EXT) -f $(out) $(out).tmp \
 	&& $(VBOX_BIOSSUMS) $(out).tmp $(out) \
-	&& $(RM_EXT) -f $(out).tmp
+	&& $(RM_EXT) -f $(out).tmp \
 
 #
Index: /trunk/src/VBox/Devices/Graphics/BIOS/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/Makefile.kmk	(revision 60421)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/Makefile.kmk	(revision 60422)
@@ -25,14 +25,15 @@
  # VBoxVgaBios - The VGA BIOS.
  #
- MISCBINS += VBoxVgaBios
- VBoxVgaBios_TEMPLATE = VBoxBios
- VBoxVgaBios_ASFLAGS = -0
- VBoxVgaBios_DEFS = VBE
- VBoxVgaBios_SOURCES = \
+ MISCBINS += VBoxVgaBios386
+ VBoxVgaBios386_TEMPLATE = VBoxBios
+ VBoxVgaBios386_ASFLAGS = -0
+ VBoxVgaBios386_CFLAGS = -3
+ VBoxVgaBios386_DEFS = VBE VBOX_BIOS_CPU=80386
+ VBoxVgaBios386_SOURCES = \
  	vgarom.asm \
  	vberom.asm \
  	vgabios.c \
  	vbe.c
- VBoxVgaBios_LDFLAGS = \
+ VBoxVgaBios386_LDFLAGS = \
  	output raw offset=0xC0000 \
  	order \
@@ -44,29 +45,56 @@
  	  segment _DATA  segaddr=0xC000 offset=0x4600 \
 
+ MISCBINS += VBoxVgaBios286
+ VBoxVgaBios286_EXTENDS = VBoxVgaBios386
+ VBoxVgaBios286_CFLAGS  = -2
+ VBoxVgaBios286_DEFS    = $(filter-out VBOX_BIOS_CPU=80386,$(VBoxVgaBios386_DEFS)) VBOX_BIOS_CPU=80286
+
+ MISCBINS += VBoxVgaBios8086
+ VBoxVgaBios8086_EXTENDS = VBoxVgaBios386
+ VBoxVgaBios8086_CFLAGS  = -0
+ VBoxVgaBios8086_DEFS    = $(filter-out VBOX_BIOS_CPU=80386,$(VBoxVgaBios386_DEFS)) VBOX_BIOS_CPU=8086
+
  #
  # Updates the alternative source file.
  #
- update-vgabios-source +| $(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.md5sum: \
- 		$$(VBoxVgaBios_1_TARGET) \
- 		$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
-		$(VBOX_VBOXCMP)
- if1of ($(KBUILD_TYPE), release)
-	$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
-		--bios-image $< \
-		--bios-map $(basename $<).map \
-		--bios-sym $(basename $<).sym \
+ define def_VBoxVgaBiosUpdateAltSource
+  $$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative$(1).asm +| $$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative$(1).md5sum: \
+  		$$$$(VBoxVgaBios$(1)_1_TARGET) \
+  		$$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
+ 		$$(VBOX_VBOXCMP)
+  if1of ($$(KBUILD_TYPE), release)
+	$$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
+		--bios-image $$< \
+		--bios-map $$(basename $$<).map \
+		--bios-sym $$(basename $$<).sym \
                --bios-type vga \
-		--output $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm
-	$(QUIET)yasm -f bin -o $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.bin $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm
-	$(VBOX_VBOXCMP) $< $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.bin
-	$(CP) --changed -- $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm $(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm
-	$(REDIRECT) -C $(dir $(VBoxVgaBios_1_TARGET)) -- \
-		$(MD5SUM_EXT) -bo $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.md5sum $(notdir $(VBoxVgaBios_1_TARGET))
-	$(CP) --changed -- $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.md5sum $(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum
-	$(RM) -f -- $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.asm $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.bin $(VBoxVgaBios_0_OUTDIR)/VBoxVgaBiosAlternative.md5sum
- else
-	$(QUIET)$(ECHO) "Fatal error: Can only update VBoxVgaBiosAlternative.asm/md5sum with a release build."
-	$(QUIET)exit 1
- endif
+		--output $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).asm
+	$$(QUIET)yasm -f bin \
+		-o $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).bin \
+		-l $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).lst \
+		$$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).asm
+	$$(VBOX_VBOXCMP) $$< $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).bin
+	$$(CP) --changed -- $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).asm $$(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative$(1).asm
+	$$(REDIRECT) -C $$(dir $$(VBoxVgaBios$(1)_1_TARGET)) -- \
+		$$(MD5SUM_EXT) -bo $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).md5sum $$(notdir $$(VBoxVgaBios$(1)_1_TARGET))
+	$$(CP) --changed -- $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).md5sum $$(PATH_ROOT)/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative$(1).md5sum
+	$$(RM) -f -- $$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).asm \
+		$$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).bin \
+		$$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).lst \
+		$$(VBoxVgaBios$(1)_0_OUTDIR)/VBoxVgaBiosAlternative$(1).md5sum
+  else
+	$$(QUIET)$$(ECHO) "Fatal error: Can only update VBoxVgaBiosAlternative$(1).asm/md5sum with a release build."
+	$$(QUIET)exit 1
+  endif
+ endef
+
+ $(evalcall2 def_VBoxVgaBiosUpdateAltSource,386)
+ $(evalcall2 def_VBoxVgaBiosUpdateAltSource,286)
+ $(evalcall2 def_VBoxVgaBiosUpdateAltSource,8086)
+
+ update-vgabios-source: \
+ 	$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative386.asm \
+ 	$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative286.asm \
+ 	$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative8086.asm
 
 endif # VBOX_WITH_OPEN_WATCOM
@@ -79,30 +107,33 @@
 VgaBiosBin_TEMPLATE  = VBOXR3
 VgaBiosBin_DEFS      = IN_VBOXDD2
-VgaBiosBin_SOURCES   = \
-	$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c
-VgaBiosBin_DEPS      = \
-	$(VgaBiosBin_0_OUTDIR)/vbetables.h
-VgaBiosBin_CLEAN     = \
-	$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c \
-	$(VgaBiosBin_0_OUTDIR)/vbetables.h
+VgaBiosBin_SOURCES   =
+VgaBiosBin_DEPS      = $(VgaBiosBin_0_OUTDIR)/vbetables.h
+VgaBiosBin_CLEAN     = $(VgaBiosBin_0_OUTDIR)/vbetables.h
 
-ifdef VBOX_WITH_OPEN_WATCOM
- $$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c: $$(VBoxVgaBios_1_TARGET) $(VBOX_BIN2C) | $$(dir $$@)
-	$(call MSG_TOOL,bin2c,VgaBiosBin,$<,$@)
-	$(QUIET)$(VBOX_BIN2C) -min 32 -max 36 -mask 0x0fff -ascii -export VgaBiosBinary $< $@
-else
- VgaBiosBin_CLEAN    += $(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom
+define def_VBoxVgaBiosBin
+ VgaBiosBin_SOURCES += $$(VgaBiosBin_0_OUTDIR)/VgaBiosBin$(1).c
+ VgaBiosBin_CLEAN   += $$(VgaBiosBin_0_OUTDIR)/VgaBiosBin$(1).c
+ ifdef VBOX_WITH_OPEN_WATCOM
+  $$$$(VgaBiosBin_0_OUTDIR)/VgaBiosBin$(1).c: $$$$(VBoxVgaBios$(1)_1_TARGET) $$(VBOX_BIN2C) | $$$$(dir $$$$@)
+	$$(call MSG_TOOL,bin2c,VgaBiosBin,$$<,$$@)
+	$$(QUIET)$$(VBOX_BIN2C) -min 32 -max 36 -mask 0x0fff -ascii -export VgaBiosBinary$(1) $$< $$@
+ else
+  VgaBiosBin_CLEAN  += $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios$(1).rom
 
- $$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c + $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom: \
-		$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.asm \
-		$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative.md5sum \
-		$(VBOX_BIN2C) | $$(dir $$@)
-	$(call MSG_TOOL,bin2c,VgaBiosBin,$<,$@)
-	$(QUIET)yasm -f bin -o $(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom $<
-	$(QUIET)$(REDIRECT) -C $(VgaBiosBin_0_OUTDIR) -- \
-		$(MD5SUM_EXT) -c $(basename $<).md5sum
-	$(QUIET)$(VBOX_BIN2C) -min 32 -max 36 -mask 0x0fff -ascii -export VgaBiosBinary $(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom $@
-	$(QUIET)$(RM) -f -- $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios.rom
-endif
+  $$$$(VgaBiosBin_0_OUTDIR)/VgaBiosBin.c + $$$$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios$(1).rom: \
+ 		$$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative$(1).asm \
+ 		$$(PATH_SUB_CURRENT)/VBoxVgaBiosAlternative$(1).md5sum \
+ 		$$(VBOX_BIN2C) | $$$$(dir $$$$@)
+	$$(call MSG_TOOL,bin2c,VgaBiosBin,$$<,$$@)
+	$$(QUIET)yasm -f bin -o $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios$(1).rom $$<
+	$$(QUIET)$$(REDIRECT) -C $$(VgaBiosBin_0_OUTDIR) -- \
+		$$(MD5SUM_EXT) -c $$(basename $$<).md5sum
+	$$(QUIET)$$(VBOX_BIN2C) -min 32 -max 36 -mask 0x0fff -ascii -export VgaBiosBinary$(1) $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios$(1).rom $$@
+	$$(QUIET)$$(RM) -f -- $$(VgaBiosBin_0_OUTDIR)/VBoxVgaBios$(1).rom
+ endif
+endef
+$(evalcall2 def_VBoxVgaBiosBin,386)
+$(evalcall2 def_VBoxVgaBiosBin,286)
+$(evalcall2 def_VBoxVgaBiosBin,8086)
 
 
@@ -142,5 +173,8 @@
  INSTALLS += VBoxVgaBiosSym
  VBoxVgaBiosSym_TEMPLATE = VBoxDbgSyms
- VBoxVgaBiosSym_SOURCES = $(basename $(VBoxVgaBios_1_TARGET)).sym
+ VBoxVgaBiosSym_SOURCES = \
+ 	$(basename $(VBoxVgaBios386_1_TARGET)).sym \
+ 	$(basename $(VBoxVgaBios286_1_TARGET)).sym \
+ 	$(basename $(VBoxVgaBios8086_1_TARGET)).sym
 endif
 
Index: unk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm	(revision 60421)
+++ 	(revision )
@@ -1,7726 +1,0 @@
-; $Id$ 
-;; @file
-; Auto Generated source file. Do not edit.
-;
-
-;
-; Source file: vgarom.asm
-;
-;  ============================================================================================
-;  
-;   Copyright (C) 2001,2002 the LGPL VGABios developers Team
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-;  
-;  ============================================================================================
-;  
-;   This VGA Bios is specific to the plex86/bochs Emulated VGA card.
-;   You can NOT drive any physical vga card with it.
-;  
-;  ============================================================================================
-;  
-
-;
-; Source file: vberom.asm
-;
-;  ============================================================================================
-;  
-;   Copyright (C) 2002 Jeroen Janssen
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-;  
-;  ============================================================================================
-;  
-;   This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
-;   You can NOT drive any physical vga card with it.
-;  
-;  ============================================================================================
-;  
-;   This VBE Bios is based on information taken from :
-;    - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
-;  
-;  ============================================================================================
-
-;
-; Source file: vgabios.c
-;
-;  // ============================================================================================
-;  
-;  vgabios.c
-;  
-;  // ============================================================================================
-;  //
-;  //  Copyright (C) 2001,2002 the LGPL VGABios developers Team
-;  //
-;  //  This library is free software; you can redistribute it and/or
-;  //  modify it under the terms of the GNU Lesser General Public
-;  //  License as published by the Free Software Foundation; either
-;  //  version 2 of the License, or (at your option) any later version.
-;  //
-;  //  This library is distributed in the hope that it will be useful,
-;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
-;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;  //  Lesser General Public License for more details.
-;  //
-;  //  You should have received a copy of the GNU Lesser General Public
-;  //  License along with this library; if not, write to the Free Software
-;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-;  //
-;  // ============================================================================================
-;  //
-;  //  This VGA Bios is specific to the plex86/bochs Emulated VGA card.
-;  //  You can NOT drive any physical vga card with it.
-;  //
-;  // ============================================================================================
-;  //
-;  //  This file contains code ripped from :
-;  //   - rombios.c of plex86
-;  //
-;  //  This VGA Bios contains fonts from :
-;  //   - fntcol16.zip (c) by Joseph Gil avalable at :
-;  //      ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
-;  //     These fonts are public domain
-;  //
-;  //  This VGA Bios is based on information taken from :
-;  //   - Kevin Lawton's vga card emulation for bochs/plex86
-;  //   - Ralf Brown's interrupts list available at http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
-;  //   - Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
-;  //   - Michael Abrash's Graphics Programming Black Book
-;  //   - Francois Gervais' book "programmation des cartes graphiques cga-ega-vga" edited by sybex
-;  //   - DOSEMU 1.0.1 source code for several tables values and formulas
-;  //
-;  // Thanks for patches, comments and ideas to :
-;  //   - techt@pikeonline.net
-;  //
-;  // ============================================================================================
-
-;
-; Source file: vbe.c
-;
-;  // ============================================================================================
-;  //
-;  //  Copyright (C) 2002 Jeroen Janssen
-;  //
-;  //  This library is free software; you can redistribute it and/or
-;  //  modify it under the terms of the GNU Lesser General Public
-;  //  License as published by the Free Software Foundation; either
-;  //  version 2 of the License, or (at your option) any later version.
-;  //
-;  //  This library is distributed in the hope that it will be useful,
-;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
-;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;  //  Lesser General Public License for more details.
-;  //
-;  //  You should have received a copy of the GNU Lesser General Public
-;  //  License along with this library; if not, write to the Free Software
-;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-;  //
-;  // ============================================================================================
-;  //
-;  //  This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
-;  //  You can NOT drive any physical vga card with it.
-;  //
-;  // ============================================================================================
-;  //
-;  //  This VBE Bios is based on information taken from :
-;  //   - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
-;  //
-;  // ============================================================================================
-
-;
-; Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
-; other than GPL or LGPL is available it will apply instead, Oracle elects to use only
-; the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
-; a choice of LGPL license versions is made available with the language indicating
-; that LGPLv2 or any later version may be used, or where a choice of which version
-; of the LGPL is applied is otherwise unspecified.
-;
-
-
-
-
-
-section VGAROM progbits vstart=0x0 align=1 ; size=0x992 class=CODE group=AUTO
-    db  055h, 0aah, 040h, 0e9h, 062h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
-    db  04dh, 000h
-vgabios_int10_handler:                       ; 0xc0022 LB 0x54e
-    pushfw                                    ; 9c
-    cmp ah, 00fh                              ; 80 fc 0f
-    jne short 0002eh                          ; 75 06
-    call 00183h                               ; e8 58 01
-    jmp near 000f3h                           ; e9 c5 00
-    cmp ah, 01ah                              ; 80 fc 1a
-    jne short 00039h                          ; 75 06
-    call 00538h                               ; e8 02 05
-    jmp near 000f3h                           ; e9 ba 00
-    cmp ah, 00bh                              ; 80 fc 0b
-    jne short 00044h                          ; 75 06
-    call 000f5h                               ; e8 b4 00
-    jmp near 000f3h                           ; e9 af 00
-    cmp ax, 01103h                            ; 3d 03 11
-    jne short 0004fh                          ; 75 06
-    call 0042fh                               ; e8 e3 03
-    jmp near 000f3h                           ; e9 a4 00
-    cmp ah, 012h                              ; 80 fc 12
-    jne short 00092h                          ; 75 3e
-    cmp bl, 010h                              ; 80 fb 10
-    jne short 0005fh                          ; 75 06
-    call 0043ch                               ; e8 e0 03
-    jmp near 000f3h                           ; e9 94 00
-    cmp bl, 030h                              ; 80 fb 30
-    jne short 0006ah                          ; 75 06
-    call 0045fh                               ; e8 f8 03
-    jmp near 000f3h                           ; e9 89 00
-    cmp bl, 031h                              ; 80 fb 31
-    jne short 00074h                          ; 75 05
-    call 004b2h                               ; e8 40 04
-    jmp short 000f3h                          ; eb 7f
-    cmp bl, 032h                              ; 80 fb 32
-    jne short 0007eh                          ; 75 05
-    call 004d4h                               ; e8 58 04
-    jmp short 000f3h                          ; eb 75
-    cmp bl, 033h                              ; 80 fb 33
-    jne short 00088h                          ; 75 05
-    call 004f2h                               ; e8 6c 04
-    jmp short 000f3h                          ; eb 6b
-    cmp bl, 034h                              ; 80 fb 34
-    jne short 000e5h                          ; 75 58
-    call 00516h                               ; e8 86 04
-    jmp short 000f3h                          ; eb 61
-    cmp ax, 0101bh                            ; 3d 1b 10
-    je short 000e5h                           ; 74 4e
-    cmp ah, 010h                              ; 80 fc 10
-    jne short 000a1h                          ; 75 05
-    call 001aah                               ; e8 0b 01
-    jmp short 000f3h                          ; eb 52
-    cmp ah, 04fh                              ; 80 fc 4f
-    jne short 000e5h                          ; 75 3f
-    cmp AL, strict byte 003h                  ; 3c 03
-    jne short 000afh                          ; 75 05
-    call 0080dh                               ; e8 60 07
-    jmp short 000f3h                          ; eb 44
-    cmp AL, strict byte 005h                  ; 3c 05
-    jne short 000b8h                          ; 75 05
-    call 00832h                               ; e8 7c 07
-    jmp short 000f3h                          ; eb 3b
-    cmp AL, strict byte 006h                  ; 3c 06
-    jne short 000c1h                          ; 75 05
-    call 0085fh                               ; e8 a0 07
-    jmp short 000f3h                          ; eb 32
-    cmp AL, strict byte 007h                  ; 3c 07
-    jne short 000cah                          ; 75 05
-    call 008ach                               ; e8 e4 07
-    jmp short 000f3h                          ; eb 29
-    cmp AL, strict byte 008h                  ; 3c 08
-    jne short 000d3h                          ; 75 05
-    call 008e0h                               ; e8 0f 08
-    jmp short 000f3h                          ; eb 20
-    cmp AL, strict byte 009h                  ; 3c 09
-    jne short 000dch                          ; 75 05
-    call 00917h                               ; e8 3d 08
-    jmp short 000f3h                          ; eb 17
-    cmp AL, strict byte 00ah                  ; 3c 0a
-    jne short 000e5h                          ; 75 05
-    call 0097bh                               ; e8 98 08
-    jmp short 000f3h                          ; eb 0e
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    mov bx, 0c000h                            ; bb 00 c0
-    mov ds, bx                                ; 8e db
-    call 03007h                               ; e8 17 2f
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    popfw                                     ; 9d
-    iret                                      ; cf
-    cmp bh, 000h                              ; 80 ff 00
-    je short 00100h                           ; 74 06
-    cmp bh, 001h                              ; 80 ff 01
-    je short 00151h                           ; 74 52
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push DS                                   ; 1e
-    mov dx, strict word 00040h                ; ba 40 00
-    mov ds, dx                                ; 8e da
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
-    jbe short 00144h                          ; 76 2f
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 000h                  ; b0 00
-    out DX, AL                                ; ee
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    and AL, strict byte 00fh                  ; 24 0f
-    test AL, strict byte 008h                 ; a8 08
-    je short 00125h                           ; 74 02
-    add AL, strict byte 008h                  ; 04 08
-    out DX, AL                                ; ee
-    mov CL, strict byte 001h                  ; b1 01
-    and bl, 010h                              ; 80 e3 10
-    mov dx, 003c0h                            ; ba c0 03
-    db  08ah, 0c1h
-    ; mov al, cl                                ; 8a c1
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0efh                  ; 24 ef
-    db  00ah, 0c3h
-    ; or al, bl                                 ; 0a c3
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    cmp cl, 004h                              ; 80 f9 04
-    jne short 0012bh                          ; 75 e7
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop DS                                    ; 1f
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov CL, strict byte 001h                  ; b1 01
-    and bl, 001h                              ; 80 e3 01
-    mov dx, 003c0h                            ; ba c0 03
-    db  08ah, 0c1h
-    ; mov al, cl                                ; 8a c1
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0feh                  ; 24 fe
-    db  00ah, 0c3h
-    ; or al, bl                                 ; 0a c3
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    cmp cl, 004h                              ; 80 f9 04
-    jne short 0015eh                          ; 75 e7
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push DS                                   ; 1e
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    push bx                                   ; 53
-    mov bx, strict word 00062h                ; bb 62 00
-    mov al, byte [bx]                         ; 8a 07
-    pop bx                                    ; 5b
-    db  08ah, 0f8h
-    ; mov bh, al                                ; 8a f8
-    push bx                                   ; 53
-    mov bx, 00087h                            ; bb 87 00
-    mov ah, byte [bx]                         ; 8a 27
-    and ah, 080h                              ; 80 e4 80
-    mov bx, strict word 00049h                ; bb 49 00
-    mov al, byte [bx]                         ; 8a 07
-    db  00ah, 0c4h
-    ; or al, ah                                 ; 0a c4
-    mov bx, strict word 0004ah                ; bb 4a 00
-    mov ah, byte [bx]                         ; 8a 27
-    pop bx                                    ; 5b
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    cmp AL, strict byte 000h                  ; 3c 00
-    jne short 001b0h                          ; 75 02
-    jmp short 00211h                          ; eb 61
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 001b6h                          ; 75 02
-    jmp short 0022fh                          ; eb 79
-    cmp AL, strict byte 002h                  ; 3c 02
-    jne short 001bch                          ; 75 02
-    jmp short 00237h                          ; eb 7b
-    cmp AL, strict byte 003h                  ; 3c 03
-    jne short 001c3h                          ; 75 03
-    jmp near 00268h                           ; e9 a5 00
-    cmp AL, strict byte 007h                  ; 3c 07
-    jne short 001cah                          ; 75 03
-    jmp near 00292h                           ; e9 c8 00
-    cmp AL, strict byte 008h                  ; 3c 08
-    jne short 001d1h                          ; 75 03
-    jmp near 002bah                           ; e9 e9 00
-    cmp AL, strict byte 009h                  ; 3c 09
-    jne short 001d8h                          ; 75 03
-    jmp near 002c8h                           ; e9 f0 00
-    cmp AL, strict byte 010h                  ; 3c 10
-    jne short 001dfh                          ; 75 03
-    jmp near 0030dh                           ; e9 2e 01
-    cmp AL, strict byte 012h                  ; 3c 12
-    jne short 001e6h                          ; 75 03
-    jmp near 00326h                           ; e9 40 01
-    cmp AL, strict byte 013h                  ; 3c 13
-    jne short 001edh                          ; 75 03
-    jmp near 0034eh                           ; e9 61 01
-    cmp AL, strict byte 015h                  ; 3c 15
-    jne short 001f4h                          ; 75 03
-    jmp near 00395h                           ; e9 a1 01
-    cmp AL, strict byte 017h                  ; 3c 17
-    jne short 001fbh                          ; 75 03
-    jmp near 003b0h                           ; e9 b5 01
-    cmp AL, strict byte 018h                  ; 3c 18
-    jne short 00202h                          ; 75 03
-    jmp near 003d8h                           ; e9 d6 01
-    cmp AL, strict byte 019h                  ; 3c 19
-    jne short 00209h                          ; 75 03
-    jmp near 003e3h                           ; e9 da 01
-    cmp AL, strict byte 01ah                  ; 3c 1a
-    jne short 00210h                          ; 75 03
-    jmp near 003eeh                           ; e9 de 01
-    retn                                      ; c3
-    cmp bl, 014h                              ; 80 fb 14
-    jnbe short 0022eh                         ; 77 18
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    db  08ah, 0c7h
-    ; mov al, bh                                ; 8a c7
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push bx                                   ; 53
-    mov BL, strict byte 011h                  ; b3 11
-    call 00211h                               ; e8 dc ff
-    pop bx                                    ; 5b
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    db  08bh, 0dah
-    ; mov bx, dx                                ; 8b da
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov CL, strict byte 000h                  ; b1 00
-    mov dx, 003c0h                            ; ba c0 03
-    db  08ah, 0c1h
-    ; mov al, cl                                ; 8a c1
-    out DX, AL                                ; ee
-    mov al, byte [es:bx]                      ; 26 8a 07
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    cmp cl, 010h                              ; 80 f9 10
-    jne short 00246h                          ; 75 f1
-    mov AL, strict byte 011h                  ; b0 11
-    out DX, AL                                ; ee
-    mov al, byte [es:bx]                      ; 26 8a 07
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 010h                  ; b0 10
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0f7h                  ; 24 f7
-    and bl, 001h                              ; 80 e3 01
-    sal bl, 003h                              ; c0 e3 03
-    db  00ah, 0c3h
-    ; or al, bl                                 ; 0a c3
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    cmp bl, 014h                              ; 80 fb 14
-    jnbe short 002b9h                         ; 77 22
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    db  08ah, 0f8h
-    ; mov bh, al                                ; 8a f8
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    mov BL, strict byte 011h                  ; b3 11
-    call 00292h                               ; e8 d1 ff
-    db  08ah, 0c7h
-    ; mov al, bh                                ; 8a c7
-    pop bx                                    ; 5b
-    db  08ah, 0f8h
-    ; mov bh, al                                ; 8a f8
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    db  08bh, 0dah
-    ; mov bx, dx                                ; 8b da
-    mov CL, strict byte 000h                  ; b1 00
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    db  08ah, 0c1h
-    ; mov al, cl                                ; 8a c1
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    mov byte [es:bx], al                      ; 26 88 07
-    inc bx                                    ; 43
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    cmp cl, 010h                              ; 80 f9 10
-    jne short 002d0h                          ; 75 e7
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 011h                  ; b0 11
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    mov byte [es:bx], al                      ; 26 88 07
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003c8h                            ; ba c8 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    mov dx, 003c9h                            ; ba c9 03
-    pop ax                                    ; 58
-    push ax                                   ; 50
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    out DX, AL                                ; ee
-    db  08ah, 0c5h
-    ; mov al, ch                                ; 8a c5
-    out DX, AL                                ; ee
-    db  08ah, 0c1h
-    ; mov al, cl                                ; 8a c1
-    out DX, AL                                ; ee
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    mov dx, 003c8h                            ; ba c8 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    pop dx                                    ; 5a
-    push dx                                   ; 52
-    db  08bh, 0dah
-    ; mov bx, dx                                ; 8b da
-    mov dx, 003c9h                            ; ba c9 03
-    mov al, byte [es:bx]                      ; 26 8a 07
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    mov al, byte [es:bx]                      ; 26 8a 07
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    mov al, byte [es:bx]                      ; 26 8a 07
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    dec cx                                    ; 49
-    jne short 00337h                          ; 75 ee
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 010h                  ; b0 10
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    and bl, 001h                              ; 80 e3 01
-    jne short 00371h                          ; 75 0d
-    and AL, strict byte 07fh                  ; 24 7f
-    sal bh, 007h                              ; c0 e7 07
-    db  00ah, 0c7h
-    ; or al, bh                                 ; 0a c7
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    jmp short 0038ah                          ; eb 19
-    push ax                                   ; 50
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 014h                  ; b0 14
-    out DX, AL                                ; ee
-    pop ax                                    ; 58
-    and AL, strict byte 080h                  ; 24 80
-    jne short 00384h                          ; 75 03
-    sal bh, 002h                              ; c0 e7 02
-    and bh, 00fh                              ; 80 e7 0f
-    db  08ah, 0c7h
-    ; mov al, bh                                ; 8a c7
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003c7h                            ; ba c7 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    pop ax                                    ; 58
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    mov dx, 003c9h                            ; ba c9 03
-    in AL, DX                                 ; ec
-    xchg al, ah                               ; 86 e0
-    push ax                                   ; 50
-    in AL, DX                                 ; ec
-    db  08ah, 0e8h
-    ; mov ch, al                                ; 8a e8
-    in AL, DX                                 ; ec
-    db  08ah, 0c8h
-    ; mov cl, al                                ; 8a c8
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    mov dx, 003c7h                            ; ba c7 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    pop dx                                    ; 5a
-    push dx                                   ; 52
-    db  08bh, 0dah
-    ; mov bx, dx                                ; 8b da
-    mov dx, 003c9h                            ; ba c9 03
-    in AL, DX                                 ; ec
-    mov byte [es:bx], al                      ; 26 88 07
-    inc bx                                    ; 43
-    in AL, DX                                 ; ec
-    mov byte [es:bx], al                      ; 26 88 07
-    inc bx                                    ; 43
-    in AL, DX                                 ; ec
-    mov byte [es:bx], al                      ; 26 88 07
-    inc bx                                    ; 43
-    dec cx                                    ; 49
-    jne short 003c1h                          ; 75 ee
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003c6h                            ; ba c6 03
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, AL                                ; ee
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003c6h                            ; ba c6 03
-    in AL, DX                                 ; ec
-    db  08ah, 0d8h
-    ; mov bl, al                                ; 8a d8
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 010h                  ; b0 10
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    db  08ah, 0d8h
-    ; mov bl, al                                ; 8a d8
-    shr bl, 007h                              ; c0 eb 07
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 014h                  ; b0 14
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    db  08ah, 0f8h
-    ; mov bh, al                                ; 8a f8
-    and bh, 00fh                              ; 80 e7 0f
-    test bl, 001h                             ; f6 c3 01
-    jne short 0041eh                          ; 75 03
-    shr bh, 002h                              ; c0 ef 02
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003c4h                            ; ba c4 03
-    db  08ah, 0e3h
-    ; mov ah, bl                                ; 8a e3
-    mov AL, strict byte 003h                  ; b0 03
-    out DX, ax                                ; ef
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push ax                                   ; 50
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    db  032h, 0edh
-    ; xor ch, ch                                ; 32 ed
-    mov bx, 00088h                            ; bb 88 00
-    mov cl, byte [bx]                         ; 8a 0f
-    and cl, 00fh                              ; 80 e1 0f
-    mov bx, strict word 00063h                ; bb 63 00
-    mov ax, word [bx]                         ; 8b 07
-    mov bx, strict word 00003h                ; bb 03 00
-    cmp ax, 003b4h                            ; 3d b4 03
-    jne short 0045ch                          ; 75 02
-    mov BH, strict byte 001h                  ; b7 01
-    pop ax                                    ; 58
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push bx                                   ; 53
-    push dx                                   ; 52
-    db  08ah, 0d0h
-    ; mov dl, al                                ; 8a d0
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov bx, 00089h                            ; bb 89 00
-    mov al, byte [bx]                         ; 8a 07
-    mov bx, 00088h                            ; bb 88 00
-    mov ah, byte [bx]                         ; 8a 27
-    cmp dl, 001h                              ; 80 fa 01
-    je short 0048dh                           ; 74 15
-    jc short 00497h                           ; 72 1d
-    cmp dl, 002h                              ; 80 fa 02
-    je short 00481h                           ; 74 02
-    jmp short 004abh                          ; eb 2a
-    and AL, strict byte 07fh                  ; 24 7f
-    or AL, strict byte 010h                   ; 0c 10
-    and ah, 0f0h                              ; 80 e4 f0
-    or ah, 009h                               ; 80 cc 09
-    jne short 004a1h                          ; 75 14
-    and AL, strict byte 06fh                  ; 24 6f
-    and ah, 0f0h                              ; 80 e4 f0
-    or ah, 009h                               ; 80 cc 09
-    jne short 004a1h                          ; 75 0a
-    and AL, strict byte 0efh                  ; 24 ef
-    or AL, strict byte 080h                   ; 0c 80
-    and ah, 0f0h                              ; 80 e4 f0
-    or ah, 008h                               ; 80 cc 08
-    mov bx, 00089h                            ; bb 89 00
-    mov byte [bx], al                         ; 88 07
-    mov bx, 00088h                            ; bb 88 00
-    mov byte [bx], ah                         ; 88 27
-    mov ax, 01212h                            ; b8 12 12
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push bx                                   ; 53
-    push dx                                   ; 52
-    db  08ah, 0d0h
-    ; mov dl, al                                ; 8a d0
-    and dl, 001h                              ; 80 e2 01
-    sal dl, 003h                              ; c0 e2 03
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov bx, 00089h                            ; bb 89 00
-    mov al, byte [bx]                         ; 8a 07
-    and AL, strict byte 0f7h                  ; 24 f7
-    db  00ah, 0c2h
-    ; or al, dl                                 ; 0a c2
-    mov byte [bx], al                         ; 88 07
-    mov ax, 01212h                            ; b8 12 12
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    push bx                                   ; 53
-    push dx                                   ; 52
-    db  08ah, 0d8h
-    ; mov bl, al                                ; 8a d8
-    and bl, 001h                              ; 80 e3 01
-    xor bl, 001h                              ; 80 f3 01
-    sal bl, 1                                 ; d0 e3
-    mov dx, 003cch                            ; ba cc 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0fdh                  ; 24 fd
-    db  00ah, 0c3h
-    ; or al, bl                                 ; 0a c3
-    mov dx, 003c2h                            ; ba c2 03
-    out DX, AL                                ; ee
-    mov ax, 01212h                            ; b8 12 12
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push bx                                   ; 53
-    push dx                                   ; 52
-    db  08ah, 0d0h
-    ; mov dl, al                                ; 8a d0
-    and dl, 001h                              ; 80 e2 01
-    xor dl, 001h                              ; 80 f2 01
-    sal dl, 1                                 ; d0 e2
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov bx, 00089h                            ; bb 89 00
-    mov al, byte [bx]                         ; 8a 07
-    and AL, strict byte 0fdh                  ; 24 fd
-    db  00ah, 0c2h
-    ; or al, dl                                 ; 0a c2
-    mov byte [bx], al                         ; 88 07
-    mov ax, 01212h                            ; b8 12 12
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push bx                                   ; 53
-    push dx                                   ; 52
-    db  08ah, 0d0h
-    ; mov dl, al                                ; 8a d0
-    and dl, 001h                              ; 80 e2 01
-    xor dl, 001h                              ; 80 f2 01
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov bx, 00089h                            ; bb 89 00
-    mov al, byte [bx]                         ; 8a 07
-    and AL, strict byte 0feh                  ; 24 fe
-    db  00ah, 0c2h
-    ; or al, dl                                 ; 0a c2
-    mov byte [bx], al                         ; 88 07
-    mov ax, 01212h                            ; b8 12 12
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    cmp AL, strict byte 000h                  ; 3c 00
-    je short 00541h                           ; 74 05
-    cmp AL, strict byte 001h                  ; 3c 01
-    je short 00556h                           ; 74 16
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push ax                                   ; 50
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov bx, 0008ah                            ; bb 8a 00
-    mov al, byte [bx]                         ; 8a 07
-    db  08ah, 0d8h
-    ; mov bl, al                                ; 8a d8
-    db  032h, 0ffh
-    ; xor bh, bh                                ; 32 ff
-    pop ax                                    ; 58
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    push DS                                   ; 1e
-    push ax                                   ; 50
-    push bx                                   ; 53
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    db  08bh, 0c3h
-    ; mov ax, bx                                ; 8b c3
-    mov bx, 0008ah                            ; bb 8a 00
-    mov byte [bx], al                         ; 88 07
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    times 0x5 db 0
-do_out_dx_ax:                                ; 0xc0570 LB 0x7
-    xchg ah, al                               ; 86 c4
-    out DX, AL                                ; ee
-    xchg ah, al                               ; 86 c4
-    out DX, AL                                ; ee
-    retn                                      ; c3
-do_in_ax_dx:                                 ; 0xc0577 LB 0x40
-    in AL, DX                                 ; ec
-    xchg ah, al                               ; 86 c4
-    in AL, DX                                 ; ec
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    test AL, strict byte 008h                 ; a8 08
-    je short 00581h                           ; 74 fb
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    test AL, strict byte 008h                 ; a8 08
-    jne short 0058eh                          ; 75 fb
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00003h                ; b8 03 00
-    call 00570h                               ; e8 d0 ff
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 d1 ff
-    cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 005b5h                          ; 76 0b
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    shr ah, 003h                              ; c0 ec 03
-    test AL, strict byte 007h                 ; a8 07
-    je short 005b5h                           ; 74 02
-    db  0feh, 0c4h
-    ; inc ah                                    ; fe c4
-    pop dx                                    ; 5a
-    retn                                      ; c3
-_dispi_get_max_bpp:                          ; 0xc05b7 LB 0x26
-    push dx                                   ; 52
-    push bx                                   ; 53
-    call 005f1h                               ; e8 35 00
-    db  08bh, 0d8h
-    ; mov bx, ax                                ; 8b d8
-    or ax, strict byte 00002h                 ; 83 c8 02
-    call 005ddh                               ; e8 19 00
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00003h                ; b8 03 00
-    call 00570h                               ; e8 a3 ff
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 a4 ff
-    push ax                                   ; 50
-    db  08bh, 0c3h
-    ; mov ax, bx                                ; 8b c3
-    call 005ddh                               ; e8 04 00
-    pop ax                                    ; 58
-    pop bx                                    ; 5b
-    pop dx                                    ; 5a
-    retn                                      ; c3
-dispi_set_enable_:                           ; 0xc05dd LB 0x26
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00004h                ; b8 04 00
-    call 00570h                               ; e8 88 ff
-    pop ax                                    ; 58
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 81 ff
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00004h                ; b8 04 00
-    call 00570h                               ; e8 75 ff
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 76 ff
-    pop dx                                    ; 5a
-    retn                                      ; c3
-dispi_set_bank_:                             ; 0xc0603 LB 0x26
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00005h                ; b8 05 00
-    call 00570h                               ; e8 62 ff
-    pop ax                                    ; 58
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 5b ff
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00005h                ; b8 05 00
-    call 00570h                               ; e8 4f ff
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 50 ff
-    pop dx                                    ; 5a
-    retn                                      ; c3
-_dispi_set_bank_farcall:                     ; 0xc0629 LB 0xe4
-    cmp bx, 00100h                            ; 81 fb 00 01
-    je short 00653h                           ; 74 24
-    db  00bh, 0dbh
-    ; or bx, bx                                 ; 0b db
-    jne short 00665h                          ; 75 32
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov ax, strict word 00005h                ; b8 05 00
-    mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 30 ff
-    pop ax                                    ; 58
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 29 ff
-    call 00577h                               ; e8 2d ff
-    pop dx                                    ; 5a
-    db  03bh, 0d0h
-    ; cmp dx, ax                                ; 3b d0
-    jne short 00665h                          ; 75 16
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retf                                      ; cb
-    mov ax, strict word 00005h                ; b8 05 00
-    mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 14 ff
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 15 ff
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    retf                                      ; cb
-    mov ax, 0014fh                            ; b8 4f 01
-    retf                                      ; cb
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00008h                ; b8 08 00
-    call 00570h                               ; e8 fc fe
-    pop ax                                    ; 58
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 f5 fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00008h                ; b8 08 00
-    call 00570h                               ; e8 e9 fe
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 ea fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00009h                ; b8 09 00
-    call 00570h                               ; e8 d6 fe
-    pop ax                                    ; 58
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 cf fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00009h                ; b8 09 00
-    call 00570h                               ; e8 c3 fe
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 c4 fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push dx                                   ; 52
-    db  08bh, 0d8h
-    ; mov bx, ax                                ; 8b d8
-    call 00596h                               ; e8 d9 fe
-    cmp AL, strict byte 004h                  ; 3c 04
-    jnbe short 006c3h                         ; 77 02
-    shr bx, 1                                 ; d1 eb
-    shr bx, 003h                              ; c1 eb 03
-    mov dx, 003d4h                            ; ba d4 03
-    db  08ah, 0e3h
-    ; mov ah, bl                                ; 8a e3
-    mov AL, strict byte 013h                  ; b0 13
-    out DX, ax                                ; ef
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    retn                                      ; c3
-    call 006b5h                               ; e8 e0 ff
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00006h                ; b8 06 00
-    call 00570h                               ; e8 90 fe
-    pop ax                                    ; 58
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 89 fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00006h                ; b8 06 00
-    call 00570h                               ; e8 7d fe
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 7e fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00007h                ; b8 07 00
-    call 00570h                               ; e8 6b fe
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 6c fe
-    pop dx                                    ; 5a
-    retn                                      ; c3
-_vga_compat_setup:                           ; 0xc070d LB 0xed
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00001h                ; b8 01 00
-    call 00570h                               ; e8 58 fe
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 59 fe
-    push ax                                   ; 50
-    mov dx, 003d4h                            ; ba d4 03
-    mov ax, strict word 00011h                ; b8 11 00
-    out DX, ax                                ; ef
-    pop ax                                    ; 58
-    push ax                                   ; 50
-    shr ax, 003h                              ; c1 e8 03
-    dec ax                                    ; 48
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    mov AL, strict byte 001h                  ; b0 01
-    out DX, ax                                ; ef
-    pop ax                                    ; 58
-    call 006b5h                               ; e8 80 ff
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00002h                ; b8 02 00
-    call 00570h                               ; e8 32 fe
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 33 fe
-    dec ax                                    ; 48
-    push ax                                   ; 50
-    mov dx, 003d4h                            ; ba d4 03
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    mov AL, strict byte 012h                  ; b0 12
-    out DX, ax                                ; ef
-    pop ax                                    ; 58
-    mov AL, strict byte 007h                  ; b0 07
-    out DX, AL                                ; ee
-    inc dx                                    ; 42
-    in AL, DX                                 ; ec
-    and AL, strict byte 0bdh                  ; 24 bd
-    test ah, 001h                             ; f6 c4 01
-    je short 0075dh                           ; 74 02
-    or AL, strict byte 002h                   ; 0c 02
-    test ah, 002h                             ; f6 c4 02
-    je short 00764h                           ; 74 02
-    or AL, strict byte 040h                   ; 0c 40
-    out DX, AL                                ; ee
-    mov dx, 003d4h                            ; ba d4 03
-    mov ax, strict word 00009h                ; b8 09 00
-    out DX, AL                                ; ee
-    mov dx, 003d5h                            ; ba d5 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 060h                  ; 24 60
-    out DX, AL                                ; ee
-    mov dx, 003d4h                            ; ba d4 03
-    mov AL, strict byte 017h                  ; b0 17
-    out DX, AL                                ; ee
-    mov dx, 003d5h                            ; ba d5 03
-    in AL, DX                                 ; ec
-    or AL, strict byte 003h                   ; 0c 03
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 010h                  ; b0 10
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    or AL, strict byte 001h                   ; 0c 01
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003ceh                            ; ba ce 03
-    mov ax, 00506h                            ; b8 06 05
-    out DX, ax                                ; ef
-    mov dx, 003c4h                            ; ba c4 03
-    mov ax, 00f02h                            ; b8 02 0f
-    out DX, ax                                ; ef
-    mov dx, 001ceh                            ; ba ce 01
-    mov ax, strict word 00003h                ; b8 03 00
-    call 00570h                               ; e8 c2 fd
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 c3 fd
-    cmp AL, strict byte 008h                  ; 3c 08
-    jc short 007f8h                           ; 72 40
-    mov dx, 003d4h                            ; ba d4 03
-    mov AL, strict byte 014h                  ; b0 14
-    out DX, AL                                ; ee
-    mov dx, 003d5h                            ; ba d5 03
-    in AL, DX                                 ; ec
-    or AL, strict byte 040h                   ; 0c 40
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    mov dx, 003c0h                            ; ba c0 03
-    mov AL, strict byte 010h                  ; b0 10
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    or AL, strict byte 040h                   ; 0c 40
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    out DX, AL                                ; ee
-    mov dx, 003c4h                            ; ba c4 03
-    mov AL, strict byte 004h                  ; b0 04
-    out DX, AL                                ; ee
-    mov dx, 003c5h                            ; ba c5 03
-    in AL, DX                                 ; ec
-    or AL, strict byte 008h                   ; 0c 08
-    out DX, AL                                ; ee
-    mov dx, 003ceh                            ; ba ce 03
-    mov AL, strict byte 005h                  ; b0 05
-    out DX, AL                                ; ee
-    mov dx, 003cfh                            ; ba cf 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 09fh                  ; 24 9f
-    or AL, strict byte 040h                   ; 0c 40
-    out DX, AL                                ; ee
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-_vbe_has_vbe_display:                        ; 0xc07fa LB 0x13
-    push DS                                   ; 1e
-    push bx                                   ; 53
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov bx, 000b9h                            ; bb b9 00
-    mov al, byte [bx]                         ; 8a 07
-    and AL, strict byte 001h                  ; 24 01
-    db  032h, 0e4h
-    ; xor ah, ah                                ; 32 e4
-    pop bx                                    ; 5b
-    pop DS                                    ; 1f
-    retn                                      ; c3
-vbe_biosfn_return_current_mode:              ; 0xc080d LB 0x25
-    push DS                                   ; 1e
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    call 005f1h                               ; e8 db fd
-    and ax, strict byte 00001h                ; 83 e0 01
-    je short 00824h                           ; 74 09
-    mov bx, 000bah                            ; bb ba 00
-    mov ax, word [bx]                         ; 8b 07
-    db  08bh, 0d8h
-    ; mov bx, ax                                ; 8b d8
-    jne short 0082dh                          ; 75 09
-    mov bx, strict word 00049h                ; bb 49 00
-    mov al, byte [bx]                         ; 8a 07
-    db  08ah, 0d8h
-    ; mov bl, al                                ; 8a d8
-    db  032h, 0ffh
-    ; xor bh, bh                                ; 32 ff
-    mov ax, strict word 0004fh                ; b8 4f 00
-    pop DS                                    ; 1f
-    retn                                      ; c3
-vbe_biosfn_display_window_control:           ; 0xc0832 LB 0x2d
-    cmp bl, 000h                              ; 80 fb 00
-    jne short 0085bh                          ; 75 24
-    cmp bh, 001h                              ; 80 ff 01
-    je short 00852h                           ; 74 16
-    jc short 00842h                           ; 72 04
-    mov ax, 00100h                            ; b8 00 01
-    retn                                      ; c3
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    call 00603h                               ; e8 bc fd
-    call 00617h                               ; e8 cd fd
-    db  03bh, 0c2h
-    ; cmp ax, dx                                ; 3b c2
-    jne short 0085bh                          ; 75 0d
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-    call 00617h                               ; e8 c2 fd
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-    mov ax, 0014fh                            ; b8 4f 01
-    retn                                      ; c3
-vbe_biosfn_set_get_logical_scan_line_length: ; 0xc085f LB 0x4d
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    cmp bl, 001h                              ; 80 fb 01
-    je short 0088ah                           ; 74 24
-    cmp bl, 002h                              ; 80 fb 02
-    je short 00871h                           ; 74 06
-    jc short 00887h                           ; 72 1a
-    mov ax, 00100h                            ; b8 00 01
-    retn                                      ; c3
-    push ax                                   ; 50
-    call 00596h                               ; e8 21 fd
-    db  032h, 0ffh
-    ; xor bh, bh                                ; 32 ff
-    db  08ah, 0dch
-    ; mov bl, ah                                ; 8a dc
-    db  00ah, 0dbh
-    ; or bl, bl                                 ; 0a db
-    jne short 00882h                          ; 75 05
-    sal ax, 003h                              ; c1 e0 03
-    mov BL, strict byte 001h                  ; b3 01
-    db  033h, 0d2h
-    ; xor dx, dx                                ; 33 d2
-    pop ax                                    ; 58
-    div bx                                    ; f7 f3
-    call 006d2h                               ; e8 48 fe
-    call 00596h                               ; e8 09 fd
-    db  032h, 0ffh
-    ; xor bh, bh                                ; 32 ff
-    db  08ah, 0dch
-    ; mov bl, ah                                ; 8a dc
-    call 006e9h                               ; e8 55 fe
-    db  08bh, 0c8h
-    ; mov cx, ax                                ; 8b c8
-    db  00ah, 0dbh
-    ; or bl, bl                                 ; 0a db
-    jne short 0089fh                          ; 75 05
-    shr ax, 003h                              ; c1 e8 03
-    mov BL, strict byte 001h                  ; b3 01
-    mul bx                                    ; f7 e3
-    db  08bh, 0d8h
-    ; mov bx, ax                                ; 8b d8
-    call 006fbh                               ; e8 55 fe
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-vbe_biosfn_set_get_display_start:            ; 0xc08ac LB 0x34
-    cmp bl, 080h                              ; 80 fb 80
-    je short 008bch                           ; 74 0b
-    cmp bl, 001h                              ; 80 fb 01
-    je short 008d0h                           ; 74 1a
-    jc short 008c2h                           ; 72 0a
-    mov ax, 00100h                            ; b8 00 01
-    retn                                      ; c3
-    call 00589h                               ; e8 ca fc
-    call 0057ch                               ; e8 ba fc
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    call 00669h                               ; e8 a2 fd
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    call 0068fh                               ; e8 c3 fd
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-    call 0067dh                               ; e8 aa fd
-    db  08bh, 0c8h
-    ; mov cx, ax                                ; 8b c8
-    call 006a3h                               ; e8 cb fd
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    db  032h, 0ffh
-    ; xor bh, bh                                ; 32 ff
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-vbe_biosfn_set_get_dac_palette_format:       ; 0xc08e0 LB 0x37
-    cmp bl, 001h                              ; 80 fb 01
-    je short 00903h                           ; 74 1e
-    jc short 008ebh                           ; 72 04
-    mov ax, 00100h                            ; b8 00 01
-    retn                                      ; c3
-    call 005f1h                               ; e8 03 fd
-    cmp bh, 006h                              ; 80 ff 06
-    je short 008fdh                           ; 74 0a
-    cmp bh, 008h                              ; 80 ff 08
-    jne short 00913h                          ; 75 1b
-    or ax, strict byte 00020h                 ; 83 c8 20
-    jne short 00900h                          ; 75 03
-    and ax, strict byte 0ffdfh                ; 83 e0 df
-    call 005ddh                               ; e8 da fc
-    mov BH, strict byte 006h                  ; b7 06
-    call 005f1h                               ; e8 e9 fc
-    and ax, strict byte 00020h                ; 83 e0 20
-    je short 0090fh                           ; 74 02
-    mov BH, strict byte 008h                  ; b7 08
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-    mov ax, 0014fh                            ; b8 4f 01
-    retn                                      ; c3
-vbe_biosfn_set_get_palette_data:             ; 0xc0917 LB 0x64
-    test bl, bl                               ; 84 db
-    je short 0092ah                           ; 74 0f
-    cmp bl, 001h                              ; 80 fb 01
-    je short 00952h                           ; 74 32
-    cmp bl, 003h                              ; 80 fb 03
-    jbe short 00977h                          ; 76 52
-    cmp bl, 080h                              ; 80 fb 80
-    jne short 00973h                          ; 75 49
-    pushad                                    ; 66 60
-    push DS                                   ; 1e
-    push ES                                   ; 06
-    pop DS                                    ; 1f
-    db  08ah, 0c2h
-    ; mov al, dl                                ; 8a c2
-    mov dx, 003c8h                            ; ba c8 03
-    out DX, AL                                ; ee
-    inc dx                                    ; 42
-    db  08bh, 0f7h
-    ; mov si, di                                ; 8b f7
-    lodsd                                     ; 66 ad
-    ror eax, 010h                             ; 66 c1 c8 10
-    out DX, AL                                ; ee
-    rol eax, 008h                             ; 66 c1 c0 08
-    out DX, AL                                ; ee
-    rol eax, 008h                             ; 66 c1 c0 08
-    out DX, AL                                ; ee
-    loop 00938h                               ; e2 ed
-    pop DS                                    ; 1f
-    popad                                     ; 66 61
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-    pushad                                    ; 66 60
-    db  08ah, 0c2h
-    ; mov al, dl                                ; 8a c2
-    mov dx, 003c7h                            ; ba c7 03
-    out DX, AL                                ; ee
-    add dl, 002h                              ; 80 c2 02
-    db  066h, 033h, 0c0h
-    ; xor eax, eax                              ; 66 33 c0
-    in AL, DX                                 ; ec
-    sal eax, 008h                             ; 66 c1 e0 08
-    in AL, DX                                 ; ec
-    sal eax, 008h                             ; 66 c1 e0 08
-    in AL, DX                                 ; ec
-    stosd                                     ; 66 ab
-    loop 0095dh                               ; e2 ee
-    popad                                     ; 66 61
-    jmp short 0094eh                          ; eb db
-    mov ax, 0014fh                            ; b8 4f 01
-    retn                                      ; c3
-    mov ax, 0024fh                            ; b8 4f 02
-    retn                                      ; c3
-vbe_biosfn_return_protected_mode_interface: ; 0xc097b LB 0x17
-    test bl, bl                               ; 84 db
-    jne short 0098eh                          ; 75 0f
-    mov di, 0c000h                            ; bf 00 c0
-    mov es, di                                ; 8e c7
-    mov di, 04400h                            ; bf 00 44
-    mov cx, 00115h                            ; b9 15 01
-    mov ax, strict word 0004fh                ; b8 4f 00
-    retn                                      ; c3
-    mov ax, 0014fh                            ; b8 4f 01
-    retn                                      ; c3
-
-  ; Padding 0x6e bytes at 0xc0992
-  times 110 db 0
-
-section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f57 class=CODE group=AUTO
-set_int_vector_:                             ; 0xc0a00 LB 0x1a
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 002h                              ; c1 e3 02
-    xor ax, ax                                ; 31 c0
-    mov es, ax                                ; 8e c0
-    mov word [es:bx], dx                      ; 26 89 17
-    mov word [es:bx+002h], 0c000h             ; 26 c7 47 02 00 c0
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-init_vga_card_:                              ; 0xc0a1a LB 0x1c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov AL, strict byte 0c3h                  ; b0 c3
-    mov dx, 003c2h                            ; ba c2 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 004h                  ; b0 04
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    mov dx, 003c5h                            ; ba c5 03
-    out DX, AL                                ; ee
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-init_bios_area_:                             ; 0xc0a36 LB 0x32
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    xor bx, bx                                ; 31 db
-    mov ax, strict word 00040h                ; b8 40 00
-    mov es, ax                                ; 8e c0
-    mov al, byte [es:bx+010h]                 ; 26 8a 47 10
-    and AL, strict byte 0cfh                  ; 24 cf
-    or AL, strict byte 020h                   ; 0c 20
-    mov byte [es:bx+010h], al                 ; 26 88 47 10
-    mov byte [es:bx+00085h], 010h             ; 26 c6 87 85 00 10
-    mov word [es:bx+00087h], 0f960h           ; 26 c7 87 87 00 60 f9
-    mov byte [es:bx+00089h], 051h             ; 26 c6 87 89 00 51
-    mov byte [es:bx+065h], 009h               ; 26 c6 47 65 09
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-_vgabios_init_func:                          ; 0xc0a68 LB 0x20
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    call 00a1ah                               ; e8 ac ff
-    call 00a36h                               ; e8 c5 ff
-    call 03482h                               ; e8 0e 2a
-    mov dx, strict word 00022h                ; ba 22 00
-    mov ax, strict word 00010h                ; b8 10 00
-    call 00a00h                               ; e8 83 ff
-    mov ax, strict word 00003h                ; b8 03 00
-    db  032h, 0e4h
-    ; xor ah, ah                                ; 32 e4
-    int 010h                                  ; cd 10
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retf                                      ; cb
-vga_get_cursor_pos_:                         ; 0xc0a88 LB 0x43
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    mov cl, al                                ; 88 c1
-    mov si, dx                                ; 89 d6
-    cmp AL, strict byte 007h                  ; 3c 07
-    jbe short 00aa3h                          ; 76 0e
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
-    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
-    jmp short 00ac4h                          ; eb 21
-    mov dx, strict word 00060h                ; ba 60 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 ae 24
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:si], ax                      ; 26 89 04
-    movzx dx, cl                              ; 0f b6 d1
-    add dx, dx                                ; 01 d2
-    add dx, strict byte 00050h                ; 83 c2 50
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 9b 24
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:bx], ax                      ; 26 89 07
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vga_read_char_attr_:                         ; 0xc0acb LB 0xa8
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov cl, al                                ; 88 c1
-    mov si, dx                                ; 89 d6
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 5c 24
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 30 24
-    mov ch, al                                ; 88 c5
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 00b5ah                           ; 74 6d
-    movzx ax, cl                              ; 0f b6 c1
-    lea bx, [bp-010h]                         ; 8d 5e f0
-    lea dx, [bp-00eh]                         ; 8d 56 f2
-    call 00a88h                               ; e8 8f ff
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 2b 24
-    movzx di, al                              ; 0f b6 f8
-    inc di                                    ; 47
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 3a 24
-    movzx bx, ch                              ; 0f b6 dd
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    jne short 00b5ah                          ; 75 2d
-    mov dx, ax                                ; 89 c2
-    imul dx, di                               ; 0f af d7
-    add dx, dx                                ; 01 d2
-    or dl, 0ffh                               ; 80 ca ff
-    xor ch, ch                                ; 30 ed
-    inc dx                                    ; 42
-    imul cx, dx                               ; 0f af ca
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    imul dx, ax                               ; 0f af d0
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    add ax, dx                                ; 01 d0
-    add ax, ax                                ; 01 c0
-    mov dx, cx                                ; 89 ca
-    add dx, ax                                ; 01 c2
-    mov ax, word [bx+04633h]                  ; 8b 87 33 46
-    call 02f5ah                               ; e8 03 24
-    mov word [ss:si], ax                      ; 36 89 04
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov cs, [bp+di]                           ; 8e 0b
-    int 00bh                                  ; cd 0b
-    ror byte [bp+di], CL                      ; d2 0b
-    fimul dword [bp+di]                       ; da 0b
-    db  0dfh
-    db  00bh, 0e4h
-    ; or sp, sp                                 ; 0b e4
-    db  00bh, 0e9h
-    ; or bp, cx                                 ; 0b e9
-    db  00bh, 0eeh
-    ; or bp, si                                 ; 0b ee
-    db  00bh
-vga_get_font_info_:                          ; 0xc0b73 LB 0x82
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    mov si, dx                                ; 89 d6
-    mov word [bp-006h], bx                    ; 89 5e fa
-    mov bx, cx                                ; 89 cb
-    cmp ax, strict word 00007h                ; 3d 07 00
-    jnbe short 00bc4h                         ; 77 3f
-    mov di, ax                                ; 89 c7
-    add di, ax                                ; 01 c7
-    jmp word [cs:di+00b63h]                   ; 2e ff a5 63 0b
-    mov dx, strict word 0007ch                ; ba 7c 00
-    xor ax, ax                                ; 31 c0
-    call 02f76h                               ; e8 e0 23
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov di, word [bp-006h]                    ; 8b 7e fa
-    mov word [es:di], ax                      ; 26 89 05
-    mov word [es:si], dx                      ; 26 89 14
-    mov dx, 00085h                            ; ba 85 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 94 23
-    xor ah, ah                                ; 30 e4
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:bx], ax                      ; 26 89 07
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 84 23
-    xor ah, ah                                ; 30 e4
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov bx, word [bp+004h]                    ; 8b 5e 04
-    mov word [es:bx], ax                      ; 26 89 07
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-    mov dx, 0010ch                            ; ba 0c 01
-    jmp short 00b91h                          ; eb bf
-    mov ax, 05bedh                            ; b8 ed 5b
-    mov dx, 0c000h                            ; ba 00 c0
-    jmp short 00b96h                          ; eb bc
-    mov ax, 053edh                            ; b8 ed 53
-    jmp short 00bd5h                          ; eb f6
-    mov ax, 057edh                            ; b8 ed 57
-    jmp short 00bd5h                          ; eb f1
-    mov ax, 079edh                            ; b8 ed 79
-    jmp short 00bd5h                          ; eb ec
-    mov ax, 069edh                            ; b8 ed 69
-    jmp short 00bd5h                          ; eb e7
-    mov ax, 07b1ah                            ; b8 1a 7b
-    jmp short 00bd5h                          ; eb e2
-    jmp short 00bc4h                          ; eb cf
-vga_read_pixel_:                             ; 0xc0bf5 LB 0x139
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov si, dx                                ; 89 d6
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov di, cx                                ; 89 cf
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 31 23
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 05 23
-    mov cl, al                                ; 88 c1
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 00d27h                            ; 0f 84 0d 01
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    je near 00d27h                            ; 0f 84 fe 00
-    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
-    cmp bl, 003h                              ; 80 fb 03
-    jc short 00c43h                           ; 72 11
-    jbe short 00c4bh                          ; 76 17
-    cmp bl, 005h                              ; 80 fb 05
-    je near 00d04h                            ; 0f 84 c9 00
-    cmp bl, 004h                              ; 80 fb 04
-    je short 00c4bh                           ; 74 0b
-    jmp near 00d22h                           ; e9 df 00
-    cmp bl, 002h                              ; 80 fb 02
-    je short 00ca3h                           ; 74 5b
-    jmp near 00d22h                           ; e9 d7 00
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 06 23
-    imul ax, word [bp-00ah]                   ; 0f af 46 f6
-    mov bx, si                                ; 89 f3
-    shr bx, 003h                              ; c1 eb 03
-    add bx, ax                                ; 01 c3
-    mov cx, si                                ; 89 f1
-    and cx, strict byte 00007h                ; 83 e1 07
-    mov ax, 00080h                            ; b8 80 00
-    sar ax, CL                                ; d3 f8
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov byte [bp-006h], ch                    ; 88 6e fa
-    jmp short 00c79h                          ; eb 08
-    cmp byte [bp-006h], 004h                  ; 80 7e fa 04
-    jnc near 00d24h                           ; 0f 83 ab 00
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    sal ax, 008h                              ; c1 e0 08
-    or AL, strict byte 004h                   ; 0c 04
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov dx, bx                                ; 89 da
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 b0 22
-    and al, byte [bp-008h]                    ; 22 46 f8
-    test al, al                               ; 84 c0
-    jbe short 00c9eh                          ; 76 09
-    mov cl, byte [bp-006h]                    ; 8a 4e fa
-    mov AL, strict byte 001h                  ; b0 01
-    sal al, CL                                ; d2 e0
-    or ch, al                                 ; 08 c5
-    inc byte [bp-006h]                        ; fe 46 fa
-    jmp short 00c71h                          ; eb ce
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    shr ax, 1                                 ; d1 e8
-    imul ax, ax, strict byte 00050h           ; 6b c0 50
-    mov bx, si                                ; 89 f3
-    shr bx, 002h                              ; c1 eb 02
-    add bx, ax                                ; 01 c3
-    test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 00cbbh                           ; 74 03
-    add bh, 020h                              ; 80 c7 20
-    mov dx, bx                                ; 89 da
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f3eh                               ; e8 7b 22
-    movzx bx, cl                              ; 0f b6 d9
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
-    jne short 00cebh                          ; 75 1b
-    mov cx, si                                ; 89 f1
-    xor ch, ch                                ; 30 ed
-    and cl, 003h                              ; 80 e1 03
-    mov bx, strict word 00003h                ; bb 03 00
-    sub bx, cx                                ; 29 cb
-    mov cx, bx                                ; 89 d9
-    add cx, bx                                ; 01 d9
-    xor ah, ah                                ; 30 e4
-    sar ax, CL                                ; d3 f8
-    mov ch, al                                ; 88 c5
-    and ch, 003h                              ; 80 e5 03
-    jmp short 00d24h                          ; eb 39
-    mov cx, si                                ; 89 f1
-    xor ch, ch                                ; 30 ed
-    and cl, 007h                              ; 80 e1 07
-    mov bx, strict word 00007h                ; bb 07 00
-    sub bx, cx                                ; 29 cb
-    mov cx, bx                                ; 89 d9
-    xor ah, ah                                ; 30 e4
-    sar ax, CL                                ; d3 f8
-    mov ch, al                                ; 88 c5
-    and ch, 001h                              ; 80 e5 01
-    jmp short 00d24h                          ; eb 20
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 4d 22
-    sal ax, 003h                              ; c1 e0 03
-    imul ax, word [bp-00ah]                   ; 0f af 46 f6
-    mov dx, si                                ; 89 f2
-    add dx, ax                                ; 01 c2
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 20 22
-    mov ch, al                                ; 88 c5
-    jmp short 00d24h                          ; eb 02
-    xor ch, ch                                ; 30 ed
-    mov byte [ss:di], ch                      ; 36 88 2d
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_perform_gray_scale_summing_:          ; 0xc0d2e LB 0x8c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov bx, ax                                ; 89 c3
-    mov di, dx                                ; 89 d7
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    xor al, al                                ; 30 c0
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    xor si, si                                ; 31 f6
-    cmp si, di                                ; 39 fe
-    jnc short 00d9fh                          ; 73 52
-    mov al, bl                                ; 88 d8
-    mov dx, 003c7h                            ; ba c7 03
-    out DX, AL                                ; ee
-    mov dx, 003c9h                            ; ba c9 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    xor ch, ch                                ; 30 ed
-    imul cx, cx, strict byte 0004dh           ; 6b c9 4d
-    mov word [bp-00ah], cx                    ; 89 4e f6
-    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
-    imul cx, cx, 00097h                       ; 69 c9 97 00
-    add cx, word [bp-00ah]                    ; 03 4e f6
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    add cx, ax                                ; 01 c1
-    add cx, 00080h                            ; 81 c1 80 00
-    sar cx, 008h                              ; c1 f9 08
-    cmp cx, strict byte 0003fh                ; 83 f9 3f
-    jbe short 00d8dh                          ; 76 03
-    mov cx, strict word 0003fh                ; b9 3f 00
-    mov al, bl                                ; 88 d8
-    mov dx, 003c8h                            ; ba c8 03
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    mov dx, 003c9h                            ; ba c9 03
-    out DX, AL                                ; ee
-    out DX, AL                                ; ee
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    inc si                                    ; 46
-    jmp short 00d49h                          ; eb aa
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov AL, strict byte 020h                  ; b0 20
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_set_cursor_shape_:                    ; 0xc0dba LB 0xa4
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    mov ch, al                                ; 88 c5
-    mov cl, dl                                ; 88 d1
-    and ch, 03fh                              ; 80 e5 3f
-    and cl, 01fh                              ; 80 e1 1f
-    movzx di, ch                              ; 0f b6 fd
-    mov bx, di                                ; 89 fb
-    sal bx, 008h                              ; c1 e3 08
-    movzx si, cl                              ; 0f b6 f1
-    add bx, si                                ; 01 f3
-    mov dx, strict word 00060h                ; ba 60 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 87 21
-    mov dx, 00089h                            ; ba 89 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 54 21
-    mov bl, al                                ; 88 c3
-    mov dx, 00085h                            ; ba 85 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 65 21
-    mov dx, ax                                ; 89 c2
-    test bl, 001h                             ; f6 c3 01
-    je short 00e33h                           ; 74 37
-    cmp ax, strict word 00008h                ; 3d 08 00
-    jbe short 00e33h                          ; 76 32
-    cmp cl, 008h                              ; 80 f9 08
-    jnc short 00e33h                          ; 73 2d
-    cmp ch, 020h                              ; 80 fd 20
-    jnc short 00e33h                          ; 73 28
-    inc di                                    ; 47
-    cmp si, di                                ; 39 fe
-    je short 00e19h                           ; 74 09
-    imul ax, di                               ; 0f af c7
-    shr ax, 003h                              ; c1 e8 03
-    dec ax                                    ; 48
-    jmp short 00e24h                          ; eb 0b
-    lea si, [di+001h]                         ; 8d 75 01
-    imul ax, si                               ; 0f af c6
-    shr ax, 003h                              ; c1 e8 03
-    dec ax                                    ; 48
-    dec ax                                    ; 48
-    mov ch, al                                ; 88 c5
-    movzx ax, cl                              ; 0f b6 c1
-    inc ax                                    ; 40
-    imul ax, dx                               ; 0f af c2
-    shr ax, 003h                              ; c1 e8 03
-    dec ax                                    ; 48
-    mov cl, al                                ; 88 c1
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 1e 21
-    mov bx, ax                                ; 89 c3
-    mov AL, strict byte 00ah                  ; b0 0a
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    lea si, [bx+001h]                         ; 8d 77 01
-    mov al, ch                                ; 88 e8
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov AL, strict byte 00bh                  ; b0 0b
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_set_cursor_pos_:                      ; 0xc0e5e LB 0xa2
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov cx, dx                                ; 89 d1
-    cmp AL, strict byte 007h                  ; 3c 07
-    jnbe near 00ef8h                          ; 0f 87 87 00
-    movzx dx, al                              ; 0f b6 d0
-    add dx, dx                                ; 01 d2
-    add dx, strict byte 00050h                ; 83 c2 50
-    mov bx, cx                                ; 89 cb
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 e7 20
-    mov dx, strict word 00062h                ; ba 62 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 b4 20
-    cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jne short 00ef8h                          ; 75 69
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 c2 20
-    mov bx, ax                                ; 89 c3
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 9b 20
-    xor ah, ah                                ; 30 e4
-    mov dx, ax                                ; 89 c2
-    inc dx                                    ; 42
-    mov al, cl                                ; 88 c8
-    xor cl, cl                                ; 30 c9
-    shr cx, 008h                              ; c1 e9 08
-    mov byte [bp-00ah], cl                    ; 88 4e f6
-    imul dx, bx                               ; 0f af d3
-    or dl, 0ffh                               ; 80 ca ff
-    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
-    inc dx                                    ; 42
-    imul dx, cx                               ; 0f af d1
-    mov si, ax                                ; 89 c6
-    add si, dx                                ; 01 d6
-    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
-    imul bx, dx                               ; 0f af da
-    add si, bx                                ; 01 de
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 84 20
-    mov bx, ax                                ; 89 c3
-    mov AL, strict byte 00eh                  ; b0 0e
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov ax, si                                ; 89 f0
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    lea cx, [bx+001h]                         ; 8d 4f 01
-    mov dx, cx                                ; 89 ca
-    out DX, AL                                ; ee
-    mov AL, strict byte 00fh                  ; b0 0f
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    and si, 000ffh                            ; 81 e6 ff 00
-    mov ax, si                                ; 89 f0
-    mov dx, cx                                ; 89 ca
-    out DX, AL                                ; ee
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_set_active_page_:                     ; 0xc0f00 LB 0xdc
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov cl, al                                ; 88 c1
-    cmp AL, strict byte 007h                  ; 3c 07
-    jnbe near 00fd2h                          ; 0f 87 c0 00
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 23 20
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 f7 1f
-    mov ch, al                                ; 88 c5
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 00fd2h                            ; 0f 84 aa 00
-    movzx ax, cl                              ; 0f b6 c1
-    lea bx, [bp-00eh]                         ; 8d 5e f2
-    lea dx, [bp-00ch]                         ; 8d 56 f4
-    call 00a88h                               ; e8 54 fb
-    movzx bx, ch                              ; 0f b6 dd
-    mov si, bx                                ; 89 de
-    sal si, 003h                              ; c1 e6 03
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
-    jne short 00f83h                          ; 75 40
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 0e 20
-    mov bx, ax                                ; 89 c3
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 e7 1f
-    xor ah, ah                                ; 30 e4
-    inc ax                                    ; 40
-    mov si, bx                                ; 89 de
-    imul si, ax                               ; 0f af f0
-    mov ax, si                                ; 89 f0
-    add ax, si                                ; 01 f0
-    or AL, strict byte 0ffh                   ; 0c ff
-    movzx di, cl                              ; 0f b6 f9
-    mov bx, ax                                ; 89 c3
-    inc bx                                    ; 43
-    imul bx, di                               ; 0f af df
-    mov dx, strict word 0004eh                ; ba 4e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 f1 1f
-    or si, 000ffh                             ; 81 ce ff 00
-    lea bx, [si+001h]                         ; 8d 5c 01
-    imul bx, di                               ; 0f af df
-    jmp short 00f95h                          ; eb 12
-    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
-    sal bx, 006h                              ; c1 e3 06
-    movzx ax, cl                              ; 0f b6 c1
-    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
-    imul bx, ax                               ; 0f af d8
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 bc 1f
-    mov si, ax                                ; 89 c6
-    mov AL, strict byte 00ch                  ; b0 0c
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    xor al, bl                                ; 30 d8
-    shr ax, 008h                              ; c1 e8 08
-    lea di, [si+001h]                         ; 8d 7c 01
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 00dh                  ; b0 0d
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    movzx si, cl                              ; 0f b6 f1
-    mov bx, si                                ; 89 f3
-    mov dx, strict word 00062h                ; ba 62 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 82 1f
-    mov dx, word [bp-00eh]                    ; 8b 56 f2
-    mov ax, si                                ; 89 f0
-    call 00e5eh                               ; e8 8c fe
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x391
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00010h                ; 83 ec 10
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    and AL, strict byte 080h                  ; 24 80
-    mov byte [bp-010h], al                    ; 88 46 f0
-    call 007fah                               ; e8 08 f8
-    test ax, ax                               ; 85 c0
-    je short 01002h                           ; 74 0c
-    mov AL, strict byte 007h                  ; b0 07
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, 003c5h                            ; ba c5 03
-    out DX, AL                                ; ee
-    and byte [bp-00ch], 07fh                  ; 80 66 f4 7f
-    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
-    jne short 01010h                          ; 75 04
-    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 02f17h                               ; e8 00 1f
-    mov byte [bp-012h], al                    ; 88 46 ee
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 01363h                            ; 0f 84 43 03
-    movzx si, al                              ; 0f b6 f0
-    mov al, byte [si+046afh]                  ; 8a 84 af 46
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 006h                              ; c1 e3 06
-    movzx ax, byte [bx+046c3h]                ; 0f b6 87 c3 46
-    mov word [bp-018h], ax                    ; 89 46 e8
-    movzx ax, byte [bx+046c4h]                ; 0f b6 87 c4 46
-    mov word [bp-016h], ax                    ; 89 46 ea
-    movzx ax, byte [bx+046c5h]                ; 0f b6 87 c5 46
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov dx, 00087h                            ; ba 87 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 ed 1e
-    mov dx, 00088h                            ; ba 88 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 e4 1e
-    mov dx, 00089h                            ; ba 89 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 db 1e
-    mov ah, al                                ; 88 c4
-    test AL, strict byte 008h                 ; a8 08
-    jne near 010f5h                           ; 0f 85 8a 00
-    mov bx, si                                ; 89 f3
-    sal bx, 003h                              ; c1 e3 03
-    mov al, byte [bx+04635h]                  ; 8a 87 35 46
-    mov dx, 003c6h                            ; ba c6 03
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, 003c8h                            ; ba c8 03
-    out DX, AL                                ; ee
-    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
-    cmp bl, 001h                              ; 80 fb 01
-    jc short 01095h                           ; 72 0e
-    jbe short 0109eh                          ; 76 15
-    cmp bl, 003h                              ; 80 fb 03
-    je short 010a8h                           ; 74 1a
-    cmp bl, 002h                              ; 80 fb 02
-    je short 010a3h                           ; 74 10
-    jmp short 010abh                          ; eb 16
-    test bl, bl                               ; 84 db
-    jne short 010abh                          ; 75 12
-    mov di, 04e43h                            ; bf 43 4e
-    jmp short 010abh                          ; eb 0d
-    mov di, 04f03h                            ; bf 03 4f
-    jmp short 010abh                          ; eb 08
-    mov di, 04fc3h                            ; bf c3 4f
-    jmp short 010abh                          ; eb 03
-    mov di, 05083h                            ; bf 83 50
-    xor bx, bx                                ; 31 db
-    jmp short 010beh                          ; eb 0f
-    xor al, al                                ; 30 c0
-    mov dx, 003c9h                            ; ba c9 03
-    out DX, AL                                ; ee
-    out DX, AL                                ; ee
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 010e8h                          ; 73 2a
-    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
-    sal si, 003h                              ; c1 e6 03
-    movzx si, byte [si+04636h]                ; 0f b6 b4 36 46
-    movzx dx, byte [si+046bfh]                ; 0f b6 94 bf 46
-    cmp bx, dx                                ; 39 d3
-    jnbe short 010afh                         ; 77 dc
-    imul si, bx, strict byte 00003h           ; 6b f3 03
-    add si, di                                ; 01 fe
-    mov al, byte [si]                         ; 8a 04
-    mov dx, 003c9h                            ; ba c9 03
-    out DX, AL                                ; ee
-    mov al, byte [si+001h]                    ; 8a 44 01
-    out DX, AL                                ; ee
-    mov al, byte [si+002h]                    ; 8a 44 02
-    out DX, AL                                ; ee
-    jmp short 010b7h                          ; eb cf
-    test ah, 002h                             ; f6 c4 02
-    je short 010f5h                           ; 74 08
-    mov dx, 00100h                            ; ba 00 01
-    xor ax, ax                                ; 31 c0
-    call 00d2eh                               ; e8 39 fc
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    xor bx, bx                                ; 31 db
-    jmp short 01104h                          ; eb 05
-    cmp bx, strict byte 00013h                ; 83 fb 13
-    jnbe short 0111bh                         ; 77 17
-    mov al, bl                                ; 88 d8
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 006h                              ; c1 e6 06
-    add si, bx                                ; 01 de
-    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    jmp short 010ffh                          ; eb e4
-    mov AL, strict byte 014h                  ; b0 14
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 003h                  ; b0 03
-    mov dx, 003c5h                            ; ba c5 03
-    out DX, AL                                ; ee
-    mov bx, strict word 00001h                ; bb 01 00
-    jmp short 01138h                          ; eb 05
-    cmp bx, strict byte 00004h                ; 83 fb 04
-    jnbe short 01152h                         ; 77 1a
-    mov al, bl                                ; 88 d8
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 006h                              ; c1 e6 06
-    add si, bx                                ; 01 de
-    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
-    mov dx, 003c5h                            ; ba c5 03
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    jmp short 01133h                          ; eb e1
-    xor bx, bx                                ; 31 db
-    jmp short 0115bh                          ; eb 05
-    cmp bx, strict byte 00008h                ; 83 fb 08
-    jnbe short 01175h                         ; 77 1a
-    mov al, bl                                ; 88 d8
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, AL                                ; ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 006h                              ; c1 e6 06
-    add si, bx                                ; 01 de
-    mov al, byte [si+046fah]                  ; 8a 84 fa 46
-    mov dx, 003cfh                            ; ba cf 03
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    jmp short 01156h                          ; eb e1
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
-    jne short 01188h                          ; 75 05
-    mov dx, 003b4h                            ; ba b4 03
-    jmp short 0118bh                          ; eb 03
-    mov dx, 003d4h                            ; ba d4 03
-    mov si, dx                                ; 89 d6
-    mov ax, strict word 00011h                ; b8 11 00
-    out DX, ax                                ; ef
-    xor bx, bx                                ; 31 db
-    jmp short 0119ah                          ; eb 05
-    cmp bx, strict byte 00018h                ; 83 fb 18
-    jnbe short 011b5h                         ; 77 1b
-    mov al, bl                                ; 88 d8
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
-    sal cx, 006h                              ; c1 e1 06
-    mov di, cx                                ; 89 cf
-    add di, bx                                ; 01 df
-    lea dx, [si+001h]                         ; 8d 54 01
-    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    jmp short 01195h                          ; eb e0
-    mov bx, cx                                ; 89 cb
-    mov al, byte [bx+046cch]                  ; 8a 87 cc 46
-    mov dx, 003c2h                            ; ba c2 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01230h                          ; 75 5f
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    jne short 011f2h                          ; 75 13
-    mov es, [bx+04633h]                       ; 8e 87 33 46
-    mov cx, 04000h                            ; b9 00 40
-    mov ax, 00720h                            ; b8 20 07
-    xor di, di                                ; 31 ff
-    cld                                       ; fc
-    jcxz 011f0h                               ; e3 02
-    rep stosw                                 ; f3 ab
-    jmp short 01230h                          ; eb 3e
-    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
-    jnc short 0120ah                          ; 73 12
-    mov es, [bx+04633h]                       ; 8e 87 33 46
-    mov cx, 04000h                            ; b9 00 40
-    xor ax, ax                                ; 31 c0
-    xor di, di                                ; 31 ff
-    cld                                       ; fc
-    jcxz 01208h                               ; e3 02
-    rep stosw                                 ; f3 ab
-    jmp short 01230h                          ; eb 26
-    mov AL, strict byte 002h                  ; b0 02
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov dx, 003c5h                            ; ba c5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov AL, strict byte 00fh                  ; b0 0f
-    out DX, AL                                ; ee
-    mov es, [bx+04633h]                       ; 8e 87 33 46
-    mov cx, 08000h                            ; b9 00 80
-    xor ax, ax                                ; 31 c0
-    xor di, di                                ; 31 ff
-    cld                                       ; fc
-    jcxz 0122ch                               ; e3 02
-    rep stosw                                 ; f3 ab
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
-    out DX, AL                                ; ee
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 0f 1d
-    mov bx, word [bp-018h]                    ; 8b 5e e8
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 1f 1d
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    sal bx, 006h                              ; c1 e3 06
-    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
-    mov dx, strict word 0004ch                ; ba 4c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 0b 1d
-    mov bx, si                                ; 89 f3
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 00 1d
-    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 d7 1c
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov dx, 00085h                            ; ba 85 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 e7 1c
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    or AL, strict byte 060h                   ; 0c 60
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00087h                            ; ba 87 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 ba 1c
-    mov bx, 000f9h                            ; bb f9 00
-    mov dx, 00088h                            ; ba 88 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 ae 1c
-    mov dx, 00089h                            ; ba 89 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 97 1c
-    and AL, strict byte 07fh                  ; 24 7f
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00089h                            ; ba 89 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 97 1c
-    mov bx, strict word 00008h                ; bb 08 00
-    mov dx, 0008ah                            ; ba 8a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 8b 1c
-    mov cx, ds                                ; 8c d9
-    mov bx, 053d1h                            ; bb d1 53
-    mov dx, 000a8h                            ; ba a8 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f88h                               ; e8 b9 1c
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00065h                ; ba 65 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 72 1c
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00066h                ; ba 66 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 67 1c
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    jne short 012fch                          ; 75 09
-    mov dx, strict word 00007h                ; ba 07 00
-    mov ax, strict word 00006h                ; b8 06 00
-    call 00dbah                               ; e8 be fa
-    xor bx, bx                                ; 31 db
-    jmp short 01305h                          ; eb 05
-    cmp bx, strict byte 00008h                ; 83 fb 08
-    jnc short 01310h                          ; 73 0b
-    movzx ax, bl                              ; 0f b6 c3
-    xor dx, dx                                ; 31 d2
-    call 00e5eh                               ; e8 51 fb
-    inc bx                                    ; 43
-    jmp short 01300h                          ; eb f0
-    xor ax, ax                                ; 31 c0
-    call 00f00h                               ; e8 eb fb
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    jne short 01333h                          ; 75 10
-    xor bl, bl                                ; 30 db
-    mov AL, strict byte 004h                  ; b0 04
-    mov AH, strict byte 011h                  ; b4 11
-    int 010h                                  ; cd 10
-    xor bl, bl                                ; 30 db
-    mov AL, strict byte 003h                  ; b0 03
-    mov AH, strict byte 011h                  ; b4 11
-    int 010h                                  ; cd 10
-    mov dx, 057edh                            ; ba ed 57
-    mov ax, strict word 0001fh                ; b8 1f 00
-    call 00a00h                               ; e8 c4 f6
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    cmp ax, strict word 00010h                ; 3d 10 00
-    je short 0135eh                           ; 74 1a
-    cmp ax, strict word 0000eh                ; 3d 0e 00
-    je short 01359h                           ; 74 10
-    cmp ax, strict word 00008h                ; 3d 08 00
-    jne short 01363h                          ; 75 15
-    mov dx, 053edh                            ; ba ed 53
-    mov ax, strict word 00043h                ; b8 43 00
-    call 00a00h                               ; e8 a9 f6
-    jmp short 01363h                          ; eb 0a
-    mov dx, 05bedh                            ; ba ed 5b
-    jmp short 01351h                          ; eb f3
-    mov dx, 069edh                            ; ba ed 69
-    jmp short 01351h                          ; eb ee
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vgamem_copy_pl4_:                            ; 0xc136d LB 0x76
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov bh, cl                                ; 88 cf
-    movzx di, dl                              ; 0f b6 fa
-    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
-    imul di, cx                               ; 0f af f9
-    movzx si, byte [bp+004h]                  ; 0f b6 76 04
-    imul di, si                               ; 0f af fe
-    xor ah, ah                                ; 30 e4
-    add di, ax                                ; 01 c7
-    mov word [bp-008h], di                    ; 89 7e f8
-    movzx di, bl                              ; 0f b6 fb
-    imul cx, di                               ; 0f af cf
-    imul cx, si                               ; 0f af ce
-    add cx, ax                                ; 01 c1
-    mov word [bp-006h], cx                    ; 89 4e fa
-    mov ax, 00105h                            ; b8 05 01
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    xor bl, bl                                ; 30 db
-    cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 013d3h                          ; 73 29
-    movzx cx, bh                              ; 0f b6 cf
-    movzx si, bl                              ; 0f b6 f3
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    imul ax, si                               ; 0f af c6
-    mov si, word [bp-008h]                    ; 8b 76 f8
-    add si, ax                                ; 01 c6
-    mov di, word [bp-006h]                    ; 8b 7e fa
-    add di, ax                                ; 01 c7
-    mov dx, 0a000h                            ; ba 00 a0
-    mov es, dx                                ; 8e c2
-    cld                                       ; fc
-    jcxz 013cfh                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    db  0feh, 0c3h
-    ; inc bl                                    ; fe c3
-    jmp short 013a5h                          ; eb d2
-    mov ax, strict word 00005h                ; b8 05 00
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-vgamem_fill_pl4_:                            ; 0xc13e3 LB 0x61
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov byte [bp-004h], bl                    ; 88 5e fc
-    mov bh, cl                                ; 88 cf
-    movzx cx, dl                              ; 0f b6 ca
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    imul cx, dx                               ; 0f af ca
-    movzx dx, bh                              ; 0f b6 d7
-    imul dx, cx                               ; 0f af d1
-    xor ah, ah                                ; 30 e4
-    add dx, ax                                ; 01 c2
-    mov word [bp-006h], dx                    ; 89 56 fa
-    mov ax, 00205h                            ; b8 05 02
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    xor bl, bl                                ; 30 db
-    cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 01435h                          ; 73 22
-    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
-    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
-    movzx dx, bl                              ; 0f b6 d3
-    movzx di, bh                              ; 0f b6 ff
-    imul di, dx                               ; 0f af fa
-    add di, word [bp-006h]                    ; 03 7e fa
-    mov dx, 0a000h                            ; ba 00 a0
-    mov es, dx                                ; 8e c2
-    cld                                       ; fc
-    jcxz 01431h                               ; e3 02
-    rep stosb                                 ; f3 aa
-    db  0feh, 0c3h
-    ; inc bl                                    ; fe c3
-    jmp short 0140eh                          ; eb d9
-    mov ax, strict word 00005h                ; b8 05 00
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop di                                    ; 5f
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-vgamem_copy_cga_:                            ; 0xc1444 LB 0xa4
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov bh, cl                                ; 88 cf
-    movzx di, dl                              ; 0f b6 fa
-    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
-    imul di, cx                               ; 0f af f9
-    movzx si, byte [bp+004h]                  ; 0f b6 76 04
-    imul di, si                               ; 0f af fe
-    sar di, 1                                 ; d1 ff
-    xor ah, ah                                ; 30 e4
-    add di, ax                                ; 01 c7
-    mov word [bp-006h], di                    ; 89 7e fa
-    movzx di, bl                              ; 0f b6 fb
-    imul cx, di                               ; 0f af cf
-    imul si, cx                               ; 0f af f1
-    sar si, 1                                 ; d1 fe
-    add si, ax                                ; 01 c6
-    mov word [bp-008h], si                    ; 89 76 f8
-    xor bl, bl                                ; 30 db
-    cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 014dfh                          ; 73 61
-    test bl, 001h                             ; f6 c3 01
-    je short 014b4h                           ; 74 31
-    movzx cx, bh                              ; 0f b6 cf
-    movzx si, bl                              ; 0f b6 f3
-    sar si, 1                                 ; d1 fe
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    imul ax, si                               ; 0f af c6
-    mov si, word [bp-006h]                    ; 8b 76 fa
-    add si, 02000h                            ; 81 c6 00 20
-    add si, ax                                ; 01 c6
-    mov di, word [bp-008h]                    ; 8b 7e f8
-    add di, 02000h                            ; 81 c7 00 20
-    add di, ax                                ; 01 c7
-    mov dx, 0b800h                            ; ba 00 b8
-    mov es, dx                                ; 8e c2
-    cld                                       ; fc
-    jcxz 014b2h                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    jmp short 014dbh                          ; eb 27
-    movzx cx, bh                              ; 0f b6 cf
-    movzx ax, bl                              ; 0f b6 c3
-    sar ax, 1                                 ; d1 f8
-    movzx si, byte [bp+004h]                  ; 0f b6 76 04
-    imul ax, si                               ; 0f af c6
-    mov si, word [bp-006h]                    ; 8b 76 fa
-    add si, ax                                ; 01 c6
-    mov di, word [bp-008h]                    ; 8b 7e f8
-    add di, ax                                ; 01 c7
-    mov dx, 0b800h                            ; ba 00 b8
-    mov es, dx                                ; 8e c2
-    cld                                       ; fc
-    jcxz 014dbh                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    db  0feh, 0c3h
-    ; inc bl                                    ; fe c3
-    jmp short 01479h                          ; eb 9a
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-vgamem_fill_cga_:                            ; 0xc14e8 LB 0x8a
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov byte [bp-006h], bl                    ; 88 5e fa
-    mov bh, cl                                ; 88 cf
-    movzx cx, dl                              ; 0f b6 ca
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    imul dx, cx                               ; 0f af d1
-    movzx cx, bh                              ; 0f b6 cf
-    imul dx, cx                               ; 0f af d1
-    sar dx, 1                                 ; d1 fa
-    movzx si, al                              ; 0f b6 f0
-    add si, dx                                ; 01 d6
-    xor bl, bl                                ; 30 db
-    cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 01569h                          ; 73 57
-    test bl, 001h                             ; f6 c3 01
-    je short 01546h                           ; 74 2f
-    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
-    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
-    movzx dx, bl                              ; 0f b6 d3
-    sar dx, 1                                 ; d1 fa
-    mov word [bp-008h], dx                    ; 89 56 f8
-    movzx dx, bh                              ; 0f b6 d7
-    mov di, word [bp-008h]                    ; 8b 7e f8
-    imul di, dx                               ; 0f af fa
-    mov word [bp-008h], di                    ; 89 7e f8
-    lea di, [si+02000h]                       ; 8d bc 00 20
-    add di, word [bp-008h]                    ; 03 7e f8
-    mov dx, 0b800h                            ; ba 00 b8
-    mov es, dx                                ; 8e c2
-    cld                                       ; fc
-    jcxz 01544h                               ; e3 02
-    rep stosb                                 ; f3 aa
-    jmp short 01565h                          ; eb 1f
-    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
-    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
-    movzx di, bl                              ; 0f b6 fb
-    sar di, 1                                 ; d1 ff
-    movzx dx, bh                              ; 0f b6 d7
-    imul di, dx                               ; 0f af fa
-    add di, si                                ; 01 f7
-    mov dx, 0b800h                            ; ba 00 b8
-    mov es, dx                                ; 8e c2
-    cld                                       ; fc
-    jcxz 01565h                               ; e3 02
-    rep stosb                                 ; f3 aa
-    db  0feh, 0c3h
-    ; inc bl                                    ; fe c3
-    jmp short 0150dh                          ; eb a4
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-biosfn_scroll_:                              ; 0xc1572 LB 0x506
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00018h                ; 83 ec 18
-    mov byte [bp-010h], al                    ; 88 46 f0
-    mov byte [bp-00ch], dl                    ; 88 56 f4
-    mov byte [bp-008h], bl                    ; 88 5e f8
-    mov byte [bp-006h], cl                    ; 88 4e fa
-    cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnbe near 01a6fh                          ; 0f 87 e2 04
-    cmp cl, byte [bp+006h]                    ; 3a 4e 06
-    jnbe near 01a6fh                          ; 0f 87 db 04
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 a1 19
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 75 19
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 01a6fh                            ; 0f 84 c4 04
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 8a 19
-    movzx cx, al                              ; 0f b6 c8
-    inc cx                                    ; 41
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 99 19
-    mov word [bp-016h], ax                    ; 89 46 ea
-    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
-    jne short 015d6h                          ; 75 0c
-    mov dx, strict word 00062h                ; ba 62 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 6b 19
-    mov byte [bp+008h], al                    ; 88 46 08
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp ax, cx                                ; 39 c8
-    jc short 015e5h                           ; 72 07
-    mov al, cl                                ; 88 c8
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    mov byte [bp+004h], al                    ; 88 46 04
-    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
-    cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 015f6h                           ; 72 08
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    mov byte [bp+006h], al                    ; 88 46 06
-    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
-    cmp ax, cx                                ; 39 c8
-    jbe short 01602h                          ; 76 04
-    mov byte [bp-010h], 000h                  ; c6 46 f0 00
-    mov al, byte [bp+006h]                    ; 8a 46 06
-    sub al, byte [bp-006h]                    ; 2a 46 fa
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov byte [bp-012h], al                    ; 88 46 ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    mov di, si                                ; 89 f7
-    sal di, 003h                              ; c1 e7 03
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    dec ax                                    ; 48
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov ax, cx                                ; 89 c8
-    dec ax                                    ; 48
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    imul ax, cx                               ; 0f af c1
-    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
-    jne near 017d1h                           ; 0f 85 9f 01
-    mov dx, ax                                ; 89 c2
-    add dx, ax                                ; 01 c2
-    or dl, 0ffh                               ; 80 ca ff
-    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
-    inc dx                                    ; 42
-    imul bx, dx                               ; 0f af da
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01681h                          ; 75 3a
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 01681h                          ; 75 34
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01681h                          ; 75 2e
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    cmp dx, word [bp-01ah]                    ; 3b 56 e6
-    jne short 01681h                          ; 75 25
-    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
-    cmp dx, word [bp-018h]                    ; 3b 56 e8
-    jne short 01681h                          ; 75 1c
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    sal dx, 008h                              ; c1 e2 08
-    add dx, strict byte 00020h                ; 83 c2 20
-    mov es, [di+04633h]                       ; 8e 85 33 46
-    mov cx, ax                                ; 89 c1
-    mov ax, dx                                ; 89 d0
-    mov di, bx                                ; 89 df
-    cld                                       ; fc
-    jcxz 0167eh                               ; e3 02
-    rep stosw                                 ; f3 ab
-    jmp near 01a6fh                           ; e9 ee 03
-    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne near 01726h                           ; 0f 85 9d 00
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    mov word [bp-014h], ax                    ; 89 46 ec
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    cmp dx, word [bp-014h]                    ; 3b 56 ec
-    jc near 01a6fh                            ; 0f 82 d4 03
-    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
-    add ax, word [bp-014h]                    ; 03 46 ec
-    cmp ax, dx                                ; 39 d0
-    jnbe short 016ach                         ; 77 06
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 016dfh                          ; 75 33
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    sal ax, 008h                              ; c1 e0 08
-    add ax, strict word 00020h                ; 05 20 00
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    imul si, word [bp-016h]                   ; 0f af 76 ea
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    add dx, si                                ; 01 f2
-    add dx, dx                                ; 01 d2
-    mov di, bx                                ; 89 df
-    add di, dx                                ; 01 d7
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 003h                              ; c1 e6 03
-    mov es, [si+04633h]                       ; 8e 84 33 46
-    cld                                       ; fc
-    jcxz 016ddh                               ; e3 02
-    rep stosw                                 ; f3 ab
-    jmp short 01720h                          ; eb 41
-    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
-    mov word [bp-01ch], dx                    ; 89 56 e4
-    mov dx, ax                                ; 89 c2
-    imul dx, word [bp-016h]                   ; 0f af 56 ea
-    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
-    add dx, cx                                ; 01 ca
-    add dx, dx                                ; 01 d2
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 003h                              ; c1 e6 03
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    imul si, word [bp-016h]                   ; 0f af 76 ea
-    add cx, si                                ; 01 f1
-    add cx, cx                                ; 01 c9
-    mov di, bx                                ; 89 df
-    add di, cx                                ; 01 cf
-    mov cx, word [bp-01ch]                    ; 8b 4e e4
-    mov si, dx                                ; 89 d6
-    mov dx, ax                                ; 89 c2
-    mov es, ax                                ; 8e c0
-    cld                                       ; fc
-    jcxz 01720h                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsw                                 ; f3 a5
-    pop DS                                    ; 1f
-    inc word [bp-014h]                        ; ff 46 ec
-    jmp near 01690h                           ; e9 6a ff
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    mov word [bp-014h], ax                    ; 89 46 ec
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jnbe near 01a6fh                          ; 0f 87 37 03
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
-    add ax, dx                                ; 01 d0
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jnbe short 0174dh                         ; 77 06
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01780h                          ; 75 33
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    sal ax, 008h                              ; c1 e0 08
-    add ax, strict word 00020h                ; 05 20 00
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    imul si, word [bp-016h]                   ; 0f af 76 ea
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    add dx, si                                ; 01 f2
-    add dx, dx                                ; 01 d2
-    mov di, bx                                ; 89 df
-    add di, dx                                ; 01 d7
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 003h                              ; c1 e6 03
-    mov es, [si+04633h]                       ; 8e 84 33 46
-    cld                                       ; fc
-    jcxz 0177eh                               ; e3 02
-    rep stosw                                 ; f3 ab
-    jmp short 017c0h                          ; eb 40
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
-    mov dx, word [bp-014h]                    ; 8b 56 ec
-    sub dx, ax                                ; 29 c2
-    imul dx, word [bp-016h]                   ; 0f af 56 ea
-    movzx di, byte [bp-006h]                  ; 0f b6 7e fa
-    add dx, di                                ; 01 fa
-    add dx, dx                                ; 01 d2
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
-    sal si, 003h                              ; c1 e6 03
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    imul si, word [bp-016h]                   ; 0f af 76 ea
-    add di, si                                ; 01 f7
-    add di, di                                ; 01 ff
-    add di, bx                                ; 01 df
-    mov si, dx                                ; 89 d6
-    mov dx, ax                                ; 89 c2
-    mov es, ax                                ; 8e c0
-    cld                                       ; fc
-    jcxz 017c0h                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsw                                 ; f3 a5
-    pop DS                                    ; 1f
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jc near 01a6fh                            ; 0f 82 a4 02
-    dec word [bp-014h]                        ; ff 4e ec
-    jmp near 0172dh                           ; e9 5c ff
-    movzx bx, byte [si+046afh]                ; 0f b6 9c af 46
-    sal bx, 006h                              ; c1 e3 06
-    mov dl, byte [bx+046c5h]                  ; 8a 97 c5 46
-    mov byte [bp-00ah], dl                    ; 88 56 f6
-    mov bl, byte [di+04631h]                  ; 8a 9d 31 46
-    cmp bl, 004h                              ; 80 fb 04
-    je short 017f8h                           ; 74 0f
-    cmp bl, 003h                              ; 80 fb 03
-    je short 017f8h                           ; 74 0a
-    cmp bl, 002h                              ; 80 fb 02
-    je near 01937h                            ; 0f 84 42 01
-    jmp near 01a6fh                           ; e9 77 02
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01850h                          ; 75 52
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 01850h                          ; 75 4c
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01850h                          ; 75 46
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    mov ax, cx                                ; 89 c8
-    dec ax                                    ; 48
-    cmp dx, ax                                ; 39 c2
-    jne short 01850h                          ; 75 3b
-    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    dec ax                                    ; 48
-    cmp dx, ax                                ; 39 c2
-    jne short 01850h                          ; 75 2f
-    mov ax, 00205h                            ; b8 05 02
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    imul cx, word [bp-016h]                   ; 0f af 4e ea
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    imul cx, ax                               ; 0f af c8
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    sal bx, 003h                              ; c1 e3 03
-    mov es, [bx+04633h]                       ; 8e 87 33 46
-    xor di, di                                ; 31 ff
-    cld                                       ; fc
-    jcxz 01849h                               ; e3 02
-    rep stosb                                 ; f3 aa
-    mov ax, strict word 00005h                ; b8 05 00
-    out DX, ax                                ; ef
-    jmp near 01a6fh                           ; e9 1f 02
-    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 018bfh                          ; 75 69
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    mov word [bp-014h], ax                    ; 89 46 ec
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jc near 01a6fh                            ; 0f 82 07 02
-    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
-    add dx, word [bp-014h]                    ; 03 56 ec
-    cmp dx, ax                                ; 39 c2
-    jnbe short 01879h                         ; 77 06
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01898h                          ; 75 1f
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 013e3h                               ; e8 4d fb
-    jmp short 018bah                          ; eb 22
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
-    mov al, byte [bp-014h]                    ; 8a 46 ec
-    add al, byte [bp-010h]                    ; 02 46 f0
-    movzx dx, al                              ; 0f b6 d0
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 0136dh                               ; e8 b3 fa
-    inc word [bp-014h]                        ; ff 46 ec
-    jmp short 0185dh                          ; eb 9e
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    mov word [bp-014h], ax                    ; 89 46 ec
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jnbe near 01a6fh                          ; 0f 87 9e 01
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
-    add ax, dx                                ; 01 d0
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jnbe short 018e6h                         ; 77 06
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01905h                          ; 75 1f
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 013e3h                               ; e8 e0 fa
-    jmp short 01927h                          ; eb 22
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    mov al, byte [bp-014h]                    ; 8a 46 ec
-    sub al, byte [bp-010h]                    ; 2a 46 f0
-    movzx bx, al                              ; 0f b6 d8
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 0136dh                               ; e8 46 fa
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jc near 01a6fh                            ; 0f 82 3d 01
-    dec word [bp-014h]                        ; ff 4e ec
-    jmp short 018c6h                          ; eb 8f
-    mov dl, byte [di+04632h]                  ; 8a 95 32 46
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 0197eh                          ; 75 3d
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 0197eh                          ; 75 37
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 0197eh                          ; 75 31
-    movzx bx, byte [bp+004h]                  ; 0f b6 5e 04
-    cmp bx, word [bp-01ah]                    ; 3b 5e e6
-    jne short 0197eh                          ; 75 28
-    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
-    cmp bx, word [bp-018h]                    ; 3b 5e e8
-    jne short 0197eh                          ; 75 1f
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    imul ax, bx                               ; 0f af c3
-    movzx cx, dl                              ; 0f b6 ca
-    imul cx, ax                               ; 0f af c8
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    mov es, [di+04633h]                       ; 8e 85 33 46
-    xor di, di                                ; 31 ff
-    cld                                       ; fc
-    jcxz 0197bh                               ; e3 02
-    rep stosb                                 ; f3 aa
-    jmp near 01a6fh                           ; e9 f1 00
-    cmp dl, 002h                              ; 80 fa 02
-    jne short 0198ch                          ; 75 09
-    sal byte [bp-006h], 1                     ; d0 66 fa
-    sal byte [bp-012h], 1                     ; d0 66 ee
-    sal word [bp-016h], 1                     ; d1 66 ea
-    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 019fbh                          ; 75 69
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    mov word [bp-014h], ax                    ; 89 46 ec
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jc near 01a6fh                            ; 0f 82 cb 00
-    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
-    add dx, word [bp-014h]                    ; 03 56 ec
-    cmp dx, ax                                ; 39 c2
-    jnbe short 019b5h                         ; 77 06
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 019d4h                          ; 75 1f
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 014e8h                               ; e8 16 fb
-    jmp short 019f6h                          ; eb 22
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
-    mov al, byte [bp-014h]                    ; 8a 46 ec
-    add al, byte [bp-010h]                    ; 02 46 f0
-    movzx dx, al                              ; 0f b6 d0
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 01444h                               ; e8 4e fa
-    inc word [bp-014h]                        ; ff 46 ec
-    jmp short 01999h                          ; eb 9e
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    mov word [bp-014h], ax                    ; 89 46 ec
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jnbe short 01a6fh                         ; 77 64
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
-    add ax, dx                                ; 01 d0
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jnbe short 01a20h                         ; 77 06
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01a3fh                          ; 75 1f
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
-    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 014e8h                               ; e8 ab fa
-    jmp short 01a61h                          ; eb 22
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
-    mov al, byte [bp-014h]                    ; 8a 46 ec
-    sub al, byte [bp-010h]                    ; 2a 46 f0
-    movzx bx, al                              ; 0f b6 d8
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 01444h                               ; e8 e3 f9
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jc short 01a6fh                           ; 72 05
-    dec word [bp-014h]                        ; ff 4e ec
-    jmp short 01a02h                          ; eb 93
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00008h                               ; c2 08 00
-write_gfx_char_pl4_:                         ; 0xc1a78 LB 0xeb
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ah                ; 83 ec 0a
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov ah, bl                                ; 88 dc
-    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
-    je short 01a96h                           ; 74 0b
-    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
-    jne short 01a9bh                          ; 75 0a
-    mov di, 05bedh                            ; bf ed 5b
-    jmp short 01a9eh                          ; eb 08
-    mov di, 069edh                            ; bf ed 69
-    jmp short 01a9eh                          ; eb 03
-    mov di, 053edh                            ; bf ed 53
-    movzx si, cl                              ; 0f b6 f1
-    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
-    imul si, bx                               ; 0f af f3
-    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
-    imul cx, si                               ; 0f af ce
-    movzx si, ah                              ; 0f b6 f4
-    add si, cx                                ; 01 ce
-    mov word [bp-00eh], si                    ; 89 76 f2
-    xor ah, ah                                ; 30 e4
-    imul ax, bx                               ; 0f af c3
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    mov ax, 00f02h                            ; b8 02 0f
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, ax                                ; ef
-    mov ax, 00205h                            ; b8 05 02
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 01ad9h                           ; 74 06
-    mov ax, 01803h                            ; b8 03 18
-    out DX, ax                                ; ef
-    jmp short 01addh                          ; eb 04
-    mov ax, strict word 00003h                ; b8 03 00
-    out DX, ax                                ; ef
-    xor ch, ch                                ; 30 ed
-    cmp ch, byte [bp+006h]                    ; 3a 6e 06
-    jnc short 01b4bh                          ; 73 67
-    movzx si, ch                              ; 0f b6 f5
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    imul si, ax                               ; 0f af f0
-    add si, word [bp-00eh]                    ; 03 76 f2
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp short 01b0ah                          ; eb 13
-    xor bx, bx                                ; 31 db
-    mov dx, si                                ; 89 f2
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f4ch                               ; e8 4b 14
-    inc byte [bp-008h]                        ; fe 46 f8
-    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
-    jnc short 01b47h                          ; 73 3d
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    mov cl, al                                ; 88 c1
-    mov ax, 00080h                            ; b8 80 00
-    sar ax, CL                                ; d3 f8
-    xor ah, ah                                ; 30 e4
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    sal ax, 008h                              ; c1 e0 08
-    or AL, strict byte 008h                   ; 0c 08
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov dx, si                                ; 89 f2
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 13 14
-    movzx ax, ch                              ; 0f b6 c5
-    add ax, word [bp-00ah]                    ; 03 46 f6
-    mov bx, di                                ; 89 fb
-    add bx, ax                                ; 01 c3
-    movzx ax, byte [bx]                       ; 0f b6 07
-    test word [bp-00ch], ax                   ; 85 46 f4
-    je short 01af7h                           ; 74 ba
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    and AL, strict byte 00fh                  ; 24 0f
-    movzx bx, al                              ; 0f b6 d8
-    jmp short 01af9h                          ; eb b2
-    db  0feh, 0c5h
-    ; inc ch                                    ; fe c5
-    jmp short 01adfh                          ; eb 94
-    mov ax, 0ff08h                            ; b8 08 ff
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov ax, strict word 00005h                ; b8 05 00
-    out DX, ax                                ; ef
-    mov ax, strict word 00003h                ; b8 03 00
-    out DX, ax                                ; ef
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-write_gfx_char_cga_:                         ; 0xc1b63 LB 0x11e
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov byte [bp-008h], dl                    ; 88 56 f8
-    mov si, 053edh                            ; be ed 53
-    xor bh, bh                                ; 30 ff
-    movzx di, byte [bp+006h]                  ; 0f b6 7e 06
-    imul di, bx                               ; 0f af fb
-    movzx bx, cl                              ; 0f b6 d9
-    imul bx, bx, 00140h                       ; 69 db 40 01
-    add di, bx                                ; 01 df
-    mov word [bp-00ch], di                    ; 89 7e f4
-    movzx di, al                              ; 0f b6 f8
-    sal di, 003h                              ; c1 e7 03
-    mov byte [bp-006h], 000h                  ; c6 46 fa 00
-    jmp near 01be3h                           ; e9 50 00
-    xor al, al                                ; 30 c0
-    xor ah, ah                                ; 30 e4
-    jmp short 01ba4h                          ; eb 0b
-    or al, bl                                 ; 08 d8
-    shr ch, 1                                 ; d0 ed
-    db  0feh, 0c4h
-    ; inc ah                                    ; fe c4
-    cmp ah, 008h                              ; 80 fc 08
-    jnc short 01bcch                          ; 73 28
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    add bx, di                                ; 01 fb
-    add bx, si                                ; 01 f3
-    movzx bx, byte [bx]                       ; 0f b6 1f
-    movzx dx, ch                              ; 0f b6 d5
-    test bx, dx                               ; 85 d3
-    je short 01b9bh                           ; 74 e5
-    mov CL, strict byte 007h                  ; b1 07
-    sub cl, ah                                ; 28 e1
-    mov bl, byte [bp-008h]                    ; 8a 5e f8
-    and bl, 001h                              ; 80 e3 01
-    sal bl, CL                                ; d2 e3
-    test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01b99h                           ; 74 d1
-    xor al, bl                                ; 30 d8
-    jmp short 01b9bh                          ; eb cf
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f4ch                               ; e8 74 13
-    inc byte [bp-006h]                        ; fe 46 fa
-    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
-    jnc near 01c78h                           ; 0f 83 95 00
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    sar ax, 1                                 ; d1 f8
-    imul ax, ax, strict byte 00050h           ; 6b c0 50
-    mov bx, word [bp-00ch]                    ; 8b 5e f4
-    add bx, ax                                ; 01 c3
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    test byte [bp-006h], 001h                 ; f6 46 fa 01
-    je short 01bfeh                           ; 74 04
-    add byte [bp-009h], 020h                  ; 80 46 f7 20
-    mov CH, strict byte 080h                  ; b5 80
-    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
-    jne short 01c17h                          ; 75 11
-    test byte [bp-008h], ch                   ; 84 6e f8
-    je short 01b93h                           ; 74 88
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f3eh                               ; e8 2a 13
-    jmp near 01b95h                           ; e9 7e ff
-    test ch, ch                               ; 84 ed
-    jbe short 01bd8h                          ; 76 bd
-    test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01c2ch                           ; 74 0b
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f3eh                               ; e8 14 13
-    jmp short 01c2eh                          ; eb 02
-    xor al, al                                ; 30 c0
-    xor ah, ah                                ; 30 e4
-    jmp short 01c3dh                          ; eb 0b
-    or al, bl                                 ; 08 d8
-    shr ch, 1                                 ; d0 ed
-    db  0feh, 0c4h
-    ; inc ah                                    ; fe c4
-    cmp ah, 004h                              ; 80 fc 04
-    jnc short 01c67h                          ; 73 2a
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    add bx, di                                ; 01 fb
-    add bx, si                                ; 01 f3
-    movzx dx, byte [bx]                       ; 0f b6 17
-    movzx bx, ch                              ; 0f b6 dd
-    test bx, dx                               ; 85 d3
-    je short 01c34h                           ; 74 e5
-    mov CL, strict byte 003h                  ; b1 03
-    sub cl, ah                                ; 28 e1
-    mov bl, byte [bp-008h]                    ; 8a 5e f8
-    and bl, 003h                              ; 80 e3 03
-    add cl, cl                                ; 00 c9
-    sal bl, CL                                ; d2 e3
-    test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01c32h                           ; 74 cf
-    xor al, bl                                ; 30 d8
-    jmp short 01c34h                          ; eb cd
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f4ch                               ; e8 d9 12
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 01c17h                          ; eb 9f
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-write_gfx_char_lin_:                         ; 0xc1c81 LB 0x91
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov di, 053edh                            ; bf ed 53
-    movzx dx, cl                              ; 0f b6 d1
-    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
-    imul cx, dx                               ; 0f af ca
-    sal cx, 006h                              ; c1 e1 06
-    movzx dx, bl                              ; 0f b6 d3
-    sal dx, 003h                              ; c1 e2 03
-    add dx, cx                                ; 01 ca
-    mov word [bp-00ch], dx                    ; 89 56 f4
-    movzx si, al                              ; 0f b6 f0
-    sal si, 003h                              ; c1 e6 03
-    xor cl, cl                                ; 30 c9
-    jmp short 01cech                          ; eb 3b
-    cmp ch, 008h                              ; 80 fd 08
-    jnc short 01ce5h                          ; 73 2f
-    xor al, al                                ; 30 c0
-    movzx dx, cl                              ; 0f b6 d1
-    add dx, si                                ; 01 f2
-    mov bx, di                                ; 89 fb
-    add bx, dx                                ; 01 d3
-    movzx dx, byte [bx]                       ; 0f b6 17
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    test dx, bx                               ; 85 da
-    je short 01ccfh                           ; 74 03
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    movzx bx, al                              ; 0f b6 d8
-    movzx dx, ch                              ; 0f b6 d5
-    add dx, word [bp-00ah]                    ; 03 56 f6
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f4ch                               ; e8 6e 12
-    shr byte [bp-008h], 1                     ; d0 6e f8
-    db  0feh, 0c5h
-    ; inc ch                                    ; fe c5
-    jmp short 01cb1h                          ; eb cc
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    cmp cl, 008h                              ; 80 f9 08
-    jnc short 01d09h                          ; 73 1d
-    movzx bx, cl                              ; 0f b6 d9
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    imul dx, bx                               ; 0f af d3
-    sal dx, 003h                              ; c1 e2 03
-    mov bx, word [bp-00ch]                    ; 8b 5e f4
-    add bx, dx                                ; 01 d3
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov byte [bp-008h], 080h                  ; c6 46 f8 80
-    xor ch, ch                                ; 30 ed
-    jmp short 01cb6h                          ; eb ad
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-biosfn_write_char_attr_:                     ; 0xc1d12 LB 0x168
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00018h                ; 83 ec 18
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    mov byte [bp-010h], dl                    ; 88 56 f0
-    mov byte [bp-012h], bl                    ; 88 5e ee
-    mov si, cx                                ; 89 ce
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 10 12
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 e4 11
-    mov cl, al                                ; 88 c1
-    mov byte [bp-006h], al                    ; 88 46 fa
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 01e73h                            ; 0f 84 35 01
-    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
-    lea bx, [bp-01ch]                         ; 8d 5e e4
-    lea dx, [bp-01ah]                         ; 8d 56 e6
-    call 00a88h                               ; e8 3d ed
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 d9 11
-    xor ah, ah                                ; 30 e4
-    inc ax                                    ; 40
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 e6 11
-    mov word [bp-016h], ax                    ; 89 46 ea
-    movzx bx, cl                              ; 0f b6 d9
-    mov di, bx                                ; 89 df
-    sal di, 003h                              ; c1 e7 03
-    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
-    jne short 01dcdh                          ; 75 47
-    mov bx, word [bp-018h]                    ; 8b 5e e8
-    imul bx, ax                               ; 0f af d8
-    add bx, bx                                ; 01 db
-    or bl, 0ffh                               ; 80 cb ff
-    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
-    inc bx                                    ; 43
-    imul dx, bx                               ; 0f af d3
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    imul ax, bx                               ; 0f af c3
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    add ax, bx                                ; 01 d8
-    add ax, ax                                ; 01 c0
-    add dx, ax                                ; 01 c2
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    sal ax, 008h                              ; c1 e0 08
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    add ax, bx                                ; 01 d8
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    mov es, [di+04633h]                       ; 8e 85 33 46
-    mov cx, si                                ; 89 f1
-    mov di, dx                                ; 89 d7
-    cld                                       ; fc
-    jcxz 01dcah                               ; e3 02
-    rep stosw                                 ; f3 ab
-    jmp near 01e73h                           ; e9 a6 00
-    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
-    sal bx, 006h                              ; c1 e3 06
-    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov al, byte [di+04632h]                  ; 8a 85 32 46
-    mov byte [bp-014h], al                    ; 88 46 ec
-    dec si                                    ; 4e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    je near 01e73h                            ; 0f 84 88 00
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnc near 01e73h                           ; 0f 83 7d 00
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    sal bx, 003h                              ; c1 e3 03
-    mov al, byte [bx+04631h]                  ; 8a 87 31 46
-    cmp AL, strict byte 003h                  ; 3c 03
-    jc short 01e11h                           ; 72 0c
-    jbe short 01e17h                          ; 76 10
-    cmp AL, strict byte 005h                  ; 3c 05
-    je short 01e55h                           ; 74 4a
-    cmp AL, strict byte 004h                  ; 3c 04
-    je short 01e17h                           ; 74 08
-    jmp short 01e6dh                          ; eb 5c
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 01e36h                           ; 74 21
-    jmp short 01e6dh                          ; eb 56
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    call 01a78h                               ; e8 44 fc
-    jmp short 01e6dh                          ; eb 37
-    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    call 01b63h                               ; e8 10 fd
-    jmp short 01e6dh                          ; eb 18
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    call 01c81h                               ; e8 14 fe
-    inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 01de3h                           ; e9 70 ff
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_write_char_only_:                     ; 0xc1e7a LB 0x16f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00018h                ; 83 ec 18
-    mov byte [bp-012h], al                    ; 88 46 ee
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov byte [bp-014h], bl                    ; 88 5e ec
-    mov si, cx                                ; 89 ce
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 a8 10
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 7c 10
-    mov cl, al                                ; 88 c1
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 01fe2h                            ; 0f 84 3c 01
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    lea bx, [bp-01ch]                         ; 8d 5e e4
-    lea dx, [bp-01ah]                         ; 8d 56 e6
-    call 00a88h                               ; e8 d5 eb
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-010h], al                    ; 88 46 f0
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 71 10
-    xor ah, ah                                ; 30 e4
-    inc ax                                    ; 40
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 7e 10
-    mov word [bp-016h], ax                    ; 89 46 ea
-    movzx di, cl                              ; 0f b6 f9
-    mov bx, di                                ; 89 fb
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    jne short 01f38h                          ; 75 4a
-    mov dx, word [bp-018h]                    ; 8b 56 e8
-    imul dx, ax                               ; 0f af d0
-    add dx, dx                                ; 01 d2
-    or dl, 0ffh                               ; 80 ca ff
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    inc dx                                    ; 42
-    imul bx, dx                               ; 0f af da
-    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
-    mov cx, ax                                ; 89 c1
-    imul cx, dx                               ; 0f af ca
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    add cx, dx                                ; 01 d1
-    add cx, cx                                ; 01 c9
-    add cx, bx                                ; 01 d9
-    dec si                                    ; 4e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    je near 01fe2h                            ; 0f 84 c6 00
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    sal bx, 003h                              ; c1 e3 03
-    mov di, word [bx+04633h]                  ; 8b bf 33 46
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, di                                ; 89 f8
-    call 02f4ch                               ; e8 18 10
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    jmp short 01f14h                          ; eb dc
-    movzx di, byte [di+046afh]                ; 0f b6 bd af 46
-    sal di, 006h                              ; c1 e7 06
-    mov al, byte [di+046c5h]                  ; 8a 85 c5 46
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov al, byte [bx+04632h]                  ; 8a 87 32 46
-    mov byte [bp-008h], al                    ; 88 46 f8
-    dec si                                    ; 4e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    je near 01fe2h                            ; 0f 84 8c 00
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnc near 01fe2h                           ; 0f 83 81 00
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    sal bx, 003h                              ; c1 e3 03
-    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
-    cmp bl, 003h                              ; 80 fb 03
-    jc short 01f7fh                           ; 72 0e
-    jbe short 01f86h                          ; 76 13
-    cmp bl, 005h                              ; 80 fb 05
-    je short 01fc4h                           ; 74 4c
-    cmp bl, 004h                              ; 80 fb 04
-    je short 01f86h                           ; 74 09
-    jmp short 01fdch                          ; eb 5d
-    cmp bl, 002h                              ; 80 fb 02
-    je short 01fa5h                           ; 74 21
-    jmp short 01fdch                          ; eb 56
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    call 01a78h                               ; e8 d5 fa
-    jmp short 01fdch                          ; eb 37
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    call 01b63h                               ; e8 a1 fb
-    jmp short 01fdch                          ; eb 18
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    push ax                                   ; 50
-    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    call 01c81h                               ; e8 a5 fc
-    inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 01f4eh                           ; e9 6c ff
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_write_pixel_:                         ; 0xc1fe9 LB 0x16a
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 3f 0f
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 13 0f
-    mov byte [bp-004h], al                    ; 88 46 fc
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 0212bh                            ; 0f 84 1e 01
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
-    je near 0212bh                            ; 0f 84 0f 01
-    mov al, byte [bx+04631h]                  ; 8a 87 31 46
-    cmp AL, strict byte 003h                  ; 3c 03
-    jc short 02033h                           ; 72 0f
-    jbe short 0203ah                          ; 76 14
-    cmp AL, strict byte 005h                  ; 3c 05
-    je near 02131h                            ; 0f 84 05 01
-    cmp AL, strict byte 004h                  ; 3c 04
-    je short 0203ah                           ; 74 0a
-    jmp near 0212bh                           ; e9 f8 00
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 0209fh                           ; 74 68
-    jmp near 0212bh                           ; e9 f1 00
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 17 0f
-    imul ax, cx                               ; 0f af c1
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    shr bx, 003h                              ; c1 eb 03
-    add bx, ax                                ; 01 c3
-    mov word [bp-008h], bx                    ; 89 5e f8
-    mov cx, word [bp-00ah]                    ; 8b 4e f6
-    and cl, 007h                              ; 80 e1 07
-    mov ax, 00080h                            ; b8 80 00
-    sar ax, CL                                ; d3 f8
-    xor ah, ah                                ; 30 e4
-    sal ax, 008h                              ; c1 e0 08
-    or AL, strict byte 008h                   ; 0c 08
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov ax, 00205h                            ; b8 05 02
-    out DX, ax                                ; ef
-    mov dx, bx                                ; 89 da
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 cb 0e
-    test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 02080h                           ; 74 07
-    mov ax, 01803h                            ; b8 03 18
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    mov ax, 0a000h                            ; b8 00 a0
-    call 02f4ch                               ; e8 bf 0e
-    mov ax, 0ff08h                            ; b8 08 ff
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov ax, strict word 00005h                ; b8 05 00
-    out DX, ax                                ; ef
-    mov ax, strict word 00003h                ; b8 03 00
-    out DX, ax                                ; ef
-    jmp near 0212bh                           ; e9 8c 00
-    mov ax, cx                                ; 89 c8
-    shr ax, 1                                 ; d1 e8
-    imul ax, ax, strict byte 00050h           ; 6b c0 50
-    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
-    jne short 020b5h                          ; 75 08
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    shr bx, 002h                              ; c1 eb 02
-    jmp short 020bbh                          ; eb 06
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    shr bx, 003h                              ; c1 eb 03
-    add bx, ax                                ; 01 c3
-    mov word [bp-008h], bx                    ; 89 5e f8
-    test cl, 001h                             ; f6 c1 01
-    je short 020c9h                           ; 74 04
-    add byte [bp-007h], 020h                  ; 80 46 f9 20
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f3eh                               ; e8 6c 0e
-    mov bl, al                                ; 88 c3
-    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
-    sal si, 003h                              ; c1 e6 03
-    cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
-    jne short 020fbh                          ; 75 19
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    and AL, strict byte 003h                  ; 24 03
-    mov AH, strict byte 003h                  ; b4 03
-    sub ah, al                                ; 28 c4
-    mov cl, ah                                ; 88 e1
-    add cl, ah                                ; 00 e1
-    mov bh, byte [bp-006h]                    ; 8a 7e fa
-    and bh, 003h                              ; 80 e7 03
-    sal bh, CL                                ; d2 e7
-    mov AL, strict byte 003h                  ; b0 03
-    jmp short 0210eh                          ; eb 13
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    and AL, strict byte 007h                  ; 24 07
-    mov CL, strict byte 007h                  ; b1 07
-    sub cl, al                                ; 28 c1
-    mov bh, byte [bp-006h]                    ; 8a 7e fa
-    and bh, 001h                              ; 80 e7 01
-    sal bh, CL                                ; d2 e7
-    mov AL, strict byte 001h                  ; b0 01
-    sal al, CL                                ; d2 e0
-    test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 0211ah                           ; 74 04
-    xor bl, bh                                ; 30 fb
-    jmp short 02120h                          ; eb 06
-    not al                                    ; f6 d0
-    and bl, al                                ; 20 c3
-    or bl, bh                                 ; 08 fb
-    xor bh, bh                                ; 30 ff
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    mov ax, 0b800h                            ; b8 00 b8
-    call 02f4ch                               ; e8 21 0e
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 20 0e
-    sal ax, 003h                              ; c1 e0 03
-    imul cx, ax                               ; 0f af c8
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    add ax, cx                                ; 01 c8
-    mov word [bp-008h], ax                    ; 89 46 f8
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    mov dx, ax                                ; 89 c2
-    mov ax, 0a000h                            ; b8 00 a0
-    jmp short 02128h                          ; eb d5
-biosfn_write_teletype_:                      ; 0xc2153 LB 0x241
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    sub sp, strict byte 00016h                ; 83 ec 16
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov byte [bp-004h], bl                    ; 88 5e fc
-    mov byte [bp-00eh], cl                    ; 88 4e f2
-    cmp dl, 0ffh                              ; 80 fa ff
-    jne short 02177h                          ; 75 0c
-    mov dx, strict word 00062h                ; ba 62 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 ca 0d
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 be 0d
-    xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 92 0d
-    mov byte [bp-010h], al                    ; 88 46 f0
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 0238eh                            ; 0f 84 00 02
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    lea bx, [bp-018h]                         ; 8d 5e e8
-    lea dx, [bp-016h]                         ; 8d 56 ea
-    call 00a88h                               ; e8 ed e8
-    mov al, byte [bp-018h]                    ; 8a 46 e8
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 89 0d
-    xor ah, ah                                ; 30 e4
-    inc ax                                    ; 40
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 96 0d
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    cmp AL, strict byte 008h                  ; 3c 08
-    jc short 021dch                           ; 72 0e
-    jbe short 021e4h                          ; 76 14
-    cmp AL, strict byte 00dh                  ; 3c 0d
-    je short 021f2h                           ; 74 1e
-    cmp AL, strict byte 00ah                  ; 3c 0a
-    je near 022e4h                            ; 0f 84 0a 01
-    jmp short 021f9h                          ; eb 1d
-    cmp AL, strict byte 007h                  ; 3c 07
-    je near 022e7h                            ; 0f 84 05 01
-    jmp short 021f9h                          ; eb 15
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jbe near 022e7h                           ; 0f 86 fb 00
-    dec byte [bp-008h]                        ; fe 4e f8
-    jmp near 022e7h                           ; e9 f5 00
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp near 022e7h                           ; e9 ee 00
-    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
-    mov si, bx                                ; 89 de
-    sal si, 003h                              ; c1 e6 03
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
-    jne short 02256h                          ; 75 4d
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    imul ax, word [bp-014h]                   ; 0f af 46 ec
-    add ax, ax                                ; 01 c0
-    or AL, strict byte 0ffh                   ; 0c ff
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    mov cx, ax                                ; 89 c1
-    inc cx                                    ; 41
-    imul cx, dx                               ; 0f af ca
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    imul ax, word [bp-012h]                   ; 0f af 46 ee
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    add ax, dx                                ; 01 d0
-    add ax, ax                                ; 01 c0
-    add cx, ax                                ; 01 c1
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    mov dx, cx                                ; 89 ca
-    call 02f4ch                               ; e8 0f 0d
-    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
-    jne near 022d4h                           ; 0f 85 8f 00
-    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
-    mov dx, cx                                ; 89 ca
-    inc dx                                    ; 42
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    call 02f4ch                               ; e8 f9 0c
-    jmp near 022d4h                           ; e9 7e 00
-    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
-    sal bx, 006h                              ; c1 e3 06
-    mov ah, byte [bx+046c5h]                  ; 8a a7 c5 46
-    mov dl, byte [si+04632h]                  ; 8a 94 32 46
-    mov al, byte [si+04631h]                  ; 8a 84 31 46
-    cmp AL, strict byte 003h                  ; 3c 03
-    jc short 0227ah                           ; 72 0c
-    jbe short 02280h                          ; 76 10
-    cmp AL, strict byte 005h                  ; 3c 05
-    je short 022bch                           ; 74 48
-    cmp AL, strict byte 004h                  ; 3c 04
-    je short 02280h                           ; 74 08
-    jmp short 022d4h                          ; eb 5a
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 0229eh                           ; 74 20
-    jmp short 022d4h                          ; eb 54
-    movzx ax, ah                              ; 0f b6 c4
-    push ax                                   ; 50
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    push ax                                   ; 50
-    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 01a78h                               ; e8 dc f7
-    jmp short 022d4h                          ; eb 36
-    movzx ax, dl                              ; 0f b6 c2
-    push ax                                   ; 50
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    push ax                                   ; 50
-    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 01b63h                               ; e8 a9 f8
-    jmp short 022d4h                          ; eb 18
-    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    push ax                                   ; 50
-    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 01c81h                               ; e8 ad f9
-    inc byte [bp-008h]                        ; fe 46 f8
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jne short 022e7h                          ; 75 07
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    inc byte [bp-00ah]                        ; fe 46 f6
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jne near 02372h                           ; 0f 85 80 00
-    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
-    sal si, 003h                              ; c1 e6 03
-    mov bh, byte [bp-014h]                    ; 8a 7e ec
-    db  0feh, 0cfh
-    ; dec bh                                    ; fe cf
-    mov bl, byte [bp-012h]                    ; 8a 5e ee
-    db  0feh, 0cbh
-    ; dec bl                                    ; fe cb
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
-    jne short 02354h                          ; 75 4a
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    imul ax, word [bp-014h]                   ; 0f af 46 ec
-    add ax, ax                                ; 01 c0
-    or AL, strict byte 0ffh                   ; 0c ff
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    mov cx, ax                                ; 89 c1
-    inc cx                                    ; 41
-    imul cx, dx                               ; 0f af ca
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    dec ax                                    ; 48
-    imul ax, word [bp-012h]                   ; 0f af 46 ee
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    add ax, dx                                ; 01 d0
-    add ax, ax                                ; 01 c0
-    mov dx, cx                                ; 89 ca
-    add dx, ax                                ; 01 c2
-    inc dx                                    ; 42
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    call 02f3eh                               ; e8 02 0c
-    push strict byte 00001h                   ; 6a 01
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    push dx                                   ; 52
-    movzx dx, bl                              ; 0f b6 d3
-    push dx                                   ; 52
-    movzx dx, bh                              ; 0f b6 d7
-    push dx                                   ; 52
-    movzx dx, al                              ; 0f b6 d0
-    xor cx, cx                                ; 31 c9
-    xor bx, bx                                ; 31 db
-    jmp short 02369h                          ; eb 15
-    push strict byte 00001h                   ; 6a 01
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    push ax                                   ; 50
-    movzx ax, bl                              ; 0f b6 c3
-    push ax                                   ; 50
-    movzx ax, bh                              ; 0f b6 c7
-    push ax                                   ; 50
-    xor cx, cx                                ; 31 c9
-    xor bx, bx                                ; 31 db
-    xor dx, dx                                ; 31 d2
-    mov ax, strict word 00001h                ; b8 01 00
-    call 01572h                               ; e8 03 f2
-    dec byte [bp-00ah]                        ; fe 4e f6
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    mov word [bp-018h], ax                    ; 89 46 e8
-    sal word [bp-018h], 008h                  ; c1 66 e8 08
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    add word [bp-018h], ax                    ; 01 46 e8
-    mov dx, word [bp-018h]                    ; 8b 56 e8
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 00e5eh                               ; e8 d0 ea
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-get_font_access_:                            ; 0xc2394 LB 0x2c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov ax, 00100h                            ; b8 00 01
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, ax                                ; ef
-    mov ax, 00402h                            ; b8 02 04
-    out DX, ax                                ; ef
-    mov ax, 00704h                            ; b8 04 07
-    out DX, ax                                ; ef
-    mov ax, 00300h                            ; b8 00 03
-    out DX, ax                                ; ef
-    mov ax, 00204h                            ; b8 04 02
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov ax, strict word 00005h                ; b8 05 00
-    out DX, ax                                ; ef
-    mov ax, 00406h                            ; b8 06 04
-    out DX, ax                                ; ef
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-release_font_access_:                        ; 0xc23c0 LB 0x3c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov ax, 00100h                            ; b8 00 01
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, ax                                ; ef
-    mov ax, 00302h                            ; b8 02 03
-    out DX, ax                                ; ef
-    mov ax, 00304h                            ; b8 04 03
-    out DX, ax                                ; ef
-    mov ax, 00300h                            ; b8 00 03
-    out DX, ax                                ; ef
-    mov dx, 003cch                            ; ba cc 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and ax, strict word 00001h                ; 25 01 00
-    sal ax, 002h                              ; c1 e0 02
-    or AL, strict byte 00ah                   ; 0c 0a
-    sal ax, 008h                              ; c1 e0 08
-    or AL, strict byte 006h                   ; 0c 06
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, ax                                ; ef
-    mov ax, strict word 00004h                ; b8 04 00
-    out DX, ax                                ; ef
-    mov ax, 01005h                            ; b8 05 10
-    out DX, ax                                ; ef
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_scan_lines_:                             ; 0xc23fc LB 0xbf
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    mov bl, al                                ; 88 c3
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 4b 0b
-    mov dx, ax                                ; 89 c2
-    mov si, ax                                ; 89 c6
-    mov AL, strict byte 009h                  ; b0 09
-    out DX, AL                                ; ee
-    inc dx                                    ; 42
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov ah, al                                ; 88 c4
-    and ah, 0e0h                              ; 80 e4 e0
-    mov al, bl                                ; 88 d8
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    or al, ah                                 ; 08 e0
-    out DX, AL                                ; ee
-    cmp bl, 008h                              ; 80 fb 08
-    jne short 02433h                          ; 75 08
-    mov dx, strict word 00007h                ; ba 07 00
-    mov ax, strict word 00006h                ; b8 06 00
-    jmp short 02440h                          ; eb 0d
-    mov al, bl                                ; 88 d8
-    sub AL, strict byte 003h                  ; 2c 03
-    movzx dx, al                              ; 0f b6 d0
-    mov al, bl                                ; 88 d8
-    sub AL, strict byte 004h                  ; 2c 04
-    xor ah, ah                                ; 30 e4
-    call 00dbah                               ; e8 77 e9
-    movzx di, bl                              ; 0f b6 fb
-    mov bx, di                                ; 89 fb
-    mov dx, 00085h                            ; ba 85 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 17 0b
-    mov AL, strict byte 012h                  ; b0 12
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    lea cx, [si+001h]                         ; 8d 4c 01
-    mov dx, cx                                ; 89 ca
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    mov AL, strict byte 007h                  ; b0 07
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov ah, al                                ; 88 c4
-    and ah, 002h                              ; 80 e4 02
-    movzx dx, ah                              ; 0f b6 d4
-    sal dx, 007h                              ; c1 e2 07
-    and AL, strict byte 040h                  ; 24 40
-    xor ah, ah                                ; 30 e4
-    sal ax, 003h                              ; c1 e0 03
-    add ax, dx                                ; 01 d0
-    inc ax                                    ; 40
-    add ax, bx                                ; 01 d8
-    xor dx, dx                                ; 31 d2
-    div di                                    ; f7 f7
-    mov cx, ax                                ; 89 c1
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 b7 0a
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 bc 0a
-    movzx dx, cl                              ; 0f b6 d1
-    mov bx, ax                                ; 89 c3
-    imul bx, dx                               ; 0f af da
-    add bx, bx                                ; 01 db
-    mov dx, strict word 0004ch                ; ba 4c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 b7 0a
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_text_user_pat_:                  ; 0xc24bb LB 0x7d
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ah                ; 83 ec 0a
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov word [bp-00ch], dx                    ; 89 56 f4
-    mov word [bp-008h], bx                    ; 89 5e f8
-    mov word [bp-00ah], cx                    ; 89 4e f6
-    call 02394h                               ; e8 c2 fe
-    mov al, byte [bp+006h]                    ; 8a 46 06
-    and AL, strict byte 003h                  ; 24 03
-    xor ah, ah                                ; 30 e4
-    mov bx, ax                                ; 89 c3
-    sal bx, 00eh                              ; c1 e3 0e
-    mov al, byte [bp+006h]                    ; 8a 46 06
-    and AL, strict byte 004h                  ; 24 04
-    xor ah, ah                                ; 30 e4
-    sal ax, 00bh                              ; c1 e0 0b
-    add bx, ax                                ; 01 c3
-    mov word [bp-00eh], bx                    ; 89 5e f2
-    xor bx, bx                                ; 31 db
-    cmp bx, word [bp-00ah]                    ; 3b 5e f6
-    jnc short 0251fh                          ; 73 2b
-    movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
-    mov si, bx                                ; 89 de
-    imul si, cx                               ; 0f af f1
-    add si, word [bp-008h]                    ; 03 76 f8
-    mov di, word [bp+004h]                    ; 8b 7e 04
-    add di, bx                                ; 01 df
-    sal di, 005h                              ; c1 e7 05
-    add di, word [bp-00eh]                    ; 03 7e f2
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    mov ax, 0a000h                            ; b8 00 a0
-    mov es, ax                                ; 8e c0
-    cld                                       ; fc
-    jcxz 0251ch                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    inc bx                                    ; 43
-    jmp short 024efh                          ; eb d0
-    call 023c0h                               ; e8 9e fe
-    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
-    jc short 0252fh                           ; 72 07
-    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
-    call 023fch                               ; e8 cd fe
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00006h                               ; c2 06 00
-biosfn_load_text_8_14_pat_:                  ; 0xc2538 LB 0x70
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    call 02394h                               ; e8 4d fe
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 003h                  ; 24 03
-    xor ah, ah                                ; 30 e4
-    mov bx, ax                                ; 89 c3
-    sal bx, 00eh                              ; c1 e3 0e
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 004h                  ; 24 04
-    xor ah, ah                                ; 30 e4
-    sal ax, 00bh                              ; c1 e0 0b
-    add bx, ax                                ; 01 c3
-    mov word [bp-00ch], bx                    ; 89 5e f4
-    xor bx, bx                                ; 31 db
-    jmp short 0256ah                          ; eb 06
-    cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02590h                          ; 73 26
-    imul si, bx, strict byte 0000eh           ; 6b f3 0e
-    mov di, bx                                ; 89 df
-    sal di, 005h                              ; c1 e7 05
-    add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 05bedh                            ; 81 c6 ed 5b
-    mov cx, strict word 0000eh                ; b9 0e 00
-    mov dx, 0c000h                            ; ba 00 c0
-    mov ax, 0a000h                            ; b8 00 a0
-    mov es, ax                                ; 8e c0
-    cld                                       ; fc
-    jcxz 0258dh                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    inc bx                                    ; 43
-    jmp short 02564h                          ; eb d4
-    call 023c0h                               ; e8 2d fe
-    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 0259fh                           ; 72 06
-    mov ax, strict word 0000eh                ; b8 0e 00
-    call 023fch                               ; e8 5d fe
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_text_8_8_pat_:                   ; 0xc25a8 LB 0x72
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    call 02394h                               ; e8 dd fd
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 003h                  ; 24 03
-    xor ah, ah                                ; 30 e4
-    mov bx, ax                                ; 89 c3
-    sal bx, 00eh                              ; c1 e3 0e
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 004h                  ; 24 04
-    xor ah, ah                                ; 30 e4
-    sal ax, 00bh                              ; c1 e0 0b
-    add bx, ax                                ; 01 c3
-    mov word [bp-00ch], bx                    ; 89 5e f4
-    xor bx, bx                                ; 31 db
-    jmp short 025dah                          ; eb 06
-    cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02602h                          ; 73 28
-    mov si, bx                                ; 89 de
-    sal si, 003h                              ; c1 e6 03
-    mov di, bx                                ; 89 df
-    sal di, 005h                              ; c1 e7 05
-    add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 053edh                            ; 81 c6 ed 53
-    mov cx, strict word 00008h                ; b9 08 00
-    mov dx, 0c000h                            ; ba 00 c0
-    mov ax, 0a000h                            ; b8 00 a0
-    mov es, ax                                ; 8e c0
-    cld                                       ; fc
-    jcxz 025ffh                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    inc bx                                    ; 43
-    jmp short 025d4h                          ; eb d2
-    call 023c0h                               ; e8 bb fd
-    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 02611h                           ; 72 06
-    mov ax, strict word 00008h                ; b8 08 00
-    call 023fch                               ; e8 eb fd
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_text_8_16_pat_:                  ; 0xc261a LB 0x72
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    call 02394h                               ; e8 6b fd
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 003h                  ; 24 03
-    xor ah, ah                                ; 30 e4
-    mov bx, ax                                ; 89 c3
-    sal bx, 00eh                              ; c1 e3 0e
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 004h                  ; 24 04
-    xor ah, ah                                ; 30 e4
-    sal ax, 00bh                              ; c1 e0 0b
-    add bx, ax                                ; 01 c3
-    mov word [bp-00ch], bx                    ; 89 5e f4
-    xor bx, bx                                ; 31 db
-    jmp short 0264ch                          ; eb 06
-    cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02674h                          ; 73 28
-    mov si, bx                                ; 89 de
-    sal si, 004h                              ; c1 e6 04
-    mov di, bx                                ; 89 df
-    sal di, 005h                              ; c1 e7 05
-    add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 069edh                            ; 81 c6 ed 69
-    mov cx, strict word 00010h                ; b9 10 00
-    mov dx, 0c000h                            ; ba 00 c0
-    mov ax, 0a000h                            ; b8 00 a0
-    mov es, ax                                ; 8e c0
-    cld                                       ; fc
-    jcxz 02671h                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    inc bx                                    ; 43
-    jmp short 02646h                          ; eb d2
-    call 023c0h                               ; e8 49 fd
-    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 02683h                           ; 72 06
-    mov ax, strict word 00010h                ; b8 10 00
-    call 023fch                               ; e8 79 fd
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_gfx_8_8_chars_:                  ; 0xc268c LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_gfx_user_chars_:                 ; 0xc2691 LB 0x7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-biosfn_load_gfx_8_14_chars_:                 ; 0xc2698 LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_gfx_8_8_dd_chars_:               ; 0xc269d LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_load_gfx_8_16_chars_:                 ; 0xc26a2 LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_alternate_prtsc_:                     ; 0xc26a7 LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_switch_video_interface_:              ; 0xc26ac LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_enable_video_refresh_control_:        ; 0xc26b1 LB 0x5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_write_string_:                        ; 0xc26b6 LB 0x9c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ah                ; 83 ec 0a
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov byte [bp-008h], dl                    ; 88 56 f8
-    mov byte [bp-006h], bl                    ; 88 5e fa
-    mov si, cx                                ; 89 ce
-    mov di, word [bp+00ah]                    ; 8b 7e 0a
-    movzx ax, dl                              ; 0f b6 c2
-    lea bx, [bp-00eh]                         ; 8d 5e f2
-    lea dx, [bp-00ch]                         ; 8d 56 f4
-    call 00a88h                               ; e8 b0 e3
-    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
-    jne short 026efh                          ; 75 11
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    mov byte [bp+006h], al                    ; 88 46 06
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp+004h], al                    ; 88 46 04
-    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
-    add dx, ax                                ; 01 c2
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 00e5eh                               ; e8 5b e7
-    dec si                                    ; 4e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 02739h                           ; 74 30
-    mov dx, di                                ; 89 fa
-    inc di                                    ; 47
-    mov ax, word [bp+008h]                    ; 8b 46 08
-    call 02f3eh                               ; e8 2c 08
-    mov cl, al                                ; 88 c1
-    test byte [bp-00ah], 002h                 ; f6 46 f6 02
-    je short 02726h                           ; 74 0c
-    mov dx, di                                ; 89 fa
-    inc di                                    ; 47
-    mov ax, word [bp+008h]                    ; 8b 46 08
-    call 02f3eh                               ; e8 1b 08
-    mov byte [bp-006h], al                    ; 88 46 fa
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    movzx ax, cl                              ; 0f b6 c1
-    mov cx, strict word 00003h                ; b9 03 00
-    call 02153h                               ; e8 1c fa
-    jmp short 02703h                          ; eb ca
-    test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    jne short 02749h                          ; 75 0a
-    mov dx, word [bp-00eh]                    ; 8b 56 f2
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 00e5eh                               ; e8 15 e7
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00008h                               ; c2 08 00
-biosfn_read_state_info_:                     ; 0xc2752 LB 0x101
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push dx                                   ; 52
-    push bx                                   ; 53
-    mov cx, ds                                ; 8c d9
-    mov bx, 05383h                            ; bb 83 53
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f88h                               ; e8 20 08
-    mov di, word [bp-00ah]                    ; 8b 7e f6
-    add di, strict byte 00004h                ; 83 c7 04
-    mov cx, strict word 0001eh                ; b9 1e 00
-    mov si, strict word 00049h                ; be 49 00
-    mov dx, strict word 00040h                ; ba 40 00
-    mov es, [bp-008h]                         ; 8e 46 f8
-    cld                                       ; fc
-    jcxz 02783h                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    mov di, word [bp-00ah]                    ; 8b 7e f6
-    add di, strict byte 00022h                ; 83 c7 22
-    mov cx, strict word 00003h                ; b9 03 00
-    mov si, 00084h                            ; be 84 00
-    mov dx, strict word 00040h                ; ba 40 00
-    mov es, [bp-008h]                         ; 8e 46 f8
-    cld                                       ; fc
-    jcxz 0279eh                               ; e3 06
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    mov dx, 0008ah                            ; ba 8a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 97 07
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00025h                ; 83 c2 25
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 96 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00026h                ; 83 c2 26
-    xor bx, bx                                ; 31 db
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 88 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00027h                ; 83 c2 27
-    mov bx, strict word 00010h                ; bb 10 00
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 79 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00028h                ; 83 c2 28
-    xor bx, bx                                ; 31 db
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 6b 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00029h                ; 83 c2 29
-    mov bx, strict word 00008h                ; bb 08 00
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 5c 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 0002ah                ; 83 c2 2a
-    mov bx, strict word 00002h                ; bb 02 00
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 4d 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 0002bh                ; 83 c2 2b
-    xor bx, bx                                ; 31 db
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 3f 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 0002ch                ; 83 c2 2c
-    xor bx, bx                                ; 31 db
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 31 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00031h                ; 83 c2 31
-    mov bx, strict word 00003h                ; bb 03 00
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 22 07
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00032h                ; 83 c2 32
-    xor bx, bx                                ; 31 db
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f4ch                               ; e8 14 07
-    mov di, word [bp-00ah]                    ; 8b 7e f6
-    add di, strict byte 00033h                ; 83 c7 33
-    mov cx, strict word 0000dh                ; b9 0d 00
-    xor ax, ax                                ; 31 c0
-    mov es, [bp-008h]                         ; 8e 46 f8
-    cld                                       ; fc
-    jcxz 0284bh                               ; e3 02
-    rep stosb                                 ; f3 aa
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_read_video_state_size2_:              ; 0xc2853 LB 0x23
-    push dx                                   ; 52
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dx, ax                                ; 89 c2
-    xor ax, ax                                ; 31 c0
-    test dl, 001h                             ; f6 c2 01
-    je short 02863h                           ; 74 03
-    mov ax, strict word 00046h                ; b8 46 00
-    test dl, 002h                             ; f6 c2 02
-    je short 0286bh                           ; 74 03
-    add ax, strict word 0002ah                ; 05 2a 00
-    test dl, 004h                             ; f6 c2 04
-    je short 02873h                           ; 74 03
-    add ax, 00304h                            ; 05 04 03
-    pop bp                                    ; 5d
-    pop dx                                    ; 5a
-    retn                                      ; c3
-vga_get_video_state_size_:                   ; 0xc2876 LB 0x12
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    mov bx, dx                                ; 89 d3
-    call 02853h                               ; e8 d4 ff
-    mov word [ss:bx], ax                      ; 36 89 07
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_save_video_state_:                    ; 0xc2888 LB 0x369
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov si, dx                                ; 89 d6
-    mov cx, bx                                ; 89 d9
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 bc 06
-    mov di, ax                                ; 89 c7
-    test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je near 02a0bh                            ; 0f 84 63 01
-    mov dx, 003c4h                            ; ba c4 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 94 06
-    inc cx                                    ; 41
-    mov dx, di                                ; 89 fa
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 84 06
-    inc cx                                    ; 41
-    mov dx, 003ceh                            ; ba ce 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 73 06
-    inc cx                                    ; 41
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dx, 003c0h                            ; ba c0 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-008h], ax                    ; 89 46 f8
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 58 06
-    inc cx                                    ; 41
-    mov dx, 003cah                            ; ba ca 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 47 06
-    mov ax, strict word 00001h                ; b8 01 00
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    add cx, ax                                ; 01 c1
-    jmp short 02915h                          ; eb 06
-    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
-    jnbe short 02932h                         ; 77 1d
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov dx, 003c5h                            ; ba c5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 20 06
-    inc cx                                    ; 41
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 0290fh                          ; eb dd
-    xor al, al                                ; 30 c0
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov dx, 003c5h                            ; ba c5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 04 06
-    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    inc cx                                    ; 41
-    jmp short 02956h                          ; eb 06
-    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
-    jnbe short 02972h                         ; 77 1c
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    lea dx, [di+001h]                         ; 8d 55 01
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 e0 05
-    inc cx                                    ; 41
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02950h                          ; eb de
-    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 0297fh                          ; eb 06
-    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
-    jnbe short 029a8h                         ; 77 29
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    and ax, strict word 00020h                ; 25 20 00
-    or ax, word [bp-00ah]                     ; 0b 46 f6
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov dx, 003c1h                            ; ba c1 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 aa 05
-    inc cx                                    ; 41
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02979h                          ; eb d1
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 029bbh                          ; eb 06
-    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnbe short 029d8h                         ; 77 1d
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, AL                                ; ee
-    mov dx, 003cfh                            ; ba cf 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 7a 05
-    inc cx                                    ; 41
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 029b5h                          ; eb dd
-    mov bx, di                                ; 89 fb
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 87 05
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    xor bx, bx                                ; 31 db
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 60 05
-    inc cx                                    ; 41
-    xor bx, bx                                ; 31 db
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 56 05
-    inc cx                                    ; 41
-    xor bx, bx                                ; 31 db
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 4c 05
-    inc cx                                    ; 41
-    xor bx, bx                                ; 31 db
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 42 05
-    inc cx                                    ; 41
-    test byte [bp-00ch], 002h                 ; f6 46 f4 02
-    je near 02b7ah                            ; 0f 84 67 01
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 22 05
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 26 05
-    inc cx                                    ; 41
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 2a 05
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 2f 05
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, strict word 0004ch                ; ba 4c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 16 05
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 1b 05
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 02 05
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 07 05
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 d2 04
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 d6 04
-    inc cx                                    ; 41
-    mov dx, 00085h                            ; ba 85 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 da 04
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 df 04
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, 00087h                            ; ba 87 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 aa 04
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 ae 04
-    inc cx                                    ; 41
-    mov dx, 00088h                            ; ba 88 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 96 04
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 9a 04
-    inc cx                                    ; 41
-    mov dx, 00089h                            ; ba 89 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 82 04
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 86 04
-    inc cx                                    ; 41
-    mov dx, strict word 00060h                ; ba 60 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 8a 04
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 8f 04
-    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    jmp short 02ae8h                          ; eb 06
-    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnc short 02b06h                          ; 73 1e
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, dx                                ; 01 d2
-    add dx, strict byte 00050h                ; 83 c2 50
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 64 04
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 69 04
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02ae2h                          ; eb dc
-    mov dx, strict word 0004eh                ; ba 4e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 4b 04
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 50 04
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, strict word 00062h                ; ba 62 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 1b 04
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 1f 04
-    inc cx                                    ; 41
-    mov dx, strict word 0007ch                ; ba 7c 00
-    xor ax, ax                                ; 31 c0
-    call 02f5ah                               ; e8 24 04
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 29 04
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, strict word 0007eh                ; ba 7e 00
-    xor ax, ax                                ; 31 c0
-    call 02f5ah                               ; e8 11 04
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 16 04
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, 0010ch                            ; ba 0c 01
-    xor ax, ax                                ; 31 c0
-    call 02f5ah                               ; e8 fe 03
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 03 04
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, 0010eh                            ; ba 0e 01
-    xor ax, ax                                ; 31 c0
-    call 02f5ah                               ; e8 eb 03
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 f0 03
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    test byte [bp-00ch], 004h                 ; f6 46 f4 04
-    je short 02be7h                           ; 74 67
-    mov dx, 003c7h                            ; ba c7 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 bc 03
-    inc cx                                    ; 41
-    mov dx, 003c8h                            ; ba c8 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 ab 03
-    inc cx                                    ; 41
-    mov dx, 003c6h                            ; ba c6 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 9a 03
-    inc cx                                    ; 41
-    xor al, al                                ; 30 c0
-    mov dx, 003c8h                            ; ba c8 03
-    out DX, AL                                ; ee
-    xor ah, ah                                ; 30 e4
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    jmp short 02bc7h                          ; eb 07
-    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
-    jnc short 02bddh                          ; 73 16
-    mov dx, 003c9h                            ; ba c9 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 75 03
-    inc cx                                    ; 41
-    inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02bc0h                          ; eb e3
-    xor bx, bx                                ; 31 db
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 66 03
-    inc cx                                    ; 41
-    mov ax, cx                                ; 89 c8
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-biosfn_restore_video_state_:                 ; 0xc2bf1 LB 0x326
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    push ax                                   ; 50
-    mov si, dx                                ; 89 d6
-    mov cx, bx                                ; 89 d9
-    test byte [bp-00eh], 001h                 ; f6 46 f2 01
-    je near 02d51h                            ; 0f 84 4a 01
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    lea dx, [bx+040h]                         ; 8d 57 40
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 45 03
-    mov di, ax                                ; 89 c7
-    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
-    lea cx, [bx+005h]                         ; 8d 4f 05
-    jmp short 02c27h                          ; eb 06
-    cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
-    jnbe short 02c3fh                         ; 77 18
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 09 03
-    mov dx, 003c5h                            ; ba c5 03
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02c21h                          ; eb e2
-    xor al, al                                ; 30 c0
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 f2 02
-    mov dx, 003c5h                            ; ba c5 03
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    mov ax, strict word 00011h                ; b8 11 00
-    mov dx, di                                ; 89 fa
-    out DX, ax                                ; ef
-    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    jmp short 02c64h                          ; eb 06
-    cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
-    jnbe short 02c81h                         ; 77 1d
-    cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
-    je short 02c7bh                           ; 74 11
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 c7 02
-    lea dx, [di+001h]                         ; 8d 55 01
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02c5eh                          ; eb dd
-    mov dx, 003cch                            ; ba cc 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0feh                  ; 24 fe
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    cmp di, 003d4h                            ; 81 ff d4 03
-    jne short 02c96h                          ; 75 04
-    or byte [bp-00ah], 001h                   ; 80 4e f6 01
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    mov dx, 003c2h                            ; ba c2 03
-    out DX, AL                                ; ee
-    mov AL, strict byte 011h                  ; b0 11
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 0fff9h                ; 83 c2 f9
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 92 02
-    lea dx, [di+001h]                         ; 8d 55 01
-    out DX, AL                                ; ee
-    lea dx, [bx+003h]                         ; 8d 57 03
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 86 02
-    xor ah, ah                                ; 30 e4
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    jmp short 02cd0h                          ; eb 06
-    cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
-    jnbe short 02ceeh                         ; 77 1e
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    and ax, strict word 00020h                ; 25 20 00
-    or ax, word [bp-008h]                     ; 0b 46 f8
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 5a 02
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02ccah                          ; eb dc
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    mov dx, 003c0h                            ; ba c0 03
-    out DX, AL                                ; ee
-    mov dx, 003dah                            ; ba da 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    jmp short 02d08h                          ; eb 06
-    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
-    jnbe short 02d20h                         ; 77 18
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 28 02
-    mov dx, 003cfh                            ; ba cf 03
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02d02h                          ; eb e2
-    add cx, strict byte 00006h                ; 83 c1 06
-    mov dx, bx                                ; 89 da
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 14 02
-    mov dx, 003c4h                            ; ba c4 03
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    mov dx, bx                                ; 89 da
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 08 02
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    mov dx, bx                                ; 89 da
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 fd 01
-    mov dx, 003ceh                            ; ba ce 03
-    out DX, AL                                ; ee
-    lea dx, [bx+002h]                         ; 8d 57 02
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 f1 01
-    lea dx, [di+006h]                         ; 8d 55 06
-    out DX, AL                                ; ee
-    test byte [bp-00eh], 002h                 ; f6 46 f2 02
-    je near 02ec0h                            ; 0f 84 67 01
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 de 01
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00049h                ; ba 49 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 e0 01
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 e6 01
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0004ah                ; ba 4a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 e9 01
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 d2 01
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0004ch                ; ba 4c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 d5 01
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 be 01
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 00063h                ; ba 63 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 c1 01
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 8e 01
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00084h                            ; ba 84 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 90 01
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 96 01
-    mov bx, ax                                ; 89 c3
-    mov dx, 00085h                            ; ba 85 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 99 01
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 66 01
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00087h                            ; ba 87 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 68 01
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 52 01
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00088h                            ; ba 88 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 54 01
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 3e 01
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00089h                            ; ba 89 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 40 01
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 46 01
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 00060h                ; ba 60 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 49 01
-    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    jmp short 02e2eh                          ; eb 06
-    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
-    jnc short 02e4ch                          ; 73 1e
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 25 01
-    mov bx, ax                                ; 89 c3
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    add dx, dx                                ; 01 d2
-    add dx, strict byte 00050h                ; 83 c2 50
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 23 01
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02e28h                          ; eb dc
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 07 01
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0004eh                ; ba 4e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 0a 01
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 d7 00
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00062h                ; ba 62 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 d9 00
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 df 00
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0007ch                ; ba 7c 00
-    xor ax, ax                                ; 31 c0
-    call 02f68h                               ; e8 e3 00
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 cc 00
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0007eh                ; ba 7e 00
-    xor ax, ax                                ; 31 c0
-    call 02f68h                               ; e8 d0 00
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 b9 00
-    mov bx, ax                                ; 89 c3
-    mov dx, 0010ch                            ; ba 0c 01
-    xor ax, ax                                ; 31 c0
-    call 02f68h                               ; e8 bd 00
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 a6 00
-    mov bx, ax                                ; 89 c3
-    mov dx, 0010eh                            ; ba 0e 01
-    xor ax, ax                                ; 31 c0
-    call 02f68h                               ; e8 aa 00
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    test byte [bp-00eh], 004h                 ; f6 46 f2 04
-    je short 02f0dh                           ; 74 47
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 70 00
-    xor ah, ah                                ; 30 e4
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    inc cx                                    ; 41
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 63 00
-    mov dx, 003c6h                            ; ba c6 03
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    xor al, al                                ; 30 c0
-    mov dx, 003c8h                            ; ba c8 03
-    out DX, AL                                ; ee
-    xor ah, ah                                ; 30 e4
-    mov word [bp-008h], ax                    ; 89 46 f8
-    jmp short 02ef4h                          ; eb 07
-    cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
-    jnc short 02f05h                          ; 73 11
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 43 00
-    mov dx, 003c9h                            ; ba c9 03
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02eedh                          ; eb e8
-    inc cx                                    ; 41
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    mov dx, 003c8h                            ; ba c8 03
-    out DX, AL                                ; ee
-    mov ax, cx                                ; 89 c8
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-find_vga_entry_:                             ; 0xc2f17 LB 0x27
-    push bx                                   ; 53
-    push dx                                   ; 52
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dl, al                                ; 88 c2
-    mov AH, strict byte 0ffh                  ; b4 ff
-    xor al, al                                ; 30 c0
-    jmp short 02f2ah                          ; eb 06
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    cmp AL, strict byte 00fh                  ; 3c 0f
-    jnbe short 02f38h                         ; 77 0e
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 003h                              ; c1 e3 03
-    cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
-    jne short 02f24h                          ; 75 ee
-    mov ah, al                                ; 88 c4
-    mov al, ah                                ; 88 e0
-    pop bp                                    ; 5d
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    retn                                      ; c3
-read_byte_:                                  ; 0xc2f3e LB 0xe
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, dx                                ; 89 d3
-    mov es, ax                                ; 8e c0
-    mov al, byte [es:bx]                      ; 26 8a 07
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-write_byte_:                                 ; 0xc2f4c LB 0xe
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, dx                                ; 89 d6
-    mov es, ax                                ; 8e c0
-    mov byte [es:si], bl                      ; 26 88 1c
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn                                      ; c3
-read_word_:                                  ; 0xc2f5a LB 0xe
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, dx                                ; 89 d3
-    mov es, ax                                ; 8e c0
-    mov ax, word [es:bx]                      ; 26 8b 07
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-write_word_:                                 ; 0xc2f68 LB 0xe
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, dx                                ; 89 d6
-    mov es, ax                                ; 8e c0
-    mov word [es:si], bx                      ; 26 89 1c
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn                                      ; c3
-read_dword_:                                 ; 0xc2f76 LB 0x12
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, dx                                ; 89 d3
-    mov es, ax                                ; 8e c0
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-write_dword_:                                ; 0xc2f88 LB 0x7f
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, dx                                ; 89 d6
-    mov es, ax                                ; 8e c0
-    mov word [es:si], bx                      ; 26 89 1c
-    mov word [es:si+002h], cx                 ; 26 89 4c 02
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn                                      ; c3
-    dec di                                    ; 4f
-    sbb AL, strict byte 01bh                  ; 1c 1b
-    adc dx, word [bp+si]                      ; 13 12
-    adc word [bx+si], dx                      ; 11 10
-    push CS                                   ; 0e
-    or ax, 00a0ch                             ; 0d 0c 0a
-    or word [bx+si], cx                       ; 09 08
-    pop ES                                    ; 07
-    push ES                                   ; 06
-    add ax, 00304h                            ; 05 04 03
-    add al, byte [bx+di]                      ; 02 01
-    add dl, cl                                ; 00 ca
-    xor si, word [di]                         ; 33 35
-    xor byte [bp+di+030h], dh                 ; 30 73 30
-    xchg word [bx+si], si                     ; 87 30
-    cbw                                       ; 98
-    xor byte [si-042d0h], ch                  ; 30 ac 30 bd
-    xor bh, al                                ; 30 c7
-    xor byte [bx+di], al                      ; 30 01
-    xor word [di], ax                         ; 31 05
-    xor word [03331h], dx                     ; 31 16 31 33
-    xor word [bx+si+031h], dx                 ; 31 50 31
-    jo short 02ffch                           ; 70 31
-    lea si, [bx+di]                           ; 8d 31
-    movsb                                     ; a4
-    xor word [bx+si-074cfh], si               ; 31 b0 31 8b
-    db  032h, 0c6h
-    ; xor al, dh                                ; 32 c6
-    db  032h, 0f6h
-    ; xor dh, dh                                ; 32 f6
-    xor cl, byte [bp+di]                      ; 32 0b
-    xor cx, word [di+033h]                    ; 33 4d 33
-    xor byte [si], ah                         ; 30 24
-    and sp, word [bp+si]                      ; 23 22
-    and word [bx+si], sp                      ; 21 20
-    adc AL, strict byte 012h                  ; 14 12
-    adc word [bx+si], dx                      ; 11 10
-    add AL, strict byte 002h                  ; 04 02
-    add word [bx+si], ax                      ; 01 00
-    retf 0d133h                               ; ca 33 d1
-    xor di, si                                ; 31 f7
-    xor word [bx+si], cx                      ; 31 08
-    xor bl, byte [bx+di]                      ; 32 19
-    db  032h, 0d1h
-    ; xor dl, cl                                ; 32 d1
-    xor di, si                                ; 31 f7
-    xor word [bx+si], cx                      ; 31 08
-    xor bl, byte [bx+di]                      ; 32 19
-    xor ch, byte [bp+si]                      ; 32 2a
-    xor dh, byte [05132h]                     ; 32 36 32 51
-    xor bl, byte [si+032h]                    ; 32 5c 32
-    xor dh, byte [edx+032h]                   ; 67 32 72 32
-_int10_func:                                 ; 0xc3007 LB 0x3ca
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    mov si, word [bp+004h]                    ; 8b 76 04
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, strict word 0004fh                ; 3d 4f 00
-    jnbe near 033cah                          ; 0f 87 ad 03
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 00016h                ; b9 16 00
-    mov di, 02f9ah                            ; bf 9a 2f
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+02fafh]               ; 2e 8b 85 af 2f
-    mov cl, byte [bp+012h]                    ; 8a 4e 12
-    jmp ax                                    ; ff e0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 00fdch                               ; e8 9f df
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    and ax, strict word 0007fh                ; 25 7f 00
-    cmp ax, strict word 00007h                ; 3d 07 00
-    je short 0305dh                           ; 74 15
-    cmp ax, strict word 00006h                ; 3d 06 00
-    je short 03054h                           ; 74 07
-    cmp ax, strict word 00005h                ; 3d 05 00
-    jbe short 0305dh                          ; 76 0b
-    jmp short 03066h                          ; eb 12
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 03fh                   ; 0c 3f
-    jmp short 0306dh                          ; eb 10
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 030h                   ; 0c 30
-    jmp short 0306dh                          ; eb 07
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 020h                   ; 0c 20
-    mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 033cah                           ; e9 57 03
-    mov al, byte [bp+010h]                    ; 8a 46 10
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    call 00dbah                               ; e8 36 dd
-    jmp near 033cah                           ; e9 43 03
-    mov dx, word [bp+00eh]                    ; 8b 56 0e
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    call 00e5eh                               ; e8 c9 dd
-    jmp near 033cah                           ; e9 32 03
-    lea bx, [bp+00eh]                         ; 8d 5e 0e
-    lea dx, [bp+010h]                         ; 8d 56 10
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    call 00a88h                               ; e8 df d9
-    jmp near 033cah                           ; e9 1e 03
-    xor ax, ax                                ; 31 c0
-    mov word [bp+012h], ax                    ; 89 46 12
-    mov word [bp+00ch], ax                    ; 89 46 0c
-    mov word [bp+010h], ax                    ; 89 46 10
-    mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp near 033cah                           ; e9 0d 03
-    mov al, cl                                ; 88 c8
-    xor ah, ah                                ; 30 e4
-    call 00f00h                               ; e8 3c de
-    jmp near 033cah                           ; e9 03 03
-    mov ax, strict word 00001h                ; b8 01 00
-    push ax                                   ; 50
-    mov ax, 000ffh                            ; b8 ff 00
-    push ax                                   ; 50
-    mov al, byte [bp+00eh]                    ; 8a 46 0e
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov al, byte [bp+010h]                    ; 8a 46 10
-    movzx cx, al                              ; 0f b6 c8
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    shr ax, 008h                              ; c1 e8 08
-    movzx bx, al                              ; 0f b6 d8
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    movzx dx, al                              ; 0f b6 d0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 01572h                               ; e8 74 e4
-    jmp near 033cah                           ; e9 c9 02
-    xor ax, ax                                ; 31 c0
-    jmp short 030cah                          ; eb c5
-    lea dx, [bp+012h]                         ; 8d 56 12
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    call 00acbh                               ; e8 b8 d9
-    jmp near 033cah                           ; e9 b4 02
-    mov cx, word [bp+010h]                    ; 8b 4e 10
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx bx, al                              ; 0f b6 d8
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    movzx dx, al                              ; 0f b6 d0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 01d12h                               ; e8 e2 eb
-    jmp near 033cah                           ; e9 97 02
-    mov cx, word [bp+010h]                    ; 8b 4e 10
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx bx, al                              ; 0f b6 d8
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    movzx dx, al                              ; 0f b6 d0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 01e7ah                               ; e8 2d ed
-    jmp near 033cah                           ; e9 7a 02
-    mov cx, word [bp+00eh]                    ; 8b 4e 0e
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    mov word [bp-006h], ax                    ; 89 46 fa
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    xor ah, ah                                ; 30 e4
-    call 01fe9h                               ; e8 7c ee
-    jmp near 033cah                           ; e9 5a 02
-    lea cx, [bp+012h]                         ; 8d 4e 12
-    mov bx, word [bp+00eh]                    ; 8b 5e 0e
-    mov dx, word [bp+010h]                    ; 8b 56 10
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    mov word [bp-006h], ax                    ; 89 46 fa
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    xor ah, ah                                ; 30 e4
-    call 00bf5h                               ; e8 6b da
-    jmp near 033cah                           ; e9 3d 02
-    mov cx, strict word 00002h                ; b9 02 00
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 000ffh                            ; ba ff 00
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 02153h                               ; e8 b2 ef
-    jmp near 033cah                           ; e9 26 02
-    mov dx, word [bp+010h]                    ; 8b 56 10
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    call 00d2eh                               ; e8 81 db
-    jmp near 033cah                           ; e9 1a 02
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 00030h                ; 3d 30 00
-    jnbe near 033cah                          ; 0f 87 0e 02
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 0000fh                ; b9 0f 00
-    mov di, 02fdbh                            ; bf db 2f
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+02fe9h]               ; 2e 8b 85 e9 2f
-    jmp ax                                    ; ff e0
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    push word [bp+00eh]                       ; ff 76 0e
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    mov cx, word [bp+010h]                    ; 8b 4e 10
-    mov bx, word [bp+008h]                    ; 8b 5e 08
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    call 024bbh                               ; e8 c7 f2
-    jmp near 033cah                           ; e9 d3 01
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx dx, al                              ; 0f b6 d0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 02538h                               ; e8 33 f3
-    jmp near 033cah                           ; e9 c2 01
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx dx, al                              ; 0f b6 d0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 025a8h                               ; e8 92 f3
-    jmp near 033cah                           ; e9 b1 01
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx dx, al                              ; 0f b6 d0
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    xor ah, ah                                ; 30 e4
-    call 0261ah                               ; e8 f3 f3
-    jmp near 033cah                           ; e9 a0 01
-    mov dx, word [bp+008h]                    ; 8b 56 08
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    call 0268ch                               ; e8 59 f4
-    jmp near 033cah                           ; e9 94 01
-    mov al, byte [bp+00eh]                    ; 8a 46 0e
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx cx, al                              ; 0f b6 c8
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    mov dx, word [bp+008h]                    ; 8b 56 08
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    call 02691h                               ; e8 43 f4
-    jmp near 033cah                           ; e9 79 01
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    xor ah, ah                                ; 30 e4
-    call 02698h                               ; e8 3f f4
-    jmp near 033cah                           ; e9 6e 01
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    xor ah, ah                                ; 30 e4
-    call 0269dh                               ; e8 39 f4
-    jmp near 033cah                           ; e9 63 01
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    xor ah, ah                                ; 30 e4
-    call 026a2h                               ; e8 33 f4
-    jmp near 033cah                           ; e9 58 01
-    lea ax, [bp+00eh]                         ; 8d 46 0e
-    push ax                                   ; 50
-    lea cx, [bp+010h]                         ; 8d 4e 10
-    lea bx, [bp+008h]                         ; 8d 5e 08
-    lea dx, [bp+016h]                         ; 8d 56 16
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    call 00b73h                               ; e8 eb d8
-    jmp near 033cah                           ; e9 3f 01
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 00036h                ; 3d 36 00
-    je short 032bdh                           ; 74 28
-    cmp ax, strict word 00035h                ; 3d 35 00
-    je short 032a7h                           ; 74 0d
-    cmp ax, strict word 00020h                ; 3d 20 00
-    jne near 033cah                           ; 0f 85 29 01
-    call 026a7h                               ; e8 03 f4
-    jmp near 033cah                           ; e9 23 01
-    movzx ax, cl                              ; 0f b6 c1
-    mov bx, word [bp+00eh]                    ; 8b 5e 0e
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    call 026ach                               ; e8 f9 f3
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 012h                   ; 0c 12
-    jmp near 0306dh                           ; e9 b0 fd
-    mov al, cl                                ; 88 c8
-    xor ah, ah                                ; 30 e4
-    call 026b1h                               ; e8 ed f3
-    jmp short 032b3h                          ; eb ed
-    push word [bp+008h]                       ; ff 76 08
-    push word [bp+016h]                       ; ff 76 16
-    mov al, byte [bp+00eh]                    ; 8a 46 0e
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov al, byte [bp+00ch]                    ; 8a 46 0c
-    movzx bx, al                              ; 0f b6 d8
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    movzx dx, al                              ; 0f b6 d0
-    movzx ax, cl                              ; 0f b6 c1
-    mov cx, word [bp+010h]                    ; 8b 4e 10
-    call 026b6h                               ; e8 c3 f3
-    jmp near 033cah                           ; e9 d4 00
-    mov bx, si                                ; 89 f3
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    call 02752h                               ; e8 51 f4
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 01bh                   ; 0c 1b
-    jmp near 0306dh                           ; e9 62 fd
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 00002h                ; 3d 02 00
-    je short 03337h                           ; 74 22
-    cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03329h                           ; 74 0f
-    test ax, ax                               ; 85 c0
-    jne short 03343h                          ; 75 25
-    lea dx, [bp+00ch]                         ; 8d 56 0c
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    call 02876h                               ; e8 4f f5
-    jmp short 03343h                          ; eb 1a
-    mov bx, word [bp+00ch]                    ; 8b 5e 0c
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    call 02888h                               ; e8 53 f5
-    jmp short 03343h                          ; eb 0c
-    mov bx, word [bp+00ch]                    ; 8b 5e 0c
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    call 02bf1h                               ; e8 ae f8
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 01ch                   ; 0c 1c
-    jmp near 0306dh                           ; e9 20 fd
-    call 007fah                               ; e8 aa d4
-    test ax, ax                               ; 85 c0
-    je near 033c5h                            ; 0f 84 6f 00
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 00002h                ; 3d 02 00
-    jc short 03373h                           ; 72 13
-    jbe short 03399h                          ; 76 37
-    cmp ax, strict word 0000ah                ; 3d 0a 00
-    je short 033beh                           ; 74 57
-    cmp ax, strict word 00009h                ; 3d 09 00
-    je short 033beh                           ; 74 52
-    cmp ax, strict word 00004h                ; 3d 04 00
-    je short 033a9h                           ; 74 38
-    jmp short 033beh                          ; eb 4b
-    cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03389h                           ; 74 11
-    test ax, ax                               ; 85 c0
-    jne short 033beh                          ; 75 42
-    mov bx, si                                ; 89 f3
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    lea ax, [bp+012h]                         ; 8d 46 12
-    call 03503h                               ; e8 7c 01
-    jmp short 033cah                          ; eb 41
-    mov cx, si                                ; 89 f1
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    mov dx, word [bp+010h]                    ; 8b 56 10
-    lea ax, [bp+012h]                         ; 8d 46 12
-    call 0362ch                               ; e8 95 02
-    jmp short 033cah                          ; eb 31
-    mov cx, si                                ; 89 f1
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    lea ax, [bp+012h]                         ; 8d 46 12
-    call 036e4h                               ; e8 3d 03
-    jmp short 033cah                          ; eb 21
-    lea ax, [bp+00ch]                         ; 8d 46 0c
-    push ax                                   ; 50
-    mov cx, word [bp+016h]                    ; 8b 4e 16
-    mov bx, word [bp+00eh]                    ; 8b 5e 0e
-    mov dx, word [bp+010h]                    ; 8b 56 10
-    lea ax, [bp+012h]                         ; 8d 46 12
-    call 038cbh                               ; e8 0f 05
-    jmp short 033cah                          ; eb 0c
-    mov word [bp+012h], 00100h                ; c7 46 12 00 01
-    jmp short 033cah                          ; eb 05
-    mov word [bp+012h], 00100h                ; c7 46 12 00 01
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-dispi_set_xres_:                             ; 0xc33d1 LB 0x1f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    mov ax, strict word 00001h                ; b8 01 00
-    mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 8f d1
-    mov ax, bx                                ; 89 d8
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 87 d1
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-dispi_set_yres_:                             ; 0xc33f0 LB 0x1f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    mov ax, strict word 00002h                ; b8 02 00
-    mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 70 d1
-    mov ax, bx                                ; 89 d8
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 68 d1
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-dispi_set_bpp_:                              ; 0xc340f LB 0x1f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    mov ax, strict word 00003h                ; b8 03 00
-    mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 51 d1
-    mov ax, bx                                ; 89 d8
-    mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 49 d1
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-in_word_:                                    ; 0xc342e LB 0x12
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    mov bx, ax                                ; 89 c3
-    mov ax, dx                                ; 89 d0
-    mov dx, bx                                ; 89 da
-    out DX, ax                                ; ef
-    in ax, DX                                 ; ed
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-in_byte_:                                    ; 0xc3440 LB 0x14
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    mov bx, ax                                ; 89 c3
-    mov ax, dx                                ; 89 d0
-    mov dx, bx                                ; 89 da
-    out DX, ax                                ; ef
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-dispi_get_id_:                               ; 0xc3454 LB 0x14
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    xor ax, ax                                ; 31 c0
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, 001cfh                            ; ba cf 01
-    in ax, DX                                 ; ed
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-dispi_set_id_:                               ; 0xc3468 LB 0x1a
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    xor ax, ax                                ; 31 c0
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov ax, bx                                ; 89 d8
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_init_:                                   ; 0xc3482 LB 0x2c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov ax, 0b0c0h                            ; b8 c0 b0
-    call 03468h                               ; e8 db ff
-    call 03454h                               ; e8 c4 ff
-    cmp ax, 0b0c0h                            ; 3d c0 b0
-    jne short 034a7h                          ; 75 12
-    mov bx, strict word 00001h                ; bb 01 00
-    mov dx, 000b9h                            ; ba b9 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 ab fa
-    mov ax, 0b0c4h                            ; b8 c4 b0
-    call 03468h                               ; e8 c1 ff
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-mode_info_find_mode_:                        ; 0xc34ae LB 0x55
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    mov di, ax                                ; 89 c7
-    mov si, dx                                ; 89 d6
-    xor dx, dx                                ; 31 d2
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 6d ff
-    cmp ax, 077cch                            ; 3d cc 77
-    jne short 034f8h                          ; 75 32
-    mov bx, strict word 00004h                ; bb 04 00
-    mov dx, bx                                ; 89 da
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 5d ff
-    mov cx, ax                                ; 89 c1
-    cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 034f8h                           ; 74 20
-    lea dx, [bx+002h]                         ; 8d 57 02
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 4d ff
-    lea dx, [bx+044h]                         ; 8d 57 44
-    cmp cx, di                                ; 39 f9
-    jne short 034f4h                          ; 75 0c
-    test si, si                               ; 85 f6
-    jne short 034f0h                          ; 75 04
-    mov ax, bx                                ; 89 d8
-    jmp short 034fah                          ; eb 0a
-    test AL, strict byte 080h                 ; a8 80
-    jne short 034ech                          ; 75 f8
-    mov bx, dx                                ; 89 d3
-    jmp short 034cbh                          ; eb d3
-    xor ax, ax                                ; 31 c0
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_return_controller_information_: ; 0xc3503 LB 0x129
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ah                ; 83 ec 0a
-    mov si, ax                                ; 89 c6
-    mov di, dx                                ; 89 d7
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
-    call 005b7h                               ; e8 9c d0
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    mov word [bp-008h], di                    ; 89 7e f8
-    xor dx, dx                                ; 31 d2
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 02 ff
-    cmp ax, 077cch                            ; 3d cc 77
-    je short 0353bh                           ; 74 0a
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:si], 00100h                  ; 26 c7 04 00 01
-    jmp near 03624h                           ; e9 e9 00
-    mov cx, strict word 00004h                ; b9 04 00
-    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
-    mov es, [bp-008h]                         ; 8e 46 f8
-    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
-    jne short 03555h                          ; 75 07
-    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
-    je short 03564h                           ; 74 0f
-    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
-    jne short 03569h                          ; 75 0c
-    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
-    jne short 03569h                          ; 75 05
-    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
-    mov es, [bp-008h]                         ; 8e 46 f8
-    db  066h, 026h, 0c7h, 007h, 056h, 045h, 053h, 041h
-    ; mov dword [es:bx], strict dword 041534556h ; 66 26 c7 07 56 45 53 41
-    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
-    mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
-    mov [es:bx+008h], ds                      ; 26 8c 5f 08
-    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
-    ; mov dword [es:bx+00ah], strict dword 000000001h ; 66 26 c7 47 0a 01 00 00 00
-    mov word [es:bx+010h], di                 ; 26 89 7f 10
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    add ax, strict word 00022h                ; 05 22 00
-    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
-    mov dx, strict word 0ffffh                ; ba ff ff
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 8a fe
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov word [es:bx+012h], ax                 ; 26 89 47 12
-    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
-    je short 035d5h                           ; 74 24
-    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
-    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
-    mov [es:bx+018h], ds                      ; 26 8c 5f 18
-    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
-    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
-    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
-    mov [es:bx+020h], ds                      ; 26 8c 5f 20
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 0001bh                ; 83 c2 1b
-    mov ax, 003b6h                            ; b8 b6 03
-    call 03440h                               ; e8 60 fe
-    xor ah, ah                                ; 30 e4
-    cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jnbe short 03600h                         ; 77 19
-    mov dx, cx                                ; 89 ca
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 3f fe
-    mov bx, ax                                ; 89 c3
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, word [bp-00ch]                    ; 03 56 f4
-    mov ax, di                                ; 89 f8
-    call 02f68h                               ; e8 6c f9
-    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
-    add cx, strict byte 00044h                ; 83 c1 44
-    mov dx, cx                                ; 89 ca
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 23 fe
-    mov bx, ax                                ; 89 c3
-    cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 035d5h                          ; 75 c3
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, word [bp-00ch]                    ; 03 56 f4
-    mov ax, di                                ; 89 f8
-    call 02f68h                               ; e8 4b f9
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:si], strict word 0004fh      ; 26 c7 04 4f 00
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_return_mode_information_:         ; 0xc362c LB 0xb8
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov ax, dx                                ; 89 d0
-    mov si, bx                                ; 89 de
-    mov word [bp-006h], cx                    ; 89 4e fa
-    test dh, 040h                             ; f6 c6 40
-    db  00fh, 095h, 0c2h
-    ; setne dl                                  ; 0f 95 c2
-    xor dh, dh                                ; 30 f6
-    and ah, 001h                              ; 80 e4 01
-    call 034aeh                               ; e8 65 fe
-    mov word [bp-008h], ax                    ; 89 46 f8
-    test ax, ax                               ; 85 c0
-    je near 036d2h                            ; 0f 84 80 00
-    mov cx, 00100h                            ; b9 00 01
-    xor ax, ax                                ; 31 c0
-    mov di, word [bp-006h]                    ; 8b 7e fa
-    mov es, bx                                ; 8e c3
-    cld                                       ; fc
-    jcxz 03661h                               ; e3 02
-    rep stosb                                 ; f3 aa
-    xor cx, cx                                ; 31 c9
-    jmp short 0366ah                          ; eb 05
-    cmp cx, strict byte 00042h                ; 83 f9 42
-    jnc short 03687h                          ; 73 1d
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    add dx, cx                                ; 01 ca
-    mov ax, 003b6h                            ; b8 b6 03
-    call 03440h                               ; e8 c9 fd
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, word [bp-006h]                    ; 8b 56 fa
-    add dx, cx                                ; 01 ca
-    mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 c8 f8
-    inc cx                                    ; 41
-    jmp short 03665h                          ; eb de
-    mov dx, word [bp-006h]                    ; 8b 56 fa
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 ad f8
-    test AL, strict byte 001h                 ; a8 01
-    je short 036b1h                           ; 74 1c
-    mov dx, word [bp-006h]                    ; 8b 56 fa
-    add dx, strict byte 0000ch                ; 83 c2 0c
-    mov bx, 00629h                            ; bb 29 06
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 c5 f8
-    mov dx, word [bp-006h]                    ; 8b 56 fa
-    add dx, strict byte 0000eh                ; 83 c2 0e
-    mov bx, 0c000h                            ; bb 00 c0
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 b7 f8
-    mov ax, strict word 0000bh                ; b8 0b 00
-    mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 b6 ce
-    mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 b7 ce
-    mov dx, word [bp-006h]                    ; 8b 56 fa
-    add dx, strict byte 0002ah                ; 83 c2 2a
-    mov bx, ax                                ; 89 c3
-    mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 9b f8
-    mov ax, strict word 0004fh                ; b8 4f 00
-    jmp short 036d5h                          ; eb 03
-    mov ax, 00100h                            ; b8 00 01
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    mov word [es:bx], ax                      ; 26 89 07
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_set_mode_:                        ; 0xc36e4 LB 0xe9
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov si, ax                                ; 89 c6
-    mov word [bp-00ah], dx                    ; 89 56 f6
-    test byte [bp-009h], 040h                 ; f6 46 f7 40
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, dx                                ; 89 d0
-    test dx, dx                               ; 85 d2
-    je short 03704h                           ; 74 03
-    mov dx, strict word 00040h                ; ba 40 00
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    test byte [bp-009h], 080h                 ; f6 46 f7 80
-    je short 03712h                           ; 74 05
-    mov dx, 00080h                            ; ba 80 00
-    jmp short 03714h                          ; eb 02
-    xor dx, dx                                ; 31 d2
-    mov byte [bp-008h], dl                    ; 88 56 f8
-    and byte [bp-009h], 001h                  ; 80 66 f7 01
-    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
-    jnc short 03734h                          ; 73 12
-    xor ax, ax                                ; 31 c0
-    call 005ddh                               ; e8 b6 ce
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 00fdch                               ; e8 ae d8
-    mov ax, strict word 0004fh                ; b8 4f 00
-    jmp near 037c3h                           ; e9 8f 00
-    mov dx, ax                                ; 89 c2
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 034aeh                               ; e8 72 fd
-    mov bx, ax                                ; 89 c3
-    test ax, ax                               ; 85 c0
-    je near 037c0h                            ; 0f 84 7c 00
-    lea dx, [bx+014h]                         ; 8d 57 14
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 e1 fc
-    mov cx, ax                                ; 89 c1
-    lea dx, [bx+016h]                         ; 8d 57 16
-    mov ax, 003b6h                            ; b8 b6 03
-    call 0342eh                               ; e8 d6 fc
-    mov di, ax                                ; 89 c7
-    lea dx, [bx+01bh]                         ; 8d 57 1b
-    mov ax, 003b6h                            ; b8 b6 03
-    call 03440h                               ; e8 dd fc
-    mov bl, al                                ; 88 c3
-    mov dl, al                                ; 88 c2
-    xor ax, ax                                ; 31 c0
-    call 005ddh                               ; e8 71 ce
-    cmp bl, 004h                              ; 80 fb 04
-    jne short 03777h                          ; 75 06
-    mov ax, strict word 0006ah                ; b8 6a 00
-    call 00fdch                               ; e8 65 d8
-    movzx ax, dl                              ; 0f b6 c2
-    call 0340fh                               ; e8 92 fc
-    mov ax, cx                                ; 89 c8
-    call 033d1h                               ; e8 4f fc
-    mov ax, di                                ; 89 f8
-    call 033f0h                               ; e8 69 fc
-    xor ax, ax                                ; 31 c0
-    call 00603h                               ; e8 77 ce
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    or AL, strict byte 001h                   ; 0c 01
-    movzx dx, al                              ; 0f b6 d0
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    or ax, dx                                 ; 09 d0
-    call 005ddh                               ; e8 40 ce
-    call 0070dh                               ; e8 6d cf
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    mov dx, 000bah                            ; ba ba 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 bc f7
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    or AL, strict byte 060h                   ; 0c 60
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00087h                            ; ba 87 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 8f f7
-    jmp near 0372eh                           ; e9 6e ff
-    mov ax, 00100h                            ; b8 00 01
-    mov word [ss:si], ax                      ; 36 89 04
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_read_video_state_size_:           ; 0xc37cd LB 0x8
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov ax, strict word 00012h                ; b8 12 00
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_save_video_state_:                ; 0xc37d5 LB 0x5b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    mov di, ax                                ; 89 c7
-    mov cx, dx                                ; 89 d1
-    mov ax, strict word 00004h                ; b8 04 00
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, 001cfh                            ; ba cf 01
-    in ax, DX                                 ; ed
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, di                                ; 89 f8
-    call 02f68h                               ; e8 70 f7
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 03827h                           ; 74 27
-    mov si, strict word 00001h                ; be 01 00
-    jmp short 0380ah                          ; eb 05
-    cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 03827h                         ; 77 1d
-    cmp si, strict byte 00004h                ; 83 fe 04
-    je short 03824h                           ; 74 15
-    mov ax, si                                ; 89 f0
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, 001cfh                            ; ba cf 01
-    in ax, DX                                 ; ed
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    mov ax, di                                ; 89 f8
-    call 02f68h                               ; e8 46 f7
-    inc cx                                    ; 41
-    inc cx                                    ; 41
-    inc si                                    ; 46
-    jmp short 03805h                          ; eb de
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_restore_video_state_:             ; 0xc3830 LB 0x9b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push ax                                   ; 50
-    mov cx, ax                                ; 89 c1
-    mov bx, dx                                ; 89 d3
-    call 02f5ah                               ; e8 1c f7
-    mov word [bp-008h], ax                    ; 89 46 f8
-    inc bx                                    ; 43
-    inc bx                                    ; 43
-    test byte [bp-008h], 001h                 ; f6 46 f8 01
-    jne short 03859h                          ; 75 10
-    mov ax, strict word 00004h                ; b8 04 00
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    jmp short 038c3h                          ; eb 6a
-    mov ax, strict word 00001h                ; b8 01 00
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, bx                                ; 89 da
-    mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 f3 f6
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    inc bx                                    ; 43
-    inc bx                                    ; 43
-    mov ax, strict word 00002h                ; b8 02 00
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, bx                                ; 89 da
-    mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 df f6
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    inc bx                                    ; 43
-    inc bx                                    ; 43
-    mov ax, strict word 00003h                ; b8 03 00
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, bx                                ; 89 da
-    mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 cb f6
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    inc bx                                    ; 43
-    inc bx                                    ; 43
-    mov ax, strict word 00004h                ; b8 04 00
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    mov si, strict word 00005h                ; be 05 00
-    jmp short 038adh                          ; eb 05
-    cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 038c3h                         ; 77 16
-    mov ax, si                                ; 89 f0
-    mov dx, 001ceh                            ; ba ce 01
-    out DX, ax                                ; ef
-    mov dx, bx                                ; 89 da
-    mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 a0 f6
-    mov dx, 001cfh                            ; ba cf 01
-    out DX, ax                                ; ef
-    inc bx                                    ; 43
-    inc bx                                    ; 43
-    inc si                                    ; 46
-    jmp short 038a8h                          ; eb e5
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vbe_biosfn_save_restore_state_:              ; 0xc38cb LB 0x8c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    mov si, ax                                ; 89 c6
-    mov word [bp-006h], dx                    ; 89 56 fa
-    mov ax, bx                                ; 89 d8
-    mov bx, word [bp+004h]                    ; 8b 5e 04
-    mov di, strict word 0004fh                ; bf 4f 00
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 00002h                ; 3d 02 00
-    je short 0392ah                           ; 74 45
-    cmp ax, strict word 00001h                ; 3d 01 00
-    je short 0390eh                           ; 74 24
-    test ax, ax                               ; 85 c0
-    jne short 03946h                          ; 75 58
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02853h                               ; e8 5f ef
-    mov cx, ax                                ; 89 c1
-    test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03901h                           ; 74 05
-    call 037cdh                               ; e8 ce fe
-    add ax, cx                                ; 01 c8
-    add ax, strict word 0003fh                ; 05 3f 00
-    shr ax, 006h                              ; c1 e8 06
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:bx], ax                      ; 26 89 07
-    jmp short 03949h                          ; eb 3b
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov bx, word [es:bx]                      ; 26 8b 1f
-    mov dx, cx                                ; 89 ca
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02888h                               ; e8 6d ef
-    test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03949h                           ; 74 28
-    mov dx, ax                                ; 89 c2
-    mov ax, cx                                ; 89 c8
-    call 037d5h                               ; e8 ad fe
-    jmp short 03949h                          ; eb 1f
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov bx, word [es:bx]                      ; 26 8b 1f
-    mov dx, cx                                ; 89 ca
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02bf1h                               ; e8 ba f2
-    test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03949h                           ; 74 0c
-    mov dx, ax                                ; 89 c2
-    mov ax, cx                                ; 89 c8
-    call 03830h                               ; e8 ec fe
-    jmp short 03949h                          ; eb 03
-    mov di, 00100h                            ; bf 00 01
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    mov word [es:si], di                      ; 26 89 3c
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-
-  ; Padding 0xaa9 bytes at 0xc3957
-  times 2729 db 0
-
-section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
-vesa_pm_start:                               ; 0xc4400 LB 0x114
-    sbb byte [bx+si], al                      ; 18 00
-    dec di                                    ; 4f
-    add byte [bx+si], dl                      ; 00 10
-    add word [bx+si], cx                      ; 01 08
-    add dh, cl                                ; 00 ce
-    add di, cx                                ; 01 cf
-    add di, cx                                ; 01 cf
-    add ax, dx                                ; 01 d0
-    add word [bp-048fdh], si                  ; 01 b6 03 b7
-    db  003h, 0ffh
-    ; add di, di                                ; 03 ff
-    db  0ffh
-    db  0ffh
-    jmp word [bp-07dh]                        ; ff 66 83
-    sti                                       ; fb
-    add byte [si+005h], dh                    ; 00 74 05
-    mov eax, strict dword 066c30100h          ; 66 b8 00 01 c3 66
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    push edx                                  ; 66 52
-    push eax                                  ; 66 50
-    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
-    add ax, 06600h                            ; 05 00 66
-    out DX, ax                                ; ef
-    pop eax                                   ; 66 58
-    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
-    in eax, DX                                ; 66 ed
-    pop edx                                   ; 66 5a
-    db  066h, 03bh, 0d0h
-    ; cmp edx, eax                              ; 66 3b d0
-    jne short 0444ah                          ; 75 05
-    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
-    mov ax, 0014fh                            ; b8 4f 01
-    retn                                      ; c3
-    cmp bl, 080h                              ; 80 fb 80
-    je short 0445eh                           ; 74 0a
-    cmp bl, 000h                              ; 80 fb 00
-    je short 0446eh                           ; 74 15
-    mov eax, strict dword 052c30100h          ; 66 b8 00 01 c3 52
-    mov edx, strict dword 0a8ec03dah          ; 66 ba da 03 ec a8
-    or byte [di-005h], dh                     ; 08 75 fb
-    in AL, DX                                 ; ec
-    test AL, strict byte 008h                 ; a8 08
-    je short 04468h                           ; 74 fb
-    pop dx                                    ; 5a
-    push ax                                   ; 50
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sal dx, 010h                              ; c1 e2 10
-    and cx, strict word 0ffffh                ; 81 e1 ff ff
-    add byte [bx+si], al                      ; 00 00
-    db  00bh, 0cah
-    ; or cx, dx                                 ; 0b ca
-    sal cx, 002h                              ; c1 e1 02
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    push ax                                   ; 50
-    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
-    push ES                                   ; 06
-    add byte [bp-011h], ah                    ; 00 66 ef
-    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
-    db  00fh, 0b7h, 0c8h
-    ; movzx cx, ax                              ; 0f b7 c8
-    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
-    add ax, word [bx+si]                      ; 03 00
-    out DX, eax                               ; 66 ef
-    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
-    db  00fh, 0b7h, 0f0h
-    ; movzx si, ax                              ; 0f b7 f0
-    pop ax                                    ; 58
-    cmp si, strict byte 00004h                ; 83 fe 04
-    je short 044c7h                           ; 74 17
-    add si, strict byte 00007h                ; 83 c6 07
-    shr si, 003h                              ; c1 ee 03
-    imul cx, si                               ; 0f af ce
-    db  033h, 0d2h
-    ; xor dx, dx                                ; 33 d2
-    div cx                                    ; f7 f1
-    db  08bh, 0f8h
-    ; mov di, ax                                ; 8b f8
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    db  033h, 0d2h
-    ; xor dx, dx                                ; 33 d2
-    div si                                    ; f7 f6
-    jmp short 044d3h                          ; eb 0c
-    shr cx, 1                                 ; d1 e9
-    db  033h, 0d2h
-    ; xor dx, dx                                ; 33 d2
-    div cx                                    ; f7 f1
-    db  08bh, 0f8h
-    ; mov di, ax                                ; 8b f8
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    sal ax, 1                                 ; d1 e0
-    push edx                                  ; 66 52
-    push eax                                  ; 66 50
-    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
-    or byte [bx+si], al                       ; 08 00
-    out DX, eax                               ; 66 ef
-    pop eax                                   ; 66 58
-    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
-    pop edx                                   ; 66 5a
-    db  066h, 08bh, 0c7h
-    ; mov eax, edi                              ; 66 8b c7
-    push edx                                  ; 66 52
-    push eax                                  ; 66 50
-    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
-    or word [bx+si], ax                       ; 09 00
-    out DX, eax                               ; 66 ef
-    pop eax                                   ; 66 58
-    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
-    pop edx                                   ; 66 5a
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop ax                                    ; 58
-    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
-    mov ax, 0014fh                            ; b8 4f 01
-vesa_pm_end:                                 ; 0xc4514 LB 0x1
-    retn                                      ; c3
-
-  ; Padding 0xeb bytes at 0xc4515
-  times 235 db 0
-
-section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
-_msg_vga_init:                               ; 0xc4600 LB 0x2f
-    db  'Oracle VM VirtualBox Version 5.0.51 VGA BIOS', 00dh, 00ah, 000h
-_vga_modes:                                  ; 0xc462f LB 0x80
-    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
-    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
-    db  004h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h, 005h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h
-    db  006h, 001h, 002h, 001h, 000h, 0b8h, 0ffh, 001h, 007h, 000h, 001h, 004h, 000h, 0b0h, 0ffh, 000h
-    db  00dh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h, 00eh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h
-    db  00fh, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 000h, 010h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
-    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
-    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
-_line_to_vpti:                               ; 0xc46af LB 0x10
-    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
-_dac_regs:                                   ; 0xc46bf LB 0x4
-    dd  0ff3f3f3fh
-_video_param_table:                          ; 0xc46c3 LB 0x780
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
-    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
-    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
-    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
-    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
-    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
-    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
-    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
-    db  050h, 018h, 008h, 000h, 010h, 001h, 001h, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
-    db  0b9h, 0c2h, 0ffh, 000h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h
-    db  017h, 017h, 017h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00dh, 00fh, 0ffh
-    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
-    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
-    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  028h, 018h, 008h, 000h, 020h, 009h, 00fh, 000h, 006h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
-    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
-    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
-    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-    db  050h, 018h, 008h, 000h, 040h, 001h, 00fh, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
-    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
-    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
-    db  0bah, 0e3h, 0ffh, 000h, 008h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 008h, 000h, 000h, 000h
-    db  018h, 000h, 000h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
-    db  0bah, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
-    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  050h, 018h, 00eh, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
-    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
-    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
-    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
-    db  028h, 018h, 010h, 000h, 008h, 008h, 003h, 000h, 002h, 067h, 02dh, 027h, 028h, 090h, 02bh, 0a0h
-    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 01fh, 096h
-    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
-    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
-    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
-    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
-    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
-    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
-    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
-    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
-    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
-    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
-    db  004h, 0e3h, 0ffh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h
-    db  03fh, 000h, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
-    db  004h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
-    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-    db  028h, 018h, 008h, 000h, 000h, 001h, 00fh, 000h, 00eh, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
-    db  0bfh, 01fh, 000h, 041h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 040h, 096h
-    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 008h, 009h, 00ah, 00bh, 00ch
-    db  00dh, 00eh, 00fh, 041h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 040h, 005h, 00fh, 0ffh
-    db  064h, 024h, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 07fh, 063h, 063h, 083h, 06bh, 01bh
-    db  072h, 0f0h, 000h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 08dh, 057h, 032h, 000h, 057h
-    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
-    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
-_palette0:                                   ; 0xc4e43 LB 0xc0
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
-    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
-    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
-    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
-    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
-    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
-    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
-    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
-    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
-_palette1:                                   ; 0xc4f03 LB 0xc0
-    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
-    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
-    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
-    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
-    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
-    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
-    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
-    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
-    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
-    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
-    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
-    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
-_palette2:                                   ; 0xc4fc3 LB 0xc0
-    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
-    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
-    db  015h, 000h, 02ah, 03fh, 02ah, 000h, 015h, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 02ah, 02ah, 03fh
-    db  000h, 015h, 000h, 000h, 015h, 02ah, 000h, 03fh, 000h, 000h, 03fh, 02ah, 02ah, 015h, 000h, 02ah
-    db  015h, 02ah, 02ah, 03fh, 000h, 02ah, 03fh, 02ah, 000h, 015h, 015h, 000h, 015h, 03fh, 000h, 03fh
-    db  015h, 000h, 03fh, 03fh, 02ah, 015h, 015h, 02ah, 015h, 03fh, 02ah, 03fh, 015h, 02ah, 03fh, 03fh
-    db  015h, 000h, 000h, 015h, 000h, 02ah, 015h, 02ah, 000h, 015h, 02ah, 02ah, 03fh, 000h, 000h, 03fh
-    db  000h, 02ah, 03fh, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 000h, 015h, 015h, 000h, 03fh, 015h, 02ah
-    db  015h, 015h, 02ah, 03fh, 03fh, 000h, 015h, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 03fh, 02ah, 03fh
-    db  015h, 015h, 000h, 015h, 015h, 02ah, 015h, 03fh, 000h, 015h, 03fh, 02ah, 03fh, 015h, 000h, 03fh
-    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
-    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
-_palette3:                                   ; 0xc5083 LB 0x300
-    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
-    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
-    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
-    db  000h, 000h, 000h, 005h, 005h, 005h, 008h, 008h, 008h, 00bh, 00bh, 00bh, 00eh, 00eh, 00eh, 011h
-    db  011h, 011h, 014h, 014h, 014h, 018h, 018h, 018h, 01ch, 01ch, 01ch, 020h, 020h, 020h, 024h, 024h
-    db  024h, 028h, 028h, 028h, 02dh, 02dh, 02dh, 032h, 032h, 032h, 038h, 038h, 038h, 03fh, 03fh, 03fh
-    db  000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 03fh, 03fh
-    db  000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh
-    db  000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h
-    db  000h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h
-    db  02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh
-    db  03fh, 037h, 01fh, 03fh, 03fh, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h
-    db  03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h
-    db  03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh, 01fh, 01fh, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh
-    db  02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh
-    db  02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03fh, 03fh
-    db  02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h
-    db  02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh
-    db  02dh, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh
-    db  03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h
-    db  01ch, 015h, 000h, 01ch, 01ch, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h
-    db  01ch, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h
-    db  01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch, 000h, 000h, 01ch, 000h, 000h, 01ch, 007h, 000h, 01ch
-    db  00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch
-    db  00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 01ch, 01ch
-    db  00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h
-    db  00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh
-    db  00eh, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh
-    db  018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h
-    db  01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h
-    db  01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah
-    db  01ch, 014h, 018h, 01ch, 014h, 016h, 01ch, 014h, 014h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch
-    db  018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h, 01ch
-    db  000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h, 010h, 010h
-    db  000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h
-    db  000h, 010h, 00ch, 000h, 010h, 010h, 000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h
-    db  000h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h
-    db  00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h
-    db  010h, 00eh, 008h, 010h, 010h, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah
-    db  010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh
-    db  010h, 008h, 00ch, 010h, 008h, 00ah, 010h, 008h, 008h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h
-    db  00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah, 010h
-    db  00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 010h, 010h
-    db  00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh
-    db  00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh
-    db  00bh, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh
-    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_static_functionality:                       ; 0xc5383 LB 0x10
-    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
-_dcc_table:                                  ; 0xc5393 LB 0x24
-    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h
-_secondary_save_area:                        ; 0xc53b7 LB 0x1a
-    db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
-    db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_vgafont8:                                   ; 0xc53ed LB 0x800
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
-    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
-    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
-    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
-    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
-    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
-    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
-    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
-    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
-    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
-    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
-    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
-    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
-    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
-    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
-    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
-    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
-    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
-    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
-    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
-    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
-    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
-    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
-    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
-    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
-    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
-    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
-    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
-    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
-    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
-    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
-    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
-    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
-    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
-    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
-    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
-    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
-    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
-    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
-    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
-    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
-    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
-    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
-    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
-    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
-    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
-    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
-    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
-    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
-    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
-    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
-    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
-    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
-    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
-    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
-    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
-    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
-    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
-    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
-    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
-    db  078h, 0cch, 0c0h, 0cch, 078h, 018h, 00ch, 078h, 000h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
-    db  01ch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 07eh, 0c3h, 03ch, 006h, 03eh, 066h, 03fh, 000h
-    db  0cch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 0e0h, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h
-    db  030h, 030h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 000h, 000h, 078h, 0c0h, 0c0h, 078h, 00ch, 038h
-    db  07eh, 0c3h, 03ch, 066h, 07eh, 060h, 03ch, 000h, 0cch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
-    db  0e0h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 0cch, 000h, 070h, 030h, 030h, 030h, 078h, 000h
-    db  07ch, 0c6h, 038h, 018h, 018h, 018h, 03ch, 000h, 0e0h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
-    db  0c6h, 038h, 06ch, 0c6h, 0feh, 0c6h, 0c6h, 000h, 030h, 030h, 000h, 078h, 0cch, 0fch, 0cch, 000h
-    db  01ch, 000h, 0fch, 060h, 078h, 060h, 0fch, 000h, 000h, 000h, 07fh, 00ch, 07fh, 0cch, 07fh, 000h
-    db  03eh, 06ch, 0cch, 0feh, 0cch, 0cch, 0ceh, 000h, 078h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h
-    db  000h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 0e0h, 000h, 078h, 0cch, 0cch, 078h, 000h
-    db  078h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h, 000h, 0e0h, 000h, 0cch, 0cch, 0cch, 07eh, 000h
-    db  000h, 0cch, 000h, 0cch, 0cch, 07ch, 00ch, 0f8h, 0c3h, 018h, 03ch, 066h, 066h, 03ch, 018h, 000h
-    db  0cch, 000h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 018h, 018h, 07eh, 0c0h, 0c0h, 07eh, 018h, 018h
-    db  038h, 06ch, 064h, 0f0h, 060h, 0e6h, 0fch, 000h, 0cch, 0cch, 078h, 0fch, 030h, 0fch, 030h, 030h
-    db  0f8h, 0cch, 0cch, 0fah, 0c6h, 0cfh, 0c6h, 0c7h, 00eh, 01bh, 018h, 03ch, 018h, 018h, 0d8h, 070h
-    db  01ch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 038h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
-    db  000h, 01ch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 01ch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
-    db  000h, 0f8h, 000h, 0f8h, 0cch, 0cch, 0cch, 000h, 0fch, 000h, 0cch, 0ech, 0fch, 0dch, 0cch, 000h
-    db  03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h
-    db  030h, 000h, 030h, 060h, 0c0h, 0cch, 078h, 000h, 000h, 000h, 000h, 0fch, 0c0h, 0c0h, 000h, 000h
-    db  000h, 000h, 000h, 0fch, 00ch, 00ch, 000h, 000h, 0c3h, 0c6h, 0cch, 0deh, 033h, 066h, 0cch, 00fh
-    db  0c3h, 0c6h, 0cch, 0dbh, 037h, 06fh, 0cfh, 003h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 000h
-    db  000h, 033h, 066h, 0cch, 066h, 033h, 000h, 000h, 000h, 0cch, 066h, 033h, 066h, 0cch, 000h, 000h
-    db  022h, 088h, 022h, 088h, 022h, 088h, 022h, 088h, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
-    db  0dbh, 077h, 0dbh, 0eeh, 0dbh, 077h, 0dbh, 0eeh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h
-    db  036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h
-    db  000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h
-    db  036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h
-    db  018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h
-    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h
-    db  018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h
-    db  036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h
-    db  036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h
-    db  036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
-    db  036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
-    db  036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h
-    db  000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h
-    db  018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h
-    db  000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h
-    db  018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
-    db  000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
-    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 076h, 0dch, 0c8h, 0dch, 076h, 000h, 000h, 078h, 0cch, 0f8h, 0cch, 0f8h, 0c0h, 0c0h
-    db  000h, 0fch, 0cch, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
-    db  0fch, 0cch, 060h, 030h, 060h, 0cch, 0fch, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 070h, 000h
-    db  000h, 066h, 066h, 066h, 066h, 07ch, 060h, 0c0h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 000h
-    db  0fch, 030h, 078h, 0cch, 0cch, 078h, 030h, 0fch, 038h, 06ch, 0c6h, 0feh, 0c6h, 06ch, 038h, 000h
-    db  038h, 06ch, 0c6h, 0c6h, 06ch, 06ch, 0eeh, 000h, 01ch, 030h, 018h, 07ch, 0cch, 0cch, 078h, 000h
-    db  000h, 000h, 07eh, 0dbh, 0dbh, 07eh, 000h, 000h, 006h, 00ch, 07eh, 0dbh, 0dbh, 07eh, 060h, 0c0h
-    db  038h, 060h, 0c0h, 0f8h, 0c0h, 060h, 038h, 000h, 078h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 000h
-    db  000h, 0fch, 000h, 0fch, 000h, 0fch, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 0fch, 000h
-    db  060h, 030h, 018h, 030h, 060h, 000h, 0fch, 000h, 018h, 030h, 060h, 030h, 018h, 000h, 0fch, 000h
-    db  00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 070h
-    db  030h, 030h, 000h, 0fch, 000h, 030h, 030h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h
-    db  038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 0ech, 06ch, 03ch, 01ch
-    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_vgafont14:                                  ; 0xc5bed LB 0xe00
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
-    db  0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 0feh, 0feh
-    db  0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch
-    db  038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h
-    db  03ch, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh
-    db  0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 01eh, 00eh, 01ah, 032h
-    db  078h, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 066h, 066h, 03ch, 018h
-    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 070h, 0f0h
-    db  0e0h, 000h, 000h, 000h, 000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h
-    db  000h, 000h, 080h, 0c0h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h, 000h
-    db  002h, 006h, 00eh, 03eh, 0feh, 03eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch
-    db  07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h
-    db  066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh
-    db  01bh, 01bh, 01bh, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h
-    db  00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 000h
-    db  000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h
-    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 060h
-    db  0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h
-    db  0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 028h, 06ch, 0feh, 06ch, 028h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 03ch, 03ch, 03ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 066h, 066h, 066h
-    db  024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch
-    db  06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h
-    db  086h, 0c6h, 07ch, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 066h
-    db  0c6h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 076h, 000h
-    db  000h, 000h, 000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h, 000h
-    db  030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
-    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
-    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
-    db  018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h
-    db  006h, 00ch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 006h, 006h
-    db  03ch, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh
-    db  00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 0c6h
-    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 07ch, 000h
-    db  000h, 000h, 000h, 000h, 0feh, 0c6h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
-    db  07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h, 000h, 000h, 018h
-    db  018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
-    db  000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h
-    db  018h, 00ch, 006h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h
-    db  000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h, 000h
-    db  010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h, 0fch, 066h
-    db  066h, 066h, 07ch, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h
-    db  0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h
-    db  066h, 06ch, 0f8h, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 062h, 066h
-    db  0feh, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 0f0h, 000h
-    db  000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 066h, 03ah, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
-    db  03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 01eh, 00ch
-    db  00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 0e6h, 066h, 06ch, 06ch
-    db  078h, 06ch, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h
-    db  062h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 0c6h
-    db  0c6h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h
-    db  000h, 000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h
-    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h
-    db  07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h, 000h, 000h, 0fch, 066h
-    db  066h, 066h, 07ch, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 060h
-    db  038h, 00ch, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 07eh, 07eh, 05ah, 018h, 018h, 018h
-    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h
-    db  07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 010h, 000h
-    db  000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 07ch, 06ch, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 0c6h, 06ch, 038h, 038h, 038h, 06ch, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
-    db  066h, 066h, 066h, 066h, 03ch, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h
-    db  08ch, 018h, 030h, 060h, 0c2h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 03ch, 030h, 030h, 030h
-    db  030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch
-    db  00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch
-    db  03ch, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h
-    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0e0h, 060h
-    db  060h, 078h, 06ch, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
-    db  0c6h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch
-    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h
-    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 0f0h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
-    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 006h, 006h
-    db  000h, 00eh, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h, 000h, 000h, 0e0h, 060h, 060h, 066h
-    db  06ch, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ech, 0feh, 0d6h, 0d6h, 0d6h
-    db  0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 0dch, 076h, 066h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
-    db  0c6h, 070h, 01ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h
-    db  030h, 036h, 01ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch
-    db  076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 03ch, 018h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 06ch, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 0feh, 0cch, 018h, 030h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 00eh, 018h, 018h, 018h
-    db  070h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h
-    db  018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h
-    db  070h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h, 000h
-    db  0cch, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h
-    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 078h
-    db  00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 000h, 078h, 00ch, 07ch
-    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch
-    db  076h, 000h, 000h, 000h, 000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h
-    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
-    db  0cch, 0cch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h
-    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 000h, 038h
-    db  018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h
-    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h
-    db  03ch, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h
-    db  000h, 000h, 038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h, 000h, 000h
-    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0cch, 076h, 036h, 07eh, 0d8h, 0d8h, 06eh, 000h, 000h, 000h, 000h, 000h, 03eh, 06ch
-    db  0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 07ch
-    db  0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h, 07ch, 0c6h, 0c6h
-    db  0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h
-    db  07ch, 000h, 000h, 000h, 000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h
-    db  000h, 000h, 000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h, 000h, 0c6h
-    db  0c6h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h
-    db  0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 018h, 03ch, 066h, 060h
-    db  060h, 066h, 03ch, 018h, 018h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h
-    db  060h, 0e6h, 0fch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 03ch, 018h, 07eh, 018h, 07eh, 018h
-    db  018h, 000h, 000h, 000h, 000h, 0f8h, 0cch, 0cch, 0f8h, 0c4h, 0cch, 0deh, 0cch, 0cch, 0c6h, 000h
-    db  000h, 000h, 000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h
-    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch
-    db  018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h
-    db  000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h, 000h, 0cch
-    db  0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h
-    db  066h, 066h, 066h, 000h, 000h, 000h, 076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h
-    db  0c6h, 000h, 000h, 000h, 000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0feh, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h
-    db  030h, 060h, 0dch, 086h, 00ch, 018h, 03eh, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h, 030h, 066h
-    db  0ceh, 09eh, 03eh, 006h, 006h, 000h, 000h, 000h, 018h, 018h, 000h, 018h, 018h, 03ch, 03ch, 03ch
-    db  018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h
-    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 055h, 0aah
-    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 0ddh, 077h, 0ddh, 077h
-    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h
-    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 036h, 036h
-    db  036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0feh
-    db  006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h
-    db  018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
-    db  000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h
-    db  000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h
-    db  018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h
-    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
-    db  0f0h, 0f0h, 0f0h, 0f0h, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
-    db  00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0fch, 0c6h, 0c6h, 0fch, 0c0h, 0c0h, 040h, 000h, 000h, 000h, 0feh, 0c6h
-    db  0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 06ch
-    db  06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h
-    db  060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h
-    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h
-    db  000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h, 000h
-    db  038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch
-    db  0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h, 000h, 01eh, 030h, 018h, 00ch
-    db  03eh, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh
-    db  07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h
-    db  0c0h, 000h, 000h, 000h, 000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 030h, 01ch, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 030h, 018h
-    db  00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h, 060h
-    db  030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h
-    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h
-    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 00ch
-    db  00ch, 0ech, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_vgafont16:                                  ; 0xc69ed LB 0x1000
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07eh, 0ffh, 0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 0ffh, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 06ch, 0feh, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
-    db  000h, 000h, 000h, 000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
-    db  000h, 000h, 01eh, 00eh, 01ah, 032h, 078h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 030h, 070h, 0f0h, 0e0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 080h, 0c0h, 0e0h, 0f0h, 0f8h, 0feh, 0f8h, 0f0h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h
-    db  000h, 002h, 006h, 00eh, 01eh, 03eh, 0feh, 03eh, 01eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 066h, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 01bh, 01bh, 000h, 000h, 000h, 000h
-    db  000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 03ch, 03ch, 03ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 066h, 066h, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 000h
-    db  018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h, 006h, 086h, 0c6h, 07ch, 018h, 018h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 060h, 0c6h, 086h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 030h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 0c6h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 006h, 006h, 03ch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0feh, 0c6h, 006h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 006h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 066h, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h, 066h, 066h, 06ch, 0f8h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 0c6h, 066h, 03ah, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 01eh, 00ch, 00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0e6h, 066h, 066h, 06ch, 078h, 078h, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h
-    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 06ch, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 07ch, 0c6h, 0c6h, 060h, 038h, 00ch, 006h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 03ch, 000h, 000h, 000h, 000h
-    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h
-    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0e0h, 060h, 060h, 078h, 06ch, 066h, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c0h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
-    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 006h, 006h, 000h, 00eh, 006h, 006h, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h
-    db  000h, 000h, 0e0h, 060h, 060h, 066h, 06ch, 078h, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0dch, 076h, 066h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h, 030h, 030h, 036h, 01ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0feh, 0cch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 00eh, 018h, 018h, 018h, 070h, 018h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h, 018h, 070h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h
-    db  000h, 000h, 0cch, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 00ch, 018h, 030h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 010h, 038h, 06ch, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0cch, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 03ch, 066h, 060h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h, 000h
-    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 066h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 0c6h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 060h, 066h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 03eh, 06ch, 0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h
-    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c6h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h
-    db  000h, 0c6h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0e6h, 0fch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h, 000h
-    db  000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h, 000h
-    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 00ch, 018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 018h, 030h, 060h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 018h, 030h, 060h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
-    db  076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c0h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 006h, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh, 000h, 000h
-    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h, 006h, 000h, 000h
-    db  000h, 000h, 018h, 018h, 000h, 018h, 018h, 018h, 03ch, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h
-    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
-    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  000h, 000h, 000h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
-    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
-    db  0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
-    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
-    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 078h, 0cch, 0cch, 0cch, 0d8h, 0cch, 0c6h, 0c6h, 0c6h, 0cch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 0feh, 0c6h, 0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 01eh, 030h, 018h, 00ch, 03eh, 066h, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh, 0dbh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h, 0c0h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 060h, 030h, 01ch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h
-    db  000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
-    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 00fh, 00ch, 00ch, 00ch, 00ch, 00ch, 0ech, 06ch, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h
-    db  000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_vgafont14alt:                               ; 0xc79ed LB 0x12d
-    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
-    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
-    db  000h, 000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 02dh, 000h, 000h
-    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 000h, 000h, 0c3h
-    db  0e7h, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh
-    db  099h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h
-    db  0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h
-    db  0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h
-    db  03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
-    db  018h, 018h, 03ch, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 061h
-    db  0c3h, 0ffh, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh
-    db  0dbh, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
-    db  000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h
-    db  000h, 000h, 091h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h
-    db  000h, 09bh, 000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h
-    db  09dh, 000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 000h, 000h, 000h, 09eh
-    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 0f3h, 000h, 000h, 000h, 0f1h, 000h
-    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
-    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
-_vgafont16alt:                               ; 0xc7b1a LB 0x144
-    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
-    db  000h, 000h, 04dh, 000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h
-    db  000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch
-    db  000h, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch
-    db  018h, 000h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh
-    db  066h, 066h, 000h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch
-    db  066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
-    db  018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h
-    db  030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h
-    db  0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h
-    db  0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h
-    db  000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h, 078h, 000h, 000h, 000h
-    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h, 091h, 000h, 000h
-    db  000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h, 09bh, 000h
-    db  018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 09dh
-    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
-    db  09eh, 000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h
-    db  000h, 0abh, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh
-    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
-    db  006h, 000h, 000h, 000h
-_vbebios_copyright:                          ; 0xc7c5e LB 0x15
-    db  'VirtualBox VESA BIOS', 000h
-_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
-    db  'Oracle Corporation', 000h
-_vbebios_product_name:                       ; 0xc7c86 LB 0x21
-    db  'Oracle VM VirtualBox VBE Adapter', 000h
-_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.0.51', 000h
-_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
-    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
-_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
-    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
-
-  ; Padding 0x1 bytes at 0xc7d1f
-    db  001h
-
-section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
-
-section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
-
-  ; Padding 0x2e0 bytes at 0xc7d20
-    db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh, 065h
-    db  02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh, 075h
-    db  074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h, 065h
-    db  06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
-    db  061h, 042h, 069h, 06fh, 073h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h, 06fh
-    db  073h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0b8h
Index: unk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum	(revision 60421)
+++ 	(revision )
@@ -1,1 +1,0 @@
-1b721dfe35f86f35cbc2542f2418ae5c *VBoxVgaBios.rom
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm	(revision 60422)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm	(revision 60422)
@@ -0,0 +1,8250 @@
+; $Id$ 
+;; @file
+; Auto Generated source file. Do not edit.
+;
+
+;
+; Source file: vgarom.asm
+;
+;  ============================================================================================
+;  
+;   Copyright (C) 2001,2002 the LGPL VGABios developers Team
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  
+;  ============================================================================================
+;  
+;   This VGA Bios is specific to the plex86/bochs Emulated VGA card.
+;   You can NOT drive any physical vga card with it.
+;  
+;  ============================================================================================
+;  
+
+;
+; Source file: vberom.asm
+;
+;  ============================================================================================
+;  
+;   Copyright (C) 2002 Jeroen Janssen
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  
+;  ============================================================================================
+;  
+;   This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
+;   You can NOT drive any physical vga card with it.
+;  
+;  ============================================================================================
+;  
+;   This VBE Bios is based on information taken from :
+;    - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
+;  
+;  ============================================================================================
+
+;
+; Source file: vgabios.c
+;
+;  // ============================================================================================
+;  
+;  vgabios.c
+;  
+;  // ============================================================================================
+;  //
+;  //  Copyright (C) 2001,2002 the LGPL VGABios developers Team
+;  //
+;  //  This library is free software; you can redistribute it and/or
+;  //  modify it under the terms of the GNU Lesser General Public
+;  //  License as published by the Free Software Foundation; either
+;  //  version 2 of the License, or (at your option) any later version.
+;  //
+;  //  This library is distributed in the hope that it will be useful,
+;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;  //  Lesser General Public License for more details.
+;  //
+;  //  You should have received a copy of the GNU Lesser General Public
+;  //  License along with this library; if not, write to the Free Software
+;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VGA Bios is specific to the plex86/bochs Emulated VGA card.
+;  //  You can NOT drive any physical vga card with it.
+;  //
+;  // ============================================================================================
+;  //
+;  //  This file contains code ripped from :
+;  //   - rombios.c of plex86
+;  //
+;  //  This VGA Bios contains fonts from :
+;  //   - fntcol16.zip (c) by Joseph Gil avalable at :
+;  //      ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
+;  //     These fonts are public domain
+;  //
+;  //  This VGA Bios is based on information taken from :
+;  //   - Kevin Lawton's vga card emulation for bochs/plex86
+;  //   - Ralf Brown's interrupts list available at http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
+;  //   - Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
+;  //   - Michael Abrash's Graphics Programming Black Book
+;  //   - Francois Gervais' book "programmation des cartes graphiques cga-ega-vga" edited by sybex
+;  //   - DOSEMU 1.0.1 source code for several tables values and formulas
+;  //
+;  // Thanks for patches, comments and ideas to :
+;  //   - techt@pikeonline.net
+;  //
+;  // ============================================================================================
+
+;
+; Source file: vbe.c
+;
+;  // ============================================================================================
+;  //
+;  //  Copyright (C) 2002 Jeroen Janssen
+;  //
+;  //  This library is free software; you can redistribute it and/or
+;  //  modify it under the terms of the GNU Lesser General Public
+;  //  License as published by the Free Software Foundation; either
+;  //  version 2 of the License, or (at your option) any later version.
+;  //
+;  //  This library is distributed in the hope that it will be useful,
+;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;  //  Lesser General Public License for more details.
+;  //
+;  //  You should have received a copy of the GNU Lesser General Public
+;  //  License along with this library; if not, write to the Free Software
+;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
+;  //  You can NOT drive any physical vga card with it.
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VBE Bios is based on information taken from :
+;  //   - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
+;  //
+;  // ============================================================================================
+
+;
+; Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+; other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+; the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+; a choice of LGPL license versions is made available with the language indicating
+; that LGPLv2 or any later version may be used, or where a choice of which version
+; of the LGPL is applied is otherwise unspecified.
+;
+
+
+
+
+
+section VGAROM progbits vstart=0x0 align=1 ; size=0x985 class=CODE group=AUTO
+    db  055h, 0aah, 040h, 0e9h, 063h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
+    db  04dh, 000h
+vgabios_int10_handler:                       ; 0xc0022 LB 0x54e
+    pushfw                                    ; 9c
+    cmp ah, 00fh                              ; 80 fc 0f
+    jne short 0002eh                          ; 75 06
+    call 00183h                               ; e8 58 01
+    jmp near 000f3h                           ; e9 c5 00
+    cmp ah, 01ah                              ; 80 fc 1a
+    jne short 00039h                          ; 75 06
+    call 00538h                               ; e8 02 05
+    jmp near 000f3h                           ; e9 ba 00
+    cmp ah, 00bh                              ; 80 fc 0b
+    jne short 00044h                          ; 75 06
+    call 000f5h                               ; e8 b4 00
+    jmp near 000f3h                           ; e9 af 00
+    cmp ax, 01103h                            ; 3d 03 11
+    jne short 0004fh                          ; 75 06
+    call 0042fh                               ; e8 e3 03
+    jmp near 000f3h                           ; e9 a4 00
+    cmp ah, 012h                              ; 80 fc 12
+    jne short 00092h                          ; 75 3e
+    cmp bl, 010h                              ; 80 fb 10
+    jne short 0005fh                          ; 75 06
+    call 0043ch                               ; e8 e0 03
+    jmp near 000f3h                           ; e9 94 00
+    cmp bl, 030h                              ; 80 fb 30
+    jne short 0006ah                          ; 75 06
+    call 0045fh                               ; e8 f8 03
+    jmp near 000f3h                           ; e9 89 00
+    cmp bl, 031h                              ; 80 fb 31
+    jne short 00074h                          ; 75 05
+    call 004b2h                               ; e8 40 04
+    jmp short 000f3h                          ; eb 7f
+    cmp bl, 032h                              ; 80 fb 32
+    jne short 0007eh                          ; 75 05
+    call 004d4h                               ; e8 58 04
+    jmp short 000f3h                          ; eb 75
+    cmp bl, 033h                              ; 80 fb 33
+    jne short 00088h                          ; 75 05
+    call 004f2h                               ; e8 6c 04
+    jmp short 000f3h                          ; eb 6b
+    cmp bl, 034h                              ; 80 fb 34
+    jne short 000e5h                          ; 75 58
+    call 00516h                               ; e8 86 04
+    jmp short 000f3h                          ; eb 61
+    cmp ax, 0101bh                            ; 3d 1b 10
+    je short 000e5h                           ; 74 4e
+    cmp ah, 010h                              ; 80 fc 10
+    jne short 000a1h                          ; 75 05
+    call 001aah                               ; e8 0b 01
+    jmp short 000f3h                          ; eb 52
+    cmp ah, 04fh                              ; 80 fc 4f
+    jne short 000e5h                          ; 75 3f
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 000afh                          ; 75 05
+    call 0080dh                               ; e8 60 07
+    jmp short 000f3h                          ; eb 44
+    cmp AL, strict byte 005h                  ; 3c 05
+    jne short 000b8h                          ; 75 05
+    call 00832h                               ; e8 7c 07
+    jmp short 000f3h                          ; eb 3b
+    cmp AL, strict byte 006h                  ; 3c 06
+    jne short 000c1h                          ; 75 05
+    call 0085fh                               ; e8 a0 07
+    jmp short 000f3h                          ; eb 32
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 000cah                          ; 75 05
+    call 008ach                               ; e8 e4 07
+    jmp short 000f3h                          ; eb 29
+    cmp AL, strict byte 008h                  ; 3c 08
+    jne short 000d3h                          ; 75 05
+    call 008e0h                               ; e8 0f 08
+    jmp short 000f3h                          ; eb 20
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 000dch                          ; 75 05
+    call 00917h                               ; e8 3d 08
+    jmp short 000f3h                          ; eb 17
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    jne short 000e5h                          ; 75 05
+    call 0096eh                               ; e8 8b 08
+    jmp short 000f3h                          ; eb 0e
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    mov bx, 0c000h                            ; bb 00 c0
+    mov ds, bx                                ; 8e db
+    call 0322eh                               ; e8 3e 31
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popfw                                     ; 9d
+    iret                                      ; cf
+    cmp bh, 000h                              ; 80 ff 00
+    je short 00100h                           ; 74 06
+    cmp bh, 001h                              ; 80 ff 01
+    je short 00151h                           ; 74 52
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push DS                                   ; 1e
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ds, dx                                ; 8e da
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
+    jbe short 00144h                          ; 76 2f
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 000h                  ; b0 00
+    out DX, AL                                ; ee
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    and AL, strict byte 00fh                  ; 24 0f
+    test AL, strict byte 008h                 ; a8 08
+    je short 00125h                           ; 74 02
+    add AL, strict byte 008h                  ; 04 08
+    out DX, AL                                ; ee
+    mov CL, strict byte 001h                  ; b1 01
+    and bl, 010h                              ; 80 e3 10
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0efh                  ; 24 ef
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0012bh                          ; 75 e7
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop DS                                    ; 1f
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov CL, strict byte 001h                  ; b1 01
+    and bl, 001h                              ; 80 e3 01
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0feh                  ; 24 fe
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0015eh                          ; 75 e7
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    push bx                                   ; 53
+    mov bx, strict word 00062h                ; bb 62 00
+    mov al, byte [bx]                         ; 8a 07
+    pop bx                                    ; 5b
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    push bx                                   ; 53
+    mov bx, 00087h                            ; bb 87 00
+    mov ah, byte [bx]                         ; 8a 27
+    and ah, 080h                              ; 80 e4 80
+    mov bx, strict word 00049h                ; bb 49 00
+    mov al, byte [bx]                         ; 8a 07
+    db  00ah, 0c4h
+    ; or al, ah                                 ; 0a c4
+    mov bx, strict word 0004ah                ; bb 4a 00
+    mov ah, byte [bx]                         ; 8a 27
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    cmp AL, strict byte 000h                  ; 3c 00
+    jne short 001b0h                          ; 75 02
+    jmp short 00211h                          ; eb 61
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 001b6h                          ; 75 02
+    jmp short 0022fh                          ; eb 79
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 001bch                          ; 75 02
+    jmp short 00237h                          ; eb 7b
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 001c3h                          ; 75 03
+    jmp near 00268h                           ; e9 a5 00
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 001cah                          ; 75 03
+    jmp near 00292h                           ; e9 c8 00
+    cmp AL, strict byte 008h                  ; 3c 08
+    jne short 001d1h                          ; 75 03
+    jmp near 002bah                           ; e9 e9 00
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 001d8h                          ; 75 03
+    jmp near 002c8h                           ; e9 f0 00
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 001dfh                          ; 75 03
+    jmp near 0030dh                           ; e9 2e 01
+    cmp AL, strict byte 012h                  ; 3c 12
+    jne short 001e6h                          ; 75 03
+    jmp near 00326h                           ; e9 40 01
+    cmp AL, strict byte 013h                  ; 3c 13
+    jne short 001edh                          ; 75 03
+    jmp near 0034eh                           ; e9 61 01
+    cmp AL, strict byte 015h                  ; 3c 15
+    jne short 001f4h                          ; 75 03
+    jmp near 00395h                           ; e9 a1 01
+    cmp AL, strict byte 017h                  ; 3c 17
+    jne short 001fbh                          ; 75 03
+    jmp near 003b0h                           ; e9 b5 01
+    cmp AL, strict byte 018h                  ; 3c 18
+    jne short 00202h                          ; 75 03
+    jmp near 003d8h                           ; e9 d6 01
+    cmp AL, strict byte 019h                  ; 3c 19
+    jne short 00209h                          ; 75 03
+    jmp near 003e3h                           ; e9 da 01
+    cmp AL, strict byte 01ah                  ; 3c 1a
+    jne short 00210h                          ; 75 03
+    jmp near 003eeh                           ; e9 de 01
+    retn                                      ; c3
+    cmp bl, 014h                              ; 80 fb 14
+    jnbe short 0022eh                         ; 77 18
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push bx                                   ; 53
+    mov BL, strict byte 011h                  ; b3 11
+    call 00211h                               ; e8 dc ff
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov CL, strict byte 000h                  ; b1 00
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 010h                              ; 80 f9 10
+    jne short 00246h                          ; 75 f1
+    mov AL, strict byte 011h                  ; b0 11
+    out DX, AL                                ; ee
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0f7h                  ; 24 f7
+    and bl, 001h                              ; 80 e3 01
+    sal bl, 003h                              ; c0 e3 03
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    cmp bl, 014h                              ; 80 fb 14
+    jnbe short 002b9h                         ; 77 22
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    mov BL, strict byte 011h                  ; b3 11
+    call 00292h                               ; e8 d1 ff
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    pop bx                                    ; 5b
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov CL, strict byte 000h                  ; b1 00
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 010h                              ; 80 f9 10
+    jne short 002d0h                          ; 75 e7
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 011h                  ; b0 11
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c8h                            ; ba c8 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    mov dx, 003c9h                            ; ba c9 03
+    pop ax                                    ; 58
+    push ax                                   ; 50
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    out DX, AL                                ; ee
+    db  08ah, 0c5h
+    ; mov al, ch                                ; 8a c5
+    out DX, AL                                ; ee
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003c8h                            ; ba c8 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003c9h                            ; ba c9 03
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    jne short 00337h                          ; 75 ee
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and bl, 001h                              ; 80 e3 01
+    jne short 00371h                          ; 75 0d
+    and AL, strict byte 07fh                  ; 24 7f
+    sal bh, 007h                              ; c0 e7 07
+    db  00ah, 0c7h
+    ; or al, bh                                 ; 0a c7
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    jmp short 0038ah                          ; eb 19
+    push ax                                   ; 50
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    pop ax                                    ; 58
+    and AL, strict byte 080h                  ; 24 80
+    jne short 00384h                          ; 75 03
+    sal bh, 002h                              ; c0 e7 02
+    and bh, 00fh                              ; 80 e7 0f
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c7h                            ; ba c7 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop ax                                    ; 58
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    xchg al, ah                               ; 86 e0
+    push ax                                   ; 50
+    in AL, DX                                 ; ec
+    db  08ah, 0e8h
+    ; mov ch, al                                ; 8a e8
+    in AL, DX                                 ; ec
+    db  08ah, 0c8h
+    ; mov cl, al                                ; 8a c8
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003c7h                            ; ba c7 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    jne short 003c1h                          ; 75 ee
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c6h                            ; ba c6 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c6h                            ; ba c6 03
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    shr bl, 007h                              ; c0 eb 07
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    and bh, 00fh                              ; 80 e7 0f
+    test bl, 001h                             ; f6 c3 01
+    jne short 0041eh                          ; 75 03
+    shr bh, 002h                              ; c0 ef 02
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c4h                            ; ba c4 03
+    db  08ah, 0e3h
+    ; mov ah, bl                                ; 8a e3
+    mov AL, strict byte 003h                  ; b0 03
+    out DX, ax                                ; ef
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    db  032h, 0edh
+    ; xor ch, ch                                ; 32 ed
+    mov bx, 00088h                            ; bb 88 00
+    mov cl, byte [bx]                         ; 8a 0f
+    and cl, 00fh                              ; 80 e1 0f
+    mov bx, strict word 00063h                ; bb 63 00
+    mov ax, word [bx]                         ; 8b 07
+    mov bx, strict word 00003h                ; bb 03 00
+    cmp ax, 003b4h                            ; 3d b4 03
+    jne short 0045ch                          ; 75 02
+    mov BH, strict byte 001h                  ; b7 01
+    pop ax                                    ; 58
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    mov bx, 00088h                            ; bb 88 00
+    mov ah, byte [bx]                         ; 8a 27
+    cmp dl, 001h                              ; 80 fa 01
+    je short 0048dh                           ; 74 15
+    jc short 00497h                           ; 72 1d
+    cmp dl, 002h                              ; 80 fa 02
+    je short 00481h                           ; 74 02
+    jmp short 004abh                          ; eb 2a
+    and AL, strict byte 07fh                  ; 24 7f
+    or AL, strict byte 010h                   ; 0c 10
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 009h                               ; 80 cc 09
+    jne short 004a1h                          ; 75 14
+    and AL, strict byte 06fh                  ; 24 6f
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 009h                               ; 80 cc 09
+    jne short 004a1h                          ; 75 0a
+    and AL, strict byte 0efh                  ; 24 ef
+    or AL, strict byte 080h                   ; 0c 80
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 008h                               ; 80 cc 08
+    mov bx, 00089h                            ; bb 89 00
+    mov byte [bx], al                         ; 88 07
+    mov bx, 00088h                            ; bb 88 00
+    mov byte [bx], ah                         ; 88 27
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    sal dl, 003h                              ; c0 e2 03
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0f7h                  ; 24 f7
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    and bl, 001h                              ; 80 e3 01
+    xor bl, 001h                              ; 80 f3 01
+    sal bl, 1                                 ; d0 e3
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0fdh                  ; 24 fd
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    xor dl, 001h                              ; 80 f2 01
+    sal dl, 1                                 ; d0 e2
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0fdh                  ; 24 fd
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    xor dl, 001h                              ; 80 f2 01
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0feh                  ; 24 fe
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 00541h                           ; 74 05
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 00556h                           ; 74 16
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 0008ah                            ; bb 8a 00
+    mov al, byte [bx]                         ; 8a 07
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    pop ax                                    ; 58
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    push bx                                   ; 53
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    mov bx, 0008ah                            ; bb 8a 00
+    mov byte [bx], al                         ; 88 07
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    times 0x5 db 0
+do_out_dx_ax:                                ; 0xc0570 LB 0x7
+    xchg ah, al                               ; 86 c4
+    out DX, AL                                ; ee
+    xchg ah, al                               ; 86 c4
+    out DX, AL                                ; ee
+    retn                                      ; c3
+do_in_ax_dx:                                 ; 0xc0577 LB 0x40
+    in AL, DX                                 ; ec
+    xchg ah, al                               ; 86 c4
+    in AL, DX                                 ; ec
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    je short 00581h                           ; 74 fb
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    jne short 0058eh                          ; 75 fb
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 00570h                               ; e8 d0 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 d1 ff
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 005b5h                          ; 76 0b
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    shr ah, 003h                              ; c0 ec 03
+    test AL, strict byte 007h                 ; a8 07
+    je short 005b5h                           ; 74 02
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_dispi_get_max_bpp:                          ; 0xc05b7 LB 0x26
+    push dx                                   ; 52
+    push bx                                   ; 53
+    call 005f1h                               ; e8 35 00
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    or ax, strict byte 00002h                 ; 83 c8 02
+    call 005ddh                               ; e8 19 00
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 00570h                               ; e8 a3 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 a4 ff
+    push ax                                   ; 50
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    call 005ddh                               ; e8 04 00
+    pop ax                                    ; 58
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    retn                                      ; c3
+dispi_set_enable_:                           ; 0xc05dd LB 0x26
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00004h                ; b8 04 00
+    call 00570h                               ; e8 88 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 81 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00004h                ; b8 04 00
+    call 00570h                               ; e8 75 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 76 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+dispi_set_bank_:                             ; 0xc0603 LB 0x26
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00005h                ; b8 05 00
+    call 00570h                               ; e8 62 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 5b ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00005h                ; b8 05 00
+    call 00570h                               ; e8 4f ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 50 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_dispi_set_bank_farcall:                     ; 0xc0629 LB 0xe4
+    cmp bx, 00100h                            ; 81 fb 00 01
+    je short 00653h                           ; 74 24
+    db  00bh, 0dbh
+    ; or bx, bx                                 ; 0b db
+    jne short 00665h                          ; 75 32
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 30 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 29 ff
+    call 00577h                               ; e8 2d ff
+    pop dx                                    ; 5a
+    db  03bh, 0d0h
+    ; cmp dx, ax                                ; 3b d0
+    jne short 00665h                          ; 75 16
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retf                                      ; cb
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 14 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 15 ff
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    retf                                      ; cb
+    mov ax, 0014fh                            ; b8 4f 01
+    retf                                      ; cb
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00008h                ; b8 08 00
+    call 00570h                               ; e8 fc fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 f5 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00008h                ; b8 08 00
+    call 00570h                               ; e8 e9 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 ea fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00009h                ; b8 09 00
+    call 00570h                               ; e8 d6 fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 cf fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00009h                ; b8 09 00
+    call 00570h                               ; e8 c3 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 c4 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    call 00596h                               ; e8 d9 fe
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnbe short 006c3h                         ; 77 02
+    shr bx, 1                                 ; d1 eb
+    shr bx, 003h                              ; c1 eb 03
+    mov dx, 003d4h                            ; ba d4 03
+    db  08ah, 0e3h
+    ; mov ah, bl                                ; 8a e3
+    mov AL, strict byte 013h                  ; b0 13
+    out DX, ax                                ; ef
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    call 006b5h                               ; e8 e0 ff
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00570h                               ; e8 90 fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 89 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00570h                               ; e8 7d fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 7e fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00007h                ; b8 07 00
+    call 00570h                               ; e8 6b fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 6c fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_vga_compat_setup:                           ; 0xc070d LB 0xed
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00001h                ; b8 01 00
+    call 00570h                               ; e8 58 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 59 fe
+    push ax                                   ; 50
+    mov dx, 003d4h                            ; ba d4 03
+    mov ax, strict word 00011h                ; b8 11 00
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    push ax                                   ; 50
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov AL, strict byte 001h                  ; b0 01
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    call 006b5h                               ; e8 80 ff
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00002h                ; b8 02 00
+    call 00570h                               ; e8 32 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 33 fe
+    dec ax                                    ; 48
+    push ax                                   ; 50
+    mov dx, 003d4h                            ; ba d4 03
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov AL, strict byte 012h                  ; b0 12
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    mov AL, strict byte 007h                  ; b0 07
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    and AL, strict byte 0bdh                  ; 24 bd
+    test ah, 001h                             ; f6 c4 01
+    je short 0075dh                           ; 74 02
+    or AL, strict byte 002h                   ; 0c 02
+    test ah, 002h                             ; f6 c4 02
+    je short 00764h                           ; 74 02
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    mov dx, 003d4h                            ; ba d4 03
+    mov ax, strict word 00009h                ; b8 09 00
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 060h                  ; 24 60
+    out DX, AL                                ; ee
+    mov dx, 003d4h                            ; ba d4 03
+    mov AL, strict byte 017h                  ; b0 17
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 003h                   ; 0c 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 001h                   ; 0c 01
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003ceh                            ; ba ce 03
+    mov ax, 00506h                            ; b8 06 05
+    out DX, ax                                ; ef
+    mov dx, 003c4h                            ; ba c4 03
+    mov ax, 00f02h                            ; b8 02 0f
+    out DX, ax                                ; ef
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 00570h                               ; e8 c2 fd
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 c3 fd
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 007f8h                           ; 72 40
+    mov dx, 003d4h                            ; ba d4 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 040h                   ; 0c 40
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003c4h                            ; ba c4 03
+    mov AL, strict byte 004h                  ; b0 04
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 008h                   ; 0c 08
+    out DX, AL                                ; ee
+    mov dx, 003ceh                            ; ba ce 03
+    mov AL, strict byte 005h                  ; b0 05
+    out DX, AL                                ; ee
+    mov dx, 003cfh                            ; ba cf 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 09fh                  ; 24 9f
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+_vbe_has_vbe_display:                        ; 0xc07fa LB 0x13
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 000b9h                            ; bb b9 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 001h                  ; 24 01
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+vbe_biosfn_return_current_mode:              ; 0xc080d LB 0x25
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    call 005f1h                               ; e8 db fd
+    and ax, strict byte 00001h                ; 83 e0 01
+    je short 00824h                           ; 74 09
+    mov bx, 000bah                            ; bb ba 00
+    mov ax, word [bx]                         ; 8b 07
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    jne short 0082dh                          ; 75 09
+    mov bx, strict word 00049h                ; bb 49 00
+    mov al, byte [bx]                         ; 8a 07
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    mov ax, strict word 0004fh                ; b8 4f 00
+    pop DS                                    ; 1f
+    retn                                      ; c3
+vbe_biosfn_display_window_control:           ; 0xc0832 LB 0x2d
+    cmp bl, 000h                              ; 80 fb 00
+    jne short 0085bh                          ; 75 24
+    cmp bh, 001h                              ; 80 ff 01
+    je short 00852h                           ; 74 16
+    jc short 00842h                           ; 72 04
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    call 00603h                               ; e8 bc fd
+    call 00617h                               ; e8 cd fd
+    db  03bh, 0c2h
+    ; cmp ax, dx                                ; 3b c2
+    jne short 0085bh                          ; 75 0d
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    call 00617h                               ; e8 c2 fd
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+vbe_biosfn_set_get_logical_scan_line_length: ; 0xc085f LB 0x4d
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    cmp bl, 001h                              ; 80 fb 01
+    je short 0088ah                           ; 74 24
+    cmp bl, 002h                              ; 80 fb 02
+    je short 00871h                           ; 74 06
+    jc short 00887h                           ; 72 1a
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    push ax                                   ; 50
+    call 00596h                               ; e8 21 fd
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    db  08ah, 0dch
+    ; mov bl, ah                                ; 8a dc
+    db  00ah, 0dbh
+    ; or bl, bl                                 ; 0a db
+    jne short 00882h                          ; 75 05
+    sal ax, 003h                              ; c1 e0 03
+    mov BL, strict byte 001h                  ; b3 01
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    pop ax                                    ; 58
+    div bx                                    ; f7 f3
+    call 006d2h                               ; e8 48 fe
+    call 00596h                               ; e8 09 fd
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    db  08ah, 0dch
+    ; mov bl, ah                                ; 8a dc
+    call 006e9h                               ; e8 55 fe
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    db  00ah, 0dbh
+    ; or bl, bl                                 ; 0a db
+    jne short 0089fh                          ; 75 05
+    shr ax, 003h                              ; c1 e8 03
+    mov BL, strict byte 001h                  ; b3 01
+    mul bx                                    ; f7 e3
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    call 006fbh                               ; e8 55 fe
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+vbe_biosfn_set_get_display_start:            ; 0xc08ac LB 0x34
+    cmp bl, 080h                              ; 80 fb 80
+    je short 008bch                           ; 74 0b
+    cmp bl, 001h                              ; 80 fb 01
+    je short 008d0h                           ; 74 1a
+    jc short 008c2h                           ; 72 0a
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    call 00589h                               ; e8 ca fc
+    call 0057ch                               ; e8 ba fc
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    call 00669h                               ; e8 a2 fd
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    call 0068fh                               ; e8 c3 fd
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    call 0067dh                               ; e8 aa fd
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    call 006a3h                               ; e8 cb fd
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+vbe_biosfn_set_get_dac_palette_format:       ; 0xc08e0 LB 0x37
+    cmp bl, 001h                              ; 80 fb 01
+    je short 00903h                           ; 74 1e
+    jc short 008ebh                           ; 72 04
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    call 005f1h                               ; e8 03 fd
+    cmp bh, 006h                              ; 80 ff 06
+    je short 008fdh                           ; 74 0a
+    cmp bh, 008h                              ; 80 ff 08
+    jne short 00913h                          ; 75 1b
+    or ax, strict byte 00020h                 ; 83 c8 20
+    jne short 00900h                          ; 75 03
+    and ax, strict byte 0ffdfh                ; 83 e0 df
+    call 005ddh                               ; e8 da fc
+    mov BH, strict byte 006h                  ; b7 06
+    call 005f1h                               ; e8 e9 fc
+    and ax, strict byte 00020h                ; 83 e0 20
+    je short 0090fh                           ; 74 02
+    mov BH, strict byte 008h                  ; b7 08
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+vbe_biosfn_set_get_palette_data:             ; 0xc0917 LB 0x57
+    test bl, bl                               ; 84 db
+    je short 0092ah                           ; 74 0f
+    cmp bl, 001h                              ; 80 fb 01
+    je short 0094ah                           ; 74 2a
+    cmp bl, 003h                              ; 80 fb 03
+    jbe short 0096ah                          ; 76 45
+    cmp bl, 080h                              ; 80 fb 80
+    jne short 00966h                          ; 75 3c
+    pushaw                                    ; 60
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pop DS                                    ; 1f
+    db  08ah, 0c2h
+    ; mov al, dl                                ; 8a c2
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    db  08bh, 0f7h
+    ; mov si, di                                ; 8b f7
+    lodsw                                     ; ad
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    lodsw                                     ; ad
+    out DX, AL                                ; ee
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    loop 00937h                               ; e2 f3
+    pop DS                                    ; 1f
+    popaw                                     ; 61
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    pushaw                                    ; 60
+    db  08ah, 0c2h
+    ; mov al, dl                                ; 8a c2
+    mov dx, 003c7h                            ; ba c7 03
+    out DX, AL                                ; ee
+    add dl, 002h                              ; 80 c2 02
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    in AL, DX                                 ; ec
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    in AL, DX                                 ; ec
+    stosw                                     ; ab
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    stosw                                     ; ab
+    loop 00956h                               ; e2 f3
+    popaw                                     ; 61
+    jmp short 00946h                          ; eb e0
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+    mov ax, 0024fh                            ; b8 4f 02
+    retn                                      ; c3
+vbe_biosfn_return_protected_mode_interface: ; 0xc096e LB 0x17
+    test bl, bl                               ; 84 db
+    jne short 00981h                          ; 75 0f
+    mov di, 0c000h                            ; bf 00 c0
+    mov es, di                                ; 8e c7
+    mov di, 04400h                            ; bf 00 44
+    mov cx, 00115h                            ; b9 15 01
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+
+  ; Padding 0x7b bytes at 0xc0985
+  times 123 db 0
+
+section _TEXT progbits vstart=0xa00 align=1 ; size=0x316b class=CODE group=AUTO
+set_int_vector_:                             ; 0xc0a00 LB 0x1b
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    sal bx, 002h                              ; c1 e3 02
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov word [es:bx], dx                      ; 26 89 17
+    mov word [es:bx+002h], 0c000h             ; 26 c7 47 02 00 c0
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+init_vga_card_:                              ; 0xc0a1b LB 0x1c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov AL, strict byte 0c3h                  ; b0 c3
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 004h                  ; b0 04
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+init_bios_area_:                             ; 0xc0a37 LB 0x32
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    xor bx, bx                                ; 31 db
+    mov ax, strict word 00040h                ; b8 40 00
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx+010h]                 ; 26 8a 47 10
+    and AL, strict byte 0cfh                  ; 24 cf
+    or AL, strict byte 020h                   ; 0c 20
+    mov byte [es:bx+010h], al                 ; 26 88 47 10
+    mov byte [es:bx+00085h], 010h             ; 26 c6 87 85 00 10
+    mov word [es:bx+00087h], 0f960h           ; 26 c7 87 87 00 60 f9
+    mov byte [es:bx+00089h], 051h             ; 26 c6 87 89 00 51
+    mov byte [es:bx+065h], 009h               ; 26 c6 47 65 09
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+_vgabios_init_func:                          ; 0xc0a69 LB 0x22
+    inc bp                                    ; 45
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    call 00a1bh                               ; e8 ab ff
+    call 00a37h                               ; e8 c4 ff
+    call 03689h                               ; e8 13 2c
+    mov dx, strict word 00022h                ; ba 22 00
+    mov ax, strict word 00010h                ; b8 10 00
+    call 00a00h                               ; e8 81 ff
+    mov ax, strict word 00003h                ; b8 03 00
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    int 010h                                  ; cd 10
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    dec bp                                    ; 4d
+    retf                                      ; cb
+vga_get_cursor_pos_:                         ; 0xc0a8b LB 0x46
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    mov cl, al                                ; 88 c1
+    mov si, dx                                ; 89 d6
+    cmp AL, strict byte 007h                  ; 3c 07
+    jbe short 00aa6h                          ; 76 0e
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    jmp short 00acah                          ; eb 24
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 d2 26
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], ax                      ; 26 89 04
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    add dx, ax                                ; 01 c2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 bc 26
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vga_read_char_attr_:                         ; 0xc0ad1 LB 0xb0
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov si, dx                                ; 89 d6
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 7c 26
+    xor ah, ah                                ; 30 e4
+    call 0313dh                               ; e8 4f 26
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 00b68h                           ; 74 73
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-014h]                         ; 8d 5e ec
+    lea dx, [bp-012h]                         ; 8d 56 ee
+    call 00a8bh                               ; e8 88 ff
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 48 26
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    inc di                                    ; 47
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 56 26
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 00b68h                          ; 75 2c
+    mul di                                    ; f7 e7
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    inc ax                                    ; 40
+    mul dx                                    ; f7 e2
+    mov di, ax                                ; 89 c7
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mul cx                                    ; f7 e1
+    mov dl, byte [bp-00eh]                    ; 8a 56 f2
+    xor dh, dh                                ; 30 f6
+    add dx, ax                                ; 01 c2
+    add dx, dx                                ; 01 d2
+    add dx, di                                ; 01 fa
+    mov ax, word [bx+04633h]                  ; 8b 87 33 46
+    call 03181h                               ; e8 1c 26
+    mov word [ss:si], ax                      ; 36 89 04
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    xchg si, ax                               ; 96
+    db  00bh, 0d4h
+    ; or dx, sp                                 ; 0b d4
+    db  00bh, 0d9h
+    ; or bx, cx                                 ; 0b d9
+    db  00bh, 0e1h
+    ; or sp, cx                                 ; 0b e1
+    db  00bh, 0e6h
+    ; or sp, si                                 ; 0b e6
+    db  00bh, 0ebh
+    ; or bp, bx                                 ; 0b eb
+    db  00bh, 0f0h
+    ; or si, ax                                 ; 0b f0
+    db  00bh, 0f5h
+    ; or si, bp                                 ; 0b f5
+    db  00bh
+vga_get_font_info_:                          ; 0xc0b81 LB 0x7b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov si, dx                                ; 89 d6
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jnbe short 00bcbh                         ; 77 3e
+    mov di, ax                                ; 89 c7
+    add di, ax                                ; 01 c7
+    jmp word [cs:di+00b71h]                   ; 2e ff a5 71 0b
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 0319dh                               ; e8 ff 25
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    mov word [es:si], dx                      ; 26 89 14
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 b6 25
+    xor ah, ah                                ; 30 e4
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, cx                                ; 89 cb
+    mov word [es:bx], ax                      ; 26 89 07
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 a4 25
+    xor ah, ah                                ; 30 e4
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+    mov dx, 0010ch                            ; ba 0c 01
+    jmp short 00b99h                          ; eb c0
+    mov ax, 05bedh                            ; b8 ed 5b
+    mov dx, 0c000h                            ; ba 00 c0
+    jmp short 00b9eh                          ; eb bd
+    mov ax, 053edh                            ; b8 ed 53
+    jmp short 00bdch                          ; eb f6
+    mov ax, 057edh                            ; b8 ed 57
+    jmp short 00bdch                          ; eb f1
+    mov ax, 079edh                            ; b8 ed 79
+    jmp short 00bdch                          ; eb ec
+    mov ax, 069edh                            ; b8 ed 69
+    jmp short 00bdch                          ; eb e7
+    mov ax, 07b1ah                            ; b8 1a 7b
+    jmp short 00bdch                          ; eb e2
+    jmp short 00bcbh                          ; eb cf
+vga_read_pixel_:                             ; 0xc0bfc LB 0x142
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, dx                                ; 89 d6
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov di, cx                                ; 89 cf
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 51 25
+    xor ah, ah                                ; 30 e4
+    call 0313dh                               ; e8 24 25
+    mov cl, al                                ; 88 c1
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 00c2dh                           ; 74 0e
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 00c30h                          ; 75 03
+    jmp near 00d37h                           ; e9 07 01
+    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    cmp bl, 003h                              ; 80 fb 03
+    jc short 00c48h                           ; 72 0f
+    jbe short 00c50h                          ; 76 15
+    cmp bl, 005h                              ; 80 fb 05
+    je short 00caah                           ; 74 6a
+    cmp bl, 004h                              ; 80 fb 04
+    je short 00c50h                           ; 74 0b
+    jmp near 00d32h                           ; e9 ea 00
+    cmp bl, 002h                              ; 80 fb 02
+    je short 00cafh                           ; 74 62
+    jmp near 00d32h                           ; e9 e2 00
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 28 25
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mul bx                                    ; f7 e3
+    mov bx, si                                ; 89 f3
+    shr bx, 003h                              ; c1 eb 03
+    add bx, ax                                ; 01 c3
+    mov cx, si                                ; 89 f1
+    and cx, strict byte 00007h                ; 83 e1 07
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-006h], ch                    ; 88 6e fa
+    jmp short 00c7fh                          ; eb 06
+    cmp byte [bp-006h], 004h                  ; 80 7e fa 04
+    jnc short 00cach                          ; 73 2d
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 004h                   ; 0c 04
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03165h                               ; e8 d0 24
+    and al, byte [bp-008h]                    ; 22 46 f8
+    test al, al                               ; 84 c0
+    jbe short 00ca5h                          ; 76 09
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    mov AL, strict byte 001h                  ; b0 01
+    sal al, CL                                ; d2 e0
+    or ch, al                                 ; 08 c5
+    inc byte [bp-006h]                        ; fe 46 fa
+    jmp short 00c79h                          ; eb cf
+    jmp short 00d11h                          ; eb 65
+    jmp near 00d34h                           ; e9 85 00
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    shr ax, 1                                 ; d1 e8
+    imul ax, ax, strict byte 00050h           ; 6b c0 50
+    mov bx, si                                ; 89 f3
+    shr bx, 002h                              ; c1 eb 02
+    add bx, ax                                ; 01 c3
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 00cc7h                           ; 74 03
+    add bh, 020h                              ; 80 c7 20
+    mov dx, bx                                ; 89 da
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03165h                               ; e8 96 24
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    jne short 00cf8h                          ; 75 1b
+    mov cx, si                                ; 89 f1
+    xor ch, ch                                ; 30 ed
+    and cl, 003h                              ; 80 e1 03
+    mov bx, strict word 00003h                ; bb 03 00
+    sub bx, cx                                ; 29 cb
+    mov cx, bx                                ; 89 d9
+    add cx, bx                                ; 01 d9
+    xor ah, ah                                ; 30 e4
+    sar ax, CL                                ; d3 f8
+    mov ch, al                                ; 88 c5
+    and ch, 003h                              ; 80 e5 03
+    jmp short 00d34h                          ; eb 3c
+    mov cx, si                                ; 89 f1
+    xor ch, ch                                ; 30 ed
+    and cl, 007h                              ; 80 e1 07
+    mov bx, strict word 00007h                ; bb 07 00
+    sub bx, cx                                ; 29 cb
+    mov cx, bx                                ; 89 d9
+    xor ah, ah                                ; 30 e4
+    sar ax, CL                                ; d3 f8
+    mov ch, al                                ; 88 c5
+    and ch, 001h                              ; 80 e5 01
+    jmp short 00d34h                          ; eb 23
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 67 24
+    mov bx, ax                                ; 89 c3
+    sal bx, 003h                              ; c1 e3 03
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mul bx                                    ; f7 e3
+    mov dx, si                                ; 89 f2
+    add dx, ax                                ; 01 c2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03165h                               ; e8 37 24
+    mov ch, al                                ; 88 c5
+    jmp short 00d34h                          ; eb 02
+    xor ch, ch                                ; 30 ed
+    mov byte [ss:di], ch                      ; 36 88 2d
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_perform_gray_scale_summing_:          ; 0xc0d3e LB 0x8d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor al, al                                ; 30 c0
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    xor si, si                                ; 31 f6
+    cmp si, di                                ; 39 fe
+    jnc short 00db0h                          ; 73 53
+    mov al, bl                                ; 88 d8
+    mov dx, 003c7h                            ; ba c7 03
+    out DX, AL                                ; ee
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ch, ch                                ; 30 ed
+    imul cx, cx, strict byte 0004dh           ; 6b c9 4d
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov cl, byte [bp-00ch]                    ; 8a 4e f4
+    xor ch, ch                                ; 30 ed
+    imul cx, cx, 00097h                       ; 69 c9 97 00
+    add cx, word [bp-00ah]                    ; 03 4e f6
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    add cx, ax                                ; 01 c1
+    add cx, 00080h                            ; 81 c1 80 00
+    sar cx, 008h                              ; c1 f9 08
+    cmp cx, strict byte 0003fh                ; 83 f9 3f
+    jbe short 00d9eh                          ; 76 03
+    mov cx, strict word 0003fh                ; b9 3f 00
+    mov al, bl                                ; 88 d8
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    inc si                                    ; 46
+    jmp short 00d59h                          ; eb a9
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_cursor_shape_:                    ; 0xc0dcb LB 0xae
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov cl, al                                ; 88 c1
+    mov ch, dl                                ; 88 d5
+    and cl, 03fh                              ; 80 e1 3f
+    and ch, 01fh                              ; 80 e5 1f
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov bx, ax                                ; 89 c3
+    sal bx, 008h                              ; c1 e3 08
+    mov al, ch                                ; 88 e8
+    mov si, ax                                ; 89 c6
+    add bx, ax                                ; 01 c3
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 97 23
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 64 23
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 74 23
+    mov bx, ax                                ; 89 c3
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 00e4eh                           ; 74 36
+    cmp ax, strict word 00008h                ; 3d 08 00
+    jbe short 00e4eh                          ; 76 31
+    cmp ch, 008h                              ; 80 fd 08
+    jnc short 00e4eh                          ; 73 2c
+    cmp cl, 020h                              ; 80 f9 20
+    jnc short 00e4eh                          ; 73 27
+    lea ax, [di+001h]                         ; 8d 45 01
+    cmp si, ax                                ; 39 c6
+    je short 00e36h                           ; 74 08
+    mul bx                                    ; f7 e3
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    jmp short 00e3eh                          ; eb 08
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    dec ax                                    ; 48
+    mov cl, al                                ; 88 c1
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mul word [bp-00ch]                        ; f7 66 f4
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    mov ch, al                                ; 88 c5
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 2a 23
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 00ah                  ; b0 0a
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea si, [bx+001h]                         ; 8d 77 01
+    mov al, cl                                ; 88 c8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_cursor_pos_:                      ; 0xc0e79 LB 0xb5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov cl, al                                ; 88 c1
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    cmp AL, strict byte 007h                  ; 3c 07
+    jbe short 00e8dh                          ; 76 03
+    jmp near 00f26h                           ; e9 99 00
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    add dx, ax                                ; 01 c2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 f0 22
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 bd 22
+    cmp cl, al                                ; 38 c1
+    jne short 00f26h                          ; 75 7a
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 cc 22
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 a5 22
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    inc dx                                    ; 42
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov ch, al                                ; 88 c5
+    mov ax, bx                                ; 89 d8
+    mul dx                                    ; f7 e2
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov si, ax                                ; 89 c6
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    lea ax, [si+001h]                         ; 8d 44 01
+    mul dx                                    ; f7 e2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov si, ax                                ; 89 c6
+    add si, dx                                ; 01 d6
+    mov cl, ch                                ; 88 e9
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    mul bx                                    ; f7 e3
+    add si, ax                                ; 01 c6
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 7d 22
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 00eh                  ; b0 0e
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov ax, si                                ; 89 f0
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    lea cx, [bx+001h]                         ; 8d 4f 01
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    mov AL, strict byte 00fh                  ; b0 0f
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    and si, 000ffh                            ; 81 e6 ff 00
+    mov ax, si                                ; 89 f0
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_active_page_:                     ; 0xc0f2e LB 0xee
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe short 00f53h                         ; 77 14
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 1d 22
+    xor ah, ah                                ; 30 e4
+    call 0313dh                               ; e8 f0 21
+    mov cl, al                                ; 88 c1
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 00f56h                          ; 75 03
+    jmp near 01013h                           ; e9 bd 00
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-00eh]                         ; 8d 5e f2
+    lea dx, [bp-00ch]                         ; 8d 56 f4
+    call 00a8bh                               ; e8 27 fb
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 00fbah                          ; 75 46
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 04 22
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 dd 21
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    inc dx                                    ; 42
+    mov ax, bx                                ; 89 d8
+    mul dx                                    ; f7 e2
+    mov cx, ax                                ; 89 c1
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov ax, dx                                ; 89 d0
+    inc ax                                    ; 40
+    mul si                                    ; f7 e6
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 df 21
+    or cl, 0ffh                               ; 80 c9 ff
+    mov ax, cx                                ; 89 c8
+    inc ax                                    ; 40
+    mul si                                    ; f7 e6
+    jmp short 00fd0h                          ; eb 16
+    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 006h                              ; c1 e3 06
+    mov cl, byte [bp-00ah]                    ; 8a 4e f6
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    mul word [bx+046c6h]                      ; f7 a7 c6 46
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 a6 21
+    mov cx, ax                                ; 89 c1
+    mov AL, strict byte 00ch                  ; b0 0c
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    xor al, bl                                ; 30 d8
+    shr ax, 008h                              ; c1 e8 08
+    mov si, cx                                ; 89 ce
+    inc si                                    ; 46
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov AL, strict byte 00dh                  ; b0 0d
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov cl, byte [bp-00ah]                    ; 8a 4e f6
+    xor ch, ch                                ; 30 ed
+    mov bx, cx                                ; 89 cb
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 68 21
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, cx                                ; 89 c8
+    call 00e79h                               ; e8 66 fe
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_video_mode_:                      ; 0xc101c LB 0x3b6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00012h                ; 83 ec 12
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    and AL, strict byte 080h                  ; 24 80
+    mov byte [bp-012h], al                    ; 88 46 ee
+    call 007fah                               ; e8 c8 f7
+    test ax, ax                               ; 85 c0
+    je short 01042h                           ; 74 0c
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    and byte [bp-00ch], 07fh                  ; 80 66 f4 7f
+    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
+    jne short 01050h                          ; 75 04
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    call 0313dh                               ; e8 e5 20
+    mov byte [bp-010h], al                    ; 88 46 f0
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 01062h                          ; 75 03
+    jmp near 013c8h                           ; e9 66 03
+    mov byte [bp-01ah], al                    ; 88 46 e6
+    mov byte [bp-019h], 000h                  ; c6 46 e7 00
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    sal bx, 006h                              ; c1 e3 06
+    mov al, byte [bx+046c3h]                  ; 8a 87 c3 46
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bx+046c4h]                  ; 8a 87 c4 46
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 cb 20
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 c2 20
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 b9 20
+    mov cl, al                                ; 88 c1
+    test AL, strict byte 008h                 ; a8 08
+    jne short 010f7h                          ; 75 45
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    sal bx, 003h                              ; c1 e3 03
+    mov al, byte [bx+04635h]                  ; 8a 87 35 46
+    mov dx, 003c6h                            ; ba c6 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
+    cmp bl, 001h                              ; 80 fb 01
+    jc short 010ddh                           ; 72 0e
+    jbe short 010e6h                          ; 76 15
+    cmp bl, 003h                              ; 80 fb 03
+    je short 010f0h                           ; 74 1a
+    cmp bl, 002h                              ; 80 fb 02
+    je short 010ebh                           ; 74 10
+    jmp short 010f3h                          ; eb 16
+    test bl, bl                               ; 84 db
+    jne short 010f3h                          ; 75 12
+    mov di, 04e43h                            ; bf 43 4e
+    jmp short 010f3h                          ; eb 0d
+    mov di, 04f03h                            ; bf 03 4f
+    jmp short 010f3h                          ; eb 08
+    mov di, 04fc3h                            ; bf c3 4f
+    jmp short 010f3h                          ; eb 03
+    mov di, 05083h                            ; bf 83 50
+    xor bx, bx                                ; 31 db
+    jmp short 010ffh                          ; eb 08
+    jmp short 01144h                          ; eb 4b
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 01137h                          ; 73 38
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 003h                              ; c1 e6 03
+    mov al, byte [si+04636h]                  ; 8a 84 36 46
+    mov si, ax                                ; 89 c6
+    mov al, byte [si+046bfh]                  ; 8a 84 bf 46
+    cmp bx, ax                                ; 39 c3
+    jnbe short 0112ch                         ; 77 15
+    imul si, bx, strict byte 00003h           ; 6b f3 03
+    add si, di                                ; 01 fe
+    mov al, byte [si]                         ; 8a 04
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    mov al, byte [si+001h]                    ; 8a 44 01
+    out DX, AL                                ; ee
+    mov al, byte [si+002h]                    ; 8a 44 02
+    out DX, AL                                ; ee
+    jmp short 01134h                          ; eb 08
+    xor al, al                                ; 30 c0
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 010f9h                          ; eb c2
+    test cl, 002h                             ; f6 c1 02
+    je short 01144h                           ; 74 08
+    mov dx, 00100h                            ; ba 00 01
+    xor ax, ax                                ; 31 c0
+    call 00d3eh                               ; e8 fa fb
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor bx, bx                                ; 31 db
+    jmp short 01153h                          ; eb 05
+    cmp bx, strict byte 00013h                ; 83 fb 13
+    jnbe short 0116dh                         ; 77 1a
+    mov al, bl                                ; 88 d8
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 006h                              ; c1 e6 06
+    add si, bx                                ; 01 de
+    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 0114eh                          ; eb e1
+    mov AL, strict byte 014h                  ; b0 14
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 003h                  ; b0 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    mov bx, strict word 00001h                ; bb 01 00
+    jmp short 0118ah                          ; eb 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jnbe short 011a7h                         ; 77 1d
+    mov al, bl                                ; 88 d8
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 006h                              ; c1 e6 06
+    add si, bx                                ; 01 de
+    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 01185h                          ; eb de
+    xor bx, bx                                ; 31 db
+    jmp short 011b0h                          ; eb 05
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jnbe short 011cdh                         ; 77 1d
+    mov al, bl                                ; 88 d8
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 006h                              ; c1 e6 06
+    add si, bx                                ; 01 de
+    mov al, byte [si+046fah]                  ; 8a 84 fa 46
+    mov dx, 003cfh                            ; ba cf 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 011abh                          ; eb de
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
+    jne short 011e1h                          ; 75 05
+    mov dx, 003b4h                            ; ba b4 03
+    jmp short 011e4h                          ; eb 03
+    mov dx, 003d4h                            ; ba d4 03
+    mov si, dx                                ; 89 d6
+    mov ax, strict word 00011h                ; b8 11 00
+    out DX, ax                                ; ef
+    xor bx, bx                                ; 31 db
+    jmp short 011f3h                          ; eb 05
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jnbe short 01211h                         ; 77 1e
+    mov al, bl                                ; 88 d8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    sal cx, 006h                              ; c1 e1 06
+    mov di, cx                                ; 89 cf
+    add di, bx                                ; 01 df
+    lea dx, [si+001h]                         ; 8d 54 01
+    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 011eeh                          ; eb dd
+    mov bx, cx                                ; 89 cb
+    mov al, byte [bx+046cch]                  ; 8a 87 cc 46
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    jne short 0128dh                          ; 75 60
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, ch                                ; 30 ef
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 0124fh                          ; 75 13
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 04000h                            ; b9 00 40
+    mov ax, 00720h                            ; b8 20 07
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 0124dh                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 0128dh                          ; eb 3e
+    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
+    jnc short 01267h                          ; 73 12
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 04000h                            ; b9 00 40
+    xor ax, ax                                ; 31 c0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01265h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 0128dh                          ; eb 26
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov AL, strict byte 00fh                  ; b0 0f
+    out DX, AL                                ; ee
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 08000h                            ; b9 00 80
+    xor ax, ax                                ; 31 c0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01289h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 d8 1e
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 e8 1e
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    sal bx, 006h                              ; c1 e3 06
+    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 d3 1e
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 c8 1e
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    xor bh, bh                                ; 30 ff
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 9e 1e
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 ae 1e
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    or bl, 060h                               ; 80 cb 60
+    xor bh, bh                                ; 30 ff
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 81 1e
+    mov bx, 000f9h                            ; bb f9 00
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 75 1e
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 5e 1e
+    mov bl, al                                ; 88 c3
+    and bl, 07fh                              ; 80 e3 7f
+    xor bh, bh                                ; 30 ff
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 5c 1e
+    mov bx, strict word 00008h                ; bb 08 00
+    mov dx, 0008ah                            ; ba 8a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 50 1e
+    mov cx, ds                                ; 8c d9
+    mov bx, 053d1h                            ; bb d1 53
+    mov dx, 000a8h                            ; ba a8 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031afh                               ; e8 7e 1e
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00065h                ; ba 65 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 37 1e
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00066h                ; ba 66 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 2c 1e
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 0135fh                          ; 75 09
+    mov dx, strict word 00007h                ; ba 07 00
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00dcbh                               ; e8 6c fa
+    xor bx, bx                                ; 31 db
+    jmp short 01368h                          ; eb 05
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jnc short 01374h                          ; 73 0c
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    call 00e79h                               ; e8 08 fb
+    inc bx                                    ; 43
+    jmp short 01363h                          ; eb ef
+    xor ax, ax                                ; 31 c0
+    call 00f2eh                               ; e8 b5 fb
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 01398h                          ; 75 10
+    xor bl, bl                                ; 30 db
+    mov AL, strict byte 004h                  ; b0 04
+    mov AH, strict byte 011h                  ; b4 11
+    int 010h                                  ; cd 10
+    xor bl, bl                                ; 30 db
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 011h                  ; b4 11
+    int 010h                                  ; cd 10
+    mov dx, 057edh                            ; ba ed 57
+    mov ax, strict word 0001fh                ; b8 1f 00
+    call 00a00h                               ; e8 5f f6
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    cmp ax, strict word 00010h                ; 3d 10 00
+    je short 013c3h                           ; 74 1a
+    cmp ax, strict word 0000eh                ; 3d 0e 00
+    je short 013beh                           ; 74 10
+    cmp ax, strict word 00008h                ; 3d 08 00
+    jne short 013c8h                          ; 75 15
+    mov dx, 053edh                            ; ba ed 53
+    mov ax, strict word 00043h                ; b8 43 00
+    call 00a00h                               ; e8 44 f6
+    jmp short 013c8h                          ; eb 0a
+    mov dx, 05bedh                            ; ba ed 5b
+    jmp short 013b6h                          ; eb f3
+    mov dx, 069edh                            ; ba ed 69
+    jmp short 013b6h                          ; eb ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vgamem_copy_pl4_:                            ; 0xc13d2 LB 0x8f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, dl                                ; 88 d0
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov byte [bp-006h], cl                    ; 88 4e fa
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp+006h]                    ; 8a 56 06
+    xor dh, dh                                ; 30 f6
+    mov cx, dx                                ; 89 d1
+    imul dx                                   ; f7 ea
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    xor dh, dh                                ; 30 f6
+    mov si, dx                                ; 89 d6
+    imul dx                                   ; f7 ea
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    add ax, dx                                ; 01 d0
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul cx                                   ; f7 e9
+    imul si                                   ; f7 ee
+    add ax, bx                                ; 01 d8
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, 00105h                            ; b8 05 01
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+006h]                    ; 3a 5e 06
+    jnc short 01451h                          ; 73 30
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov si, ax                                ; 89 c6
+    mov ax, dx                                ; 89 d0
+    imul si                                   ; f7 ee
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    add si, ax                                ; 01 c6
+    mov di, word [bp-00ch]                    ; 8b 7e f4
+    add di, ax                                ; 01 c7
+    mov dx, 0a000h                            ; ba 00 a0
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0144dh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 0141ch                          ; eb cb
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_fill_pl4_:                            ; 0xc1461 LB 0x7c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, dl                                ; 88 d0
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov bh, cl                                ; 88 cf
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    imul cx                                   ; f7 e9
+    mov dl, bh                                ; 88 fa
+    xor dh, dh                                ; 30 f6
+    imul dx                                   ; f7 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnc short 014cdh                          ; 73 2d
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    mov al, bh                                ; 88 f8
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    imul di                                   ; f7 ef
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, ax                                ; 01 c7
+    mov ax, si                                ; 89 f0
+    mov dx, 0a000h                            ; ba 00 a0
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 014c9h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 0149bh                          ; eb ce
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_copy_cga_:                            ; 0xc14dd LB 0xc2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, dl                                ; 88 d0
+    mov bh, cl                                ; 88 cf
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    imul cx                                   ; f7 e9
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    xor dh, dh                                ; 30 f6
+    mov di, dx                                ; 89 d7
+    imul dx                                   ; f7 ea
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    add dx, ax                                ; 01 c2
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov al, bl                                ; 88 d8
+    imul cx                                   ; f7 e9
+    imul di                                   ; f7 ef
+    sar ax, 1                                 ; d1 f8
+    add ax, si                                ; 01 f0
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+006h]                    ; 3a 5e 06
+    jnc short 01596h                          ; 73 70
+    test bl, 001h                             ; f6 c3 01
+    je short 01562h                           ; 74 37
+    mov cl, bh                                ; 88 f9
+    xor ch, ch                                ; 30 ed
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov si, ax                                ; 89 c6
+    mov ax, dx                                ; 89 d0
+    imul si                                   ; f7 ee
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    add si, 02000h                            ; 81 c6 00 20
+    add si, ax                                ; 01 c6
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, 02000h                            ; 81 c7 00 20
+    add di, ax                                ; 01 c7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01560h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    jmp short 01592h                          ; eb 30
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, bl                                ; 88 d8
+    sar ax, 1                                 ; d1 f8
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-00bh], ch                    ; 88 6e f5
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    imul dx                                   ; f7 ea
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    add si, ax                                ; 01 c6
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, ax                                ; 01 c7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01592h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 01521h                          ; eb 8b
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_fill_cga_:                            ; 0xc159f LB 0xa8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, dl                                ; 88 d0
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    mov bh, cl                                ; 88 cf
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    imul cx                                   ; f7 e9
+    mov dl, bh                                ; 88 fa
+    xor dh, dh                                ; 30 f6
+    imul dx                                   ; f7 ea
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnc short 0163eh                          ; 73 65
+    test bl, 001h                             ; f6 c3 01
+    je short 0160fh                           ; 74 31
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, bh                                ; 88 f8
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    imul di                                   ; f7 ef
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, 02000h                            ; 81 c7 00 20
+    add di, ax                                ; 01 c7
+    mov ax, si                                ; 89 f0
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0160dh                               ; e3 02
+    rep stosb                                 ; f3 aa
+    jmp short 0163ah                          ; eb 2b
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, bh                                ; 88 f8
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    imul di                                   ; f7 ef
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, ax                                ; 01 c7
+    mov ax, si                                ; 89 f0
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0163ah                               ; e3 02
+    rep stosb                                 ; f3 aa
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 015d4h                          ; eb 96
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+biosfn_scroll_:                              ; 0xc1647 LB 0x55a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ah                ; 83 ec 1a
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-010h], dl                    ; 88 56 f0
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov byte [bp-008h], cl                    ; 88 4e f8
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnbe short 0167ah                         ; 77 1a
+    cmp cl, byte [bp+006h]                    ; 3a 4e 06
+    jnbe short 0167ah                         ; 77 15
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 f7 1a
+    xor ah, ah                                ; 30 e4
+    call 0313dh                               ; e8 ca 1a
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0167dh                          ; 75 03
+    jmp near 01b98h                           ; e9 1b 05
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 df 1a
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    inc cx                                    ; 41
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 ed 1a
+    mov word [bp-018h], ax                    ; 89 46 e8
+    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
+    jne short 016a9h                          ; 75 0c
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 bf 1a
+    mov byte [bp+008h], al                    ; 88 46 08
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, cx                                ; 39 c8
+    jc short 016b9h                           ; 72 07
+    mov al, cl                                ; 88 c8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp+004h], al                    ; 88 46 04
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-018h]                    ; 3b 46 e8
+    jc short 016cbh                           ; 72 08
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp+006h], al                    ; 88 46 06
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cmp ax, cx                                ; 39 c8
+    jbe short 016d7h                          ; 76 03
+    mov byte [bp-006h], ah                    ; 88 66 fa
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    sub al, byte [bp-008h]                    ; 2a 46 f8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov di, bx                                ; 89 df
+    sal di, 003h                              ; c1 e7 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    dec ax                                    ; 48
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov ax, cx                                ; 89 c8
+    dec ax                                    ; 48
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mul cx                                    ; f7 e1
+    mov si, ax                                ; 89 c6
+    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
+    jne short 01758h                          ; 75 51
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+008h]                    ; 8a 46 08
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov bx, ax                                ; 89 c3
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 0175bh                          ; 75 3a
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 0175bh                          ; 75 34
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 0175bh                          ; 75 2e
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-01ch]                    ; 3b 46 e4
+    jne short 0175bh                          ; 75 24
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    cmp ax, word [bp-01ah]                    ; 3b 46 e6
+    jne short 0175bh                          ; 75 1c
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    sal ax, 008h                              ; c1 e0 08
+    add ax, strict word 00020h                ; 05 20 00
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, si                                ; 89 f1
+    mov di, bx                                ; 89 df
+    cld                                       ; fc
+    jcxz 01755h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp near 01b98h                           ; e9 40 04
+    jmp near 018d6h                           ; e9 7b 01
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 017c5h                          ; 75 64
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    xor dh, dh                                ; 30 f6
+    cmp dx, word [bp-016h]                    ; 3b 56 ea
+    jc short 017c7h                           ; 72 54
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    add ax, word [bp-016h]                    ; 03 46 ea
+    cmp ax, dx                                ; 39 d0
+    jnbe short 01785h                         ; 77 06
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 017cah                          ; 75 45
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    sal ax, 008h                              ; c1 e0 08
+    add ax, strict word 00020h                ; 05 20 00
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    add ax, ax                                ; 01 c0
+    mov di, bx                                ; 89 df
+    add di, ax                                ; 01 c7
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 003h                              ; c1 e6 03
+    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    cld                                       ; fc
+    jcxz 017c3h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 0180eh                          ; eb 49
+    jmp short 01814h                          ; eb 4d
+    jmp near 01b98h                           ; e9 ce 03
+    mov dl, byte [bp-00eh]                    ; 8a 56 f2
+    mov cx, dx                                ; 89 d1
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    add dx, ax                                ; 01 c2
+    add dx, dx                                ; 01 d2
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov si, ax                                ; 89 c6
+    sal si, 003h                              ; c1 e6 03
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    add di, ax                                ; 01 c7
+    add di, di                                ; 01 ff
+    add di, bx                                ; 01 df
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0180eh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    inc word [bp-016h]                        ; ff 46 ea
+    jmp near 01769h                           ; e9 55 ff
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 017c7h                         ; 77 a1
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    add dx, ax                                ; 01 c2
+    cmp dx, word [bp-016h]                    ; 3b 56 ea
+    jnbe short 01836h                         ; 77 04
+    test al, al                               ; 84 c0
+    jne short 01874h                          ; 75 3e
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    sal ax, 008h                              ; c1 e0 08
+    add ax, strict word 00020h                ; 05 20 00
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    add dx, dx                                ; 01 d2
+    mov di, bx                                ; 89 df
+    add di, dx                                ; 01 d7
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov si, ax                                ; 89 c6
+    sal si, 003h                              ; c1 e6 03
+    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    cld                                       ; fc
+    jcxz 01872h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 018c6h                          ; eb 52
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov di, ax                                ; 89 c7
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    sub dx, ax                                ; 29 c2
+    mov ax, dx                                ; 89 d0
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    add dx, ax                                ; 01 c2
+    add dx, dx                                ; 01 d2
+    mov word [bp-01eh], dx                    ; 89 56 e2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov si, ax                                ; 89 c6
+    sal si, 003h                              ; c1 e6 03
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    add ax, cx                                ; 01 c8
+    add ax, ax                                ; 01 c0
+    add ax, bx                                ; 01 d8
+    mov cx, di                                ; 89 f9
+    mov si, word [bp-01eh]                    ; 8b 76 e2
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    mov di, ax                                ; 89 c7
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 018c6h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 018fbh                           ; 72 2b
+    dec word [bp-016h]                        ; ff 4e ea
+    jmp near 0181ch                           ; e9 46 ff
+    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 006h                              ; c1 e3 06
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov bl, byte [di+04631h]                  ; 8a 9d 31 46
+    cmp bl, 004h                              ; 80 fb 04
+    je short 018feh                           ; 74 0d
+    cmp bl, 003h                              ; 80 fb 03
+    je short 018feh                           ; 74 08
+    cmp bl, 002h                              ; 80 fb 02
+    je short 0192dh                           ; 74 32
+    jmp near 01b98h                           ; e9 9a 02
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01968h                          ; 75 64
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01968h                          ; 75 5e
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 01968h                          ; 75 58
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    dec ax                                    ; 48
+    cmp dx, ax                                ; 39 c2
+    jne short 01968h                          ; 75 4a
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp-018h]                    ; 8b 56 e8
+    dec dx                                    ; 4a
+    cmp ax, dx                                ; 39 d0
+    je short 01930h                           ; 74 05
+    jmp short 01968h                          ; eb 3b
+    jmp near 01a5dh                           ; e9 2d 01
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, cx                                ; 89 c8
+    mul word [bp-018h]                        ; f7 66 e8
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    xor bh, bh                                ; 30 ff
+    mul bx                                    ; f7 e3
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    sal bx, 003h                              ; c1 e3 03
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 0195fh                               ; e3 02
+    rep stosb                                 ; f3 aa
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    jmp short 018fbh                          ; eb 93
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 019beh                          ; 75 50
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 019e4h                           ; 72 62
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    add ax, word [bp-016h]                    ; 03 46 ea
+    cmp ax, dx                                ; 39 d0
+    jnbe short 01992h                         ; 77 06
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 019c0h                          ; 75 2e
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    mov byte [bp-014h], dl                    ; 88 56 ec
+    mov byte [bp-013h], ah                    ; 88 66 ed
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 01461h                               ; e8 a5 fa
+    jmp short 019dfh                          ; eb 21
+    jmp short 019e7h                          ; eb 27
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov bx, ax                                ; 89 c3
+    add al, byte [bp-006h]                    ; 02 46 fa
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 013d2h                               ; e8 f3 f9
+    inc word [bp-016h]                        ; ff 46 ea
+    jmp short 01976h                          ; eb 92
+    jmp near 01b98h                           ; e9 b1 01
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 019e4h                         ; 77 eb
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01a0bh                         ; 77 06
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01a2ch                          ; 75 21
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 01461h                               ; e8 37 fa
+    jmp short 01a4eh                          ; eb 22
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    sub al, byte [bp-006h]                    ; 2a 46 fa
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 013d2h                               ; e8 84 f9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01aa2h                           ; 72 4a
+    dec word [bp-016h]                        ; ff 4e ea
+    jmp short 019efh                          ; eb 92
+    mov bl, byte [di+04632h]                  ; 8a 9d 32 46
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01aa5h                          ; 75 3e
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01aa5h                          ; 75 38
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 01aa5h                          ; 75 32
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    cmp ax, word [bp-01ch]                    ; 3b 46 e4
+    jne short 01aa5h                          ; 75 2a
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    cmp ax, word [bp-01ah]                    ; 3b 46 e6
+    jne short 01aa5h                          ; 75 22
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    mul dx                                    ; f7 e2
+    xor bh, bh                                ; 30 ff
+    mul bx                                    ; f7 e3
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, ax                                ; 89 c1
+    mov ax, bx                                ; 89 d8
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01aa2h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    jmp near 01b98h                           ; e9 f3 00
+    cmp bl, 002h                              ; 80 fb 02
+    jne short 01ab3h                          ; 75 09
+    sal byte [bp-008h], 1                     ; d0 66 f8
+    sal byte [bp-00eh], 1                     ; d0 66 f2
+    sal word [bp-018h], 1                     ; d1 66 e8
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 01b22h                          ; 75 69
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01aa2h                           ; 72 d5
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    add ax, word [bp-016h]                    ; 03 46 ea
+    cmp ax, dx                                ; 39 d0
+    jnbe short 01addh                         ; 77 06
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01afeh                          ; 75 21
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 0159fh                               ; e8 a3 fa
+    jmp short 01b1dh                          ; eb 1f
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov bx, ax                                ; 89 c3
+    add al, byte [bp-006h]                    ; 02 46 fa
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 014ddh                               ; e8 c0 f9
+    inc word [bp-016h]                        ; ff 46 ea
+    jmp short 01ac1h                          ; eb 9f
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01b98h                         ; 77 64
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01b46h                         ; 77 06
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01b67h                          ; 75 21
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 0159fh                               ; e8 3a fa
+    jmp short 01b89h                          ; eb 22
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    sub al, byte [bp-006h]                    ; 2a 46 fa
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    call 014ddh                               ; e8 54 f9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01b98h                           ; 72 05
+    dec word [bp-016h]                        ; ff 4e ea
+    jmp short 01b2ah                          ; eb 92
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00008h                               ; c2 08 00
+write_gfx_char_pl4_:                         ; 0xc1ba1 LB 0xfb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov al, cl                                ; 88 c8
+    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
+    je short 01bc5h                           ; 74 0b
+    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
+    jne short 01bcah                          ; 75 0a
+    mov di, 05bedh                            ; bf ed 5b
+    jmp short 01bcdh                          ; eb 08
+    mov di, 069edh                            ; bf ed 69
+    jmp short 01bcdh                          ; eb 03
+    mov di, 053edh                            ; bf ed 53
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    imul si                                   ; f7 ee
+    mov bl, byte [bp+004h]                    ; 8a 5e 04
+    imul bx                                   ; f7 eb
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    add ax, bx                                ; 01 d8
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    imul si                                   ; f7 ee
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, 00f02h                            ; b8 02 0f
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01c0fh                           ; 74 06
+    mov ax, 01803h                            ; b8 03 18
+    out DX, ax                                ; ef
+    jmp short 01c13h                          ; eb 04
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    xor ch, ch                                ; 30 ed
+    cmp ch, byte [bp+006h]                    ; 3a 6e 06
+    jnc short 01c84h                          ; 73 6a
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    imul si                                   ; f7 ee
+    mov si, word [bp-010h]                    ; 8b 76 f0
+    add si, ax                                ; 01 c6
+    mov byte [bp-00ch], bh                    ; 88 7e f4
+    jmp short 01c46h                          ; eb 13
+    xor bx, bx                                ; 31 db
+    mov dx, si                                ; 89 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03173h                               ; e8 36 15
+    inc byte [bp-00ch]                        ; fe 46 f4
+    cmp byte [bp-00ch], 008h                  ; 80 7e f4 08
+    jnc short 01c80h                          ; 73 3a
+    mov cl, byte [bp-00ch]                    ; 8a 4e f4
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    xor ah, ah                                ; 30 e4
+    mov word [bp-012h], ax                    ; 89 46 ee
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 008h                   ; 0c 08
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov dx, si                                ; 89 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03165h                               ; e8 01 15
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    add bx, ax                                ; 01 c3
+    add bx, di                                ; 01 fb
+    mov al, byte [bx]                         ; 8a 07
+    test word [bp-012h], ax                   ; 85 46 ee
+    je short 01c33h                           ; 74 bd
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    and bl, 00fh                              ; 80 e3 0f
+    xor bh, bh                                ; 30 ff
+    jmp short 01c35h                          ; eb b5
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 01c15h                          ; eb 91
+    mov ax, 0ff08h                            ; b8 08 ff
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+write_gfx_char_cga_:                         ; 0xc1c9c LB 0x138
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov al, bl                                ; 88 d8
+    mov si, 053edh                            ; be ed 53
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov dx, ax                                ; 89 c2
+    mov ax, bx                                ; 89 d8
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, 00140h                       ; 69 c0 40 01
+    add bx, ax                                ; 01 c3
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 003h                              ; c1 e7 03
+    mov byte [bp-006h], ah                    ; 88 66 fa
+    jmp near 01d2dh                           ; e9 52 00
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 01cech                          ; eb 0b
+    or al, bl                                 ; 08 d8
+    shr ch, 1                                 ; d0 ed
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cmp ah, 008h                              ; 80 fc 08
+    jnc short 01d17h                          ; 73 2b
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    add bx, si                                ; 01 f3
+    mov bl, byte [bx]                         ; 8a 1f
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov bl, ch                                ; 88 eb
+    test dx, bx                               ; 85 da
+    je short 01ce3h                           ; 74 e2
+    mov CL, strict byte 007h                  ; b1 07
+    sub cl, ah                                ; 28 e1
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    and bl, 001h                              ; 80 e3 01
+    sal bl, CL                                ; d2 e3
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01ce1h                           ; 74 ce
+    xor al, bl                                ; 30 d8
+    jmp short 01ce3h                          ; eb cc
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03173h                               ; e8 4f 14
+    inc byte [bp-006h]                        ; fe 46 fa
+    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
+    jnc short 01d7dh                          ; 73 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sar ax, 1                                 ; d1 f8
+    imul ax, ax, strict byte 00050h           ; 6b c0 50
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    test byte [bp-006h], 001h                 ; f6 46 fa 01
+    je short 01d49h                           ; 74 04
+    add byte [bp-00bh], 020h                  ; 80 46 f5 20
+    mov CH, strict byte 080h                  ; b5 80
+    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
+    jne short 01d62h                          ; 75 11
+    test byte [bp-008h], ch                   ; 84 6e f8
+    je short 01cdbh                           ; 74 85
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03165h                               ; e8 06 14
+    jmp near 01cddh                           ; e9 7b ff
+    test ch, ch                               ; 84 ed
+    jbe short 01d24h                          ; 76 be
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01d77h                           ; 74 0b
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03165h                               ; e8 f0 13
+    jmp short 01d79h                          ; eb 02
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 01d84h                          ; eb 07
+    jmp short 01dcbh                          ; eb 4c
+    cmp ah, 004h                              ; 80 fc 04
+    jnc short 01db9h                          ; 73 35
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    add bx, si                                ; 01 f3
+    mov bl, byte [bx]                         ; 8a 1f
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov bl, ch                                ; 88 eb
+    test dx, bx                               ; 85 da
+    je short 01db3h                           ; 74 1a
+    mov CL, strict byte 003h                  ; b1 03
+    sub cl, ah                                ; 28 e1
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    and bl, 003h                              ; 80 e3 03
+    add cl, cl                                ; 00 c9
+    sal bl, CL                                ; d2 e3
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01db1h                           ; 74 04
+    xor al, bl                                ; 30 d8
+    jmp short 01db3h                          ; eb 02
+    or al, bl                                 ; 08 d8
+    shr ch, 1                                 ; d0 ed
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 01d7fh                          ; eb c6
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03173h                               ; e8 ad 13
+    inc word [bp-00ch]                        ; ff 46 f4
+    jmp short 01d62h                          ; eb 97
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+write_gfx_char_lin_:                         ; 0xc1dd4 LB 0xaa
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov al, cl                                ; 88 c8
+    mov si, 053edh                            ; be ed 53
+    xor ah, ah                                ; 30 e4
+    mov bl, byte [bp+004h]                    ; 8a 5e 04
+    xor bh, bh                                ; 30 ff
+    imul bx                                   ; f7 eb
+    sal ax, 006h                              ; c1 e0 06
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov dx, bx                                ; 89 da
+    sal dx, 003h                              ; c1 e2 03
+    add dx, ax                                ; 01 c2
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov di, bx                                ; 89 df
+    sal di, 003h                              ; c1 e7 03
+    xor cl, cl                                ; 30 c9
+    jmp short 01e53h                          ; eb 44
+    cmp ch, 008h                              ; 80 fd 08
+    jnc short 01e4ch                          ; 73 38
+    xor dl, dl                                ; 30 d2
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    add ax, di                                ; 01 f8
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov al, byte [bx]                         ; 8a 07
+    xor ah, ah                                ; 30 e4
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    test ax, bx                               ; 85 d8
+    je short 01e30h                           ; 74 03
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    mov bl, ch                                ; 88 eb
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, bx                                ; 01 da
+    mov bx, ax                                ; 89 c3
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03173h                               ; e8 2e 13
+    shr byte [bp-008h], 1                     ; d0 6e f8
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 01e0fh                          ; eb c3
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 008h                              ; 80 f9 08
+    jnc short 01e75h                          ; 73 22
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, bx                                ; 89 d8
+    imul dx                                   ; f7 ea
+    sal ax, 003h                              ; c1 e0 03
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov byte [bp-008h], 080h                  ; c6 46 f8 80
+    xor ch, ch                                ; 30 ed
+    jmp short 01e14h                          ; eb 9f
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+biosfn_write_char_attr_:                     ; 0xc1e7e LB 0x18d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00018h                ; 83 ec 18
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    mov si, cx                                ; 89 ce
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 cb 12
+    xor ah, ah                                ; 30 e4
+    call 0313dh                               ; e8 9e 12
+    mov cl, al                                ; 88 c1
+    mov byte [bp-014h], al                    ; 88 46 ec
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 01eabh                          ; 75 03
+    jmp near 02004h                           ; e9 59 01
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-01ch]                         ; 8d 5e e4
+    lea dx, [bp-01ah]                         ; 8d 56 e6
+    call 00a8bh                               ; e8 d2 eb
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 92 12
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 9f 12
+    mov bx, ax                                ; 89 c3
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 003h                              ; c1 e7 03
+    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
+    jne short 01f49h                          ; 75 52
+    mov ax, bx                                ; 89 d8
+    mul word [bp-018h]                        ; f7 66 e8
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    inc ax                                    ; 40
+    mul cx                                    ; f7 e1
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    mul bx                                    ; f7 e3
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dx, ax                                ; 89 c2
+    add dx, bx                                ; 01 da
+    add dx, dx                                ; 01 d2
+    add dx, cx                                ; 01 ca
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 008h                              ; c1 e3 08
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add bx, ax                                ; 01 c3
+    mov word [bp-01ah], bx                    ; 89 5e e6
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, si                                ; 89 f1
+    mov di, dx                                ; 89 d7
+    cld                                       ; fc
+    jcxz 01f46h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp near 02004h                           ; e9 bb 00
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    mov bx, ax                                ; 89 c3
+    sal bx, 006h                              ; c1 e3 06
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov al, byte [di+04632h]                  ; 8a 85 32 46
+    mov byte [bp-010h], al                    ; 88 46 f0
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 01f72h                           ; 74 0a
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01f75h                           ; 72 03
+    jmp near 02004h                           ; e9 8f 00
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov bx, ax                                ; 89 c3
+    sal bx, 003h                              ; c1 e3 03
+    mov al, byte [bx+04631h]                  ; 8a 87 31 46
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 01f91h                           ; 72 0c
+    jbe short 01f97h                          ; 76 10
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 01fe5h                           ; 74 5a
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 01f97h                           ; 74 08
+    jmp short 01ffeh                          ; eb 6d
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 01fc0h                           ; 74 2b
+    jmp short 01ffeh                          ; eb 67
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    push bx                                   ; 53
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    mov cx, bx                                ; 89 d9
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov di, bx                                ; 89 df
+    mov bx, dx                                ; 89 d3
+    mov dx, ax                                ; 89 c2
+    mov ax, di                                ; 89 f8
+    call 01ba1h                               ; e8 e3 fb
+    jmp short 01ffeh                          ; eb 3e
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    push ax                                   ; 50
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov di, bx                                ; 89 df
+    mov bx, ax                                ; 89 c3
+    mov ax, di                                ; 89 f8
+    call 01c9ch                               ; e8 b9 fc
+    jmp short 01ffeh                          ; eb 19
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    push ax                                   ; 50
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    xor bh, bh                                ; 30 ff
+    mov cx, bx                                ; 89 d9
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    call 01dd4h                               ; e8 d6 fd
+    inc byte [bp-006h]                        ; fe 46 fa
+    jmp near 01f62h                           ; e9 5e ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_char_only_:                     ; 0xc200b LB 0x196
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ah                ; 83 ec 1a
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-010h], bl                    ; 88 5e f0
+    mov si, cx                                ; 89 ce
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 3e 11
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 0313dh                               ; e8 0d 11
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0203dh                          ; 75 03
+    jmp near 0219ah                           ; e9 5d 01
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov ax, bx                                ; 89 d8
+    lea bx, [bp-01eh]                         ; 8d 5e e2
+    lea dx, [bp-01ch]                         ; 8d 56 e4
+    call 00a8bh                               ; e8 40 ea
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    mov byte [bp-014h], al                    ; 88 46 ec
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 00 11
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    inc bx                                    ; 43
+    mov word [bp-01ah], bx                    ; 89 5e e6
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 0b 11
+    mov cx, ax                                ; 89 c1
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov di, bx                                ; 89 df
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 020d3h                          ; 75 47
+    mul word [bp-01ah]                        ; f7 66 e6
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    xor bh, bh                                ; 30 ff
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov di, ax                                ; 89 c7
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    mov ax, bx                                ; 89 d8
+    mul cx                                    ; f7 e1
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    add ax, bx                                ; 01 d8
+    add ax, ax                                ; 01 c0
+    mov cx, di                                ; 89 f9
+    add cx, ax                                ; 01 c1
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 0203ah                           ; 74 85
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov bx, ax                                ; 89 c3
+    sal bx, 003h                              ; c1 e3 03
+    mov ax, word [bx+04633h]                  ; 8b 87 33 46
+    mov bx, dx                                ; 89 d3
+    mov dx, cx                                ; 89 ca
+    call 03173h                               ; e8 a4 10
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 020afh                          ; eb dc
+    mov al, byte [di+046afh]                  ; 8a 85 af 46
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 006h                              ; c1 e7 06
+    mov al, byte [di+046c5h]                  ; 8a 85 c5 46
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+04632h]                  ; 8a 87 32 46
+    mov byte [bp-016h], al                    ; 88 46 ea
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 0214ah                           ; 74 58
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-018h]                    ; 3b 46 e8
+    jnc short 0214ah                          ; 73 4e
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov bx, ax                                ; 89 c3
+    sal bx, 003h                              ; c1 e3 03
+    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    cmp bl, 003h                              ; 80 fb 03
+    jc short 0211ch                           ; 72 0f
+    jbe short 02123h                          ; 76 14
+    cmp bl, 005h                              ; 80 fb 05
+    je short 02173h                           ; 74 5f
+    cmp bl, 004h                              ; 80 fb 04
+    je short 02123h                           ; 74 0a
+    jmp near 02194h                           ; e9 78 00
+    cmp bl, 002h                              ; 80 fb 02
+    je short 0214ch                           ; 74 2b
+    jmp short 02194h                          ; eb 71
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov cx, bx                                ; 89 d9
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov dx, bx                                ; 89 da
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    mov di, bx                                ; 89 df
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov bx, dx                                ; 89 d3
+    mov dx, di                                ; 89 fa
+    call 01ba1h                               ; e8 59 fa
+    jmp short 02194h                          ; eb 4a
+    jmp short 0219ah                          ; eb 4e
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    push ax                                   ; 50
+    mov bl, byte [bp-018h]                    ; 8a 5e e8
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    mov cx, bx                                ; 89 d9
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov ax, bx                                ; 89 d8
+    mov dl, byte [bp-010h]                    ; 8a 56 f0
+    xor dh, dh                                ; 30 f6
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov di, bx                                ; 89 df
+    mov bx, ax                                ; 89 c3
+    mov ax, di                                ; 89 f8
+    call 01c9ch                               ; e8 2b fb
+    jmp short 02194h                          ; eb 21
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov cx, bx                                ; 89 d9
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov dx, bx                                ; 89 da
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov di, ax                                ; 89 c7
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov ax, bx                                ; 89 d8
+    mov bx, dx                                ; 89 d3
+    mov dx, di                                ; 89 fa
+    call 01dd4h                               ; e8 40 fc
+    inc byte [bp-014h]                        ; fe 46 ec
+    jmp near 020ech                           ; e9 52 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_pixel_:                         ; 0xc21a1 LB 0x17b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 ae 0f
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 0313dh                               ; e8 7d 0f
+    mov byte [bp-004h], al                    ; 88 46 fc
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 021edh                           ; 74 26
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    je short 021edh                           ; 74 18
+    mov al, byte [bx+04631h]                  ; 8a 87 31 46
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 021e9h                           ; 72 0c
+    jbe short 021f3h                          ; 76 14
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 021f0h                           ; 74 0d
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 021f3h                           ; 74 0c
+    jmp short 021edh                          ; eb 04
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 02260h                           ; 74 73
+    jmp near 022efh                           ; e9 ff 00
+    jmp near 022f5h                           ; e9 02 01
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 85 0f
+    mov bx, ax                                ; 89 c3
+    mov ax, cx                                ; 89 c8
+    mul bx                                    ; f7 e3
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    shr bx, 003h                              ; c1 eb 03
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov cx, word [bp-00ah]                    ; 8b 4e f6
+    and cl, 007h                              ; 80 e1 07
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 008h                   ; 0c 08
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, 00205h                            ; b8 05 02
+    out DX, ax                                ; ef
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03165h                               ; e8 31 0f
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 02241h                           ; 74 07
+    mov ax, 01803h                            ; b8 03 18
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0a000h                            ; b8 00 a0
+    call 03173h                               ; e8 24 0f
+    mov ax, 0ff08h                            ; b8 08 ff
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    jmp short 021edh                          ; eb 8d
+    mov ax, cx                                ; 89 c8
+    shr ax, 1                                 ; d1 e8
+    imul ax, ax, strict byte 00050h           ; 6b c0 50
+    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    jne short 02276h                          ; 75 08
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    shr bx, 002h                              ; c1 eb 02
+    jmp short 0227ch                          ; eb 06
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    shr bx, 003h                              ; c1 eb 03
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    test cl, 001h                             ; f6 c1 01
+    je short 0228ah                           ; 74 04
+    add byte [bp-007h], 020h                  ; 80 46 f9 20
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03165h                               ; e8 d2 0e
+    mov bl, al                                ; 88 c3
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 003h                              ; c1 e6 03
+    cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
+    jne short 022bfh                          ; 75 19
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    and AL, strict byte 003h                  ; 24 03
+    mov AH, strict byte 003h                  ; b4 03
+    sub ah, al                                ; 28 c4
+    mov cl, ah                                ; 88 e1
+    add cl, ah                                ; 00 e1
+    mov bh, byte [bp-006h]                    ; 8a 7e fa
+    and bh, 003h                              ; 80 e7 03
+    sal bh, CL                                ; d2 e7
+    mov AL, strict byte 003h                  ; b0 03
+    jmp short 022d2h                          ; eb 13
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    and AL, strict byte 007h                  ; 24 07
+    mov CL, strict byte 007h                  ; b1 07
+    sub cl, al                                ; 28 c1
+    mov bh, byte [bp-006h]                    ; 8a 7e fa
+    and bh, 001h                              ; 80 e7 01
+    sal bh, CL                                ; d2 e7
+    mov AL, strict byte 001h                  ; b0 01
+    sal al, CL                                ; d2 e0
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 022deh                           ; 74 04
+    xor bl, bh                                ; 30 fb
+    jmp short 022e4h                          ; eb 06
+    not al                                    ; f6 d0
+    and bl, al                                ; 20 c3
+    or bl, bh                                 ; 08 fb
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0b800h                            ; b8 00 b8
+    call 03173h                               ; e8 84 0e
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 83 0e
+    mov bx, ax                                ; 89 c3
+    sal bx, 003h                              ; c1 e3 03
+    mov ax, cx                                ; 89 c8
+    mul bx                                    ; f7 e3
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0a000h                            ; b8 00 a0
+    jmp short 022ech                          ; eb d0
+biosfn_write_teletype_:                      ; 0xc231c LB 0x26f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ah                ; 83 ec 1a
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-016h], dl                    ; 88 56 ea
+    mov byte [bp-010h], bl                    ; 88 5e f0
+    mov byte [bp-014h], cl                    ; 88 4e ec
+    cmp dl, 0ffh                              ; 80 fa ff
+    jne short 02341h                          ; 75 0c
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 27 0e
+    mov byte [bp-016h], al                    ; 88 46 ea
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 1b 0e
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 0313dh                               ; e8 ea 0d
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 023c2h                           ; 74 68
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    mov ax, bx                                ; 89 d8
+    lea bx, [bp-01eh]                         ; 8d 5e e2
+    lea dx, [bp-01ch]                         ; 8d 56 e4
+    call 00a8bh                               ; e8 23 e7
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 e3 0d
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    inc bx                                    ; 43
+    mov word [bp-01ah], bx                    ; 89 5e e6
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 ee 0d
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 023a9h                           ; 72 0c
+    jbe short 023b0h                          ; 76 11
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    je short 023bbh                           ; 74 18
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 023c5h                           ; 74 1e
+    jmp short 023c8h                          ; eb 1f
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 023c8h                          ; 75 1b
+    jmp near 024d0h                           ; e9 20 01
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jbe short 023bfh                          ; 76 09
+    dec byte [bp-00ch]                        ; fe 4e f4
+    jmp short 023bfh                          ; eb 04
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    jmp near 024d0h                           ; e9 0e 01
+    jmp near 02584h                           ; e9 bf 01
+    jmp near 024cdh                           ; e9 05 01
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 02427h                          ; 75 4e
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mul word [bp-01ah]                        ; f7 66 e6
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov ax, bx                                ; 89 d8
+    mul word [bp-018h]                        ; f7 66 e8
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    add ax, bx                                ; 01 d8
+    add ax, ax                                ; 01 c0
+    add cx, ax                                ; 01 c1
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov dx, cx                                ; 89 ca
+    call 03173h                               ; e8 63 0d
+    cmp byte [bp-014h], 003h                  ; 80 7e ec 03
+    jne short 02470h                          ; 75 5a
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    inc dx                                    ; 42
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    call 03173h                               ; e8 4e 0d
+    jmp short 02470h                          ; eb 49
+    mov bl, byte [bx+046afh]                  ; 8a 9f af 46
+    sal bx, 006h                              ; c1 e3 06
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov ah, byte [si+04632h]                  ; 8a a4 32 46
+    mov cl, byte [si+04631h]                  ; 8a 8c 31 46
+    cmp cl, 003h                              ; 80 f9 03
+    jc short 0244dh                           ; 72 0e
+    jbe short 02454h                          ; 76 13
+    cmp cl, 005h                              ; 80 f9 05
+    je short 0249ah                           ; 74 54
+    cmp cl, 004h                              ; 80 f9 04
+    je short 02454h                           ; 74 09
+    jmp short 024bdh                          ; eb 70
+    cmp cl, 002h                              ; 80 f9 02
+    je short 02472h                           ; 74 20
+    jmp short 024bdh                          ; eb 69
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov bx, ax                                ; 89 c3
+    mov dl, byte [bp-010h]                    ; 8a 56 f0
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    call 01ba1h                               ; e8 31 f7
+    jmp short 024bdh                          ; eb 4b
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov si, ax                                ; 89 c6
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov di, bx                                ; 89 df
+    mov bx, si                                ; 89 f3
+    mov dx, ax                                ; 89 c2
+    mov ax, di                                ; 89 f8
+    call 01c9ch                               ; e8 04 f8
+    jmp short 024bdh                          ; eb 23
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov cx, bx                                ; 89 d9
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    mov ax, bx                                ; 89 d8
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    mov dx, bx                                ; 89 da
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    mov si, bx                                ; 89 de
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 01dd4h                               ; e8 17 f9
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    cmp bx, word [bp-018h]                    ; 3b 5e e8
+    jne short 024d0h                          ; 75 06
+    mov byte [bp-00ch], bh                    ; 88 7e f4
+    inc byte [bp-006h]                        ; fe 46 fa
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    cmp bx, ax                                ; 39 c3
+    jne short 02547h                          ; 75 6b
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, ah                                ; 30 e7
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 02549h                          ; 75 4c
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mul word [bp-01ah]                        ; f7 66 e6
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dl, byte [bp-016h]                    ; 8a 56 ea
+    xor dh, dh                                ; 30 f6
+    inc ax                                    ; 40
+    mul dx                                    ; f7 e2
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    lea ax, [bx-001h]                         ; 8d 47 ff
+    mul word [bp-018h]                        ; f7 66 e8
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    add ax, bx                                ; 01 d8
+    add ax, ax                                ; 01 c0
+    mov dx, cx                                ; 89 ca
+    add dx, ax                                ; 01 c2
+    inc dx                                    ; 42
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    call 03165h                               ; e8 36 0c
+    push strict byte 00001h                   ; 6a 01
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    push bx                                   ; 53
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    push bx                                   ; 53
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    push bx                                   ; 53
+    mov bl, al                                ; 88 c3
+    mov dx, bx                                ; 89 da
+    xor cx, cx                                ; 31 c9
+    xor bl, al                                ; 30 c3
+    jmp short 0255eh                          ; eb 17
+    jmp short 02567h                          ; eb 1e
+    push strict byte 00001h                   ; 6a 01
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, al                                ; 88 c3
+    push bx                                   ; 53
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    push bx                                   ; 53
+    xor cx, cx                                ; 31 c9
+    xor bl, bl                                ; 30 db
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 01647h                               ; e8 e3 f0
+    dec byte [bp-006h]                        ; fe 4e fa
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov word [bp-01eh], bx                    ; 89 5e e2
+    sal word [bp-01eh], 008h                  ; c1 66 e2 08
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    add word [bp-01eh], bx                    ; 01 5e e2
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    mov ax, bx                                ; 89 d8
+    call 00e79h                               ; e8 f5 e8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_font_access_:                            ; 0xc258b LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, 00100h                            ; b8 00 01
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00402h                            ; b8 02 04
+    out DX, ax                                ; ef
+    mov ax, 00704h                            ; b8 04 07
+    out DX, ax                                ; ef
+    mov ax, 00300h                            ; b8 00 03
+    out DX, ax                                ; ef
+    mov ax, 00204h                            ; b8 04 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, 00406h                            ; b8 06 04
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+release_font_access_:                        ; 0xc25b7 LB 0x3c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, 00100h                            ; b8 00 01
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00302h                            ; b8 02 03
+    out DX, ax                                ; ef
+    mov ax, 00304h                            ; b8 04 03
+    out DX, ax                                ; ef
+    mov ax, 00300h                            ; b8 00 03
+    out DX, ax                                ; ef
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00001h                ; 25 01 00
+    sal ax, 002h                              ; c1 e0 02
+    or AL, strict byte 00ah                   ; 0c 0a
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 006h                   ; 0c 06
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00004h                ; b8 04 00
+    out DX, ax                                ; ef
+    mov ax, 01005h                            ; b8 05 10
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_scan_lines_:                             ; 0xc25f3 LB 0xc2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 7b 0b
+    mov dx, ax                                ; 89 c2
+    mov si, ax                                ; 89 c6
+    mov AL, strict byte 009h                  ; b0 09
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ah, al                                ; 88 c4
+    and ah, 0e0h                              ; 80 e4 e0
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    or al, ah                                 ; 08 e0
+    out DX, AL                                ; ee
+    cmp bl, 008h                              ; 80 fb 08
+    jne short 0262ah                          ; 75 08
+    mov dx, strict word 00007h                ; ba 07 00
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp short 02637h                          ; eb 0d
+    mov dl, bl                                ; 88 da
+    sub dl, 003h                              ; 80 ea 03
+    xor dh, dh                                ; 30 f6
+    mov al, bl                                ; 88 d8
+    sub AL, strict byte 004h                  ; 2c 04
+    xor ah, ah                                ; 30 e4
+    call 00dcbh                               ; e8 91 e7
+    mov cl, bl                                ; 88 d9
+    xor ch, ch                                ; 30 ed
+    mov bx, cx                                ; 89 cb
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 46 0b
+    mov AL, strict byte 012h                  ; b0 12
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea bx, [si+001h]                         ; 8d 5c 01
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov di, ax                                ; 89 c7
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    and dl, 002h                              ; 80 e2 02
+    xor dh, bh                                ; 30 fe
+    sal dx, 007h                              ; c1 e2 07
+    and AL, strict byte 040h                  ; 24 40
+    xor ah, ah                                ; 30 e4
+    sal ax, 003h                              ; c1 e0 03
+    add ax, dx                                ; 01 d0
+    inc ax                                    ; 40
+    add ax, di                                ; 01 f8
+    xor dx, dx                                ; 31 d2
+    div cx                                    ; f7 f1
+    mov cx, ax                                ; 89 c1
+    mov bl, al                                ; 88 c3
+    db  0feh, 0cbh
+    ; dec bl                                    ; fe cb
+    xor bh, bh                                ; 30 ff
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 e6 0a
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 eb 0a
+    mov dx, ax                                ; 89 c2
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mul dx                                    ; f7 e2
+    mov bx, ax                                ; 89 c3
+    add bx, ax                                ; 01 c3
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 e4 0a
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_user_pat_:                  ; 0xc26b5 LB 0x80
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00eh], cx                    ; 89 4e f2
+    call 0258bh                               ; e8 bf fe
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    and AL, strict byte 004h                  ; 24 04
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    xor bx, bx                                ; 31 db
+    cmp bx, word [bp-00eh]                    ; 3b 5e f2
+    jnc short 0271bh                          ; 73 2f
+    mov cl, byte [bp+008h]                    ; 8a 4e 08
+    xor ch, ch                                ; 30 ed
+    mov ax, bx                                ; 89 d8
+    mul cx                                    ; f7 e1
+    mov si, word [bp-00ah]                    ; 8b 76 f6
+    add si, ax                                ; 01 c6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    add ax, bx                                ; 01 d8
+    sal ax, 005h                              ; c1 e0 05
+    mov di, word [bp-008h]                    ; 8b 7e f8
+    add di, ax                                ; 01 c7
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 02718h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 026e7h                          ; eb cc
+    call 025b7h                               ; e8 99 fe
+    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
+    jc short 0272ch                           ; 72 08
+    mov al, byte [bp+008h]                    ; 8a 46 08
+    xor ah, ah                                ; 30 e4
+    call 025f3h                               ; e8 c7 fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00006h                               ; c2 06 00
+biosfn_load_text_8_14_pat_:                  ; 0xc2735 LB 0x6e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 0258bh                               ; e8 47 fe
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 02765h                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 0278bh                          ; 73 26
+    imul si, bx, strict byte 0000eh           ; 6b f3 0e
+    mov di, bx                                ; 89 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 05bedh                            ; 81 c6 ed 5b
+    mov cx, strict word 0000eh                ; b9 0e 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 02788h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 0275fh                          ; eb d4
+    call 025b7h                               ; e8 29 fe
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 0279ah                           ; 72 06
+    mov ax, strict word 0000eh                ; b8 0e 00
+    call 025f3h                               ; e8 59 fe
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_8_8_pat_:                   ; 0xc27a3 LB 0x70
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 0258bh                               ; e8 d9 fd
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 027d3h                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 027fbh                          ; 73 28
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    mov di, bx                                ; 89 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 053edh                            ; 81 c6 ed 53
+    mov cx, strict word 00008h                ; b9 08 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 027f8h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 027cdh                          ; eb d2
+    call 025b7h                               ; e8 b9 fd
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 0280ah                           ; 72 06
+    mov ax, strict word 00008h                ; b8 08 00
+    call 025f3h                               ; e8 e9 fd
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_8_16_pat_:                  ; 0xc2813 LB 0x70
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 0258bh                               ; e8 69 fd
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 02843h                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 0286bh                          ; 73 28
+    mov si, bx                                ; 89 de
+    sal si, 004h                              ; c1 e6 04
+    mov di, bx                                ; 89 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 069edh                            ; 81 c6 ed 69
+    mov cx, strict word 00010h                ; b9 10 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 02868h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 0283dh                          ; eb d2
+    call 025b7h                               ; e8 49 fd
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 0287ah                           ; 72 06
+    mov ax, strict word 00010h                ; b8 10 00
+    call 025f3h                               ; e8 79 fd
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_8_chars_:                  ; 0xc2883 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_user_chars_:                 ; 0xc2888 LB 0x7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+biosfn_load_gfx_8_14_chars_:                 ; 0xc288f LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_8_dd_chars_:               ; 0xc2894 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_16_chars_:                 ; 0xc2899 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_alternate_prtsc_:                     ; 0xc289e LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_switch_video_interface_:              ; 0xc28a3 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_enable_video_refresh_control_:        ; 0xc28a8 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_string_:                        ; 0xc28ad LB 0xa2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    mov si, cx                                ; 89 ce
+    mov di, word [bp+00ah]                    ; 8b 7e 0a
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-00eh]                         ; 8d 5e f2
+    lea dx, [bp-00ch]                         ; 8d 56 f4
+    call 00a8bh                               ; e8 bb e1
+    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
+    jne short 028e7h                          ; 75 11
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [bp+006h], al                    ; 88 46 06
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp+004h], al                    ; 88 46 04
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    xor dh, dh                                ; 30 f6
+    sal dx, 008h                              ; c1 e2 08
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    call 00e79h                               ; e8 7d e5
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 02935h                           ; 74 33
+    mov dx, di                                ; 89 fa
+    inc di                                    ; 47
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    call 03165h                               ; e8 5a 08
+    mov cl, al                                ; 88 c1
+    test byte [bp-006h], 002h                 ; f6 46 fa 02
+    je short 0291fh                           ; 74 0c
+    mov dx, di                                ; 89 fa
+    inc di                                    ; 47
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    call 03165h                               ; e8 49 08
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, ax                                ; 89 c2
+    mov al, cl                                ; 88 c8
+    mov cx, strict word 00003h                ; b9 03 00
+    call 0231ch                               ; e8 e9 f9
+    jmp short 028fch                          ; eb c7
+    test byte [bp-006h], 001h                 ; f6 46 fa 01
+    jne short 02946h                          ; 75 0b
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    call 00e79h                               ; e8 33 e5
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00008h                               ; c2 08 00
+biosfn_read_state_info_:                     ; 0xc294f LB 0x102
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push dx                                   ; 52
+    push bx                                   ; 53
+    mov cx, ds                                ; 8c d9
+    mov bx, 05383h                            ; bb 83 53
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031afh                               ; e8 4a 08
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov si, strict word 00049h                ; be 49 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 02980h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00022h                ; 83 c7 22
+    mov cx, strict word 00003h                ; b9 03 00
+    mov si, 00084h                            ; be 84 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 0299bh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov dx, 0008ah                            ; ba 8a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 c1 07
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00025h                ; 83 c2 25
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 bf 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00026h                ; 83 c2 26
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 b1 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00027h                ; 83 c2 27
+    mov bx, strict word 00010h                ; bb 10 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 a2 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00028h                ; 83 c2 28
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 94 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00029h                ; 83 c2 29
+    mov bx, strict word 00008h                ; bb 08 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 85 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov bx, strict word 00002h                ; bb 02 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 76 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002bh                ; 83 c2 2b
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 68 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002ch                ; 83 c2 2c
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 5a 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00031h                ; 83 c2 31
+    mov bx, strict word 00003h                ; bb 03 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 4b 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00032h                ; 83 c2 32
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 03173h                               ; e8 3d 07
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00033h                ; 83 c7 33
+    mov cx, strict word 0000dh                ; b9 0d 00
+    xor ax, ax                                ; 31 c0
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 02a49h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_read_video_state_size2_:              ; 0xc2a51 LB 0x23
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, ax                                ; 89 c2
+    xor ax, ax                                ; 31 c0
+    test dl, 001h                             ; f6 c2 01
+    je short 02a61h                           ; 74 03
+    mov ax, strict word 00046h                ; b8 46 00
+    test dl, 002h                             ; f6 c2 02
+    je short 02a69h                           ; 74 03
+    add ax, strict word 0002ah                ; 05 2a 00
+    test dl, 004h                             ; f6 c2 04
+    je short 02a71h                           ; 74 03
+    add ax, 00304h                            ; 05 04 03
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    retn                                      ; c3
+vga_get_video_state_size_:                   ; 0xc2a74 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, dx                                ; 89 d3
+    call 02a51h                               ; e8 d4 ff
+    mov word [ss:bx], ax                      ; 36 89 07
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_save_video_state_:                    ; 0xc2a86 LB 0x381
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov cx, bx                                ; 89 d9
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 e5 06
+    mov di, ax                                ; 89 c7
+    test byte [bp-00ch], 001h                 ; f6 46 f4 01
+    je short 02b12h                           ; 74 6e
+    mov dx, 003c4h                            ; ba c4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 be 06
+    inc cx                                    ; 41
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 ad 06
+    inc cx                                    ; 41
+    mov dx, 003ceh                            ; ba ce 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 9b 06
+    inc cx                                    ; 41
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, 003c0h                            ; ba c0 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 7d 06
+    inc cx                                    ; 41
+    mov dx, 003cah                            ; ba ca 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 6b 06
+    mov ax, strict word 00001h                ; b8 01 00
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    add cx, ax                                ; 01 c1
+    jmp short 02b1bh                          ; eb 09
+    jmp near 02c16h                           ; e9 01 01
+    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
+    jnbe short 02b39h                         ; 77 1e
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 40 06
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02b15h                          ; eb dc
+    xor al, al                                ; 30 c0
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 23 06
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    jmp short 02b5eh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
+    jnbe short 02b7bh                         ; 77 1d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    lea dx, [di+001h]                         ; 8d 55 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 fe 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02b58h                          ; eb dd
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02b88h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
+    jnbe short 02bb2h                         ; 77 2a
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    and ax, strict word 00020h                ; 25 20 00
+    or ax, word [bp-00ah]                     ; 0b 46 f6
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 c7 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02b82h                          ; eb d0
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02bc5h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnbe short 02be3h                         ; 77 1e
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov dx, 003cfh                            ; ba cf 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 96 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02bbfh                          ; eb dc
+    mov bx, di                                ; 89 fb
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 a3 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 7c 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 72 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 68 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 5e 05
+    inc cx                                    ; 41
+    test byte [bp-00ch], 002h                 ; f6 46 f4 02
+    jne short 02c1fh                          ; 75 03
+    jmp near 02d8ch                           ; e9 6d 01
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 3d 05
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 40 05
+    inc cx                                    ; 41
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 44 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 49 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 30 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 35 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 1c 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 21 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 ec 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 ef 04
+    inc cx                                    ; 41
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 f3 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 f8 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 c3 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 c6 04
+    inc cx                                    ; 41
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 ae 04
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 b1 04
+    inc cx                                    ; 41
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 99 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 9c 04
+    inc cx                                    ; 41
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 a0 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 a5 04
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 02cf9h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnc short 02d17h                          ; 73 1e
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 7a 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 7f 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02cf3h                          ; eb dc
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03181h                               ; e8 61 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 66 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03165h                               ; e8 31 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 34 04
+    inc cx                                    ; 41
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 03181h                               ; e8 39 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 3e 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 0007eh                ; ba 7e 00
+    xor ax, ax                                ; 31 c0
+    call 03181h                               ; e8 26 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 2b 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 0010ch                            ; ba 0c 01
+    xor ax, ax                                ; 31 c0
+    call 03181h                               ; e8 13 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 18 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 0010eh                            ; ba 0e 01
+    xor ax, ax                                ; 31 c0
+    call 03181h                               ; e8 00 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 05 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00ch], 004h                 ; f6 46 f4 04
+    je short 02dfdh                           ; 74 6b
+    mov dx, 003c7h                            ; ba c7 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 d0 03
+    inc cx                                    ; 41
+    mov dx, 003c8h                            ; ba c8 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 be 03
+    inc cx                                    ; 41
+    mov dx, 003c6h                            ; ba c6 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 ac 03
+    inc cx                                    ; 41
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    jmp short 02ddch                          ; eb 07
+    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
+    jnc short 02df3h                          ; 73 17
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 86 03
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02dd5h                          ; eb e2
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 77 03
+    inc cx                                    ; 41
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_restore_video_state_:                 ; 0xc2e07 LB 0x336
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov cx, bx                                ; 89 d9
+    test byte [bp-00eh], 001h                 ; f6 46 f2 01
+    je short 02e72h                           ; 74 57
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea dx, [bx+040h]                         ; 8d 57 40
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 58 03
+    mov di, ax                                ; 89 c7
+    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
+    lea cx, [bx+005h]                         ; 8d 4f 05
+    jmp short 02e3bh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
+    jnbe short 02e53h                         ; 77 18
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 1c 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02e35h                          ; eb e2
+    xor al, al                                ; 30 c0
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 05 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    mov ax, strict word 00011h                ; b8 11 00
+    mov dx, di                                ; 89 fa
+    out DX, ax                                ; ef
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02e7bh                          ; eb 09
+    jmp near 02f68h                           ; e9 f3 00
+    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
+    jnbe short 02e98h                         ; 77 1d
+    cmp word [bp-00ah], strict byte 00011h    ; 83 7e f6 11
+    je short 02e92h                           ; 74 11
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 d7 02
+    lea dx, [di+001h]                         ; 8d 55 01
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02e75h                          ; eb dd
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    cmp di, 003d4h                            ; 81 ff d4 03
+    jne short 02eadh                          ; 75 04
+    or byte [bp-008h], 001h                   ; 80 4e f8 01
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 0fff9h                ; 83 c2 f9
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 a2 02
+    lea dx, [di+001h]                         ; 8d 55 01
+    out DX, AL                                ; ee
+    lea dx, [bx+003h]                         ; 8d 57 03
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 96 02
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02ee7h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
+    jnbe short 02f05h                         ; 77 1e
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    and ax, strict word 00020h                ; 25 20 00
+    or ax, word [bp-00ah]                     ; 0b 46 f6
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 6a 02
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02ee1h                          ; eb dc
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02f1fh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnbe short 02f37h                         ; 77 18
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 38 02
+    mov dx, 003cfh                            ; ba cf 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02f19h                          ; eb e2
+    add cx, strict byte 00006h                ; 83 c1 06
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 24 02
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 18 02
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 0d 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 01 02
+    lea dx, [di+006h]                         ; 8d 55 06
+    out DX, AL                                ; ee
+    test byte [bp-00eh], 002h                 ; f6 46 f2 02
+    jne short 02f71h                          ; 75 03
+    jmp near 030e6h                           ; e9 75 01
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 ed 01
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 ee 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 f4 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 f7 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 e0 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 e3 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 cc 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 cf 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 9c 01
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 9d 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 a3 01
+    mov bx, ax                                ; 89 c3
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 a6 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 73 01
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 72 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 5c 01
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 5b 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 45 01
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 44 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 4a 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 4d 01
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 03051h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnc short 0306fh                          ; 73 1e
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 29 01
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 27 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 0304bh                          ; eb dc
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 0b 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 0e 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 db 00
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 da 00
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 e0 00
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 0318fh                               ; e8 e4 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 cd 00
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0007eh                ; ba 7e 00
+    xor ax, ax                                ; 31 c0
+    call 0318fh                               ; e8 d1 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 ba 00
+    mov bx, ax                                ; 89 c3
+    mov dx, 0010ch                            ; ba 0c 01
+    xor ax, ax                                ; 31 c0
+    call 0318fh                               ; e8 be 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03181h                               ; e8 a7 00
+    mov bx, ax                                ; 89 c3
+    mov dx, 0010eh                            ; ba 0e 01
+    xor ax, ax                                ; 31 c0
+    call 0318fh                               ; e8 ab 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00eh], 004h                 ; f6 46 f2 04
+    je short 03133h                           ; 74 47
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 71 00
+    xor ah, ah                                ; 30 e4
+    mov word [bp-008h], ax                    ; 89 46 f8
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 64 00
+    mov dx, 003c6h                            ; ba c6 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    jmp short 0311ah                          ; eb 07
+    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
+    jnc short 0312bh                          ; 73 11
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 44 00
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 03113h                          ; eb e8
+    inc cx                                    ; 41
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+find_vga_entry_:                             ; 0xc313d LB 0x28
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dl, al                                ; 88 c2
+    mov AH, strict byte 0ffh                  ; b4 ff
+    xor al, al                                ; 30 c0
+    jmp short 03150h                          ; eb 06
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jnbe short 0315fh                         ; 77 0f
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    sal bx, 003h                              ; c1 e3 03
+    cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
+    jne short 0314ah                          ; 75 ed
+    mov ah, al                                ; 88 c4
+    mov al, ah                                ; 88 e0
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+read_byte_:                                  ; 0xc3165 LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx]                      ; 26 8a 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_byte_:                                 ; 0xc3173 LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov byte [es:si], bl                      ; 26 88 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_word_:                                  ; 0xc3181 LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_word_:                                 ; 0xc318f LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_dword_:                                 ; 0xc319d LB 0x12
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_dword_:                                ; 0xc31af LB 0x7f
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+    dec di                                    ; 4f
+    sbb AL, strict byte 01bh                  ; 1c 1b
+    adc dx, word [bp+si]                      ; 13 12
+    adc word [bx+si], dx                      ; 11 10
+    push CS                                   ; 0e
+    or ax, 00a0ch                             ; 0d 0c 0a
+    or word [bx+si], cx                       ; 09 08
+    pop ES                                    ; 07
+    push ES                                   ; 06
+    add ax, 00304h                            ; 05 04 03
+    add al, byte [bx+di]                      ; 02 01
+    add cl, dl                                ; 00 d1
+    xor ax, 0325ah                            ; 35 5a 32
+    xchg di, ax                               ; 97
+    xor ch, byte [si-043ceh]                  ; 32 ac 32 bc
+    db  032h, 0cfh
+    ; xor cl, bh                                ; 32 cf
+    db  032h, 0dfh
+    ; xor bl, bh                                ; 32 df
+    db  032h, 0e8h
+    ; xor ch, al                                ; 32 e8
+    xor ah, byte [bx+si]                      ; 32 20
+    xor sp, word [si]                         ; 33 24
+    xor si, word [di]                         ; 33 35
+    xor dx, word [bp+si+033h]                 ; 33 52 33
+    outsw                                     ; 6f
+    xor dx, word [bx+si-052cdh]               ; 33 90 33 ad
+    db  033h, 0c3h
+    ; xor ax, bx                                ; 33 c3
+    db  033h, 0cfh
+    ; xor cx, di                                ; 33 cf
+    xor bx, word [bx+di-031cch]               ; 33 99 34 ce
+    xor AL, strict byte 0fdh                  ; 34 fd
+    xor AL, strict byte 012h                  ; 34 12
+    xor ax, 03554h                            ; 35 54 35
+    xor byte [si], ah                         ; 30 24
+    and sp, word [bp+si]                      ; 23 22
+    and word [bx+si], sp                      ; 21 20
+    adc AL, strict byte 012h                  ; 14 12
+    adc word [bx+si], dx                      ; 11 10
+    add AL, strict byte 002h                  ; 04 02
+    add word [bx+si], ax                      ; 01 00
+    db  0d1h, 035h
+    ; sal word [di], 1                          ; d1 35
+    out DX, AL                                ; ee
+    xor cx, word [bx]                         ; 33 0f
+    xor AL, strict byte 01eh                  ; 34 1e
+    xor AL, strict byte 02dh                  ; 34 2d
+    xor AL, strict byte 0eeh                  ; 34 ee
+    xor cx, word [bx]                         ; 33 0f
+    xor AL, strict byte 01eh                  ; 34 1e
+    xor AL, strict byte 02dh                  ; 34 2d
+    xor AL, strict byte 03ch                  ; 34 3c
+    xor AL, strict byte 048h                  ; 34 48
+    xor AL, strict byte 063h                  ; 34 63
+    xor AL, strict byte 06dh                  ; 34 6d
+    xor AL, strict byte 077h                  ; 34 77
+    xor AL, strict byte 081h                  ; 34 81
+    db  034h
+_int10_func:                                 ; 0xc322e LB 0x3aa
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    jnbe short 032a9h                         ; 77 67
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00016h                ; b9 16 00
+    mov di, 031c1h                            ; bf c1 31
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+031d6h]               ; 2e 8b 85 d6 31
+    mov cl, byte [bp+012h]                    ; 8a 4e 12
+    jmp ax                                    ; ff e0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 0101ch                               ; e8 ba dd
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    and ax, strict word 0007fh                ; 25 7f 00
+    cmp ax, strict word 00007h                ; 3d 07 00
+    je short 03282h                           ; 74 15
+    cmp ax, strict word 00006h                ; 3d 06 00
+    je short 03279h                           ; 74 07
+    cmp ax, strict word 00005h                ; 3d 05 00
+    jbe short 03282h                          ; 76 0b
+    jmp short 0328bh                          ; eb 12
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 03fh                   ; 0c 3f
+    jmp short 03292h                          ; eb 10
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 030h                   ; 0c 30
+    jmp short 03292h                          ; eb 07
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 020h                   ; 0c 20
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp short 032a9h                          ; eb 12
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00dcbh                               ; e8 22 db
+    jmp near 035d1h                           ; e9 25 03
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00e79h                               ; e8 bf db
+    jmp short 032a9h                          ; eb ed
+    lea bx, [bp+00eh]                         ; 8d 5e 0e
+    lea dx, [bp+010h]                         ; 8d 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00a8bh                               ; e8 be d7
+    jmp short 032a9h                          ; eb da
+    xor ax, ax                                ; 31 c0
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    jmp short 032a9h                          ; eb ca
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 00f2eh                               ; e8 48 dc
+    jmp short 032a9h                          ; eb c1
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov ax, 000ffh                            ; b8 ff 00
+    push ax                                   ; 50
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    mov cx, ax                                ; 89 c1
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 01647h                               ; e8 29 e3
+    jmp short 032a9h                          ; eb 89
+    xor ax, ax                                ; 31 c0
+    jmp short 032ebh                          ; eb c7
+    lea dx, [bp+012h]                         ; 8d 56 12
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00ad1h                               ; e8 9f d7
+    jmp near 035d1h                           ; e9 9c 02
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 01e7eh                               ; e8 2f eb
+    jmp near 035d1h                           ; e9 7f 02
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 0200bh                               ; e8 9f ec
+    jmp near 035d1h                           ; e9 62 02
+    mov cx, word [bp+00eh]                    ; 8b 4e 0e
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 021a1h                               ; e8 14 ee
+    jmp near 035d1h                           ; e9 41 02
+    lea cx, [bp+012h]                         ; 8d 4e 12
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 00bfch                               ; e8 52 d8
+    jmp near 035d1h                           ; e9 24 02
+    mov cx, strict word 00002h                ; b9 02 00
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 000ffh                            ; ba ff 00
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 0231ch                               ; e8 5c ef
+    jmp near 035d1h                           ; e9 0e 02
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    call 00d3eh                               ; e8 72 d9
+    jmp near 035d1h                           ; e9 02 02
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00030h                ; 3d 30 00
+    jnbe short 03445h                         ; 77 6c
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0000fh                ; b9 0f 00
+    mov di, 03202h                            ; bf 02 32
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+03210h]               ; 2e 8b 85 10 32
+    jmp ax                                    ; ff e0
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    push ax                                   ; 50
+    push word [bp+00eh]                       ; ff 76 0e
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    call 026b5h                               ; e8 a8 f2
+    jmp short 03445h                          ; eb 36
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 02735h                               ; e8 19 f3
+    jmp short 03445h                          ; eb 27
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 027a3h                               ; e8 78 f3
+    jmp short 03445h                          ; eb 18
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 02813h                               ; e8 d9 f3
+    jmp short 03445h                          ; eb 09
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    call 02883h                               ; e8 3e f4
+    jmp near 035d1h                           ; e9 89 01
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov si, word [bp+016h]                    ; 8b 76 16
+    mov cx, ax                                ; 89 c1
+    mov ax, si                                ; 89 f0
+    call 02888h                               ; e8 27 f4
+    jmp short 03445h                          ; eb e2
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 0288fh                               ; e8 24 f4
+    jmp short 03445h                          ; eb d8
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 02894h                               ; e8 1f f4
+    jmp short 03445h                          ; eb ce
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 02899h                               ; e8 1a f4
+    jmp short 03445h                          ; eb c4
+    lea ax, [bp+00eh]                         ; 8d 46 0e
+    push ax                                   ; 50
+    lea cx, [bp+010h]                         ; 8d 4e 10
+    lea bx, [bp+008h]                         ; 8d 5e 08
+    lea dx, [bp+016h]                         ; 8d 56 16
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    call 00b81h                               ; e8 ea d6
+    jmp short 03445h                          ; eb ac
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00036h                ; 3d 36 00
+    je short 034c7h                           ; 74 24
+    cmp ax, strict word 00035h                ; 3d 35 00
+    je short 034b2h                           ; 74 0a
+    cmp ax, strict word 00020h                ; 3d 20 00
+    jne short 034fah                          ; 75 4d
+    call 0289eh                               ; e8 ee f3
+    jmp short 034fah                          ; eb 48
+    mov al, cl                                ; 88 c8
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    call 028a3h                               ; e8 e6 f3
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 012h                   ; 0c 12
+    jmp near 03292h                           ; e9 cb fd
+    mov al, cl                                ; 88 c8
+    call 028a8h                               ; e8 dc f3
+    jmp short 034bdh                          ; eb ef
+    push word [bp+008h]                       ; ff 76 08
+    push word [bp+016h]                       ; ff 76 16
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, cl                                ; 88 c8
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    call 028adh                               ; e8 b3 f3
+    jmp near 035d1h                           ; e9 d4 00
+    mov bx, si                                ; 89 f3
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    call 0294fh                               ; e8 47 f4
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 01bh                   ; 0c 1b
+    jmp near 03292h                           ; e9 80 fd
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 0353eh                           ; 74 22
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 03530h                           ; 74 0f
+    test ax, ax                               ; 85 c0
+    jne short 0354ah                          ; 75 25
+    lea dx, [bp+00ch]                         ; 8d 56 0c
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02a74h                               ; e8 46 f5
+    jmp short 0354ah                          ; eb 1a
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02a86h                               ; e8 4a f5
+    jmp short 0354ah                          ; eb 0c
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02e07h                               ; e8 bd f8
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 01ch                   ; 0c 1c
+    jmp near 03292h                           ; e9 3e fd
+    call 007fah                               ; e8 a3 d2
+    test ax, ax                               ; 85 c0
+    je short 035aeh                           ; 74 53
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    jc short 03578h                           ; 72 13
+    jbe short 0359eh                          ; 76 37
+    cmp ax, strict word 0000ah                ; 3d 0a 00
+    je short 035c5h                           ; 74 59
+    cmp ax, strict word 00009h                ; 3d 09 00
+    je short 035c5h                           ; 74 54
+    cmp ax, strict word 00004h                ; 3d 04 00
+    je short 035b0h                           ; 74 3a
+    jmp short 035c5h                          ; eb 4d
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 0358eh                           ; 74 11
+    test ax, ax                               ; 85 c0
+    jne short 035c5h                          ; 75 44
+    mov bx, si                                ; 89 f3
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 0370ah                               ; e8 7e 01
+    jmp short 035d1h                          ; eb 43
+    mov cx, si                                ; 89 f1
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03839h                               ; e8 9d 02
+    jmp short 035d1h                          ; eb 33
+    mov cx, si                                ; 89 f1
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 038f6h                               ; e8 4a 03
+    jmp short 035d1h                          ; eb 23
+    jmp short 035cch                          ; eb 1c
+    lea ax, [bp+00ch]                         ; 8d 46 0c
+    push ax                                   ; 50
+    mov cx, word [bp+016h]                    ; 8b 4e 16
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03adfh                               ; e8 1c 05
+    jmp short 035d1h                          ; eb 0c
+    mov word [bp+012h], 00100h                ; c7 46 12 00 01
+    jmp short 035d1h                          ; eb 05
+    mov word [bp+012h], 00100h                ; c7 46 12 00 01
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_xres_:                             ; 0xc35d8 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00001h                ; b8 01 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 88 cf
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 80 cf
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_yres_:                             ; 0xc35f7 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 69 cf
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 61 cf
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_bpp_:                              ; 0xc3616 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00003h                ; b8 03 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 4a cf
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 42 cf
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+in_word_:                                    ; 0xc3635 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov dx, bx                                ; 89 da
+    out DX, ax                                ; ef
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+in_byte_:                                    ; 0xc3647 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov dx, bx                                ; 89 da
+    out DX, ax                                ; ef
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_get_id_:                               ; 0xc365b LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ax, ax                                ; 31 c0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_id_:                               ; 0xc366f LB 0x1a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    xor ax, ax                                ; 31 c0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_init_:                                   ; 0xc3689 LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov ax, 0b0c0h                            ; b8 c0 b0
+    call 0366fh                               ; e8 db ff
+    call 0365bh                               ; e8 c4 ff
+    cmp ax, 0b0c0h                            ; 3d c0 b0
+    jne short 036aeh                          ; 75 12
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, 000b9h                            ; ba b9 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 cb fa
+    mov ax, 0b0c4h                            ; b8 c4 b0
+    call 0366fh                               ; e8 c1 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+mode_info_find_mode_:                        ; 0xc36b5 LB 0x55
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    xor dx, dx                                ; 31 d2
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 6d ff
+    cmp ax, 077cch                            ; 3d cc 77
+    jne short 036ffh                          ; 75 32
+    mov bx, strict word 00004h                ; bb 04 00
+    mov dx, bx                                ; 89 da
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 5d ff
+    mov cx, ax                                ; 89 c1
+    cmp cx, strict byte 0ffffh                ; 83 f9 ff
+    je short 036ffh                           ; 74 20
+    lea dx, [bx+002h]                         ; 8d 57 02
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 4d ff
+    lea dx, [bx+044h]                         ; 8d 57 44
+    cmp cx, di                                ; 39 f9
+    jne short 036fbh                          ; 75 0c
+    test si, si                               ; 85 f6
+    jne short 036f7h                          ; 75 04
+    mov ax, bx                                ; 89 d8
+    jmp short 03701h                          ; eb 0a
+    test AL, strict byte 080h                 ; a8 80
+    jne short 036f3h                          ; 75 f8
+    mov bx, dx                                ; 89 d3
+    jmp short 036d2h                          ; eb d3
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_return_controller_information_: ; 0xc370a LB 0x12f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
+    call 005b7h                               ; e8 95 ce
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov word [bp-008h], di                    ; 89 7e f8
+    xor dx, dx                                ; 31 d2
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 02 ff
+    cmp ax, 077cch                            ; 3d cc 77
+    je short 03742h                           ; 74 0a
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], 00100h                  ; 26 c7 04 00 01
+    jmp near 03831h                           ; e9 ef 00
+    mov cx, strict word 00004h                ; b9 04 00
+    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
+    jne short 0375ch                          ; 75 07
+    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
+    je short 0376bh                           ; 74 0f
+    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
+    jne short 03770h                          ; 75 0c
+    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
+    jne short 03770h                          ; 75 05
+    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:bx], 04556h                  ; 26 c7 07 56 45
+    mov word [es:bx+002h], 04153h             ; 26 c7 47 02 53 41
+    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
+    mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
+    mov [es:bx+008h], ds                      ; 26 8c 5f 08
+    mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
+    mov word [es:bx+00ch], strict word 00000h ; 26 c7 47 0c 00 00
+    mov word [es:bx+010h], di                 ; 26 89 7f 10
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    add ax, strict word 00022h                ; 05 22 00
+    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
+    mov dx, strict word 0ffffh                ; ba ff ff
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 84 fe
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:bx+012h], ax                 ; 26 89 47 12
+    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
+    je short 037e2h                           ; 74 24
+    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
+    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
+    mov [es:bx+018h], ds                      ; 26 8c 5f 18
+    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
+    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
+    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
+    mov [es:bx+020h], ds                      ; 26 8c 5f 20
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 0001bh                ; 83 c2 1b
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03647h                               ; e8 5a fe
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-010h]                    ; 3b 46 f0
+    jnbe short 0380dh                         ; 77 19
+    mov dx, cx                                ; 89 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 39 fe
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, word [bp-00ch]                    ; 03 56 f4
+    mov ax, di                                ; 89 f8
+    call 0318fh                               ; e8 86 f9
+    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
+    add cx, strict byte 00044h                ; 83 c1 44
+    mov dx, cx                                ; 89 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 1d fe
+    mov bx, ax                                ; 89 c3
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 037e2h                          ; 75 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, word [bp-00ch]                    ; 03 56 f4
+    mov ax, di                                ; 89 f8
+    call 0318fh                               ; e8 65 f9
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], strict word 0004fh      ; 26 c7 04 4f 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_return_mode_information_:         ; 0xc3839 LB 0xbd
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, dx                                ; 89 d0
+    mov si, bx                                ; 89 de
+    mov word [bp-006h], cx                    ; 89 4e fa
+    test dh, 040h                             ; f6 c6 40
+    je short 03852h                           ; 74 05
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 03854h                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    and ah, 001h                              ; 80 e4 01
+    call 036b5h                               ; e8 5b fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    test ax, ax                               ; 85 c0
+    je short 03897h                           ; 74 36
+    mov cx, 00100h                            ; b9 00 01
+    xor ax, ax                                ; 31 c0
+    mov di, word [bp-006h]                    ; 8b 7e fa
+    mov es, si                                ; 8e c6
+    cld                                       ; fc
+    jcxz 03870h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    xor cx, cx                                ; 31 c9
+    jmp short 03879h                          ; eb 05
+    cmp cx, strict byte 00042h                ; 83 f9 42
+    jnc short 03899h                          ; 73 20
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    add dx, cx                                ; 01 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03647h                               ; e8 c1 fd
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, cx                                ; 01 ca
+    mov ax, si                                ; 89 f0
+    call 03173h                               ; e8 df f8
+    inc cx                                    ; 41
+    jmp short 03874h                          ; eb dd
+    jmp short 038e4h                          ; eb 4b
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov ax, si                                ; 89 f0
+    call 03165h                               ; e8 c2 f8
+    test AL, strict byte 001h                 ; a8 01
+    je short 038c3h                           ; 74 1c
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov bx, 00629h                            ; bb 29 06
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 da f8
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov bx, 0c000h                            ; bb 00 c0
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 cc f8
+    mov ax, strict word 0000bh                ; b8 0b 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 a4 cc
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 a5 cc
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 0318fh                               ; e8 b0 f8
+    mov ax, strict word 0004fh                ; b8 4f 00
+    jmp short 038e7h                          ; eb 03
+    mov ax, 00100h                            ; b8 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_set_mode_:                        ; 0xc38f6 LB 0xeb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    test byte [bp-009h], 040h                 ; f6 46 f7 40
+    je short 0390eh                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 03910h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov dx, ax                                ; 89 c2
+    test ax, ax                               ; 85 c0
+    je short 03919h                           ; 74 03
+    mov ax, strict word 00040h                ; b8 40 00
+    mov byte [bp-006h], al                    ; 88 46 fa
+    test byte [bp-009h], 080h                 ; f6 46 f7 80
+    je short 03927h                           ; 74 05
+    mov ax, 00080h                            ; b8 80 00
+    jmp short 03929h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov byte [bp-008h], al                    ; 88 46 f8
+    and byte [bp-009h], 001h                  ; 80 66 f7 01
+    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
+    jnc short 0394ah                          ; 73 13
+    xor ax, ax                                ; 31 c0
+    call 005ddh                               ; e8 a1 cc
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    call 0101ch                               ; e8 d8 d6
+    mov ax, strict word 0004fh                ; b8 4f 00
+    jmp near 039d7h                           ; e9 8d 00
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 036b5h                               ; e8 65 fd
+    mov bx, ax                                ; 89 c3
+    test ax, ax                               ; 85 c0
+    jne short 03959h                          ; 75 03
+    jmp near 039d4h                           ; e9 7b 00
+    lea dx, [bx+014h]                         ; 8d 57 14
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 d3 fc
+    mov cx, ax                                ; 89 c1
+    lea dx, [bx+016h]                         ; 8d 57 16
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03635h                               ; e8 c8 fc
+    mov di, ax                                ; 89 c7
+    lea dx, [bx+01bh]                         ; 8d 57 1b
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03647h                               ; e8 cf fc
+    mov bl, al                                ; 88 c3
+    mov dl, al                                ; 88 c2
+    xor ax, ax                                ; 31 c0
+    call 005ddh                               ; e8 5c cc
+    cmp bl, 004h                              ; 80 fb 04
+    jne short 0398ch                          ; 75 06
+    mov ax, strict word 0006ah                ; b8 6a 00
+    call 0101ch                               ; e8 90 d6
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    call 03616h                               ; e8 83 fc
+    mov ax, cx                                ; 89 c8
+    call 035d8h                               ; e8 40 fc
+    mov ax, di                                ; 89 f8
+    call 035f7h                               ; e8 5a fc
+    xor ax, ax                                ; 31 c0
+    call 00603h                               ; e8 61 cc
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    or AL, strict byte 001h                   ; 0c 01
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    or al, dl                                 ; 08 d0
+    call 005ddh                               ; e8 2c cc
+    call 0070dh                               ; e8 59 cd
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov dx, 000bah                            ; ba ba 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0318fh                               ; e8 cf f7
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    or bl, 060h                               ; 80 cb 60
+    xor bh, bh                                ; 30 ff
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 03173h                               ; e8 a2 f7
+    jmp near 03944h                           ; e9 70 ff
+    mov ax, 00100h                            ; b8 00 01
+    mov word [ss:si], ax                      ; 36 89 04
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_read_video_state_size_:           ; 0xc39e1 LB 0x8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov ax, strict word 00012h                ; b8 12 00
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_save_video_state_:                ; 0xc39e9 LB 0x5b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov di, ax                                ; 89 c7
+    mov cx, dx                                ; 89 d1
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 0318fh                               ; e8 83 f7
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 03a3bh                           ; 74 27
+    mov si, strict word 00001h                ; be 01 00
+    jmp short 03a1eh                          ; eb 05
+    cmp si, strict byte 00009h                ; 83 fe 09
+    jnbe short 03a3bh                         ; 77 1d
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 03a38h                           ; 74 15
+    mov ax, si                                ; 89 f0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 0318fh                               ; e8 59 f7
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc si                                    ; 46
+    jmp short 03a19h                          ; eb de
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_restore_video_state_:             ; 0xc3a44 LB 0x9b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov cx, ax                                ; 89 c1
+    mov bx, dx                                ; 89 d3
+    call 03181h                               ; e8 2f f7
+    mov word [bp-008h], ax                    ; 89 46 f8
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    test byte [bp-008h], 001h                 ; f6 46 f8 01
+    jne short 03a6dh                          ; 75 10
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    jmp short 03ad7h                          ; eb 6a
+    mov ax, strict word 00001h                ; b8 01 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 03181h                               ; e8 06 f7
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 03181h                               ; e8 f2 f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00003h                ; b8 03 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 03181h                               ; e8 de f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    mov si, strict word 00005h                ; be 05 00
+    jmp short 03ac1h                          ; eb 05
+    cmp si, strict byte 00009h                ; 83 fe 09
+    jnbe short 03ad7h                         ; 77 16
+    mov ax, si                                ; 89 f0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 03181h                               ; e8 b3 f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    inc si                                    ; 46
+    jmp short 03abch                          ; eb e5
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_save_restore_state_:              ; 0xc3adf LB 0x8c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov ax, bx                                ; 89 d8
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov di, strict word 0004fh                ; bf 4f 00
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 03b3eh                           ; 74 45
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 03b22h                           ; 74 24
+    test ax, ax                               ; 85 c0
+    jne short 03b5ah                          ; 75 58
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02a51h                               ; e8 49 ef
+    mov cx, ax                                ; 89 c1
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03b15h                           ; 74 05
+    call 039e1h                               ; e8 ce fe
+    add ax, cx                                ; 01 c8
+    add ax, strict word 0003fh                ; 05 3f 00
+    shr ax, 006h                              ; c1 e8 06
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    jmp short 03b5dh                          ; eb 3b
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov dx, cx                                ; 89 ca
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02a86h                               ; e8 57 ef
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03b5dh                           ; 74 28
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 039e9h                               ; e8 ad fe
+    jmp short 03b5dh                          ; eb 1f
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov dx, cx                                ; 89 ca
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02e07h                               ; e8 bc f2
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03b5dh                           ; 74 0c
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 03a44h                               ; e8 ec fe
+    jmp short 03b5dh                          ; eb 03
+    mov di, 00100h                            ; bf 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], di                      ; 26 89 3c
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+
+  ; Padding 0x895 bytes at 0xc3b6b
+  times 2197 db 0
+
+section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
+vesa_pm_start:                               ; 0xc4400 LB 0x114
+    sbb byte [bx+si], al                      ; 18 00
+    dec di                                    ; 4f
+    add byte [bx+si], dl                      ; 00 10
+    add word [bx+si], cx                      ; 01 08
+    add dh, cl                                ; 00 ce
+    add di, cx                                ; 01 cf
+    add di, cx                                ; 01 cf
+    add ax, dx                                ; 01 d0
+    add word [bp-048fdh], si                  ; 01 b6 03 b7
+    db  003h, 0ffh
+    ; add di, di                                ; 03 ff
+    db  0ffh
+    db  0ffh
+    jmp word [bp-07dh]                        ; ff 66 83
+    sti                                       ; fb
+    add byte [si+005h], dh                    ; 00 74 05
+    mov eax, strict dword 066c30100h          ; 66 b8 00 01 c3 66
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    add ax, 06600h                            ; 05 00 66
+    out DX, ax                                ; ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    in eax, DX                                ; 66 ed
+    pop edx                                   ; 66 5a
+    db  066h, 03bh, 0d0h
+    ; cmp edx, eax                              ; 66 3b d0
+    jne short 0444ah                          ; 75 05
+    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+    cmp bl, 080h                              ; 80 fb 80
+    je short 0445eh                           ; 74 0a
+    cmp bl, 000h                              ; 80 fb 00
+    je short 0446eh                           ; 74 15
+    mov eax, strict dword 052c30100h          ; 66 b8 00 01 c3 52
+    mov edx, strict dword 0a8ec03dah          ; 66 ba da 03 ec a8
+    or byte [di-005h], dh                     ; 08 75 fb
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    je short 04468h                           ; 74 fb
+    pop dx                                    ; 5a
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sal dx, 010h                              ; c1 e2 10
+    and cx, strict word 0ffffh                ; 81 e1 ff ff
+    add byte [bx+si], al                      ; 00 00
+    db  00bh, 0cah
+    ; or cx, dx                                 ; 0b ca
+    sal cx, 002h                              ; c1 e1 02
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    push ax                                   ; 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    push ES                                   ; 06
+    add byte [bp-011h], ah                    ; 00 66 ef
+    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
+    db  00fh, 0b7h, 0c8h
+    ; movzx cx, ax                              ; 0f b7 c8
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    add ax, word [bx+si]                      ; 03 00
+    out DX, eax                               ; 66 ef
+    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
+    db  00fh, 0b7h, 0f0h
+    ; movzx si, ax                              ; 0f b7 f0
+    pop ax                                    ; 58
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 044c7h                           ; 74 17
+    add si, strict byte 00007h                ; 83 c6 07
+    shr si, 003h                              ; c1 ee 03
+    imul cx, si                               ; 0f af ce
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div cx                                    ; f7 f1
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div si                                    ; f7 f6
+    jmp short 044d3h                          ; eb 0c
+    shr cx, 1                                 ; d1 e9
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div cx                                    ; f7 f1
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    sal ax, 1                                 ; d1 e0
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    or byte [bx+si], al                       ; 08 00
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    pop edx                                   ; 66 5a
+    db  066h, 08bh, 0c7h
+    ; mov eax, edi                              ; 66 8b c7
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    or word [bx+si], ax                       ; 09 00
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    pop edx                                   ; 66 5a
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
+    mov ax, 0014fh                            ; b8 4f 01
+vesa_pm_end:                                 ; 0xc4514 LB 0x1
+    retn                                      ; c3
+
+  ; Padding 0xeb bytes at 0xc4515
+  times 235 db 0
+
+section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
+_msg_vga_init:                               ; 0xc4600 LB 0x2f
+    db  'Oracle VM VirtualBox Version 5.0.51 VGA BIOS', 00dh, 00ah, 000h
+_vga_modes:                                  ; 0xc462f LB 0x80
+    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
+    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
+    db  004h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h, 005h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h
+    db  006h, 001h, 002h, 001h, 000h, 0b8h, 0ffh, 001h, 007h, 000h, 001h, 004h, 000h, 0b0h, 0ffh, 000h
+    db  00dh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h, 00eh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h
+    db  00fh, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 000h, 010h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+_line_to_vpti:                               ; 0xc46af LB 0x10
+    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
+_dac_regs:                                   ; 0xc46bf LB 0x4
+    dd  0ff3f3f3fh
+_video_param_table:                          ; 0xc46c3 LB 0x780
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
+    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
+    db  050h, 018h, 008h, 000h, 010h, 001h, 001h, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
+    db  0b9h, 0c2h, 0ffh, 000h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h
+    db  017h, 017h, 017h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00dh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  028h, 018h, 008h, 000h, 020h, 009h, 00fh, 000h, 006h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 018h, 008h, 000h, 040h, 001h, 00fh, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
+    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
+    db  0bah, 0e3h, 0ffh, 000h, 008h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 008h, 000h, 000h, 000h
+    db  018h, 000h, 000h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
+    db  0bah, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  050h, 018h, 00eh, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  028h, 018h, 010h, 000h, 008h, 008h, 003h, 000h, 002h, 067h, 02dh, 027h, 028h, 090h, 02bh, 0a0h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
+    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
+    db  004h, 0e3h, 0ffh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h
+    db  03fh, 000h, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
+    db  004h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  028h, 018h, 008h, 000h, 000h, 001h, 00fh, 000h, 00eh, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 041h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 040h, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 008h, 009h, 00ah, 00bh, 00ch
+    db  00dh, 00eh, 00fh, 041h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 040h, 005h, 00fh, 0ffh
+    db  064h, 024h, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 07fh, 063h, 063h, 083h, 06bh, 01bh
+    db  072h, 0f0h, 000h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 08dh, 057h, 032h, 000h, 057h
+    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+_palette0:                                   ; 0xc4e43 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+_palette1:                                   ; 0xc4f03 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
+    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
+    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
+    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
+    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
+    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
+    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+_palette2:                                   ; 0xc4fc3 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
+    db  015h, 000h, 02ah, 03fh, 02ah, 000h, 015h, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 02ah, 02ah, 03fh
+    db  000h, 015h, 000h, 000h, 015h, 02ah, 000h, 03fh, 000h, 000h, 03fh, 02ah, 02ah, 015h, 000h, 02ah
+    db  015h, 02ah, 02ah, 03fh, 000h, 02ah, 03fh, 02ah, 000h, 015h, 015h, 000h, 015h, 03fh, 000h, 03fh
+    db  015h, 000h, 03fh, 03fh, 02ah, 015h, 015h, 02ah, 015h, 03fh, 02ah, 03fh, 015h, 02ah, 03fh, 03fh
+    db  015h, 000h, 000h, 015h, 000h, 02ah, 015h, 02ah, 000h, 015h, 02ah, 02ah, 03fh, 000h, 000h, 03fh
+    db  000h, 02ah, 03fh, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 000h, 015h, 015h, 000h, 03fh, 015h, 02ah
+    db  015h, 015h, 02ah, 03fh, 03fh, 000h, 015h, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 03fh, 02ah, 03fh
+    db  015h, 015h, 000h, 015h, 015h, 02ah, 015h, 03fh, 000h, 015h, 03fh, 02ah, 03fh, 015h, 000h, 03fh
+    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+_palette3:                                   ; 0xc5083 LB 0x300
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 005h, 005h, 005h, 008h, 008h, 008h, 00bh, 00bh, 00bh, 00eh, 00eh, 00eh, 011h
+    db  011h, 011h, 014h, 014h, 014h, 018h, 018h, 018h, 01ch, 01ch, 01ch, 020h, 020h, 020h, 024h, 024h
+    db  024h, 028h, 028h, 028h, 02dh, 02dh, 02dh, 032h, 032h, 032h, 038h, 038h, 038h, 03fh, 03fh, 03fh
+    db  000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 03fh, 03fh
+    db  000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh
+    db  000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h
+    db  000h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h
+    db  02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh
+    db  03fh, 037h, 01fh, 03fh, 03fh, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h
+    db  03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h
+    db  03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh, 01fh, 01fh, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh
+    db  02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh
+    db  02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03fh, 03fh
+    db  02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h
+    db  02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh
+    db  02dh, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh
+    db  03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h
+    db  01ch, 015h, 000h, 01ch, 01ch, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h
+    db  01ch, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h
+    db  01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch, 000h, 000h, 01ch, 000h, 000h, 01ch, 007h, 000h, 01ch
+    db  00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch
+    db  00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 01ch, 01ch
+    db  00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h
+    db  00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh
+    db  00eh, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh
+    db  018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h
+    db  01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h
+    db  01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah
+    db  01ch, 014h, 018h, 01ch, 014h, 016h, 01ch, 014h, 014h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch
+    db  018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h, 01ch
+    db  000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h, 010h, 010h
+    db  000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h
+    db  000h, 010h, 00ch, 000h, 010h, 010h, 000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h
+    db  000h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h
+    db  00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h
+    db  010h, 00eh, 008h, 010h, 010h, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah
+    db  010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh
+    db  010h, 008h, 00ch, 010h, 008h, 00ah, 010h, 008h, 008h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h
+    db  00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah, 010h
+    db  00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 010h, 010h
+    db  00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh
+    db  00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh
+    db  00bh, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh
+    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_static_functionality:                       ; 0xc5383 LB 0x10
+    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
+_dcc_table:                                  ; 0xc5393 LB 0x24
+    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h
+_secondary_save_area:                        ; 0xc53b7 LB 0x1a
+    db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
+    db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont8:                                   ; 0xc53ed LB 0x800
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
+    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
+    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
+    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
+    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
+    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
+    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
+    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
+    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
+    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
+    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
+    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
+    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
+    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
+    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
+    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
+    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
+    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
+    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
+    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
+    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
+    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
+    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
+    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
+    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
+    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
+    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
+    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
+    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
+    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
+    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
+    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
+    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
+    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
+    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
+    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
+    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
+    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
+    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
+    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
+    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
+    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
+    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
+    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
+    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
+    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
+    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
+    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
+    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
+    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
+    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
+    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
+    db  078h, 0cch, 0c0h, 0cch, 078h, 018h, 00ch, 078h, 000h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  01ch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 07eh, 0c3h, 03ch, 006h, 03eh, 066h, 03fh, 000h
+    db  0cch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 0e0h, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h
+    db  030h, 030h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 000h, 000h, 078h, 0c0h, 0c0h, 078h, 00ch, 038h
+    db  07eh, 0c3h, 03ch, 066h, 07eh, 060h, 03ch, 000h, 0cch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  0e0h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 0cch, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  07ch, 0c6h, 038h, 018h, 018h, 018h, 03ch, 000h, 0e0h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  0c6h, 038h, 06ch, 0c6h, 0feh, 0c6h, 0c6h, 000h, 030h, 030h, 000h, 078h, 0cch, 0fch, 0cch, 000h
+    db  01ch, 000h, 0fch, 060h, 078h, 060h, 0fch, 000h, 000h, 000h, 07fh, 00ch, 07fh, 0cch, 07fh, 000h
+    db  03eh, 06ch, 0cch, 0feh, 0cch, 0cch, 0ceh, 000h, 078h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h
+    db  000h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 0e0h, 000h, 078h, 0cch, 0cch, 078h, 000h
+    db  078h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h, 000h, 0e0h, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  000h, 0cch, 000h, 0cch, 0cch, 07ch, 00ch, 0f8h, 0c3h, 018h, 03ch, 066h, 066h, 03ch, 018h, 000h
+    db  0cch, 000h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 018h, 018h, 07eh, 0c0h, 0c0h, 07eh, 018h, 018h
+    db  038h, 06ch, 064h, 0f0h, 060h, 0e6h, 0fch, 000h, 0cch, 0cch, 078h, 0fch, 030h, 0fch, 030h, 030h
+    db  0f8h, 0cch, 0cch, 0fah, 0c6h, 0cfh, 0c6h, 0c7h, 00eh, 01bh, 018h, 03ch, 018h, 018h, 0d8h, 070h
+    db  01ch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 038h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  000h, 01ch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 01ch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  000h, 0f8h, 000h, 0f8h, 0cch, 0cch, 0cch, 000h, 0fch, 000h, 0cch, 0ech, 0fch, 0dch, 0cch, 000h
+    db  03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h
+    db  030h, 000h, 030h, 060h, 0c0h, 0cch, 078h, 000h, 000h, 000h, 000h, 0fch, 0c0h, 0c0h, 000h, 000h
+    db  000h, 000h, 000h, 0fch, 00ch, 00ch, 000h, 000h, 0c3h, 0c6h, 0cch, 0deh, 033h, 066h, 0cch, 00fh
+    db  0c3h, 0c6h, 0cch, 0dbh, 037h, 06fh, 0cfh, 003h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 000h
+    db  000h, 033h, 066h, 0cch, 066h, 033h, 000h, 000h, 000h, 0cch, 066h, 033h, 066h, 0cch, 000h, 000h
+    db  022h, 088h, 022h, 088h, 022h, 088h, 022h, 088h, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
+    db  0dbh, 077h, 0dbh, 0eeh, 0dbh, 077h, 0dbh, 0eeh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h
+    db  000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h
+    db  036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h
+    db  018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h
+    db  018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h
+    db  036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h
+    db  036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h
+    db  036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
+    db  036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h
+    db  018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h
+    db  018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 0c8h, 0dch, 076h, 000h, 000h, 078h, 0cch, 0f8h, 0cch, 0f8h, 0c0h, 0c0h
+    db  000h, 0fch, 0cch, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
+    db  0fch, 0cch, 060h, 030h, 060h, 0cch, 0fch, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 070h, 000h
+    db  000h, 066h, 066h, 066h, 066h, 07ch, 060h, 0c0h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 000h
+    db  0fch, 030h, 078h, 0cch, 0cch, 078h, 030h, 0fch, 038h, 06ch, 0c6h, 0feh, 0c6h, 06ch, 038h, 000h
+    db  038h, 06ch, 0c6h, 0c6h, 06ch, 06ch, 0eeh, 000h, 01ch, 030h, 018h, 07ch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 07eh, 0dbh, 0dbh, 07eh, 000h, 000h, 006h, 00ch, 07eh, 0dbh, 0dbh, 07eh, 060h, 0c0h
+    db  038h, 060h, 0c0h, 0f8h, 0c0h, 060h, 038h, 000h, 078h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 000h
+    db  000h, 0fch, 000h, 0fch, 000h, 0fch, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 0fch, 000h
+    db  060h, 030h, 018h, 030h, 060h, 000h, 0fch, 000h, 018h, 030h, 060h, 030h, 018h, 000h, 0fch, 000h
+    db  00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 070h
+    db  030h, 030h, 000h, 0fch, 000h, 030h, 030h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h
+    db  038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 0ech, 06ch, 03ch, 01ch
+    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont14:                                  ; 0xc5bed LB 0xe00
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
+    db  0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 0feh, 0feh
+    db  0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch
+    db  038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h
+    db  03ch, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 01eh, 00eh, 01ah, 032h
+    db  078h, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 066h, 066h, 03ch, 018h
+    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 070h, 0f0h
+    db  0e0h, 000h, 000h, 000h, 000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 080h, 0c0h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h, 000h
+    db  002h, 006h, 00eh, 03eh, 0feh, 03eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch
+    db  07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h
+    db  066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh
+    db  01bh, 01bh, 01bh, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h
+    db  00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 000h
+    db  000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 060h
+    db  0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h
+    db  0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 028h, 06ch, 0feh, 06ch, 028h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 03ch, 03ch, 03ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 066h, 066h, 066h
+    db  024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch
+    db  06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h
+    db  086h, 0c6h, 07ch, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 066h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h, 000h
+    db  030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
+    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
+    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h
+    db  006h, 00ch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 006h, 006h
+    db  03ch, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh
+    db  00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 07ch, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0c6h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h, 000h, 000h, 018h
+    db  018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
+    db  000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h
+    db  018h, 00ch, 006h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h
+    db  000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h, 0fch, 066h
+    db  066h, 066h, 07ch, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h
+    db  0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h
+    db  066h, 06ch, 0f8h, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 062h, 066h
+    db  0feh, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 066h, 03ah, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 01eh, 00ch
+    db  00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 0e6h, 066h, 06ch, 06ch
+    db  078h, 06ch, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h
+    db  062h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 0c6h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h
+    db  000h, 000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h
+    db  07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h, 000h, 000h, 0fch, 066h
+    db  066h, 066h, 07ch, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 060h
+    db  038h, 00ch, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 07eh, 07eh, 05ah, 018h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 010h, 000h
+    db  000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 07ch, 06ch, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 06ch, 038h, 038h, 038h, 06ch, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  066h, 066h, 066h, 066h, 03ch, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h
+    db  08ch, 018h, 030h, 060h, 0c2h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 03ch, 030h, 030h, 030h
+    db  030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch
+    db  00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch
+    db  03ch, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0e0h, 060h
+    db  060h, 078h, 06ch, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+    db  0c6h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch
+    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 006h, 006h
+    db  000h, 00eh, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h, 000h, 000h, 0e0h, 060h, 060h, 066h
+    db  06ch, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ech, 0feh, 0d6h, 0d6h, 0d6h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0dch, 076h, 066h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+    db  0c6h, 070h, 01ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h
+    db  030h, 036h, 01ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch
+    db  076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 03ch, 018h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 06ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0feh, 0cch, 018h, 030h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 00eh, 018h, 018h, 018h
+    db  070h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h
+    db  018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h, 000h
+    db  0cch, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h
+    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 078h
+    db  00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 000h, 078h, 00ch, 07ch
+    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch
+    db  076h, 000h, 000h, 000h, 000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  0cch, 0cch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h
+    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 000h, 038h
+    db  018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h
+    db  03ch, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h
+    db  000h, 000h, 038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0cch, 076h, 036h, 07eh, 0d8h, 0d8h, 06eh, 000h, 000h, 000h, 000h, 000h, 03eh, 06ch
+    db  0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 07ch
+    db  0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h, 07ch, 0c6h, 0c6h
+    db  0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h, 000h, 0c6h
+    db  0c6h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h
+    db  0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 018h, 03ch, 066h, 060h
+    db  060h, 066h, 03ch, 018h, 018h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h
+    db  060h, 0e6h, 0fch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 03ch, 018h, 07eh, 018h, 07eh, 018h
+    db  018h, 000h, 000h, 000h, 000h, 0f8h, 0cch, 0cch, 0f8h, 0c4h, 0cch, 0deh, 0cch, 0cch, 0c6h, 000h
+    db  000h, 000h, 000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch
+    db  018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h
+    db  000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h, 000h, 0cch
+    db  0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h
+    db  066h, 066h, 066h, 000h, 000h, 000h, 076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h
+    db  0c6h, 000h, 000h, 000h, 000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h
+    db  030h, 060h, 0dch, 086h, 00ch, 018h, 03eh, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h, 030h, 066h
+    db  0ceh, 09eh, 03eh, 006h, 006h, 000h, 000h, 000h, 018h, 018h, 000h, 018h, 018h, 03ch, 03ch, 03ch
+    db  018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h
+    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 055h, 0aah
+    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 0ddh, 077h, 0ddh, 077h
+    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 036h, 036h
+    db  036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0feh
+    db  006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h
+    db  018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h
+    db  018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  0f0h, 0f0h, 0f0h, 0f0h, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
+    db  00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0fch, 0c6h, 0c6h, 0fch, 0c0h, 0c0h, 040h, 000h, 000h, 000h, 0feh, 0c6h
+    db  0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 06ch
+    db  06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h
+    db  060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h, 000h
+    db  038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch
+    db  0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h, 000h, 01eh, 030h, 018h, 00ch
+    db  03eh, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh
+    db  07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h
+    db  0c0h, 000h, 000h, 000h, 000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 030h, 01ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 030h, 018h
+    db  00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h, 060h
+    db  030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 00ch
+    db  00ch, 0ech, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont16:                                  ; 0xc69ed LB 0x1000
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 0ffh, 0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 0ffh, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 06ch, 0feh, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 01eh, 00eh, 01ah, 032h, 078h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 030h, 070h, 0f0h, 0e0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 080h, 0c0h, 0e0h, 0f0h, 0f8h, 0feh, 0f8h, 0f0h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 002h, 006h, 00eh, 01eh, 03eh, 0feh, 03eh, 01eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 066h, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 01bh, 01bh, 000h, 000h, 000h, 000h
+    db  000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 03ch, 03ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 066h, 066h, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 000h
+    db  018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h, 006h, 086h, 0c6h, 07ch, 018h, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 060h, 0c6h, 086h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 030h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 006h, 006h, 03ch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c6h, 006h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 006h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 066h, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h, 066h, 066h, 06ch, 0f8h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 0c6h, 066h, 03ah, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01eh, 00ch, 00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0e6h, 066h, 066h, 06ch, 078h, 078h, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 06ch, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 060h, 038h, 00ch, 006h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 03ch, 000h, 000h, 000h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 078h, 06ch, 066h, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c0h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 006h, 006h, 000h, 00eh, 006h, 006h, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 066h, 06ch, 078h, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 076h, 066h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h, 030h, 030h, 036h, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 0cch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00eh, 018h, 018h, 018h, 070h, 018h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h, 018h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h
+    db  000h, 000h, 0cch, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 00ch, 018h, 030h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0cch, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 03ch, 066h, 060h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 066h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 0c6h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 060h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03eh, 06ch, 0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h
+    db  000h, 0c6h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0e6h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h, 000h
+    db  000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 00ch, 018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c0h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 006h, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh, 000h, 000h
+    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h, 006h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 000h, 018h, 018h, 018h, 03ch, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h
+    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
+    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 078h, 0cch, 0cch, 0cch, 0d8h, 0cch, 0c6h, 0c6h, 0c6h, 0cch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c6h, 0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01eh, 030h, 018h, 00ch, 03eh, 066h, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh, 0dbh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h, 0c0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 060h, 030h, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 00fh, 00ch, 00ch, 00ch, 00ch, 00ch, 0ech, 06ch, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont14alt:                               ; 0xc79ed LB 0x12d
+    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
+    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
+    db  000h, 000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 02dh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 000h, 000h, 0c3h
+    db  0e7h, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh
+    db  099h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h
+    db  0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h
+    db  0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 061h
+    db  0c3h, 0ffh, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh
+    db  0dbh, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h
+    db  000h, 000h, 091h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h
+    db  000h, 09bh, 000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h
+    db  09dh, 000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 000h, 000h, 000h, 09eh
+    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 0f3h, 000h, 000h, 000h, 0f1h, 000h
+    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
+    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+_vgafont16alt:                               ; 0xc7b1a LB 0x144
+    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
+    db  000h, 000h, 04dh, 000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h
+    db  000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch
+    db  000h, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch
+    db  018h, 000h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh
+    db  066h, 066h, 000h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch
+    db  066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h
+    db  030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h
+    db  0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h
+    db  0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h
+    db  000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h, 078h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h, 091h, 000h, 000h
+    db  000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h, 09bh, 000h
+    db  018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 09dh
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  09eh, 000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h
+    db  000h, 0abh, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh
+    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
+    db  006h, 000h, 000h, 000h
+_vbebios_copyright:                          ; 0xc7c5e LB 0x15
+    db  'VirtualBox VESA BIOS', 000h
+_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
+    db  'Oracle Corporation', 000h
+_vbebios_product_name:                       ; 0xc7c86 LB 0x21
+    db  'Oracle VM VirtualBox VBE Adapter', 000h
+_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
+    db  'Oracle VM VirtualBox Version 5.0.51', 000h
+_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
+    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
+_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
+    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
+
+  ; Padding 0x1 bytes at 0xc7d1f
+    db  001h
+
+section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+
+section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+
+  ; Padding 0x2e0 bytes at 0xc7d20
+    db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 045h, 03ah, 05ch, 076h, 062h
+    db  06fh, 078h, 05ch, 073h, 076h, 06eh, 05ch, 074h, 072h, 075h, 06eh, 06bh, 05ch, 06fh, 075h, 074h
+    db  05ch, 077h, 069h, 06eh, 02eh, 061h, 06dh, 064h, 036h, 034h, 05ch, 072h, 065h, 06ch, 065h, 061h
+    db  073h, 065h, 05ch, 06fh, 062h, 06ah, 05ch, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h
+    db  06fh, 073h, 032h, 038h, 036h, 05ch, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h, 06fh
+    db  073h, 032h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum	(revision 60422)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum	(revision 60422)
@@ -0,0 +1,1 @@
+a82b3f64bf2c7a5065a1de080e3947bd *VBoxVgaBios286.rom
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm	(revision 60422)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm	(revision 60422)
@@ -0,0 +1,7726 @@
+; $Id$ 
+;; @file
+; Auto Generated source file. Do not edit.
+;
+
+;
+; Source file: vgarom.asm
+;
+;  ============================================================================================
+;  
+;   Copyright (C) 2001,2002 the LGPL VGABios developers Team
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  
+;  ============================================================================================
+;  
+;   This VGA Bios is specific to the plex86/bochs Emulated VGA card.
+;   You can NOT drive any physical vga card with it.
+;  
+;  ============================================================================================
+;  
+
+;
+; Source file: vberom.asm
+;
+;  ============================================================================================
+;  
+;   Copyright (C) 2002 Jeroen Janssen
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  
+;  ============================================================================================
+;  
+;   This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
+;   You can NOT drive any physical vga card with it.
+;  
+;  ============================================================================================
+;  
+;   This VBE Bios is based on information taken from :
+;    - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
+;  
+;  ============================================================================================
+
+;
+; Source file: vgabios.c
+;
+;  // ============================================================================================
+;  
+;  vgabios.c
+;  
+;  // ============================================================================================
+;  //
+;  //  Copyright (C) 2001,2002 the LGPL VGABios developers Team
+;  //
+;  //  This library is free software; you can redistribute it and/or
+;  //  modify it under the terms of the GNU Lesser General Public
+;  //  License as published by the Free Software Foundation; either
+;  //  version 2 of the License, or (at your option) any later version.
+;  //
+;  //  This library is distributed in the hope that it will be useful,
+;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;  //  Lesser General Public License for more details.
+;  //
+;  //  You should have received a copy of the GNU Lesser General Public
+;  //  License along with this library; if not, write to the Free Software
+;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VGA Bios is specific to the plex86/bochs Emulated VGA card.
+;  //  You can NOT drive any physical vga card with it.
+;  //
+;  // ============================================================================================
+;  //
+;  //  This file contains code ripped from :
+;  //   - rombios.c of plex86
+;  //
+;  //  This VGA Bios contains fonts from :
+;  //   - fntcol16.zip (c) by Joseph Gil avalable at :
+;  //      ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
+;  //     These fonts are public domain
+;  //
+;  //  This VGA Bios is based on information taken from :
+;  //   - Kevin Lawton's vga card emulation for bochs/plex86
+;  //   - Ralf Brown's interrupts list available at http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
+;  //   - Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
+;  //   - Michael Abrash's Graphics Programming Black Book
+;  //   - Francois Gervais' book "programmation des cartes graphiques cga-ega-vga" edited by sybex
+;  //   - DOSEMU 1.0.1 source code for several tables values and formulas
+;  //
+;  // Thanks for patches, comments and ideas to :
+;  //   - techt@pikeonline.net
+;  //
+;  // ============================================================================================
+
+;
+; Source file: vbe.c
+;
+;  // ============================================================================================
+;  //
+;  //  Copyright (C) 2002 Jeroen Janssen
+;  //
+;  //  This library is free software; you can redistribute it and/or
+;  //  modify it under the terms of the GNU Lesser General Public
+;  //  License as published by the Free Software Foundation; either
+;  //  version 2 of the License, or (at your option) any later version.
+;  //
+;  //  This library is distributed in the hope that it will be useful,
+;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;  //  Lesser General Public License for more details.
+;  //
+;  //  You should have received a copy of the GNU Lesser General Public
+;  //  License along with this library; if not, write to the Free Software
+;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
+;  //  You can NOT drive any physical vga card with it.
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VBE Bios is based on information taken from :
+;  //   - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
+;  //
+;  // ============================================================================================
+
+;
+; Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+; other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+; the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+; a choice of LGPL license versions is made available with the language indicating
+; that LGPLv2 or any later version may be used, or where a choice of which version
+; of the LGPL is applied is otherwise unspecified.
+;
+
+
+
+
+
+section VGAROM progbits vstart=0x0 align=1 ; size=0x992 class=CODE group=AUTO
+    db  055h, 0aah, 040h, 0e9h, 062h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
+    db  04dh, 000h
+vgabios_int10_handler:                       ; 0xc0022 LB 0x54e
+    pushfw                                    ; 9c
+    cmp ah, 00fh                              ; 80 fc 0f
+    jne short 0002eh                          ; 75 06
+    call 00183h                               ; e8 58 01
+    jmp near 000f3h                           ; e9 c5 00
+    cmp ah, 01ah                              ; 80 fc 1a
+    jne short 00039h                          ; 75 06
+    call 00538h                               ; e8 02 05
+    jmp near 000f3h                           ; e9 ba 00
+    cmp ah, 00bh                              ; 80 fc 0b
+    jne short 00044h                          ; 75 06
+    call 000f5h                               ; e8 b4 00
+    jmp near 000f3h                           ; e9 af 00
+    cmp ax, 01103h                            ; 3d 03 11
+    jne short 0004fh                          ; 75 06
+    call 0042fh                               ; e8 e3 03
+    jmp near 000f3h                           ; e9 a4 00
+    cmp ah, 012h                              ; 80 fc 12
+    jne short 00092h                          ; 75 3e
+    cmp bl, 010h                              ; 80 fb 10
+    jne short 0005fh                          ; 75 06
+    call 0043ch                               ; e8 e0 03
+    jmp near 000f3h                           ; e9 94 00
+    cmp bl, 030h                              ; 80 fb 30
+    jne short 0006ah                          ; 75 06
+    call 0045fh                               ; e8 f8 03
+    jmp near 000f3h                           ; e9 89 00
+    cmp bl, 031h                              ; 80 fb 31
+    jne short 00074h                          ; 75 05
+    call 004b2h                               ; e8 40 04
+    jmp short 000f3h                          ; eb 7f
+    cmp bl, 032h                              ; 80 fb 32
+    jne short 0007eh                          ; 75 05
+    call 004d4h                               ; e8 58 04
+    jmp short 000f3h                          ; eb 75
+    cmp bl, 033h                              ; 80 fb 33
+    jne short 00088h                          ; 75 05
+    call 004f2h                               ; e8 6c 04
+    jmp short 000f3h                          ; eb 6b
+    cmp bl, 034h                              ; 80 fb 34
+    jne short 000e5h                          ; 75 58
+    call 00516h                               ; e8 86 04
+    jmp short 000f3h                          ; eb 61
+    cmp ax, 0101bh                            ; 3d 1b 10
+    je short 000e5h                           ; 74 4e
+    cmp ah, 010h                              ; 80 fc 10
+    jne short 000a1h                          ; 75 05
+    call 001aah                               ; e8 0b 01
+    jmp short 000f3h                          ; eb 52
+    cmp ah, 04fh                              ; 80 fc 4f
+    jne short 000e5h                          ; 75 3f
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 000afh                          ; 75 05
+    call 0080dh                               ; e8 60 07
+    jmp short 000f3h                          ; eb 44
+    cmp AL, strict byte 005h                  ; 3c 05
+    jne short 000b8h                          ; 75 05
+    call 00832h                               ; e8 7c 07
+    jmp short 000f3h                          ; eb 3b
+    cmp AL, strict byte 006h                  ; 3c 06
+    jne short 000c1h                          ; 75 05
+    call 0085fh                               ; e8 a0 07
+    jmp short 000f3h                          ; eb 32
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 000cah                          ; 75 05
+    call 008ach                               ; e8 e4 07
+    jmp short 000f3h                          ; eb 29
+    cmp AL, strict byte 008h                  ; 3c 08
+    jne short 000d3h                          ; 75 05
+    call 008e0h                               ; e8 0f 08
+    jmp short 000f3h                          ; eb 20
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 000dch                          ; 75 05
+    call 00917h                               ; e8 3d 08
+    jmp short 000f3h                          ; eb 17
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    jne short 000e5h                          ; 75 05
+    call 0097bh                               ; e8 98 08
+    jmp short 000f3h                          ; eb 0e
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    mov bx, 0c000h                            ; bb 00 c0
+    mov ds, bx                                ; 8e db
+    call 03007h                               ; e8 17 2f
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popfw                                     ; 9d
+    iret                                      ; cf
+    cmp bh, 000h                              ; 80 ff 00
+    je short 00100h                           ; 74 06
+    cmp bh, 001h                              ; 80 ff 01
+    je short 00151h                           ; 74 52
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push DS                                   ; 1e
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ds, dx                                ; 8e da
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
+    jbe short 00144h                          ; 76 2f
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 000h                  ; b0 00
+    out DX, AL                                ; ee
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    and AL, strict byte 00fh                  ; 24 0f
+    test AL, strict byte 008h                 ; a8 08
+    je short 00125h                           ; 74 02
+    add AL, strict byte 008h                  ; 04 08
+    out DX, AL                                ; ee
+    mov CL, strict byte 001h                  ; b1 01
+    and bl, 010h                              ; 80 e3 10
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0efh                  ; 24 ef
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0012bh                          ; 75 e7
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop DS                                    ; 1f
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov CL, strict byte 001h                  ; b1 01
+    and bl, 001h                              ; 80 e3 01
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0feh                  ; 24 fe
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0015eh                          ; 75 e7
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    push bx                                   ; 53
+    mov bx, strict word 00062h                ; bb 62 00
+    mov al, byte [bx]                         ; 8a 07
+    pop bx                                    ; 5b
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    push bx                                   ; 53
+    mov bx, 00087h                            ; bb 87 00
+    mov ah, byte [bx]                         ; 8a 27
+    and ah, 080h                              ; 80 e4 80
+    mov bx, strict word 00049h                ; bb 49 00
+    mov al, byte [bx]                         ; 8a 07
+    db  00ah, 0c4h
+    ; or al, ah                                 ; 0a c4
+    mov bx, strict word 0004ah                ; bb 4a 00
+    mov ah, byte [bx]                         ; 8a 27
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    cmp AL, strict byte 000h                  ; 3c 00
+    jne short 001b0h                          ; 75 02
+    jmp short 00211h                          ; eb 61
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 001b6h                          ; 75 02
+    jmp short 0022fh                          ; eb 79
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 001bch                          ; 75 02
+    jmp short 00237h                          ; eb 7b
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 001c3h                          ; 75 03
+    jmp near 00268h                           ; e9 a5 00
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 001cah                          ; 75 03
+    jmp near 00292h                           ; e9 c8 00
+    cmp AL, strict byte 008h                  ; 3c 08
+    jne short 001d1h                          ; 75 03
+    jmp near 002bah                           ; e9 e9 00
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 001d8h                          ; 75 03
+    jmp near 002c8h                           ; e9 f0 00
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 001dfh                          ; 75 03
+    jmp near 0030dh                           ; e9 2e 01
+    cmp AL, strict byte 012h                  ; 3c 12
+    jne short 001e6h                          ; 75 03
+    jmp near 00326h                           ; e9 40 01
+    cmp AL, strict byte 013h                  ; 3c 13
+    jne short 001edh                          ; 75 03
+    jmp near 0034eh                           ; e9 61 01
+    cmp AL, strict byte 015h                  ; 3c 15
+    jne short 001f4h                          ; 75 03
+    jmp near 00395h                           ; e9 a1 01
+    cmp AL, strict byte 017h                  ; 3c 17
+    jne short 001fbh                          ; 75 03
+    jmp near 003b0h                           ; e9 b5 01
+    cmp AL, strict byte 018h                  ; 3c 18
+    jne short 00202h                          ; 75 03
+    jmp near 003d8h                           ; e9 d6 01
+    cmp AL, strict byte 019h                  ; 3c 19
+    jne short 00209h                          ; 75 03
+    jmp near 003e3h                           ; e9 da 01
+    cmp AL, strict byte 01ah                  ; 3c 1a
+    jne short 00210h                          ; 75 03
+    jmp near 003eeh                           ; e9 de 01
+    retn                                      ; c3
+    cmp bl, 014h                              ; 80 fb 14
+    jnbe short 0022eh                         ; 77 18
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push bx                                   ; 53
+    mov BL, strict byte 011h                  ; b3 11
+    call 00211h                               ; e8 dc ff
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov CL, strict byte 000h                  ; b1 00
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 010h                              ; 80 f9 10
+    jne short 00246h                          ; 75 f1
+    mov AL, strict byte 011h                  ; b0 11
+    out DX, AL                                ; ee
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0f7h                  ; 24 f7
+    and bl, 001h                              ; 80 e3 01
+    sal bl, 003h                              ; c0 e3 03
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    cmp bl, 014h                              ; 80 fb 14
+    jnbe short 002b9h                         ; 77 22
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    mov BL, strict byte 011h                  ; b3 11
+    call 00292h                               ; e8 d1 ff
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    pop bx                                    ; 5b
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov CL, strict byte 000h                  ; b1 00
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 010h                              ; 80 f9 10
+    jne short 002d0h                          ; 75 e7
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 011h                  ; b0 11
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c8h                            ; ba c8 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    mov dx, 003c9h                            ; ba c9 03
+    pop ax                                    ; 58
+    push ax                                   ; 50
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    out DX, AL                                ; ee
+    db  08ah, 0c5h
+    ; mov al, ch                                ; 8a c5
+    out DX, AL                                ; ee
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003c8h                            ; ba c8 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003c9h                            ; ba c9 03
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    jne short 00337h                          ; 75 ee
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and bl, 001h                              ; 80 e3 01
+    jne short 00371h                          ; 75 0d
+    and AL, strict byte 07fh                  ; 24 7f
+    sal bh, 007h                              ; c0 e7 07
+    db  00ah, 0c7h
+    ; or al, bh                                 ; 0a c7
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    jmp short 0038ah                          ; eb 19
+    push ax                                   ; 50
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    pop ax                                    ; 58
+    and AL, strict byte 080h                  ; 24 80
+    jne short 00384h                          ; 75 03
+    sal bh, 002h                              ; c0 e7 02
+    and bh, 00fh                              ; 80 e7 0f
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c7h                            ; ba c7 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop ax                                    ; 58
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    xchg al, ah                               ; 86 e0
+    push ax                                   ; 50
+    in AL, DX                                 ; ec
+    db  08ah, 0e8h
+    ; mov ch, al                                ; 8a e8
+    in AL, DX                                 ; ec
+    db  08ah, 0c8h
+    ; mov cl, al                                ; 8a c8
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003c7h                            ; ba c7 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    jne short 003c1h                          ; 75 ee
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c6h                            ; ba c6 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c6h                            ; ba c6 03
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    shr bl, 007h                              ; c0 eb 07
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    and bh, 00fh                              ; 80 e7 0f
+    test bl, 001h                             ; f6 c3 01
+    jne short 0041eh                          ; 75 03
+    shr bh, 002h                              ; c0 ef 02
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c4h                            ; ba c4 03
+    db  08ah, 0e3h
+    ; mov ah, bl                                ; 8a e3
+    mov AL, strict byte 003h                  ; b0 03
+    out DX, ax                                ; ef
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    db  032h, 0edh
+    ; xor ch, ch                                ; 32 ed
+    mov bx, 00088h                            ; bb 88 00
+    mov cl, byte [bx]                         ; 8a 0f
+    and cl, 00fh                              ; 80 e1 0f
+    mov bx, strict word 00063h                ; bb 63 00
+    mov ax, word [bx]                         ; 8b 07
+    mov bx, strict word 00003h                ; bb 03 00
+    cmp ax, 003b4h                            ; 3d b4 03
+    jne short 0045ch                          ; 75 02
+    mov BH, strict byte 001h                  ; b7 01
+    pop ax                                    ; 58
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    mov bx, 00088h                            ; bb 88 00
+    mov ah, byte [bx]                         ; 8a 27
+    cmp dl, 001h                              ; 80 fa 01
+    je short 0048dh                           ; 74 15
+    jc short 00497h                           ; 72 1d
+    cmp dl, 002h                              ; 80 fa 02
+    je short 00481h                           ; 74 02
+    jmp short 004abh                          ; eb 2a
+    and AL, strict byte 07fh                  ; 24 7f
+    or AL, strict byte 010h                   ; 0c 10
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 009h                               ; 80 cc 09
+    jne short 004a1h                          ; 75 14
+    and AL, strict byte 06fh                  ; 24 6f
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 009h                               ; 80 cc 09
+    jne short 004a1h                          ; 75 0a
+    and AL, strict byte 0efh                  ; 24 ef
+    or AL, strict byte 080h                   ; 0c 80
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 008h                               ; 80 cc 08
+    mov bx, 00089h                            ; bb 89 00
+    mov byte [bx], al                         ; 88 07
+    mov bx, 00088h                            ; bb 88 00
+    mov byte [bx], ah                         ; 88 27
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    sal dl, 003h                              ; c0 e2 03
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0f7h                  ; 24 f7
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    and bl, 001h                              ; 80 e3 01
+    xor bl, 001h                              ; 80 f3 01
+    sal bl, 1                                 ; d0 e3
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0fdh                  ; 24 fd
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    xor dl, 001h                              ; 80 f2 01
+    sal dl, 1                                 ; d0 e2
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0fdh                  ; 24 fd
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    xor dl, 001h                              ; 80 f2 01
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0feh                  ; 24 fe
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 00541h                           ; 74 05
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 00556h                           ; 74 16
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 0008ah                            ; bb 8a 00
+    mov al, byte [bx]                         ; 8a 07
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    pop ax                                    ; 58
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    push bx                                   ; 53
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    mov bx, 0008ah                            ; bb 8a 00
+    mov byte [bx], al                         ; 88 07
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    times 0x5 db 0
+do_out_dx_ax:                                ; 0xc0570 LB 0x7
+    xchg ah, al                               ; 86 c4
+    out DX, AL                                ; ee
+    xchg ah, al                               ; 86 c4
+    out DX, AL                                ; ee
+    retn                                      ; c3
+do_in_ax_dx:                                 ; 0xc0577 LB 0x40
+    in AL, DX                                 ; ec
+    xchg ah, al                               ; 86 c4
+    in AL, DX                                 ; ec
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    je short 00581h                           ; 74 fb
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    jne short 0058eh                          ; 75 fb
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 00570h                               ; e8 d0 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 d1 ff
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 005b5h                          ; 76 0b
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    shr ah, 003h                              ; c0 ec 03
+    test AL, strict byte 007h                 ; a8 07
+    je short 005b5h                           ; 74 02
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_dispi_get_max_bpp:                          ; 0xc05b7 LB 0x26
+    push dx                                   ; 52
+    push bx                                   ; 53
+    call 005f1h                               ; e8 35 00
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    or ax, strict byte 00002h                 ; 83 c8 02
+    call 005ddh                               ; e8 19 00
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 00570h                               ; e8 a3 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 a4 ff
+    push ax                                   ; 50
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    call 005ddh                               ; e8 04 00
+    pop ax                                    ; 58
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    retn                                      ; c3
+dispi_set_enable_:                           ; 0xc05dd LB 0x26
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00004h                ; b8 04 00
+    call 00570h                               ; e8 88 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 81 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00004h                ; b8 04 00
+    call 00570h                               ; e8 75 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 76 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+dispi_set_bank_:                             ; 0xc0603 LB 0x26
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00005h                ; b8 05 00
+    call 00570h                               ; e8 62 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 5b ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00005h                ; b8 05 00
+    call 00570h                               ; e8 4f ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 50 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_dispi_set_bank_farcall:                     ; 0xc0629 LB 0xe4
+    cmp bx, 00100h                            ; 81 fb 00 01
+    je short 00653h                           ; 74 24
+    db  00bh, 0dbh
+    ; or bx, bx                                 ; 0b db
+    jne short 00665h                          ; 75 32
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 30 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 29 ff
+    call 00577h                               ; e8 2d ff
+    pop dx                                    ; 5a
+    db  03bh, 0d0h
+    ; cmp dx, ax                                ; 3b d0
+    jne short 00665h                          ; 75 16
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retf                                      ; cb
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 14 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 15 ff
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    retf                                      ; cb
+    mov ax, 0014fh                            ; b8 4f 01
+    retf                                      ; cb
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00008h                ; b8 08 00
+    call 00570h                               ; e8 fc fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 f5 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00008h                ; b8 08 00
+    call 00570h                               ; e8 e9 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 ea fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00009h                ; b8 09 00
+    call 00570h                               ; e8 d6 fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 cf fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00009h                ; b8 09 00
+    call 00570h                               ; e8 c3 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 c4 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    call 00596h                               ; e8 d9 fe
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnbe short 006c3h                         ; 77 02
+    shr bx, 1                                 ; d1 eb
+    shr bx, 003h                              ; c1 eb 03
+    mov dx, 003d4h                            ; ba d4 03
+    db  08ah, 0e3h
+    ; mov ah, bl                                ; 8a e3
+    mov AL, strict byte 013h                  ; b0 13
+    out DX, ax                                ; ef
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    call 006b5h                               ; e8 e0 ff
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00570h                               ; e8 90 fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 89 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00570h                               ; e8 7d fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 7e fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00007h                ; b8 07 00
+    call 00570h                               ; e8 6b fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 6c fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_vga_compat_setup:                           ; 0xc070d LB 0xed
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00001h                ; b8 01 00
+    call 00570h                               ; e8 58 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 59 fe
+    push ax                                   ; 50
+    mov dx, 003d4h                            ; ba d4 03
+    mov ax, strict word 00011h                ; b8 11 00
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    push ax                                   ; 50
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov AL, strict byte 001h                  ; b0 01
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    call 006b5h                               ; e8 80 ff
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00002h                ; b8 02 00
+    call 00570h                               ; e8 32 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 33 fe
+    dec ax                                    ; 48
+    push ax                                   ; 50
+    mov dx, 003d4h                            ; ba d4 03
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov AL, strict byte 012h                  ; b0 12
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    mov AL, strict byte 007h                  ; b0 07
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    and AL, strict byte 0bdh                  ; 24 bd
+    test ah, 001h                             ; f6 c4 01
+    je short 0075dh                           ; 74 02
+    or AL, strict byte 002h                   ; 0c 02
+    test ah, 002h                             ; f6 c4 02
+    je short 00764h                           ; 74 02
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    mov dx, 003d4h                            ; ba d4 03
+    mov ax, strict word 00009h                ; b8 09 00
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 060h                  ; 24 60
+    out DX, AL                                ; ee
+    mov dx, 003d4h                            ; ba d4 03
+    mov AL, strict byte 017h                  ; b0 17
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 003h                   ; 0c 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 001h                   ; 0c 01
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003ceh                            ; ba ce 03
+    mov ax, 00506h                            ; b8 06 05
+    out DX, ax                                ; ef
+    mov dx, 003c4h                            ; ba c4 03
+    mov ax, 00f02h                            ; b8 02 0f
+    out DX, ax                                ; ef
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 00570h                               ; e8 c2 fd
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 c3 fd
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 007f8h                           ; 72 40
+    mov dx, 003d4h                            ; ba d4 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 040h                   ; 0c 40
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003c4h                            ; ba c4 03
+    mov AL, strict byte 004h                  ; b0 04
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 008h                   ; 0c 08
+    out DX, AL                                ; ee
+    mov dx, 003ceh                            ; ba ce 03
+    mov AL, strict byte 005h                  ; b0 05
+    out DX, AL                                ; ee
+    mov dx, 003cfh                            ; ba cf 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 09fh                  ; 24 9f
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+_vbe_has_vbe_display:                        ; 0xc07fa LB 0x13
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 000b9h                            ; bb b9 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 001h                  ; 24 01
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+vbe_biosfn_return_current_mode:              ; 0xc080d LB 0x25
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    call 005f1h                               ; e8 db fd
+    and ax, strict byte 00001h                ; 83 e0 01
+    je short 00824h                           ; 74 09
+    mov bx, 000bah                            ; bb ba 00
+    mov ax, word [bx]                         ; 8b 07
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    jne short 0082dh                          ; 75 09
+    mov bx, strict word 00049h                ; bb 49 00
+    mov al, byte [bx]                         ; 8a 07
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    mov ax, strict word 0004fh                ; b8 4f 00
+    pop DS                                    ; 1f
+    retn                                      ; c3
+vbe_biosfn_display_window_control:           ; 0xc0832 LB 0x2d
+    cmp bl, 000h                              ; 80 fb 00
+    jne short 0085bh                          ; 75 24
+    cmp bh, 001h                              ; 80 ff 01
+    je short 00852h                           ; 74 16
+    jc short 00842h                           ; 72 04
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    call 00603h                               ; e8 bc fd
+    call 00617h                               ; e8 cd fd
+    db  03bh, 0c2h
+    ; cmp ax, dx                                ; 3b c2
+    jne short 0085bh                          ; 75 0d
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    call 00617h                               ; e8 c2 fd
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+vbe_biosfn_set_get_logical_scan_line_length: ; 0xc085f LB 0x4d
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    cmp bl, 001h                              ; 80 fb 01
+    je short 0088ah                           ; 74 24
+    cmp bl, 002h                              ; 80 fb 02
+    je short 00871h                           ; 74 06
+    jc short 00887h                           ; 72 1a
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    push ax                                   ; 50
+    call 00596h                               ; e8 21 fd
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    db  08ah, 0dch
+    ; mov bl, ah                                ; 8a dc
+    db  00ah, 0dbh
+    ; or bl, bl                                 ; 0a db
+    jne short 00882h                          ; 75 05
+    sal ax, 003h                              ; c1 e0 03
+    mov BL, strict byte 001h                  ; b3 01
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    pop ax                                    ; 58
+    div bx                                    ; f7 f3
+    call 006d2h                               ; e8 48 fe
+    call 00596h                               ; e8 09 fd
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    db  08ah, 0dch
+    ; mov bl, ah                                ; 8a dc
+    call 006e9h                               ; e8 55 fe
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    db  00ah, 0dbh
+    ; or bl, bl                                 ; 0a db
+    jne short 0089fh                          ; 75 05
+    shr ax, 003h                              ; c1 e8 03
+    mov BL, strict byte 001h                  ; b3 01
+    mul bx                                    ; f7 e3
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    call 006fbh                               ; e8 55 fe
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+vbe_biosfn_set_get_display_start:            ; 0xc08ac LB 0x34
+    cmp bl, 080h                              ; 80 fb 80
+    je short 008bch                           ; 74 0b
+    cmp bl, 001h                              ; 80 fb 01
+    je short 008d0h                           ; 74 1a
+    jc short 008c2h                           ; 72 0a
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    call 00589h                               ; e8 ca fc
+    call 0057ch                               ; e8 ba fc
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    call 00669h                               ; e8 a2 fd
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    call 0068fh                               ; e8 c3 fd
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    call 0067dh                               ; e8 aa fd
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    call 006a3h                               ; e8 cb fd
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+vbe_biosfn_set_get_dac_palette_format:       ; 0xc08e0 LB 0x37
+    cmp bl, 001h                              ; 80 fb 01
+    je short 00903h                           ; 74 1e
+    jc short 008ebh                           ; 72 04
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    call 005f1h                               ; e8 03 fd
+    cmp bh, 006h                              ; 80 ff 06
+    je short 008fdh                           ; 74 0a
+    cmp bh, 008h                              ; 80 ff 08
+    jne short 00913h                          ; 75 1b
+    or ax, strict byte 00020h                 ; 83 c8 20
+    jne short 00900h                          ; 75 03
+    and ax, strict byte 0ffdfh                ; 83 e0 df
+    call 005ddh                               ; e8 da fc
+    mov BH, strict byte 006h                  ; b7 06
+    call 005f1h                               ; e8 e9 fc
+    and ax, strict byte 00020h                ; 83 e0 20
+    je short 0090fh                           ; 74 02
+    mov BH, strict byte 008h                  ; b7 08
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+vbe_biosfn_set_get_palette_data:             ; 0xc0917 LB 0x64
+    test bl, bl                               ; 84 db
+    je short 0092ah                           ; 74 0f
+    cmp bl, 001h                              ; 80 fb 01
+    je short 00952h                           ; 74 32
+    cmp bl, 003h                              ; 80 fb 03
+    jbe short 00977h                          ; 76 52
+    cmp bl, 080h                              ; 80 fb 80
+    jne short 00973h                          ; 75 49
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pop DS                                    ; 1f
+    db  08ah, 0c2h
+    ; mov al, dl                                ; 8a c2
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    db  08bh, 0f7h
+    ; mov si, di                                ; 8b f7
+    lodsd                                     ; 66 ad
+    ror eax, 010h                             ; 66 c1 c8 10
+    out DX, AL                                ; ee
+    rol eax, 008h                             ; 66 c1 c0 08
+    out DX, AL                                ; ee
+    rol eax, 008h                             ; 66 c1 c0 08
+    out DX, AL                                ; ee
+    loop 00938h                               ; e2 ed
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    pushad                                    ; 66 60
+    db  08ah, 0c2h
+    ; mov al, dl                                ; 8a c2
+    mov dx, 003c7h                            ; ba c7 03
+    out DX, AL                                ; ee
+    add dl, 002h                              ; 80 c2 02
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    in AL, DX                                 ; ec
+    sal eax, 008h                             ; 66 c1 e0 08
+    in AL, DX                                 ; ec
+    sal eax, 008h                             ; 66 c1 e0 08
+    in AL, DX                                 ; ec
+    stosd                                     ; 66 ab
+    loop 0095dh                               ; e2 ee
+    popad                                     ; 66 61
+    jmp short 0094eh                          ; eb db
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+    mov ax, 0024fh                            ; b8 4f 02
+    retn                                      ; c3
+vbe_biosfn_return_protected_mode_interface: ; 0xc097b LB 0x17
+    test bl, bl                               ; 84 db
+    jne short 0098eh                          ; 75 0f
+    mov di, 0c000h                            ; bf 00 c0
+    mov es, di                                ; 8e c7
+    mov di, 04400h                            ; bf 00 44
+    mov cx, 00115h                            ; b9 15 01
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+
+  ; Padding 0x6e bytes at 0xc0992
+  times 110 db 0
+
+section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f57 class=CODE group=AUTO
+set_int_vector_:                             ; 0xc0a00 LB 0x1a
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 002h                              ; c1 e3 02
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov word [es:bx], dx                      ; 26 89 17
+    mov word [es:bx+002h], 0c000h             ; 26 c7 47 02 00 c0
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+init_vga_card_:                              ; 0xc0a1a LB 0x1c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov AL, strict byte 0c3h                  ; b0 c3
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 004h                  ; b0 04
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+init_bios_area_:                             ; 0xc0a36 LB 0x32
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    xor bx, bx                                ; 31 db
+    mov ax, strict word 00040h                ; b8 40 00
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx+010h]                 ; 26 8a 47 10
+    and AL, strict byte 0cfh                  ; 24 cf
+    or AL, strict byte 020h                   ; 0c 20
+    mov byte [es:bx+010h], al                 ; 26 88 47 10
+    mov byte [es:bx+00085h], 010h             ; 26 c6 87 85 00 10
+    mov word [es:bx+00087h], 0f960h           ; 26 c7 87 87 00 60 f9
+    mov byte [es:bx+00089h], 051h             ; 26 c6 87 89 00 51
+    mov byte [es:bx+065h], 009h               ; 26 c6 47 65 09
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+_vgabios_init_func:                          ; 0xc0a68 LB 0x20
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    call 00a1ah                               ; e8 ac ff
+    call 00a36h                               ; e8 c5 ff
+    call 03482h                               ; e8 0e 2a
+    mov dx, strict word 00022h                ; ba 22 00
+    mov ax, strict word 00010h                ; b8 10 00
+    call 00a00h                               ; e8 83 ff
+    mov ax, strict word 00003h                ; b8 03 00
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    int 010h                                  ; cd 10
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retf                                      ; cb
+vga_get_cursor_pos_:                         ; 0xc0a88 LB 0x43
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    mov cl, al                                ; 88 c1
+    mov si, dx                                ; 89 d6
+    cmp AL, strict byte 007h                  ; 3c 07
+    jbe short 00aa3h                          ; 76 0e
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    jmp short 00ac4h                          ; eb 21
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 ae 24
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], ax                      ; 26 89 04
+    movzx dx, cl                              ; 0f b6 d1
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 9b 24
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vga_read_char_attr_:                         ; 0xc0acb LB 0xa8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov cl, al                                ; 88 c1
+    mov si, dx                                ; 89 d6
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 5c 24
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 30 24
+    mov ch, al                                ; 88 c5
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 00b5ah                           ; 74 6d
+    movzx ax, cl                              ; 0f b6 c1
+    lea bx, [bp-010h]                         ; 8d 5e f0
+    lea dx, [bp-00eh]                         ; 8d 56 f2
+    call 00a88h                               ; e8 8f ff
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 2b 24
+    movzx di, al                              ; 0f b6 f8
+    inc di                                    ; 47
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 3a 24
+    movzx bx, ch                              ; 0f b6 dd
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 00b5ah                          ; 75 2d
+    mov dx, ax                                ; 89 c2
+    imul dx, di                               ; 0f af d7
+    add dx, dx                                ; 01 d2
+    or dl, 0ffh                               ; 80 ca ff
+    xor ch, ch                                ; 30 ed
+    inc dx                                    ; 42
+    imul cx, dx                               ; 0f af ca
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    imul dx, ax                               ; 0f af d0
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    add ax, dx                                ; 01 d0
+    add ax, ax                                ; 01 c0
+    mov dx, cx                                ; 89 ca
+    add dx, ax                                ; 01 c2
+    mov ax, word [bx+04633h]                  ; 8b 87 33 46
+    call 02f5ah                               ; e8 03 24
+    mov word [ss:si], ax                      ; 36 89 04
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov cs, [bp+di]                           ; 8e 0b
+    int 00bh                                  ; cd 0b
+    ror byte [bp+di], CL                      ; d2 0b
+    fimul dword [bp+di]                       ; da 0b
+    db  0dfh
+    db  00bh, 0e4h
+    ; or sp, sp                                 ; 0b e4
+    db  00bh, 0e9h
+    ; or bp, cx                                 ; 0b e9
+    db  00bh, 0eeh
+    ; or bp, si                                 ; 0b ee
+    db  00bh
+vga_get_font_info_:                          ; 0xc0b73 LB 0x82
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov bx, cx                                ; 89 cb
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jnbe short 00bc4h                         ; 77 3f
+    mov di, ax                                ; 89 c7
+    add di, ax                                ; 01 c7
+    jmp word [cs:di+00b63h]                   ; 2e ff a5 63 0b
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 02f76h                               ; e8 e0 23
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov di, word [bp-006h]                    ; 8b 7e fa
+    mov word [es:di], ax                      ; 26 89 05
+    mov word [es:si], dx                      ; 26 89 14
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 94 23
+    xor ah, ah                                ; 30 e4
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 84 23
+    xor ah, ah                                ; 30 e4
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+    mov dx, 0010ch                            ; ba 0c 01
+    jmp short 00b91h                          ; eb bf
+    mov ax, 05bedh                            ; b8 ed 5b
+    mov dx, 0c000h                            ; ba 00 c0
+    jmp short 00b96h                          ; eb bc
+    mov ax, 053edh                            ; b8 ed 53
+    jmp short 00bd5h                          ; eb f6
+    mov ax, 057edh                            ; b8 ed 57
+    jmp short 00bd5h                          ; eb f1
+    mov ax, 079edh                            ; b8 ed 79
+    jmp short 00bd5h                          ; eb ec
+    mov ax, 069edh                            ; b8 ed 69
+    jmp short 00bd5h                          ; eb e7
+    mov ax, 07b1ah                            ; b8 1a 7b
+    jmp short 00bd5h                          ; eb e2
+    jmp short 00bc4h                          ; eb cf
+vga_read_pixel_:                             ; 0xc0bf5 LB 0x139
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, dx                                ; 89 d6
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov di, cx                                ; 89 cf
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 31 23
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 05 23
+    mov cl, al                                ; 88 c1
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 00d27h                            ; 0f 84 0d 01
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    je near 00d27h                            ; 0f 84 fe 00
+    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    cmp bl, 003h                              ; 80 fb 03
+    jc short 00c43h                           ; 72 11
+    jbe short 00c4bh                          ; 76 17
+    cmp bl, 005h                              ; 80 fb 05
+    je near 00d04h                            ; 0f 84 c9 00
+    cmp bl, 004h                              ; 80 fb 04
+    je short 00c4bh                           ; 74 0b
+    jmp near 00d22h                           ; e9 df 00
+    cmp bl, 002h                              ; 80 fb 02
+    je short 00ca3h                           ; 74 5b
+    jmp near 00d22h                           ; e9 d7 00
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 06 23
+    imul ax, word [bp-00ah]                   ; 0f af 46 f6
+    mov bx, si                                ; 89 f3
+    shr bx, 003h                              ; c1 eb 03
+    add bx, ax                                ; 01 c3
+    mov cx, si                                ; 89 f1
+    and cx, strict byte 00007h                ; 83 e1 07
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-006h], ch                    ; 88 6e fa
+    jmp short 00c79h                          ; eb 08
+    cmp byte [bp-006h], 004h                  ; 80 7e fa 04
+    jnc near 00d24h                           ; 0f 83 ab 00
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 004h                   ; 0c 04
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f3eh                               ; e8 b0 22
+    and al, byte [bp-008h]                    ; 22 46 f8
+    test al, al                               ; 84 c0
+    jbe short 00c9eh                          ; 76 09
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    mov AL, strict byte 001h                  ; b0 01
+    sal al, CL                                ; d2 e0
+    or ch, al                                 ; 08 c5
+    inc byte [bp-006h]                        ; fe 46 fa
+    jmp short 00c71h                          ; eb ce
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    shr ax, 1                                 ; d1 e8
+    imul ax, ax, strict byte 00050h           ; 6b c0 50
+    mov bx, si                                ; 89 f3
+    shr bx, 002h                              ; c1 eb 02
+    add bx, ax                                ; 01 c3
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 00cbbh                           ; 74 03
+    add bh, 020h                              ; 80 c7 20
+    mov dx, bx                                ; 89 da
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f3eh                               ; e8 7b 22
+    movzx bx, cl                              ; 0f b6 d9
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    jne short 00cebh                          ; 75 1b
+    mov cx, si                                ; 89 f1
+    xor ch, ch                                ; 30 ed
+    and cl, 003h                              ; 80 e1 03
+    mov bx, strict word 00003h                ; bb 03 00
+    sub bx, cx                                ; 29 cb
+    mov cx, bx                                ; 89 d9
+    add cx, bx                                ; 01 d9
+    xor ah, ah                                ; 30 e4
+    sar ax, CL                                ; d3 f8
+    mov ch, al                                ; 88 c5
+    and ch, 003h                              ; 80 e5 03
+    jmp short 00d24h                          ; eb 39
+    mov cx, si                                ; 89 f1
+    xor ch, ch                                ; 30 ed
+    and cl, 007h                              ; 80 e1 07
+    mov bx, strict word 00007h                ; bb 07 00
+    sub bx, cx                                ; 29 cb
+    mov cx, bx                                ; 89 d9
+    xor ah, ah                                ; 30 e4
+    sar ax, CL                                ; d3 f8
+    mov ch, al                                ; 88 c5
+    and ch, 001h                              ; 80 e5 01
+    jmp short 00d24h                          ; eb 20
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 4d 22
+    sal ax, 003h                              ; c1 e0 03
+    imul ax, word [bp-00ah]                   ; 0f af 46 f6
+    mov dx, si                                ; 89 f2
+    add dx, ax                                ; 01 c2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f3eh                               ; e8 20 22
+    mov ch, al                                ; 88 c5
+    jmp short 00d24h                          ; eb 02
+    xor ch, ch                                ; 30 ed
+    mov byte [ss:di], ch                      ; 36 88 2d
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_perform_gray_scale_summing_:          ; 0xc0d2e LB 0x8c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor al, al                                ; 30 c0
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    xor si, si                                ; 31 f6
+    cmp si, di                                ; 39 fe
+    jnc short 00d9fh                          ; 73 52
+    mov al, bl                                ; 88 d8
+    mov dx, 003c7h                            ; ba c7 03
+    out DX, AL                                ; ee
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ch, ch                                ; 30 ed
+    imul cx, cx, strict byte 0004dh           ; 6b c9 4d
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
+    imul cx, cx, 00097h                       ; 69 c9 97 00
+    add cx, word [bp-00ah]                    ; 03 4e f6
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    add cx, ax                                ; 01 c1
+    add cx, 00080h                            ; 81 c1 80 00
+    sar cx, 008h                              ; c1 f9 08
+    cmp cx, strict byte 0003fh                ; 83 f9 3f
+    jbe short 00d8dh                          ; 76 03
+    mov cx, strict word 0003fh                ; b9 3f 00
+    mov al, bl                                ; 88 d8
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    inc si                                    ; 46
+    jmp short 00d49h                          ; eb aa
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_cursor_shape_:                    ; 0xc0dba LB 0xa4
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov ch, al                                ; 88 c5
+    mov cl, dl                                ; 88 d1
+    and ch, 03fh                              ; 80 e5 3f
+    and cl, 01fh                              ; 80 e1 1f
+    movzx di, ch                              ; 0f b6 fd
+    mov bx, di                                ; 89 fb
+    sal bx, 008h                              ; c1 e3 08
+    movzx si, cl                              ; 0f b6 f1
+    add bx, si                                ; 01 f3
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 87 21
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 54 21
+    mov bl, al                                ; 88 c3
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 65 21
+    mov dx, ax                                ; 89 c2
+    test bl, 001h                             ; f6 c3 01
+    je short 00e33h                           ; 74 37
+    cmp ax, strict word 00008h                ; 3d 08 00
+    jbe short 00e33h                          ; 76 32
+    cmp cl, 008h                              ; 80 f9 08
+    jnc short 00e33h                          ; 73 2d
+    cmp ch, 020h                              ; 80 fd 20
+    jnc short 00e33h                          ; 73 28
+    inc di                                    ; 47
+    cmp si, di                                ; 39 fe
+    je short 00e19h                           ; 74 09
+    imul ax, di                               ; 0f af c7
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    jmp short 00e24h                          ; eb 0b
+    lea si, [di+001h]                         ; 8d 75 01
+    imul ax, si                               ; 0f af c6
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    dec ax                                    ; 48
+    mov ch, al                                ; 88 c5
+    movzx ax, cl                              ; 0f b6 c1
+    inc ax                                    ; 40
+    imul ax, dx                               ; 0f af c2
+    shr ax, 003h                              ; c1 e8 03
+    dec ax                                    ; 48
+    mov cl, al                                ; 88 c1
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 1e 21
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 00ah                  ; b0 0a
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea si, [bx+001h]                         ; 8d 77 01
+    mov al, ch                                ; 88 e8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_cursor_pos_:                      ; 0xc0e5e LB 0xa2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov cx, dx                                ; 89 d1
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe near 00ef8h                          ; 0f 87 87 00
+    movzx dx, al                              ; 0f b6 d0
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov bx, cx                                ; 89 cb
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 e7 20
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 b4 20
+    cmp al, byte [bp-008h]                    ; 3a 46 f8
+    jne short 00ef8h                          ; 75 69
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 c2 20
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 9b 20
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    inc dx                                    ; 42
+    mov al, cl                                ; 88 c8
+    xor cl, cl                                ; 30 c9
+    shr cx, 008h                              ; c1 e9 08
+    mov byte [bp-00ah], cl                    ; 88 4e f6
+    imul dx, bx                               ; 0f af d3
+    or dl, 0ffh                               ; 80 ca ff
+    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
+    inc dx                                    ; 42
+    imul dx, cx                               ; 0f af d1
+    mov si, ax                                ; 89 c6
+    add si, dx                                ; 01 d6
+    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
+    imul bx, dx                               ; 0f af da
+    add si, bx                                ; 01 de
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 84 20
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 00eh                  ; b0 0e
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov ax, si                                ; 89 f0
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    lea cx, [bx+001h]                         ; 8d 4f 01
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    mov AL, strict byte 00fh                  ; b0 0f
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    and si, 000ffh                            ; 81 e6 ff 00
+    mov ax, si                                ; 89 f0
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_active_page_:                     ; 0xc0f00 LB 0xdc
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov cl, al                                ; 88 c1
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe near 00fd2h                          ; 0f 87 c0 00
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 23 20
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 f7 1f
+    mov ch, al                                ; 88 c5
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 00fd2h                            ; 0f 84 aa 00
+    movzx ax, cl                              ; 0f b6 c1
+    lea bx, [bp-00eh]                         ; 8d 5e f2
+    lea dx, [bp-00ch]                         ; 8d 56 f4
+    call 00a88h                               ; e8 54 fb
+    movzx bx, ch                              ; 0f b6 dd
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 00f83h                          ; 75 40
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 0e 20
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 e7 1f
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov si, bx                                ; 89 de
+    imul si, ax                               ; 0f af f0
+    mov ax, si                                ; 89 f0
+    add ax, si                                ; 01 f0
+    or AL, strict byte 0ffh                   ; 0c ff
+    movzx di, cl                              ; 0f b6 f9
+    mov bx, ax                                ; 89 c3
+    inc bx                                    ; 43
+    imul bx, di                               ; 0f af df
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 f1 1f
+    or si, 000ffh                             ; 81 ce ff 00
+    lea bx, [si+001h]                         ; 8d 5c 01
+    imul bx, di                               ; 0f af df
+    jmp short 00f95h                          ; eb 12
+    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
+    sal bx, 006h                              ; c1 e3 06
+    movzx ax, cl                              ; 0f b6 c1
+    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
+    imul bx, ax                               ; 0f af d8
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 bc 1f
+    mov si, ax                                ; 89 c6
+    mov AL, strict byte 00ch                  ; b0 0c
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    xor al, bl                                ; 30 d8
+    shr ax, 008h                              ; c1 e8 08
+    lea di, [si+001h]                         ; 8d 7c 01
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 00dh                  ; b0 0d
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    movzx si, cl                              ; 0f b6 f1
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 82 1f
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, si                                ; 89 f0
+    call 00e5eh                               ; e8 8c fe
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x391
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00010h                ; 83 ec 10
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    and AL, strict byte 080h                  ; 24 80
+    mov byte [bp-010h], al                    ; 88 46 f0
+    call 007fah                               ; e8 08 f8
+    test ax, ax                               ; 85 c0
+    je short 01002h                           ; 74 0c
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    and byte [bp-00ch], 07fh                  ; 80 66 f4 7f
+    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
+    jne short 01010h                          ; 75 04
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    call 02f17h                               ; e8 00 1f
+    mov byte [bp-012h], al                    ; 88 46 ee
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 01363h                            ; 0f 84 43 03
+    movzx si, al                              ; 0f b6 f0
+    mov al, byte [si+046afh]                  ; 8a 84 af 46
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 006h                              ; c1 e3 06
+    movzx ax, byte [bx+046c3h]                ; 0f b6 87 c3 46
+    mov word [bp-018h], ax                    ; 89 46 e8
+    movzx ax, byte [bx+046c4h]                ; 0f b6 87 c4 46
+    mov word [bp-016h], ax                    ; 89 46 ea
+    movzx ax, byte [bx+046c5h]                ; 0f b6 87 c5 46
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 ed 1e
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 e4 1e
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 db 1e
+    mov ah, al                                ; 88 c4
+    test AL, strict byte 008h                 ; a8 08
+    jne near 010f5h                           ; 0f 85 8a 00
+    mov bx, si                                ; 89 f3
+    sal bx, 003h                              ; c1 e3 03
+    mov al, byte [bx+04635h]                  ; 8a 87 35 46
+    mov dx, 003c6h                            ; ba c6 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
+    cmp bl, 001h                              ; 80 fb 01
+    jc short 01095h                           ; 72 0e
+    jbe short 0109eh                          ; 76 15
+    cmp bl, 003h                              ; 80 fb 03
+    je short 010a8h                           ; 74 1a
+    cmp bl, 002h                              ; 80 fb 02
+    je short 010a3h                           ; 74 10
+    jmp short 010abh                          ; eb 16
+    test bl, bl                               ; 84 db
+    jne short 010abh                          ; 75 12
+    mov di, 04e43h                            ; bf 43 4e
+    jmp short 010abh                          ; eb 0d
+    mov di, 04f03h                            ; bf 03 4f
+    jmp short 010abh                          ; eb 08
+    mov di, 04fc3h                            ; bf c3 4f
+    jmp short 010abh                          ; eb 03
+    mov di, 05083h                            ; bf 83 50
+    xor bx, bx                                ; 31 db
+    jmp short 010beh                          ; eb 0f
+    xor al, al                                ; 30 c0
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 010e8h                          ; 73 2a
+    movzx si, byte [bp-012h]                  ; 0f b6 76 ee
+    sal si, 003h                              ; c1 e6 03
+    movzx si, byte [si+04636h]                ; 0f b6 b4 36 46
+    movzx dx, byte [si+046bfh]                ; 0f b6 94 bf 46
+    cmp bx, dx                                ; 39 d3
+    jnbe short 010afh                         ; 77 dc
+    imul si, bx, strict byte 00003h           ; 6b f3 03
+    add si, di                                ; 01 fe
+    mov al, byte [si]                         ; 8a 04
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    mov al, byte [si+001h]                    ; 8a 44 01
+    out DX, AL                                ; ee
+    mov al, byte [si+002h]                    ; 8a 44 02
+    out DX, AL                                ; ee
+    jmp short 010b7h                          ; eb cf
+    test ah, 002h                             ; f6 c4 02
+    je short 010f5h                           ; 74 08
+    mov dx, 00100h                            ; ba 00 01
+    xor ax, ax                                ; 31 c0
+    call 00d2eh                               ; e8 39 fc
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor bx, bx                                ; 31 db
+    jmp short 01104h                          ; eb 05
+    cmp bx, strict byte 00013h                ; 83 fb 13
+    jnbe short 0111bh                         ; 77 17
+    mov al, bl                                ; 88 d8
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 006h                              ; c1 e6 06
+    add si, bx                                ; 01 de
+    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 010ffh                          ; eb e4
+    mov AL, strict byte 014h                  ; b0 14
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 003h                  ; b0 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    mov bx, strict word 00001h                ; bb 01 00
+    jmp short 01138h                          ; eb 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jnbe short 01152h                         ; 77 1a
+    mov al, bl                                ; 88 d8
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 006h                              ; c1 e6 06
+    add si, bx                                ; 01 de
+    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 01133h                          ; eb e1
+    xor bx, bx                                ; 31 db
+    jmp short 0115bh                          ; eb 05
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jnbe short 01175h                         ; 77 1a
+    mov al, bl                                ; 88 d8
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 006h                              ; c1 e6 06
+    add si, bx                                ; 01 de
+    mov al, byte [si+046fah]                  ; 8a 84 fa 46
+    mov dx, 003cfh                            ; ba cf 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 01156h                          ; eb e1
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
+    jne short 01188h                          ; 75 05
+    mov dx, 003b4h                            ; ba b4 03
+    jmp short 0118bh                          ; eb 03
+    mov dx, 003d4h                            ; ba d4 03
+    mov si, dx                                ; 89 d6
+    mov ax, strict word 00011h                ; b8 11 00
+    out DX, ax                                ; ef
+    xor bx, bx                                ; 31 db
+    jmp short 0119ah                          ; eb 05
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jnbe short 011b5h                         ; 77 1b
+    mov al, bl                                ; 88 d8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    movzx cx, byte [bp-00eh]                  ; 0f b6 4e f2
+    sal cx, 006h                              ; c1 e1 06
+    mov di, cx                                ; 89 cf
+    add di, bx                                ; 01 df
+    lea dx, [si+001h]                         ; 8d 54 01
+    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 01195h                          ; eb e0
+    mov bx, cx                                ; 89 cb
+    mov al, byte [bx+046cch]                  ; 8a 87 cc 46
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01230h                          ; 75 5f
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 011f2h                          ; 75 13
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 04000h                            ; b9 00 40
+    mov ax, 00720h                            ; b8 20 07
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 011f0h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 01230h                          ; eb 3e
+    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
+    jnc short 0120ah                          ; 73 12
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 04000h                            ; b9 00 40
+    xor ax, ax                                ; 31 c0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01208h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 01230h                          ; eb 26
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov AL, strict byte 00fh                  ; b0 0f
+    out DX, AL                                ; ee
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 08000h                            ; b9 00 80
+    xor ax, ax                                ; 31 c0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 0122ch                               ; e3 02
+    rep stosw                                 ; f3 ab
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    out DX, AL                                ; ee
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 0f 1d
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 1f 1d
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    sal bx, 006h                              ; c1 e3 06
+    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 0b 1d
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 00 1d
+    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 d7 1c
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 e7 1c
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 060h                   ; 0c 60
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 ba 1c
+    mov bx, 000f9h                            ; bb f9 00
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 ae 1c
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 97 1c
+    and AL, strict byte 07fh                  ; 24 7f
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 97 1c
+    mov bx, strict word 00008h                ; bb 08 00
+    mov dx, 0008ah                            ; ba 8a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 8b 1c
+    mov cx, ds                                ; 8c d9
+    mov bx, 053d1h                            ; bb d1 53
+    mov dx, 000a8h                            ; ba a8 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f88h                               ; e8 b9 1c
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00065h                ; ba 65 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 72 1c
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00066h                ; ba 66 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 67 1c
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 012fch                          ; 75 09
+    mov dx, strict word 00007h                ; ba 07 00
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00dbah                               ; e8 be fa
+    xor bx, bx                                ; 31 db
+    jmp short 01305h                          ; eb 05
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jnc short 01310h                          ; 73 0b
+    movzx ax, bl                              ; 0f b6 c3
+    xor dx, dx                                ; 31 d2
+    call 00e5eh                               ; e8 51 fb
+    inc bx                                    ; 43
+    jmp short 01300h                          ; eb f0
+    xor ax, ax                                ; 31 c0
+    call 00f00h                               ; e8 eb fb
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 01333h                          ; 75 10
+    xor bl, bl                                ; 30 db
+    mov AL, strict byte 004h                  ; b0 04
+    mov AH, strict byte 011h                  ; b4 11
+    int 010h                                  ; cd 10
+    xor bl, bl                                ; 30 db
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 011h                  ; b4 11
+    int 010h                                  ; cd 10
+    mov dx, 057edh                            ; ba ed 57
+    mov ax, strict word 0001fh                ; b8 1f 00
+    call 00a00h                               ; e8 c4 f6
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    cmp ax, strict word 00010h                ; 3d 10 00
+    je short 0135eh                           ; 74 1a
+    cmp ax, strict word 0000eh                ; 3d 0e 00
+    je short 01359h                           ; 74 10
+    cmp ax, strict word 00008h                ; 3d 08 00
+    jne short 01363h                          ; 75 15
+    mov dx, 053edh                            ; ba ed 53
+    mov ax, strict word 00043h                ; b8 43 00
+    call 00a00h                               ; e8 a9 f6
+    jmp short 01363h                          ; eb 0a
+    mov dx, 05bedh                            ; ba ed 5b
+    jmp short 01351h                          ; eb f3
+    mov dx, 069edh                            ; ba ed 69
+    jmp short 01351h                          ; eb ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vgamem_copy_pl4_:                            ; 0xc136d LB 0x76
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bh, cl                                ; 88 cf
+    movzx di, dl                              ; 0f b6 fa
+    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
+    imul di, cx                               ; 0f af f9
+    movzx si, byte [bp+004h]                  ; 0f b6 76 04
+    imul di, si                               ; 0f af fe
+    xor ah, ah                                ; 30 e4
+    add di, ax                                ; 01 c7
+    mov word [bp-008h], di                    ; 89 7e f8
+    movzx di, bl                              ; 0f b6 fb
+    imul cx, di                               ; 0f af cf
+    imul cx, si                               ; 0f af ce
+    add cx, ax                                ; 01 c1
+    mov word [bp-006h], cx                    ; 89 4e fa
+    mov ax, 00105h                            ; b8 05 01
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+006h]                    ; 3a 5e 06
+    jnc short 013d3h                          ; 73 29
+    movzx cx, bh                              ; 0f b6 cf
+    movzx si, bl                              ; 0f b6 f3
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    imul ax, si                               ; 0f af c6
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    add si, ax                                ; 01 c6
+    mov di, word [bp-006h]                    ; 8b 7e fa
+    add di, ax                                ; 01 c7
+    mov dx, 0a000h                            ; ba 00 a0
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 013cfh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 013a5h                          ; eb d2
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_fill_pl4_:                            ; 0xc13e3 LB 0x61
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-004h], bl                    ; 88 5e fc
+    mov bh, cl                                ; 88 cf
+    movzx cx, dl                              ; 0f b6 ca
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    imul cx, dx                               ; 0f af ca
+    movzx dx, bh                              ; 0f b6 d7
+    imul dx, cx                               ; 0f af d1
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnc short 01435h                          ; 73 22
+    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
+    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
+    movzx dx, bl                              ; 0f b6 d3
+    movzx di, bh                              ; 0f b6 ff
+    imul di, dx                               ; 0f af fa
+    add di, word [bp-006h]                    ; 03 7e fa
+    mov dx, 0a000h                            ; ba 00 a0
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01431h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 0140eh                          ; eb d9
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_copy_cga_:                            ; 0xc1444 LB 0xa4
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bh, cl                                ; 88 cf
+    movzx di, dl                              ; 0f b6 fa
+    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
+    imul di, cx                               ; 0f af f9
+    movzx si, byte [bp+004h]                  ; 0f b6 76 04
+    imul di, si                               ; 0f af fe
+    sar di, 1                                 ; d1 ff
+    xor ah, ah                                ; 30 e4
+    add di, ax                                ; 01 c7
+    mov word [bp-006h], di                    ; 89 7e fa
+    movzx di, bl                              ; 0f b6 fb
+    imul cx, di                               ; 0f af cf
+    imul si, cx                               ; 0f af f1
+    sar si, 1                                 ; d1 fe
+    add si, ax                                ; 01 c6
+    mov word [bp-008h], si                    ; 89 76 f8
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+006h]                    ; 3a 5e 06
+    jnc short 014dfh                          ; 73 61
+    test bl, 001h                             ; f6 c3 01
+    je short 014b4h                           ; 74 31
+    movzx cx, bh                              ; 0f b6 cf
+    movzx si, bl                              ; 0f b6 f3
+    sar si, 1                                 ; d1 fe
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    imul ax, si                               ; 0f af c6
+    mov si, word [bp-006h]                    ; 8b 76 fa
+    add si, 02000h                            ; 81 c6 00 20
+    add si, ax                                ; 01 c6
+    mov di, word [bp-008h]                    ; 8b 7e f8
+    add di, 02000h                            ; 81 c7 00 20
+    add di, ax                                ; 01 c7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 014b2h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    jmp short 014dbh                          ; eb 27
+    movzx cx, bh                              ; 0f b6 cf
+    movzx ax, bl                              ; 0f b6 c3
+    sar ax, 1                                 ; d1 f8
+    movzx si, byte [bp+004h]                  ; 0f b6 76 04
+    imul ax, si                               ; 0f af c6
+    mov si, word [bp-006h]                    ; 8b 76 fa
+    add si, ax                                ; 01 c6
+    mov di, word [bp-008h]                    ; 8b 7e f8
+    add di, ax                                ; 01 c7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 014dbh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 01479h                          ; eb 9a
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_fill_cga_:                            ; 0xc14e8 LB 0x8a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov bh, cl                                ; 88 cf
+    movzx cx, dl                              ; 0f b6 ca
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    imul dx, cx                               ; 0f af d1
+    movzx cx, bh                              ; 0f b6 cf
+    imul dx, cx                               ; 0f af d1
+    sar dx, 1                                 ; d1 fa
+    movzx si, al                              ; 0f b6 f0
+    add si, dx                                ; 01 d6
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnc short 01569h                          ; 73 57
+    test bl, 001h                             ; f6 c3 01
+    je short 01546h                           ; 74 2f
+    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
+    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
+    movzx dx, bl                              ; 0f b6 d3
+    sar dx, 1                                 ; d1 fa
+    mov word [bp-008h], dx                    ; 89 56 f8
+    movzx dx, bh                              ; 0f b6 d7
+    mov di, word [bp-008h]                    ; 8b 7e f8
+    imul di, dx                               ; 0f af fa
+    mov word [bp-008h], di                    ; 89 7e f8
+    lea di, [si+02000h]                       ; 8d bc 00 20
+    add di, word [bp-008h]                    ; 03 7e f8
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01544h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    jmp short 01565h                          ; eb 1f
+    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
+    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
+    movzx di, bl                              ; 0f b6 fb
+    sar di, 1                                 ; d1 ff
+    movzx dx, bh                              ; 0f b6 d7
+    imul di, dx                               ; 0f af fa
+    add di, si                                ; 01 f7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01565h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 0150dh                          ; eb a4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+biosfn_scroll_:                              ; 0xc1572 LB 0x506
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00018h                ; 83 ec 18
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    mov byte [bp-006h], cl                    ; 88 4e fa
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnbe near 01a6fh                          ; 0f 87 e2 04
+    cmp cl, byte [bp+006h]                    ; 3a 4e 06
+    jnbe near 01a6fh                          ; 0f 87 db 04
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 a1 19
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 75 19
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 01a6fh                            ; 0f 84 c4 04
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 8a 19
+    movzx cx, al                              ; 0f b6 c8
+    inc cx                                    ; 41
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 99 19
+    mov word [bp-016h], ax                    ; 89 46 ea
+    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
+    jne short 015d6h                          ; 75 0c
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 6b 19
+    mov byte [bp+008h], al                    ; 88 46 08
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp ax, cx                                ; 39 c8
+    jc short 015e5h                           ; 72 07
+    mov al, cl                                ; 88 c8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp+004h], al                    ; 88 46 04
+    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 015f6h                           ; 72 08
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp+006h], al                    ; 88 46 06
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    cmp ax, cx                                ; 39 c8
+    jbe short 01602h                          ; 76 04
+    mov byte [bp-010h], 000h                  ; c6 46 f0 00
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    sub al, byte [bp-006h]                    ; 2a 46 fa
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [bp-012h], al                    ; 88 46 ee
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    mov di, si                                ; 89 f7
+    sal di, 003h                              ; c1 e7 03
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    dec ax                                    ; 48
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, cx                                ; 89 c8
+    dec ax                                    ; 48
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    imul ax, cx                               ; 0f af c1
+    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
+    jne near 017d1h                           ; 0f 85 9f 01
+    mov dx, ax                                ; 89 c2
+    add dx, ax                                ; 01 c2
+    or dl, 0ffh                               ; 80 ca ff
+    movzx bx, byte [bp+008h]                  ; 0f b6 5e 08
+    inc dx                                    ; 42
+    imul bx, dx                               ; 0f af da
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01681h                          ; 75 3a
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 01681h                          ; 75 34
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01681h                          ; 75 2e
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    cmp dx, word [bp-01ah]                    ; 3b 56 e6
+    jne short 01681h                          ; 75 25
+    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
+    cmp dx, word [bp-018h]                    ; 3b 56 e8
+    jne short 01681h                          ; 75 1c
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    sal dx, 008h                              ; c1 e2 08
+    add dx, strict byte 00020h                ; 83 c2 20
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    mov di, bx                                ; 89 df
+    cld                                       ; fc
+    jcxz 0167eh                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp near 01a6fh                           ; e9 ee 03
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne near 01726h                           ; 0f 85 9d 00
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    mov word [bp-014h], ax                    ; 89 46 ec
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    cmp dx, word [bp-014h]                    ; 3b 56 ec
+    jc near 01a6fh                            ; 0f 82 d4 03
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    add ax, word [bp-014h]                    ; 03 46 ec
+    cmp ax, dx                                ; 39 d0
+    jnbe short 016ach                         ; 77 06
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 016dfh                          ; 75 33
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    sal ax, 008h                              ; c1 e0 08
+    add ax, strict word 00020h                ; 05 20 00
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    imul si, word [bp-016h]                   ; 0f af 76 ea
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    add dx, si                                ; 01 f2
+    add dx, dx                                ; 01 d2
+    mov di, bx                                ; 89 df
+    add di, dx                                ; 01 d7
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 003h                              ; c1 e6 03
+    mov es, [si+04633h]                       ; 8e 84 33 46
+    cld                                       ; fc
+    jcxz 016ddh                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 01720h                          ; eb 41
+    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
+    mov word [bp-01ch], dx                    ; 89 56 e4
+    mov dx, ax                                ; 89 c2
+    imul dx, word [bp-016h]                   ; 0f af 56 ea
+    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
+    add dx, cx                                ; 01 ca
+    add dx, dx                                ; 01 d2
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 003h                              ; c1 e6 03
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    imul si, word [bp-016h]                   ; 0f af 76 ea
+    add cx, si                                ; 01 f1
+    add cx, cx                                ; 01 c9
+    mov di, bx                                ; 89 df
+    add di, cx                                ; 01 cf
+    mov cx, word [bp-01ch]                    ; 8b 4e e4
+    mov si, dx                                ; 89 d6
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 01720h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    inc word [bp-014h]                        ; ff 46 ec
+    jmp near 01690h                           ; e9 6a ff
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    mov word [bp-014h], ax                    ; 89 46 ec
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jnbe near 01a6fh                          ; 0f 87 37 03
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jnbe short 0174dh                         ; 77 06
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01780h                          ; 75 33
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    sal ax, 008h                              ; c1 e0 08
+    add ax, strict word 00020h                ; 05 20 00
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    imul si, word [bp-016h]                   ; 0f af 76 ea
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    add dx, si                                ; 01 f2
+    add dx, dx                                ; 01 d2
+    mov di, bx                                ; 89 df
+    add di, dx                                ; 01 d7
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 003h                              ; c1 e6 03
+    mov es, [si+04633h]                       ; 8e 84 33 46
+    cld                                       ; fc
+    jcxz 0177eh                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 017c0h                          ; eb 40
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    sub dx, ax                                ; 29 c2
+    imul dx, word [bp-016h]                   ; 0f af 56 ea
+    movzx di, byte [bp-006h]                  ; 0f b6 7e fa
+    add dx, di                                ; 01 fa
+    add dx, dx                                ; 01 d2
+    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    sal si, 003h                              ; c1 e6 03
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    imul si, word [bp-016h]                   ; 0f af 76 ea
+    add di, si                                ; 01 f7
+    add di, di                                ; 01 ff
+    add di, bx                                ; 01 df
+    mov si, dx                                ; 89 d6
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 017c0h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jc near 01a6fh                            ; 0f 82 a4 02
+    dec word [bp-014h]                        ; ff 4e ec
+    jmp near 0172dh                           ; e9 5c ff
+    movzx bx, byte [si+046afh]                ; 0f b6 9c af 46
+    sal bx, 006h                              ; c1 e3 06
+    mov dl, byte [bx+046c5h]                  ; 8a 97 c5 46
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov bl, byte [di+04631h]                  ; 8a 9d 31 46
+    cmp bl, 004h                              ; 80 fb 04
+    je short 017f8h                           ; 74 0f
+    cmp bl, 003h                              ; 80 fb 03
+    je short 017f8h                           ; 74 0a
+    cmp bl, 002h                              ; 80 fb 02
+    je near 01937h                            ; 0f 84 42 01
+    jmp near 01a6fh                           ; e9 77 02
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01850h                          ; 75 52
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 01850h                          ; 75 4c
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 01850h                          ; 75 46
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    mov ax, cx                                ; 89 c8
+    dec ax                                    ; 48
+    cmp dx, ax                                ; 39 c2
+    jne short 01850h                          ; 75 3b
+    movzx dx, byte [bp+006h]                  ; 0f b6 56 06
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    dec ax                                    ; 48
+    cmp dx, ax                                ; 39 c2
+    jne short 01850h                          ; 75 2f
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    imul cx, word [bp-016h]                   ; 0f af 4e ea
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    imul cx, ax                               ; 0f af c8
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    sal bx, 003h                              ; c1 e3 03
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01849h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    jmp near 01a6fh                           ; e9 1f 02
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 018bfh                          ; 75 69
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    mov word [bp-014h], ax                    ; 89 46 ec
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jc near 01a6fh                            ; 0f 82 07 02
+    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
+    add dx, word [bp-014h]                    ; 03 56 ec
+    cmp dx, ax                                ; 39 c2
+    jnbe short 01879h                         ; 77 06
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01898h                          ; 75 1f
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 013e3h                               ; e8 4d fb
+    jmp short 018bah                          ; eb 22
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    add al, byte [bp-010h]                    ; 02 46 f0
+    movzx dx, al                              ; 0f b6 d0
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 0136dh                               ; e8 b3 fa
+    inc word [bp-014h]                        ; ff 46 ec
+    jmp short 0185dh                          ; eb 9e
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    mov word [bp-014h], ax                    ; 89 46 ec
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jnbe near 01a6fh                          ; 0f 87 9e 01
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jnbe short 018e6h                         ; 77 06
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01905h                          ; 75 1f
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 013e3h                               ; e8 e0 fa
+    jmp short 01927h                          ; eb 22
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    sub al, byte [bp-010h]                    ; 2a 46 f0
+    movzx bx, al                              ; 0f b6 d8
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 0136dh                               ; e8 46 fa
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jc near 01a6fh                            ; 0f 82 3d 01
+    dec word [bp-014h]                        ; ff 4e ec
+    jmp short 018c6h                          ; eb 8f
+    mov dl, byte [di+04632h]                  ; 8a 95 32 46
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 0197eh                          ; 75 3d
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 0197eh                          ; 75 37
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 0197eh                          ; 75 31
+    movzx bx, byte [bp+004h]                  ; 0f b6 5e 04
+    cmp bx, word [bp-01ah]                    ; 3b 5e e6
+    jne short 0197eh                          ; 75 28
+    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
+    cmp bx, word [bp-018h]                    ; 3b 5e e8
+    jne short 0197eh                          ; 75 1f
+    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
+    imul ax, bx                               ; 0f af c3
+    movzx cx, dl                              ; 0f b6 ca
+    imul cx, ax                               ; 0f af c8
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 0197bh                               ; e3 02
+    rep stosb                                 ; f3 aa
+    jmp near 01a6fh                           ; e9 f1 00
+    cmp dl, 002h                              ; 80 fa 02
+    jne short 0198ch                          ; 75 09
+    sal byte [bp-006h], 1                     ; d0 66 fa
+    sal byte [bp-012h], 1                     ; d0 66 ee
+    sal word [bp-016h], 1                     ; d1 66 ea
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 019fbh                          ; 75 69
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    mov word [bp-014h], ax                    ; 89 46 ec
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jc near 01a6fh                            ; 0f 82 cb 00
+    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
+    add dx, word [bp-014h]                    ; 03 56 ec
+    cmp dx, ax                                ; 39 c2
+    jnbe short 019b5h                         ; 77 06
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 019d4h                          ; 75 1f
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 014e8h                               ; e8 16 fb
+    jmp short 019f6h                          ; eb 22
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    movzx bx, byte [bp-014h]                  ; 0f b6 5e ec
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    add al, byte [bp-010h]                    ; 02 46 f0
+    movzx dx, al                              ; 0f b6 d0
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 01444h                               ; e8 4e fa
+    inc word [bp-014h]                        ; ff 46 ec
+    jmp short 01999h                          ; eb 9e
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    mov word [bp-014h], ax                    ; 89 46 ec
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jnbe short 01a6fh                         ; 77 64
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jnbe short 01a20h                         ; 77 06
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 01a3fh                          ; 75 1f
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 014e8h                               ; e8 ab fa
+    jmp short 01a61h                          ; eb 22
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    sub al, byte [bp-010h]                    ; 2a 46 f0
+    movzx bx, al                              ; 0f b6 d8
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 01444h                               ; e8 e3 f9
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jc short 01a6fh                           ; 72 05
+    dec word [bp-014h]                        ; ff 4e ec
+    jmp short 01a02h                          ; eb 93
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00008h                               ; c2 08 00
+write_gfx_char_pl4_:                         ; 0xc1a78 LB 0xeb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov ah, bl                                ; 88 dc
+    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
+    je short 01a96h                           ; 74 0b
+    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
+    jne short 01a9bh                          ; 75 0a
+    mov di, 05bedh                            ; bf ed 5b
+    jmp short 01a9eh                          ; eb 08
+    mov di, 069edh                            ; bf ed 69
+    jmp short 01a9eh                          ; eb 03
+    mov di, 053edh                            ; bf ed 53
+    movzx si, cl                              ; 0f b6 f1
+    movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
+    imul si, bx                               ; 0f af f3
+    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
+    imul cx, si                               ; 0f af ce
+    movzx si, ah                              ; 0f b6 f4
+    add si, cx                                ; 01 ce
+    mov word [bp-00eh], si                    ; 89 76 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, bx                               ; 0f af c3
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov ax, 00f02h                            ; b8 02 0f
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 01ad9h                           ; 74 06
+    mov ax, 01803h                            ; b8 03 18
+    out DX, ax                                ; ef
+    jmp short 01addh                          ; eb 04
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    xor ch, ch                                ; 30 ed
+    cmp ch, byte [bp+006h]                    ; 3a 6e 06
+    jnc short 01b4bh                          ; 73 67
+    movzx si, ch                              ; 0f b6 f5
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    imul si, ax                               ; 0f af f0
+    add si, word [bp-00eh]                    ; 03 76 f2
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    jmp short 01b0ah                          ; eb 13
+    xor bx, bx                                ; 31 db
+    mov dx, si                                ; 89 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f4ch                               ; e8 4b 14
+    inc byte [bp-008h]                        ; fe 46 f8
+    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
+    jnc short 01b47h                          ; 73 3d
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    mov cl, al                                ; 88 c1
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 008h                   ; 0c 08
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov dx, si                                ; 89 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f3eh                               ; e8 13 14
+    movzx ax, ch                              ; 0f b6 c5
+    add ax, word [bp-00ah]                    ; 03 46 f6
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    movzx ax, byte [bx]                       ; 0f b6 07
+    test word [bp-00ch], ax                   ; 85 46 f4
+    je short 01af7h                           ; 74 ba
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 00fh                  ; 24 0f
+    movzx bx, al                              ; 0f b6 d8
+    jmp short 01af9h                          ; eb b2
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 01adfh                          ; eb 94
+    mov ax, 0ff08h                            ; b8 08 ff
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+write_gfx_char_cga_:                         ; 0xc1b63 LB 0x11e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov si, 053edh                            ; be ed 53
+    xor bh, bh                                ; 30 ff
+    movzx di, byte [bp+006h]                  ; 0f b6 7e 06
+    imul di, bx                               ; 0f af fb
+    movzx bx, cl                              ; 0f b6 d9
+    imul bx, bx, 00140h                       ; 69 db 40 01
+    add di, bx                                ; 01 df
+    mov word [bp-00ch], di                    ; 89 7e f4
+    movzx di, al                              ; 0f b6 f8
+    sal di, 003h                              ; c1 e7 03
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    jmp near 01be3h                           ; e9 50 00
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 01ba4h                          ; eb 0b
+    or al, bl                                 ; 08 d8
+    shr ch, 1                                 ; d0 ed
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cmp ah, 008h                              ; 80 fc 08
+    jnc short 01bcch                          ; 73 28
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    add bx, di                                ; 01 fb
+    add bx, si                                ; 01 f3
+    movzx bx, byte [bx]                       ; 0f b6 1f
+    movzx dx, ch                              ; 0f b6 d5
+    test bx, dx                               ; 85 d3
+    je short 01b9bh                           ; 74 e5
+    mov CL, strict byte 007h                  ; b1 07
+    sub cl, ah                                ; 28 e1
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    and bl, 001h                              ; 80 e3 01
+    sal bl, CL                                ; d2 e3
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01b99h                           ; 74 d1
+    xor al, bl                                ; 30 d8
+    jmp short 01b9bh                          ; eb cf
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f4ch                               ; e8 74 13
+    inc byte [bp-006h]                        ; fe 46 fa
+    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
+    jnc near 01c78h                           ; 0f 83 95 00
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    sar ax, 1                                 ; d1 f8
+    imul ax, ax, strict byte 00050h           ; 6b c0 50
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    test byte [bp-006h], 001h                 ; f6 46 fa 01
+    je short 01bfeh                           ; 74 04
+    add byte [bp-009h], 020h                  ; 80 46 f7 20
+    mov CH, strict byte 080h                  ; b5 80
+    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
+    jne short 01c17h                          ; 75 11
+    test byte [bp-008h], ch                   ; 84 6e f8
+    je short 01b93h                           ; 74 88
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f3eh                               ; e8 2a 13
+    jmp near 01b95h                           ; e9 7e ff
+    test ch, ch                               ; 84 ed
+    jbe short 01bd8h                          ; 76 bd
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01c2ch                           ; 74 0b
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f3eh                               ; e8 14 13
+    jmp short 01c2eh                          ; eb 02
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 01c3dh                          ; eb 0b
+    or al, bl                                 ; 08 d8
+    shr ch, 1                                 ; d0 ed
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cmp ah, 004h                              ; 80 fc 04
+    jnc short 01c67h                          ; 73 2a
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    add bx, di                                ; 01 fb
+    add bx, si                                ; 01 f3
+    movzx dx, byte [bx]                       ; 0f b6 17
+    movzx bx, ch                              ; 0f b6 dd
+    test bx, dx                               ; 85 d3
+    je short 01c34h                           ; 74 e5
+    mov CL, strict byte 003h                  ; b1 03
+    sub cl, ah                                ; 28 e1
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    and bl, 003h                              ; 80 e3 03
+    add cl, cl                                ; 00 c9
+    sal bl, CL                                ; d2 e3
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 01c32h                           ; 74 cf
+    xor al, bl                                ; 30 d8
+    jmp short 01c34h                          ; eb cd
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f4ch                               ; e8 d9 12
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 01c17h                          ; eb 9f
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+write_gfx_char_lin_:                         ; 0xc1c81 LB 0x91
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov di, 053edh                            ; bf ed 53
+    movzx dx, cl                              ; 0f b6 d1
+    movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
+    imul cx, dx                               ; 0f af ca
+    sal cx, 006h                              ; c1 e1 06
+    movzx dx, bl                              ; 0f b6 d3
+    sal dx, 003h                              ; c1 e2 03
+    add dx, cx                                ; 01 ca
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    movzx si, al                              ; 0f b6 f0
+    sal si, 003h                              ; c1 e6 03
+    xor cl, cl                                ; 30 c9
+    jmp short 01cech                          ; eb 3b
+    cmp ch, 008h                              ; 80 fd 08
+    jnc short 01ce5h                          ; 73 2f
+    xor al, al                                ; 30 c0
+    movzx dx, cl                              ; 0f b6 d1
+    add dx, si                                ; 01 f2
+    mov bx, di                                ; 89 fb
+    add bx, dx                                ; 01 d3
+    movzx dx, byte [bx]                       ; 0f b6 17
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    test dx, bx                               ; 85 da
+    je short 01ccfh                           ; 74 03
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    movzx bx, al                              ; 0f b6 d8
+    movzx dx, ch                              ; 0f b6 d5
+    add dx, word [bp-00ah]                    ; 03 56 f6
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f4ch                               ; e8 6e 12
+    shr byte [bp-008h], 1                     ; d0 6e f8
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 01cb1h                          ; eb cc
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 008h                              ; 80 f9 08
+    jnc short 01d09h                          ; 73 1d
+    movzx bx, cl                              ; 0f b6 d9
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    imul dx, bx                               ; 0f af d3
+    sal dx, 003h                              ; c1 e2 03
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    add bx, dx                                ; 01 d3
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov byte [bp-008h], 080h                  ; c6 46 f8 80
+    xor ch, ch                                ; 30 ed
+    jmp short 01cb6h                          ; eb ad
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+biosfn_write_char_attr_:                     ; 0xc1d12 LB 0x168
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00018h                ; 83 ec 18
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-010h], dl                    ; 88 56 f0
+    mov byte [bp-012h], bl                    ; 88 5e ee
+    mov si, cx                                ; 89 ce
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 10 12
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 e4 11
+    mov cl, al                                ; 88 c1
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 01e73h                            ; 0f 84 35 01
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    lea bx, [bp-01ch]                         ; 8d 5e e4
+    lea dx, [bp-01ah]                         ; 8d 56 e6
+    call 00a88h                               ; e8 3d ed
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 d9 11
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 e6 11
+    mov word [bp-016h], ax                    ; 89 46 ea
+    movzx bx, cl                              ; 0f b6 d9
+    mov di, bx                                ; 89 df
+    sal di, 003h                              ; c1 e7 03
+    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
+    jne short 01dcdh                          ; 75 47
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    imul bx, ax                               ; 0f af d8
+    add bx, bx                                ; 01 db
+    or bl, 0ffh                               ; 80 cb ff
+    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
+    inc bx                                    ; 43
+    imul dx, bx                               ; 0f af d3
+    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
+    imul ax, bx                               ; 0f af c3
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    add ax, bx                                ; 01 d8
+    add ax, ax                                ; 01 c0
+    add dx, ax                                ; 01 c2
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    sal ax, 008h                              ; c1 e0 08
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    add ax, bx                                ; 01 d8
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, si                                ; 89 f1
+    mov di, dx                                ; 89 d7
+    cld                                       ; fc
+    jcxz 01dcah                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp near 01e73h                           ; e9 a6 00
+    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
+    sal bx, 006h                              ; c1 e3 06
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, byte [di+04632h]                  ; 8a 85 32 46
+    mov byte [bp-014h], al                    ; 88 46 ec
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je near 01e73h                            ; 0f 84 88 00
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnc near 01e73h                           ; 0f 83 7d 00
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    sal bx, 003h                              ; c1 e3 03
+    mov al, byte [bx+04631h]                  ; 8a 87 31 46
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 01e11h                           ; 72 0c
+    jbe short 01e17h                          ; 76 10
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 01e55h                           ; 74 4a
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 01e17h                           ; 74 08
+    jmp short 01e6dh                          ; eb 5c
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 01e36h                           ; 74 21
+    jmp short 01e6dh                          ; eb 56
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
+    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    call 01a78h                               ; e8 44 fc
+    jmp short 01e6dh                          ; eb 37
+    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
+    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    call 01b63h                               ; e8 10 fd
+    jmp short 01e6dh                          ; eb 18
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
+    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    call 01c81h                               ; e8 14 fe
+    inc byte [bp-00ch]                        ; fe 46 f4
+    jmp near 01de3h                           ; e9 70 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_char_only_:                     ; 0xc1e7a LB 0x16f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00018h                ; 83 ec 18
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov byte [bp-014h], bl                    ; 88 5e ec
+    mov si, cx                                ; 89 ce
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 a8 10
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 7c 10
+    mov cl, al                                ; 88 c1
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 01fe2h                            ; 0f 84 3c 01
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    lea bx, [bp-01ch]                         ; 8d 5e e4
+    lea dx, [bp-01ah]                         ; 8d 56 e6
+    call 00a88h                               ; e8 d5 eb
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 71 10
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 7e 10
+    mov word [bp-016h], ax                    ; 89 46 ea
+    movzx di, cl                              ; 0f b6 f9
+    mov bx, di                                ; 89 fb
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 01f38h                          ; 75 4a
+    mov dx, word [bp-018h]                    ; 8b 56 e8
+    imul dx, ax                               ; 0f af d0
+    add dx, dx                                ; 01 d2
+    or dl, 0ffh                               ; 80 ca ff
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    inc dx                                    ; 42
+    imul bx, dx                               ; 0f af da
+    movzx dx, byte [bp-010h]                  ; 0f b6 56 f0
+    mov cx, ax                                ; 89 c1
+    imul cx, dx                               ; 0f af ca
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    add cx, dx                                ; 01 d1
+    add cx, cx                                ; 01 c9
+    add cx, bx                                ; 01 d9
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je near 01fe2h                            ; 0f 84 c6 00
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    sal bx, 003h                              ; c1 e3 03
+    mov di, word [bx+04633h]                  ; 8b bf 33 46
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 02f4ch                               ; e8 18 10
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 01f14h                          ; eb dc
+    movzx di, byte [di+046afh]                ; 0f b6 bd af 46
+    sal di, 006h                              ; c1 e7 06
+    mov al, byte [di+046c5h]                  ; 8a 85 c5 46
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov al, byte [bx+04632h]                  ; 8a 87 32 46
+    mov byte [bp-008h], al                    ; 88 46 f8
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je near 01fe2h                            ; 0f 84 8c 00
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnc near 01fe2h                           ; 0f 83 81 00
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    sal bx, 003h                              ; c1 e3 03
+    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    cmp bl, 003h                              ; 80 fb 03
+    jc short 01f7fh                           ; 72 0e
+    jbe short 01f86h                          ; 76 13
+    cmp bl, 005h                              ; 80 fb 05
+    je short 01fc4h                           ; 74 4c
+    cmp bl, 004h                              ; 80 fb 04
+    je short 01f86h                           ; 74 09
+    jmp short 01fdch                          ; eb 5d
+    cmp bl, 002h                              ; 80 fb 02
+    je short 01fa5h                           ; 74 21
+    jmp short 01fdch                          ; eb 56
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    call 01a78h                               ; e8 d5 fa
+    jmp short 01fdch                          ; eb 37
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    call 01b63h                               ; e8 a1 fb
+    jmp short 01fdch                          ; eb 18
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    push ax                                   ; 50
+    movzx cx, byte [bp-010h]                  ; 0f b6 4e f0
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    call 01c81h                               ; e8 a5 fc
+    inc byte [bp-00ch]                        ; fe 46 f4
+    jmp near 01f4eh                           ; e9 6c ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_pixel_:                         ; 0xc1fe9 LB 0x16a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 3f 0f
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 13 0f
+    mov byte [bp-004h], al                    ; 88 46 fc
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 0212bh                            ; 0f 84 1e 01
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 003h                              ; c1 e3 03
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    je near 0212bh                            ; 0f 84 0f 01
+    mov al, byte [bx+04631h]                  ; 8a 87 31 46
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 02033h                           ; 72 0f
+    jbe short 0203ah                          ; 76 14
+    cmp AL, strict byte 005h                  ; 3c 05
+    je near 02131h                            ; 0f 84 05 01
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 0203ah                           ; 74 0a
+    jmp near 0212bh                           ; e9 f8 00
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0209fh                           ; 74 68
+    jmp near 0212bh                           ; e9 f1 00
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 17 0f
+    imul ax, cx                               ; 0f af c1
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    shr bx, 003h                              ; c1 eb 03
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov cx, word [bp-00ah]                    ; 8b 4e f6
+    and cl, 007h                              ; 80 e1 07
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 008h                   ; 0c 08
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, 00205h                            ; b8 05 02
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f3eh                               ; e8 cb 0e
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 02080h                           ; 74 07
+    mov ax, 01803h                            ; b8 03 18
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0a000h                            ; b8 00 a0
+    call 02f4ch                               ; e8 bf 0e
+    mov ax, 0ff08h                            ; b8 08 ff
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    jmp near 0212bh                           ; e9 8c 00
+    mov ax, cx                                ; 89 c8
+    shr ax, 1                                 ; d1 e8
+    imul ax, ax, strict byte 00050h           ; 6b c0 50
+    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    jne short 020b5h                          ; 75 08
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    shr bx, 002h                              ; c1 eb 02
+    jmp short 020bbh                          ; eb 06
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    shr bx, 003h                              ; c1 eb 03
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    test cl, 001h                             ; f6 c1 01
+    je short 020c9h                           ; 74 04
+    add byte [bp-007h], 020h                  ; 80 46 f9 20
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f3eh                               ; e8 6c 0e
+    mov bl, al                                ; 88 c3
+    movzx si, byte [bp-004h]                  ; 0f b6 76 fc
+    sal si, 003h                              ; c1 e6 03
+    cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
+    jne short 020fbh                          ; 75 19
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    and AL, strict byte 003h                  ; 24 03
+    mov AH, strict byte 003h                  ; b4 03
+    sub ah, al                                ; 28 c4
+    mov cl, ah                                ; 88 e1
+    add cl, ah                                ; 00 e1
+    mov bh, byte [bp-006h]                    ; 8a 7e fa
+    and bh, 003h                              ; 80 e7 03
+    sal bh, CL                                ; d2 e7
+    mov AL, strict byte 003h                  ; b0 03
+    jmp short 0210eh                          ; eb 13
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    and AL, strict byte 007h                  ; 24 07
+    mov CL, strict byte 007h                  ; b1 07
+    sub cl, al                                ; 28 c1
+    mov bh, byte [bp-006h]                    ; 8a 7e fa
+    and bh, 001h                              ; 80 e7 01
+    sal bh, CL                                ; d2 e7
+    mov AL, strict byte 001h                  ; b0 01
+    sal al, CL                                ; d2 e0
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 0211ah                           ; 74 04
+    xor bl, bh                                ; 30 fb
+    jmp short 02120h                          ; eb 06
+    not al                                    ; f6 d0
+    and bl, al                                ; 20 c3
+    or bl, bh                                 ; 08 fb
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov ax, 0b800h                            ; b8 00 b8
+    call 02f4ch                               ; e8 21 0e
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 20 0e
+    sal ax, 003h                              ; c1 e0 03
+    imul cx, ax                               ; 0f af c8
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    add ax, cx                                ; 01 c8
+    mov word [bp-008h], ax                    ; 89 46 f8
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    mov dx, ax                                ; 89 c2
+    mov ax, 0a000h                            ; b8 00 a0
+    jmp short 02128h                          ; eb d5
+biosfn_write_teletype_:                      ; 0xc2153 LB 0x241
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov byte [bp-004h], bl                    ; 88 5e fc
+    mov byte [bp-00eh], cl                    ; 88 4e f2
+    cmp dl, 0ffh                              ; 80 fa ff
+    jne short 02177h                          ; 75 0c
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 ca 0d
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 be 0d
+    xor ah, ah                                ; 30 e4
+    call 02f17h                               ; e8 92 0d
+    mov byte [bp-010h], al                    ; 88 46 f0
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 0238eh                            ; 0f 84 00 02
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    lea bx, [bp-018h]                         ; 8d 5e e8
+    lea dx, [bp-016h]                         ; 8d 56 ea
+    call 00a88h                               ; e8 ed e8
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 89 0d
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 96 0d
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 021dch                           ; 72 0e
+    jbe short 021e4h                          ; 76 14
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    je short 021f2h                           ; 74 1e
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je near 022e4h                            ; 0f 84 0a 01
+    jmp short 021f9h                          ; eb 1d
+    cmp AL, strict byte 007h                  ; 3c 07
+    je near 022e7h                            ; 0f 84 05 01
+    jmp short 021f9h                          ; eb 15
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jbe near 022e7h                           ; 0f 86 fb 00
+    dec byte [bp-008h]                        ; fe 4e f8
+    jmp near 022e7h                           ; e9 f5 00
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    jmp near 022e7h                           ; e9 ee 00
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 02256h                          ; 75 4d
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    imul ax, word [bp-014h]                   ; 0f af 46 ec
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    mov cx, ax                                ; 89 c1
+    inc cx                                    ; 41
+    imul cx, dx                               ; 0f af ca
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    imul ax, word [bp-012h]                   ; 0f af 46 ee
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    add ax, dx                                ; 01 d0
+    add ax, ax                                ; 01 c0
+    add cx, ax                                ; 01 c1
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov dx, cx                                ; 89 ca
+    call 02f4ch                               ; e8 0f 0d
+    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
+    jne near 022d4h                           ; 0f 85 8f 00
+    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
+    mov dx, cx                                ; 89 ca
+    inc dx                                    ; 42
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    call 02f4ch                               ; e8 f9 0c
+    jmp near 022d4h                           ; e9 7e 00
+    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
+    sal bx, 006h                              ; c1 e3 06
+    mov ah, byte [bx+046c5h]                  ; 8a a7 c5 46
+    mov dl, byte [si+04632h]                  ; 8a 94 32 46
+    mov al, byte [si+04631h]                  ; 8a 84 31 46
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 0227ah                           ; 72 0c
+    jbe short 02280h                          ; 76 10
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 022bch                           ; 74 48
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 02280h                           ; 74 08
+    jmp short 022d4h                          ; eb 5a
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0229eh                           ; 74 20
+    jmp short 022d4h                          ; eb 54
+    movzx ax, ah                              ; 0f b6 c4
+    push ax                                   ; 50
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    push ax                                   ; 50
+    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    call 01a78h                               ; e8 dc f7
+    jmp short 022d4h                          ; eb 36
+    movzx ax, dl                              ; 0f b6 c2
+    push ax                                   ; 50
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    push ax                                   ; 50
+    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    call 01b63h                               ; e8 a9 f8
+    jmp short 022d4h                          ; eb 18
+    movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
+    push ax                                   ; 50
+    movzx cx, byte [bp-00ah]                  ; 0f b6 4e f6
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    call 01c81h                               ; e8 ad f9
+    inc byte [bp-008h]                        ; fe 46 f8
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jne short 022e7h                          ; 75 07
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    inc byte [bp-00ah]                        ; fe 46 f6
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jne near 02372h                           ; 0f 85 80 00
+    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
+    sal si, 003h                              ; c1 e6 03
+    mov bh, byte [bp-014h]                    ; 8a 7e ec
+    db  0feh, 0cfh
+    ; dec bh                                    ; fe cf
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    db  0feh, 0cbh
+    ; dec bl                                    ; fe cb
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 02354h                          ; 75 4a
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    imul ax, word [bp-014h]                   ; 0f af 46 ec
+    add ax, ax                                ; 01 c0
+    or AL, strict byte 0ffh                   ; 0c ff
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    mov cx, ax                                ; 89 c1
+    inc cx                                    ; 41
+    imul cx, dx                               ; 0f af ca
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    dec ax                                    ; 48
+    imul ax, word [bp-012h]                   ; 0f af 46 ee
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    add ax, dx                                ; 01 d0
+    add ax, ax                                ; 01 c0
+    mov dx, cx                                ; 89 ca
+    add dx, ax                                ; 01 c2
+    inc dx                                    ; 42
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    call 02f3eh                               ; e8 02 0c
+    push strict byte 00001h                   ; 6a 01
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    push dx                                   ; 52
+    movzx dx, bl                              ; 0f b6 d3
+    push dx                                   ; 52
+    movzx dx, bh                              ; 0f b6 d7
+    push dx                                   ; 52
+    movzx dx, al                              ; 0f b6 d0
+    xor cx, cx                                ; 31 c9
+    xor bx, bx                                ; 31 db
+    jmp short 02369h                          ; eb 15
+    push strict byte 00001h                   ; 6a 01
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    push ax                                   ; 50
+    movzx ax, bl                              ; 0f b6 c3
+    push ax                                   ; 50
+    movzx ax, bh                              ; 0f b6 c7
+    push ax                                   ; 50
+    xor cx, cx                                ; 31 c9
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 01572h                               ; e8 03 f2
+    dec byte [bp-00ah]                        ; fe 4e f6
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    mov word [bp-018h], ax                    ; 89 46 e8
+    sal word [bp-018h], 008h                  ; c1 66 e8 08
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    add word [bp-018h], ax                    ; 01 46 e8
+    mov dx, word [bp-018h]                    ; 8b 56 e8
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call 00e5eh                               ; e8 d0 ea
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_font_access_:                            ; 0xc2394 LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, 00100h                            ; b8 00 01
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00402h                            ; b8 02 04
+    out DX, ax                                ; ef
+    mov ax, 00704h                            ; b8 04 07
+    out DX, ax                                ; ef
+    mov ax, 00300h                            ; b8 00 03
+    out DX, ax                                ; ef
+    mov ax, 00204h                            ; b8 04 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, 00406h                            ; b8 06 04
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+release_font_access_:                        ; 0xc23c0 LB 0x3c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, 00100h                            ; b8 00 01
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00302h                            ; b8 02 03
+    out DX, ax                                ; ef
+    mov ax, 00304h                            ; b8 04 03
+    out DX, ax                                ; ef
+    mov ax, 00300h                            ; b8 00 03
+    out DX, ax                                ; ef
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00001h                ; 25 01 00
+    sal ax, 002h                              ; c1 e0 02
+    or AL, strict byte 00ah                   ; 0c 0a
+    sal ax, 008h                              ; c1 e0 08
+    or AL, strict byte 006h                   ; 0c 06
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00004h                ; b8 04 00
+    out DX, ax                                ; ef
+    mov ax, 01005h                            ; b8 05 10
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_scan_lines_:                             ; 0xc23fc LB 0xbf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 4b 0b
+    mov dx, ax                                ; 89 c2
+    mov si, ax                                ; 89 c6
+    mov AL, strict byte 009h                  ; b0 09
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ah, al                                ; 88 c4
+    and ah, 0e0h                              ; 80 e4 e0
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    or al, ah                                 ; 08 e0
+    out DX, AL                                ; ee
+    cmp bl, 008h                              ; 80 fb 08
+    jne short 02433h                          ; 75 08
+    mov dx, strict word 00007h                ; ba 07 00
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp short 02440h                          ; eb 0d
+    mov al, bl                                ; 88 d8
+    sub AL, strict byte 003h                  ; 2c 03
+    movzx dx, al                              ; 0f b6 d0
+    mov al, bl                                ; 88 d8
+    sub AL, strict byte 004h                  ; 2c 04
+    xor ah, ah                                ; 30 e4
+    call 00dbah                               ; e8 77 e9
+    movzx di, bl                              ; 0f b6 fb
+    mov bx, di                                ; 89 fb
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 17 0b
+    mov AL, strict byte 012h                  ; b0 12
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea cx, [si+001h]                         ; 8d 4c 01
+    mov dx, cx                                ; 89 ca
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ah, al                                ; 88 c4
+    and ah, 002h                              ; 80 e4 02
+    movzx dx, ah                              ; 0f b6 d4
+    sal dx, 007h                              ; c1 e2 07
+    and AL, strict byte 040h                  ; 24 40
+    xor ah, ah                                ; 30 e4
+    sal ax, 003h                              ; c1 e0 03
+    add ax, dx                                ; 01 d0
+    inc ax                                    ; 40
+    add ax, bx                                ; 01 d8
+    xor dx, dx                                ; 31 d2
+    div di                                    ; f7 f7
+    mov cx, ax                                ; 89 c1
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 b7 0a
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 bc 0a
+    movzx dx, cl                              ; 0f b6 d1
+    mov bx, ax                                ; 89 c3
+    imul bx, dx                               ; 0f af da
+    add bx, bx                                ; 01 db
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 b7 0a
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_user_pat_:                  ; 0xc24bb LB 0x7d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    call 02394h                               ; e8 c2 fe
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    and AL, strict byte 004h                  ; 24 04
+    xor ah, ah                                ; 30 e4
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    xor bx, bx                                ; 31 db
+    cmp bx, word [bp-00ah]                    ; 3b 5e f6
+    jnc short 0251fh                          ; 73 2b
+    movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
+    mov si, bx                                ; 89 de
+    imul si, cx                               ; 0f af f1
+    add si, word [bp-008h]                    ; 03 76 f8
+    mov di, word [bp+004h]                    ; 8b 7e 04
+    add di, bx                                ; 01 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00eh]                    ; 03 7e f2
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 0251ch                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 024efh                          ; eb d0
+    call 023c0h                               ; e8 9e fe
+    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
+    jc short 0252fh                           ; 72 07
+    movzx ax, byte [bp+008h]                  ; 0f b6 46 08
+    call 023fch                               ; e8 cd fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00006h                               ; c2 06 00
+biosfn_load_text_8_14_pat_:                  ; 0xc2538 LB 0x70
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 02394h                               ; e8 4d fe
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    xor ah, ah                                ; 30 e4
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 0256ah                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 02590h                          ; 73 26
+    imul si, bx, strict byte 0000eh           ; 6b f3 0e
+    mov di, bx                                ; 89 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 05bedh                            ; 81 c6 ed 5b
+    mov cx, strict word 0000eh                ; b9 0e 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 0258dh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 02564h                          ; eb d4
+    call 023c0h                               ; e8 2d fe
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 0259fh                           ; 72 06
+    mov ax, strict word 0000eh                ; b8 0e 00
+    call 023fch                               ; e8 5d fe
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_8_8_pat_:                   ; 0xc25a8 LB 0x72
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 02394h                               ; e8 dd fd
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    xor ah, ah                                ; 30 e4
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 025dah                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 02602h                          ; 73 28
+    mov si, bx                                ; 89 de
+    sal si, 003h                              ; c1 e6 03
+    mov di, bx                                ; 89 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 053edh                            ; 81 c6 ed 53
+    mov cx, strict word 00008h                ; b9 08 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 025ffh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 025d4h                          ; eb d2
+    call 023c0h                               ; e8 bb fd
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 02611h                           ; 72 06
+    mov ax, strict word 00008h                ; b8 08 00
+    call 023fch                               ; e8 eb fd
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_8_16_pat_:                  ; 0xc261a LB 0x72
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 02394h                               ; e8 6b fd
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 00eh                              ; c1 e3 0e
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    xor ah, ah                                ; 30 e4
+    sal ax, 00bh                              ; c1 e0 0b
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 0264ch                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 02674h                          ; 73 28
+    mov si, bx                                ; 89 de
+    sal si, 004h                              ; c1 e6 04
+    mov di, bx                                ; 89 df
+    sal di, 005h                              ; c1 e7 05
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 069edh                            ; 81 c6 ed 69
+    mov cx, strict word 00010h                ; b9 10 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 02671h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 02646h                          ; eb d2
+    call 023c0h                               ; e8 49 fd
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 02683h                           ; 72 06
+    mov ax, strict word 00010h                ; b8 10 00
+    call 023fch                               ; e8 79 fd
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_8_chars_:                  ; 0xc268c LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_user_chars_:                 ; 0xc2691 LB 0x7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+biosfn_load_gfx_8_14_chars_:                 ; 0xc2698 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_8_dd_chars_:               ; 0xc269d LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_16_chars_:                 ; 0xc26a2 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_alternate_prtsc_:                     ; 0xc26a7 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_switch_video_interface_:              ; 0xc26ac LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_enable_video_refresh_control_:        ; 0xc26b1 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_string_:                        ; 0xc26b6 LB 0x9c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov si, cx                                ; 89 ce
+    mov di, word [bp+00ah]                    ; 8b 7e 0a
+    movzx ax, dl                              ; 0f b6 c2
+    lea bx, [bp-00eh]                         ; 8d 5e f2
+    lea dx, [bp-00ch]                         ; 8d 56 f4
+    call 00a88h                               ; e8 b0 e3
+    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
+    jne short 026efh                          ; 75 11
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [bp+006h], al                    ; 88 46 06
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp+004h], al                    ; 88 46 04
+    movzx dx, byte [bp+004h]                  ; 0f b6 56 04
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, byte [bp+006h]                  ; 0f b6 46 06
+    add dx, ax                                ; 01 c2
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 00e5eh                               ; e8 5b e7
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 02739h                           ; 74 30
+    mov dx, di                                ; 89 fa
+    inc di                                    ; 47
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    call 02f3eh                               ; e8 2c 08
+    mov cl, al                                ; 88 c1
+    test byte [bp-00ah], 002h                 ; f6 46 f6 02
+    je short 02726h                           ; 74 0c
+    mov dx, di                                ; 89 fa
+    inc di                                    ; 47
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    call 02f3eh                               ; e8 1b 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    movzx ax, cl                              ; 0f b6 c1
+    mov cx, strict word 00003h                ; b9 03 00
+    call 02153h                               ; e8 1c fa
+    jmp short 02703h                          ; eb ca
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    jne short 02749h                          ; 75 0a
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 00e5eh                               ; e8 15 e7
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00008h                               ; c2 08 00
+biosfn_read_state_info_:                     ; 0xc2752 LB 0x101
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push dx                                   ; 52
+    push bx                                   ; 53
+    mov cx, ds                                ; 8c d9
+    mov bx, 05383h                            ; bb 83 53
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f88h                               ; e8 20 08
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov si, strict word 00049h                ; be 49 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 02783h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00022h                ; 83 c7 22
+    mov cx, strict word 00003h                ; b9 03 00
+    mov si, 00084h                            ; be 84 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 0279eh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov dx, 0008ah                            ; ba 8a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 97 07
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00025h                ; 83 c2 25
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 96 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00026h                ; 83 c2 26
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 88 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00027h                ; 83 c2 27
+    mov bx, strict word 00010h                ; bb 10 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 79 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00028h                ; 83 c2 28
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 6b 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00029h                ; 83 c2 29
+    mov bx, strict word 00008h                ; bb 08 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 5c 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov bx, strict word 00002h                ; bb 02 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 4d 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002bh                ; 83 c2 2b
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 3f 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002ch                ; 83 c2 2c
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 31 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00031h                ; 83 c2 31
+    mov bx, strict word 00003h                ; bb 03 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 22 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00032h                ; 83 c2 32
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 02f4ch                               ; e8 14 07
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00033h                ; 83 c7 33
+    mov cx, strict word 0000dh                ; b9 0d 00
+    xor ax, ax                                ; 31 c0
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 0284bh                               ; e3 02
+    rep stosb                                 ; f3 aa
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_read_video_state_size2_:              ; 0xc2853 LB 0x23
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, ax                                ; 89 c2
+    xor ax, ax                                ; 31 c0
+    test dl, 001h                             ; f6 c2 01
+    je short 02863h                           ; 74 03
+    mov ax, strict word 00046h                ; b8 46 00
+    test dl, 002h                             ; f6 c2 02
+    je short 0286bh                           ; 74 03
+    add ax, strict word 0002ah                ; 05 2a 00
+    test dl, 004h                             ; f6 c2 04
+    je short 02873h                           ; 74 03
+    add ax, 00304h                            ; 05 04 03
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    retn                                      ; c3
+vga_get_video_state_size_:                   ; 0xc2876 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, dx                                ; 89 d3
+    call 02853h                               ; e8 d4 ff
+    mov word [ss:bx], ax                      ; 36 89 07
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_save_video_state_:                    ; 0xc2888 LB 0x369
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov cx, bx                                ; 89 d9
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 bc 06
+    mov di, ax                                ; 89 c7
+    test byte [bp-00ch], 001h                 ; f6 46 f4 01
+    je near 02a0bh                            ; 0f 84 63 01
+    mov dx, 003c4h                            ; ba c4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 94 06
+    inc cx                                    ; 41
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 84 06
+    inc cx                                    ; 41
+    mov dx, 003ceh                            ; ba ce 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 73 06
+    inc cx                                    ; 41
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, 003c0h                            ; ba c0 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-008h], ax                    ; 89 46 f8
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 58 06
+    inc cx                                    ; 41
+    mov dx, 003cah                            ; ba ca 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 47 06
+    mov ax, strict word 00001h                ; b8 01 00
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    add cx, ax                                ; 01 c1
+    jmp short 02915h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
+    jnbe short 02932h                         ; 77 1d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 20 06
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 0290fh                          ; eb dd
+    xor al, al                                ; 30 c0
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 04 06
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    jmp short 02956h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
+    jnbe short 02972h                         ; 77 1c
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    lea dx, [di+001h]                         ; 8d 55 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 e0 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02950h                          ; eb de
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 0297fh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
+    jnbe short 029a8h                         ; 77 29
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    and ax, strict word 00020h                ; 25 20 00
+    or ax, word [bp-00ah]                     ; 0b 46 f6
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 aa 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02979h                          ; eb d1
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 029bbh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnbe short 029d8h                         ; 77 1d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov dx, 003cfh                            ; ba cf 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 7a 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 029b5h                          ; eb dd
+    mov bx, di                                ; 89 fb
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 87 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 60 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 56 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 4c 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 42 05
+    inc cx                                    ; 41
+    test byte [bp-00ch], 002h                 ; f6 46 f4 02
+    je near 02b7ah                            ; 0f 84 67 01
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 22 05
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 26 05
+    inc cx                                    ; 41
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 2a 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 2f 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 16 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 1b 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 02 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 07 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 d2 04
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 d6 04
+    inc cx                                    ; 41
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 da 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 df 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 aa 04
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 ae 04
+    inc cx                                    ; 41
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 96 04
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 9a 04
+    inc cx                                    ; 41
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 82 04
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 86 04
+    inc cx                                    ; 41
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 8a 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 8f 04
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 02ae8h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnc short 02b06h                          ; 73 1e
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 64 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 69 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02ae2h                          ; eb dc
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f5ah                               ; e8 4b 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 50 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f3eh                               ; e8 1b 04
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 1f 04
+    inc cx                                    ; 41
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 02f5ah                               ; e8 24 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 29 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 0007eh                ; ba 7e 00
+    xor ax, ax                                ; 31 c0
+    call 02f5ah                               ; e8 11 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 16 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 0010ch                            ; ba 0c 01
+    xor ax, ax                                ; 31 c0
+    call 02f5ah                               ; e8 fe 03
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 03 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 0010eh                            ; ba 0e 01
+    xor ax, ax                                ; 31 c0
+    call 02f5ah                               ; e8 eb 03
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 f0 03
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00ch], 004h                 ; f6 46 f4 04
+    je short 02be7h                           ; 74 67
+    mov dx, 003c7h                            ; ba c7 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 bc 03
+    inc cx                                    ; 41
+    mov dx, 003c8h                            ; ba c8 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 ab 03
+    inc cx                                    ; 41
+    mov dx, 003c6h                            ; ba c6 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 9a 03
+    inc cx                                    ; 41
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    jmp short 02bc7h                          ; eb 07
+    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
+    jnc short 02bddh                          ; 73 16
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 75 03
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02bc0h                          ; eb e3
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 66 03
+    inc cx                                    ; 41
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_restore_video_state_:                 ; 0xc2bf1 LB 0x326
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov cx, bx                                ; 89 d9
+    test byte [bp-00eh], 001h                 ; f6 46 f2 01
+    je near 02d51h                            ; 0f 84 4a 01
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea dx, [bx+040h]                         ; 8d 57 40
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 45 03
+    mov di, ax                                ; 89 c7
+    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
+    lea cx, [bx+005h]                         ; 8d 4f 05
+    jmp short 02c27h                          ; eb 06
+    cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
+    jnbe short 02c3fh                         ; 77 18
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 09 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-008h]                        ; ff 46 f8
+    jmp short 02c21h                          ; eb e2
+    xor al, al                                ; 30 c0
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 f2 02
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    mov ax, strict word 00011h                ; b8 11 00
+    mov dx, di                                ; 89 fa
+    out DX, ax                                ; ef
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    jmp short 02c64h                          ; eb 06
+    cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
+    jnbe short 02c81h                         ; 77 1d
+    cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
+    je short 02c7bh                           ; 74 11
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 c7 02
+    lea dx, [di+001h]                         ; 8d 55 01
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-008h]                        ; ff 46 f8
+    jmp short 02c5eh                          ; eb dd
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    cmp di, 003d4h                            ; 81 ff d4 03
+    jne short 02c96h                          ; 75 04
+    or byte [bp-00ah], 001h                   ; 80 4e f6 01
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 0fff9h                ; 83 c2 f9
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 92 02
+    lea dx, [di+001h]                         ; 8d 55 01
+    out DX, AL                                ; ee
+    lea dx, [bx+003h]                         ; 8d 57 03
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 86 02
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    jmp short 02cd0h                          ; eb 06
+    cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
+    jnbe short 02ceeh                         ; 77 1e
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    and ax, strict word 00020h                ; 25 20 00
+    or ax, word [bp-008h]                     ; 0b 46 f8
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 5a 02
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-008h]                        ; ff 46 f8
+    jmp short 02ccah                          ; eb dc
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    jmp short 02d08h                          ; eb 06
+    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
+    jnbe short 02d20h                         ; 77 18
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 28 02
+    mov dx, 003cfh                            ; ba cf 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-008h]                        ; ff 46 f8
+    jmp short 02d02h                          ; eb e2
+    add cx, strict byte 00006h                ; 83 c1 06
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 14 02
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 08 02
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 fd 01
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 f1 01
+    lea dx, [di+006h]                         ; 8d 55 06
+    out DX, AL                                ; ee
+    test byte [bp-00eh], 002h                 ; f6 46 f2 02
+    je near 02ec0h                            ; 0f 84 67 01
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 de 01
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 e0 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 e6 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 e9 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 d2 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 d5 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 be 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 c1 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 8e 01
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 90 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 96 01
+    mov bx, ax                                ; 89 c3
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 99 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 66 01
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 68 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 52 01
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 54 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 3e 01
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 40 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 46 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 49 01
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 02e2eh                          ; eb 06
+    cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
+    jnc short 02e4ch                          ; 73 1e
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 25 01
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 23 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc word [bp-008h]                        ; ff 46 f8
+    jmp short 02e28h                          ; eb dc
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 07 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 0a 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 d7 00
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 d9 00
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 df 00
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 02f68h                               ; e8 e3 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 cc 00
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0007eh                ; ba 7e 00
+    xor ax, ax                                ; 31 c0
+    call 02f68h                               ; e8 d0 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 b9 00
+    mov bx, ax                                ; 89 c3
+    mov dx, 0010ch                            ; ba 0c 01
+    xor ax, ax                                ; 31 c0
+    call 02f68h                               ; e8 bd 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f5ah                               ; e8 a6 00
+    mov bx, ax                                ; 89 c3
+    mov dx, 0010eh                            ; ba 0e 01
+    xor ax, ax                                ; 31 c0
+    call 02f68h                               ; e8 aa 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00eh], 004h                 ; f6 46 f2 04
+    je short 02f0dh                           ; 74 47
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 70 00
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 63 00
+    mov dx, 003c6h                            ; ba c6 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    xor ah, ah                                ; 30 e4
+    mov word [bp-008h], ax                    ; 89 46 f8
+    jmp short 02ef4h                          ; eb 07
+    cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
+    jnc short 02f05h                          ; 73 11
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 43 00
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-008h]                        ; ff 46 f8
+    jmp short 02eedh                          ; eb e8
+    inc cx                                    ; 41
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+find_vga_entry_:                             ; 0xc2f17 LB 0x27
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dl, al                                ; 88 c2
+    mov AH, strict byte 0ffh                  ; b4 ff
+    xor al, al                                ; 30 c0
+    jmp short 02f2ah                          ; eb 06
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jnbe short 02f38h                         ; 77 0e
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 003h                              ; c1 e3 03
+    cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
+    jne short 02f24h                          ; 75 ee
+    mov ah, al                                ; 88 c4
+    mov al, ah                                ; 88 e0
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+read_byte_:                                  ; 0xc2f3e LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx]                      ; 26 8a 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_byte_:                                 ; 0xc2f4c LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov byte [es:si], bl                      ; 26 88 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_word_:                                  ; 0xc2f5a LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_word_:                                 ; 0xc2f68 LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_dword_:                                 ; 0xc2f76 LB 0x12
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_dword_:                                ; 0xc2f88 LB 0x7f
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+    dec di                                    ; 4f
+    sbb AL, strict byte 01bh                  ; 1c 1b
+    adc dx, word [bp+si]                      ; 13 12
+    adc word [bx+si], dx                      ; 11 10
+    push CS                                   ; 0e
+    or ax, 00a0ch                             ; 0d 0c 0a
+    or word [bx+si], cx                       ; 09 08
+    pop ES                                    ; 07
+    push ES                                   ; 06
+    add ax, 00304h                            ; 05 04 03
+    add al, byte [bx+di]                      ; 02 01
+    add dl, cl                                ; 00 ca
+    xor si, word [di]                         ; 33 35
+    xor byte [bp+di+030h], dh                 ; 30 73 30
+    xchg word [bx+si], si                     ; 87 30
+    cbw                                       ; 98
+    xor byte [si-042d0h], ch                  ; 30 ac 30 bd
+    xor bh, al                                ; 30 c7
+    xor byte [bx+di], al                      ; 30 01
+    xor word [di], ax                         ; 31 05
+    xor word [03331h], dx                     ; 31 16 31 33
+    xor word [bx+si+031h], dx                 ; 31 50 31
+    jo short 02ffch                           ; 70 31
+    lea si, [bx+di]                           ; 8d 31
+    movsb                                     ; a4
+    xor word [bx+si-074cfh], si               ; 31 b0 31 8b
+    db  032h, 0c6h
+    ; xor al, dh                                ; 32 c6
+    db  032h, 0f6h
+    ; xor dh, dh                                ; 32 f6
+    xor cl, byte [bp+di]                      ; 32 0b
+    xor cx, word [di+033h]                    ; 33 4d 33
+    xor byte [si], ah                         ; 30 24
+    and sp, word [bp+si]                      ; 23 22
+    and word [bx+si], sp                      ; 21 20
+    adc AL, strict byte 012h                  ; 14 12
+    adc word [bx+si], dx                      ; 11 10
+    add AL, strict byte 002h                  ; 04 02
+    add word [bx+si], ax                      ; 01 00
+    retf 0d133h                               ; ca 33 d1
+    xor di, si                                ; 31 f7
+    xor word [bx+si], cx                      ; 31 08
+    xor bl, byte [bx+di]                      ; 32 19
+    db  032h, 0d1h
+    ; xor dl, cl                                ; 32 d1
+    xor di, si                                ; 31 f7
+    xor word [bx+si], cx                      ; 31 08
+    xor bl, byte [bx+di]                      ; 32 19
+    xor ch, byte [bp+si]                      ; 32 2a
+    xor dh, byte [05132h]                     ; 32 36 32 51
+    xor bl, byte [si+032h]                    ; 32 5c 32
+    xor dh, byte [edx+032h]                   ; 67 32 72 32
+_int10_func:                                 ; 0xc3007 LB 0x3ca
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    jnbe near 033cah                          ; 0f 87 ad 03
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00016h                ; b9 16 00
+    mov di, 02f9ah                            ; bf 9a 2f
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+02fafh]               ; 2e 8b 85 af 2f
+    mov cl, byte [bp+012h]                    ; 8a 4e 12
+    jmp ax                                    ; ff e0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 00fdch                               ; e8 9f df
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    and ax, strict word 0007fh                ; 25 7f 00
+    cmp ax, strict word 00007h                ; 3d 07 00
+    je short 0305dh                           ; 74 15
+    cmp ax, strict word 00006h                ; 3d 06 00
+    je short 03054h                           ; 74 07
+    cmp ax, strict word 00005h                ; 3d 05 00
+    jbe short 0305dh                          ; 76 0b
+    jmp short 03066h                          ; eb 12
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 03fh                   ; 0c 3f
+    jmp short 0306dh                          ; eb 10
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 030h                   ; 0c 30
+    jmp short 0306dh                          ; eb 07
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 020h                   ; 0c 20
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 033cah                           ; e9 57 03
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00dbah                               ; e8 36 dd
+    jmp near 033cah                           ; e9 43 03
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00e5eh                               ; e8 c9 dd
+    jmp near 033cah                           ; e9 32 03
+    lea bx, [bp+00eh]                         ; 8d 5e 0e
+    lea dx, [bp+010h]                         ; 8d 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00a88h                               ; e8 df d9
+    jmp near 033cah                           ; e9 1e 03
+    xor ax, ax                                ; 31 c0
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    jmp near 033cah                           ; e9 0d 03
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 00f00h                               ; e8 3c de
+    jmp near 033cah                           ; e9 03 03
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov ax, 000ffh                            ; b8 ff 00
+    push ax                                   ; 50
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    movzx cx, al                              ; 0f b6 c8
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, 008h                              ; c1 e8 08
+    movzx bx, al                              ; 0f b6 d8
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    movzx dx, al                              ; 0f b6 d0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 01572h                               ; e8 74 e4
+    jmp near 033cah                           ; e9 c9 02
+    xor ax, ax                                ; 31 c0
+    jmp short 030cah                          ; eb c5
+    lea dx, [bp+012h]                         ; 8d 56 12
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 00acbh                               ; e8 b8 d9
+    jmp near 033cah                           ; e9 b4 02
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx bx, al                              ; 0f b6 d8
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    movzx dx, al                              ; 0f b6 d0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 01d12h                               ; e8 e2 eb
+    jmp near 033cah                           ; e9 97 02
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx bx, al                              ; 0f b6 d8
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    movzx dx, al                              ; 0f b6 d0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 01e7ah                               ; e8 2d ed
+    jmp near 033cah                           ; e9 7a 02
+    mov cx, word [bp+00eh]                    ; 8b 4e 0e
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 01fe9h                               ; e8 7c ee
+    jmp near 033cah                           ; e9 5a 02
+    lea cx, [bp+012h]                         ; 8d 4e 12
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 00bf5h                               ; e8 6b da
+    jmp near 033cah                           ; e9 3d 02
+    mov cx, strict word 00002h                ; b9 02 00
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 000ffh                            ; ba ff 00
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 02153h                               ; e8 b2 ef
+    jmp near 033cah                           ; e9 26 02
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    call 00d2eh                               ; e8 81 db
+    jmp near 033cah                           ; e9 1a 02
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00030h                ; 3d 30 00
+    jnbe near 033cah                          ; 0f 87 0e 02
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0000fh                ; b9 0f 00
+    mov di, 02fdbh                            ; bf db 2f
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+02fe9h]               ; 2e 8b 85 e9 2f
+    jmp ax                                    ; ff e0
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push word [bp+00eh]                       ; ff 76 0e
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    call 024bbh                               ; e8 c7 f2
+    jmp near 033cah                           ; e9 d3 01
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx dx, al                              ; 0f b6 d0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 02538h                               ; e8 33 f3
+    jmp near 033cah                           ; e9 c2 01
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx dx, al                              ; 0f b6 d0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 025a8h                               ; e8 92 f3
+    jmp near 033cah                           ; e9 b1 01
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx dx, al                              ; 0f b6 d0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 0261ah                               ; e8 f3 f3
+    jmp near 033cah                           ; e9 a0 01
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    call 0268ch                               ; e8 59 f4
+    jmp near 033cah                           ; e9 94 01
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx cx, al                              ; 0f b6 c8
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    call 02691h                               ; e8 43 f4
+    jmp near 033cah                           ; e9 79 01
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 02698h                               ; e8 3f f4
+    jmp near 033cah                           ; e9 6e 01
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 0269dh                               ; e8 39 f4
+    jmp near 033cah                           ; e9 63 01
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 026a2h                               ; e8 33 f4
+    jmp near 033cah                           ; e9 58 01
+    lea ax, [bp+00eh]                         ; 8d 46 0e
+    push ax                                   ; 50
+    lea cx, [bp+010h]                         ; 8d 4e 10
+    lea bx, [bp+008h]                         ; 8d 5e 08
+    lea dx, [bp+016h]                         ; 8d 56 16
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    call 00b73h                               ; e8 eb d8
+    jmp near 033cah                           ; e9 3f 01
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00036h                ; 3d 36 00
+    je short 032bdh                           ; 74 28
+    cmp ax, strict word 00035h                ; 3d 35 00
+    je short 032a7h                           ; 74 0d
+    cmp ax, strict word 00020h                ; 3d 20 00
+    jne near 033cah                           ; 0f 85 29 01
+    call 026a7h                               ; e8 03 f4
+    jmp near 033cah                           ; e9 23 01
+    movzx ax, cl                              ; 0f b6 c1
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    call 026ach                               ; e8 f9 f3
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 012h                   ; 0c 12
+    jmp near 0306dh                           ; e9 b0 fd
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 026b1h                               ; e8 ed f3
+    jmp short 032b3h                          ; eb ed
+    push word [bp+008h]                       ; ff 76 08
+    push word [bp+016h]                       ; ff 76 16
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    movzx bx, al                              ; 0f b6 d8
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    movzx dx, al                              ; 0f b6 d0
+    movzx ax, cl                              ; 0f b6 c1
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    call 026b6h                               ; e8 c3 f3
+    jmp near 033cah                           ; e9 d4 00
+    mov bx, si                                ; 89 f3
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    call 02752h                               ; e8 51 f4
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 01bh                   ; 0c 1b
+    jmp near 0306dh                           ; e9 62 fd
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 03337h                           ; 74 22
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 03329h                           ; 74 0f
+    test ax, ax                               ; 85 c0
+    jne short 03343h                          ; 75 25
+    lea dx, [bp+00ch]                         ; 8d 56 0c
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02876h                               ; e8 4f f5
+    jmp short 03343h                          ; eb 1a
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02888h                               ; e8 53 f5
+    jmp short 03343h                          ; eb 0c
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02bf1h                               ; e8 ae f8
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 01ch                   ; 0c 1c
+    jmp near 0306dh                           ; e9 20 fd
+    call 007fah                               ; e8 aa d4
+    test ax, ax                               ; 85 c0
+    je near 033c5h                            ; 0f 84 6f 00
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    jc short 03373h                           ; 72 13
+    jbe short 03399h                          ; 76 37
+    cmp ax, strict word 0000ah                ; 3d 0a 00
+    je short 033beh                           ; 74 57
+    cmp ax, strict word 00009h                ; 3d 09 00
+    je short 033beh                           ; 74 52
+    cmp ax, strict word 00004h                ; 3d 04 00
+    je short 033a9h                           ; 74 38
+    jmp short 033beh                          ; eb 4b
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 03389h                           ; 74 11
+    test ax, ax                               ; 85 c0
+    jne short 033beh                          ; 75 42
+    mov bx, si                                ; 89 f3
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03503h                               ; e8 7c 01
+    jmp short 033cah                          ; eb 41
+    mov cx, si                                ; 89 f1
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 0362ch                               ; e8 95 02
+    jmp short 033cah                          ; eb 31
+    mov cx, si                                ; 89 f1
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 036e4h                               ; e8 3d 03
+    jmp short 033cah                          ; eb 21
+    lea ax, [bp+00ch]                         ; 8d 46 0c
+    push ax                                   ; 50
+    mov cx, word [bp+016h]                    ; 8b 4e 16
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 038cbh                               ; e8 0f 05
+    jmp short 033cah                          ; eb 0c
+    mov word [bp+012h], 00100h                ; c7 46 12 00 01
+    jmp short 033cah                          ; eb 05
+    mov word [bp+012h], 00100h                ; c7 46 12 00 01
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_xres_:                             ; 0xc33d1 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00001h                ; b8 01 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 8f d1
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 87 d1
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_yres_:                             ; 0xc33f0 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 70 d1
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 68 d1
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_bpp_:                              ; 0xc340f LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00003h                ; b8 03 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 51 d1
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 00570h                               ; e8 49 d1
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+in_word_:                                    ; 0xc342e LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov dx, bx                                ; 89 da
+    out DX, ax                                ; ef
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+in_byte_:                                    ; 0xc3440 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov dx, bx                                ; 89 da
+    out DX, ax                                ; ef
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_get_id_:                               ; 0xc3454 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ax, ax                                ; 31 c0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_id_:                               ; 0xc3468 LB 0x1a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    xor ax, ax                                ; 31 c0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_init_:                                   ; 0xc3482 LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov ax, 0b0c0h                            ; b8 c0 b0
+    call 03468h                               ; e8 db ff
+    call 03454h                               ; e8 c4 ff
+    cmp ax, 0b0c0h                            ; 3d c0 b0
+    jne short 034a7h                          ; 75 12
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, 000b9h                            ; ba b9 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 ab fa
+    mov ax, 0b0c4h                            ; b8 c4 b0
+    call 03468h                               ; e8 c1 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+mode_info_find_mode_:                        ; 0xc34ae LB 0x55
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    xor dx, dx                                ; 31 d2
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 6d ff
+    cmp ax, 077cch                            ; 3d cc 77
+    jne short 034f8h                          ; 75 32
+    mov bx, strict word 00004h                ; bb 04 00
+    mov dx, bx                                ; 89 da
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 5d ff
+    mov cx, ax                                ; 89 c1
+    cmp cx, strict byte 0ffffh                ; 83 f9 ff
+    je short 034f8h                           ; 74 20
+    lea dx, [bx+002h]                         ; 8d 57 02
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 4d ff
+    lea dx, [bx+044h]                         ; 8d 57 44
+    cmp cx, di                                ; 39 f9
+    jne short 034f4h                          ; 75 0c
+    test si, si                               ; 85 f6
+    jne short 034f0h                          ; 75 04
+    mov ax, bx                                ; 89 d8
+    jmp short 034fah                          ; eb 0a
+    test AL, strict byte 080h                 ; a8 80
+    jne short 034ech                          ; 75 f8
+    mov bx, dx                                ; 89 d3
+    jmp short 034cbh                          ; eb d3
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_return_controller_information_: ; 0xc3503 LB 0x129
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
+    call 005b7h                               ; e8 9c d0
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov word [bp-008h], di                    ; 89 7e f8
+    xor dx, dx                                ; 31 d2
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 02 ff
+    cmp ax, 077cch                            ; 3d cc 77
+    je short 0353bh                           ; 74 0a
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], 00100h                  ; 26 c7 04 00 01
+    jmp near 03624h                           ; e9 e9 00
+    mov cx, strict word 00004h                ; b9 04 00
+    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
+    jne short 03555h                          ; 75 07
+    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
+    je short 03564h                           ; 74 0f
+    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
+    jne short 03569h                          ; 75 0c
+    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
+    jne short 03569h                          ; 75 05
+    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    db  066h, 026h, 0c7h, 007h, 056h, 045h, 053h, 041h
+    ; mov dword [es:bx], strict dword 041534556h ; 66 26 c7 07 56 45 53 41
+    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
+    mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
+    mov [es:bx+008h], ds                      ; 26 8c 5f 08
+    db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
+    ; mov dword [es:bx+00ah], strict dword 000000001h ; 66 26 c7 47 0a 01 00 00 00
+    mov word [es:bx+010h], di                 ; 26 89 7f 10
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    add ax, strict word 00022h                ; 05 22 00
+    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
+    mov dx, strict word 0ffffh                ; ba ff ff
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 8a fe
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:bx+012h], ax                 ; 26 89 47 12
+    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
+    je short 035d5h                           ; 74 24
+    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
+    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
+    mov [es:bx+018h], ds                      ; 26 8c 5f 18
+    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
+    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
+    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
+    mov [es:bx+020h], ds                      ; 26 8c 5f 20
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 0001bh                ; 83 c2 1b
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03440h                               ; e8 60 fe
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-010h]                    ; 3b 46 f0
+    jnbe short 03600h                         ; 77 19
+    mov dx, cx                                ; 89 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 3f fe
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, word [bp-00ch]                    ; 03 56 f4
+    mov ax, di                                ; 89 f8
+    call 02f68h                               ; e8 6c f9
+    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
+    add cx, strict byte 00044h                ; 83 c1 44
+    mov dx, cx                                ; 89 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 23 fe
+    mov bx, ax                                ; 89 c3
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 035d5h                          ; 75 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, word [bp-00ch]                    ; 03 56 f4
+    mov ax, di                                ; 89 f8
+    call 02f68h                               ; e8 4b f9
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], strict word 0004fh      ; 26 c7 04 4f 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_return_mode_information_:         ; 0xc362c LB 0xb8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, dx                                ; 89 d0
+    mov si, bx                                ; 89 de
+    mov word [bp-006h], cx                    ; 89 4e fa
+    test dh, 040h                             ; f6 c6 40
+    db  00fh, 095h, 0c2h
+    ; setne dl                                  ; 0f 95 c2
+    xor dh, dh                                ; 30 f6
+    and ah, 001h                              ; 80 e4 01
+    call 034aeh                               ; e8 65 fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    test ax, ax                               ; 85 c0
+    je near 036d2h                            ; 0f 84 80 00
+    mov cx, 00100h                            ; b9 00 01
+    xor ax, ax                                ; 31 c0
+    mov di, word [bp-006h]                    ; 8b 7e fa
+    mov es, bx                                ; 8e c3
+    cld                                       ; fc
+    jcxz 03661h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    xor cx, cx                                ; 31 c9
+    jmp short 0366ah                          ; eb 05
+    cmp cx, strict byte 00042h                ; 83 f9 42
+    jnc short 03687h                          ; 73 1d
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    add dx, cx                                ; 01 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03440h                               ; e8 c9 fd
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, cx                                ; 01 ca
+    mov ax, si                                ; 89 f0
+    call 02f4ch                               ; e8 c8 f8
+    inc cx                                    ; 41
+    jmp short 03665h                          ; eb de
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov ax, si                                ; 89 f0
+    call 02f3eh                               ; e8 ad f8
+    test AL, strict byte 001h                 ; a8 01
+    je short 036b1h                           ; 74 1c
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov bx, 00629h                            ; bb 29 06
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 c5 f8
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov bx, 0c000h                            ; bb 00 c0
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 b7 f8
+    mov ax, strict word 0000bh                ; b8 0b 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 b6 ce
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 b7 ce
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 02f68h                               ; e8 9b f8
+    mov ax, strict word 0004fh                ; b8 4f 00
+    jmp short 036d5h                          ; eb 03
+    mov ax, 00100h                            ; b8 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_set_mode_:                        ; 0xc36e4 LB 0xe9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    test byte [bp-009h], 040h                 ; f6 46 f7 40
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, dx                                ; 89 d0
+    test dx, dx                               ; 85 d2
+    je short 03704h                           ; 74 03
+    mov dx, strict word 00040h                ; ba 40 00
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    test byte [bp-009h], 080h                 ; f6 46 f7 80
+    je short 03712h                           ; 74 05
+    mov dx, 00080h                            ; ba 80 00
+    jmp short 03714h                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    and byte [bp-009h], 001h                  ; 80 66 f7 01
+    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
+    jnc short 03734h                          ; 73 12
+    xor ax, ax                                ; 31 c0
+    call 005ddh                               ; e8 b6 ce
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    call 00fdch                               ; e8 ae d8
+    mov ax, strict word 0004fh                ; b8 4f 00
+    jmp near 037c3h                           ; e9 8f 00
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 034aeh                               ; e8 72 fd
+    mov bx, ax                                ; 89 c3
+    test ax, ax                               ; 85 c0
+    je near 037c0h                            ; 0f 84 7c 00
+    lea dx, [bx+014h]                         ; 8d 57 14
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 e1 fc
+    mov cx, ax                                ; 89 c1
+    lea dx, [bx+016h]                         ; 8d 57 16
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0342eh                               ; e8 d6 fc
+    mov di, ax                                ; 89 c7
+    lea dx, [bx+01bh]                         ; 8d 57 1b
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03440h                               ; e8 dd fc
+    mov bl, al                                ; 88 c3
+    mov dl, al                                ; 88 c2
+    xor ax, ax                                ; 31 c0
+    call 005ddh                               ; e8 71 ce
+    cmp bl, 004h                              ; 80 fb 04
+    jne short 03777h                          ; 75 06
+    mov ax, strict word 0006ah                ; b8 6a 00
+    call 00fdch                               ; e8 65 d8
+    movzx ax, dl                              ; 0f b6 c2
+    call 0340fh                               ; e8 92 fc
+    mov ax, cx                                ; 89 c8
+    call 033d1h                               ; e8 4f fc
+    mov ax, di                                ; 89 f8
+    call 033f0h                               ; e8 69 fc
+    xor ax, ax                                ; 31 c0
+    call 00603h                               ; e8 77 ce
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    or AL, strict byte 001h                   ; 0c 01
+    movzx dx, al                              ; 0f b6 d0
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    or ax, dx                                 ; 09 d0
+    call 005ddh                               ; e8 40 ce
+    call 0070dh                               ; e8 6d cf
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov dx, 000bah                            ; ba ba 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f68h                               ; e8 bc f7
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    or AL, strict byte 060h                   ; 0c 60
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f4ch                               ; e8 8f f7
+    jmp near 0372eh                           ; e9 6e ff
+    mov ax, 00100h                            ; b8 00 01
+    mov word [ss:si], ax                      ; 36 89 04
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_read_video_state_size_:           ; 0xc37cd LB 0x8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov ax, strict word 00012h                ; b8 12 00
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_save_video_state_:                ; 0xc37d5 LB 0x5b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov di, ax                                ; 89 c7
+    mov cx, dx                                ; 89 d1
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 02f68h                               ; e8 70 f7
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 03827h                           ; 74 27
+    mov si, strict word 00001h                ; be 01 00
+    jmp short 0380ah                          ; eb 05
+    cmp si, strict byte 00009h                ; 83 fe 09
+    jnbe short 03827h                         ; 77 1d
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 03824h                           ; 74 15
+    mov ax, si                                ; 89 f0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 02f68h                               ; e8 46 f7
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc si                                    ; 46
+    jmp short 03805h                          ; eb de
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_restore_video_state_:             ; 0xc3830 LB 0x9b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov cx, ax                                ; 89 c1
+    mov bx, dx                                ; 89 d3
+    call 02f5ah                               ; e8 1c f7
+    mov word [bp-008h], ax                    ; 89 46 f8
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    test byte [bp-008h], 001h                 ; f6 46 f8 01
+    jne short 03859h                          ; 75 10
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    jmp short 038c3h                          ; eb 6a
+    mov ax, strict word 00001h                ; b8 01 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 02f5ah                               ; e8 f3 f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 02f5ah                               ; e8 df f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00003h                ; b8 03 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 02f5ah                               ; e8 cb f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    mov si, strict word 00005h                ; be 05 00
+    jmp short 038adh                          ; eb 05
+    cmp si, strict byte 00009h                ; 83 fe 09
+    jnbe short 038c3h                         ; 77 16
+    mov ax, si                                ; 89 f0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 02f5ah                               ; e8 a0 f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    inc si                                    ; 46
+    jmp short 038a8h                          ; eb e5
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_save_restore_state_:              ; 0xc38cb LB 0x8c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov ax, bx                                ; 89 d8
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov di, strict word 0004fh                ; bf 4f 00
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 0392ah                           ; 74 45
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 0390eh                           ; 74 24
+    test ax, ax                               ; 85 c0
+    jne short 03946h                          ; 75 58
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02853h                               ; e8 5f ef
+    mov cx, ax                                ; 89 c1
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03901h                           ; 74 05
+    call 037cdh                               ; e8 ce fe
+    add ax, cx                                ; 01 c8
+    add ax, strict word 0003fh                ; 05 3f 00
+    shr ax, 006h                              ; c1 e8 06
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    jmp short 03949h                          ; eb 3b
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov dx, cx                                ; 89 ca
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02888h                               ; e8 6d ef
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03949h                           ; 74 28
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 037d5h                               ; e8 ad fe
+    jmp short 03949h                          ; eb 1f
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov dx, cx                                ; 89 ca
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02bf1h                               ; e8 ba f2
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03949h                           ; 74 0c
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 03830h                               ; e8 ec fe
+    jmp short 03949h                          ; eb 03
+    mov di, 00100h                            ; bf 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], di                      ; 26 89 3c
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+
+  ; Padding 0xaa9 bytes at 0xc3957
+  times 2729 db 0
+
+section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
+vesa_pm_start:                               ; 0xc4400 LB 0x114
+    sbb byte [bx+si], al                      ; 18 00
+    dec di                                    ; 4f
+    add byte [bx+si], dl                      ; 00 10
+    add word [bx+si], cx                      ; 01 08
+    add dh, cl                                ; 00 ce
+    add di, cx                                ; 01 cf
+    add di, cx                                ; 01 cf
+    add ax, dx                                ; 01 d0
+    add word [bp-048fdh], si                  ; 01 b6 03 b7
+    db  003h, 0ffh
+    ; add di, di                                ; 03 ff
+    db  0ffh
+    db  0ffh
+    jmp word [bp-07dh]                        ; ff 66 83
+    sti                                       ; fb
+    add byte [si+005h], dh                    ; 00 74 05
+    mov eax, strict dword 066c30100h          ; 66 b8 00 01 c3 66
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    add ax, 06600h                            ; 05 00 66
+    out DX, ax                                ; ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    in eax, DX                                ; 66 ed
+    pop edx                                   ; 66 5a
+    db  066h, 03bh, 0d0h
+    ; cmp edx, eax                              ; 66 3b d0
+    jne short 0444ah                          ; 75 05
+    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+    cmp bl, 080h                              ; 80 fb 80
+    je short 0445eh                           ; 74 0a
+    cmp bl, 000h                              ; 80 fb 00
+    je short 0446eh                           ; 74 15
+    mov eax, strict dword 052c30100h          ; 66 b8 00 01 c3 52
+    mov edx, strict dword 0a8ec03dah          ; 66 ba da 03 ec a8
+    or byte [di-005h], dh                     ; 08 75 fb
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    je short 04468h                           ; 74 fb
+    pop dx                                    ; 5a
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sal dx, 010h                              ; c1 e2 10
+    and cx, strict word 0ffffh                ; 81 e1 ff ff
+    add byte [bx+si], al                      ; 00 00
+    db  00bh, 0cah
+    ; or cx, dx                                 ; 0b ca
+    sal cx, 002h                              ; c1 e1 02
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    push ax                                   ; 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    push ES                                   ; 06
+    add byte [bp-011h], ah                    ; 00 66 ef
+    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
+    db  00fh, 0b7h, 0c8h
+    ; movzx cx, ax                              ; 0f b7 c8
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    add ax, word [bx+si]                      ; 03 00
+    out DX, eax                               ; 66 ef
+    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
+    db  00fh, 0b7h, 0f0h
+    ; movzx si, ax                              ; 0f b7 f0
+    pop ax                                    ; 58
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 044c7h                           ; 74 17
+    add si, strict byte 00007h                ; 83 c6 07
+    shr si, 003h                              ; c1 ee 03
+    imul cx, si                               ; 0f af ce
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div cx                                    ; f7 f1
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div si                                    ; f7 f6
+    jmp short 044d3h                          ; eb 0c
+    shr cx, 1                                 ; d1 e9
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div cx                                    ; f7 f1
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    sal ax, 1                                 ; d1 e0
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    or byte [bx+si], al                       ; 08 00
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    pop edx                                   ; 66 5a
+    db  066h, 08bh, 0c7h
+    ; mov eax, edi                              ; 66 8b c7
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    or word [bx+si], ax                       ; 09 00
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    pop edx                                   ; 66 5a
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
+    mov ax, 0014fh                            ; b8 4f 01
+vesa_pm_end:                                 ; 0xc4514 LB 0x1
+    retn                                      ; c3
+
+  ; Padding 0xeb bytes at 0xc4515
+  times 235 db 0
+
+section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
+_msg_vga_init:                               ; 0xc4600 LB 0x2f
+    db  'Oracle VM VirtualBox Version 5.0.51 VGA BIOS', 00dh, 00ah, 000h
+_vga_modes:                                  ; 0xc462f LB 0x80
+    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
+    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
+    db  004h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h, 005h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h
+    db  006h, 001h, 002h, 001h, 000h, 0b8h, 0ffh, 001h, 007h, 000h, 001h, 004h, 000h, 0b0h, 0ffh, 000h
+    db  00dh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h, 00eh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h
+    db  00fh, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 000h, 010h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+_line_to_vpti:                               ; 0xc46af LB 0x10
+    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
+_dac_regs:                                   ; 0xc46bf LB 0x4
+    dd  0ff3f3f3fh
+_video_param_table:                          ; 0xc46c3 LB 0x780
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
+    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
+    db  050h, 018h, 008h, 000h, 010h, 001h, 001h, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
+    db  0b9h, 0c2h, 0ffh, 000h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h
+    db  017h, 017h, 017h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00dh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  028h, 018h, 008h, 000h, 020h, 009h, 00fh, 000h, 006h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 018h, 008h, 000h, 040h, 001h, 00fh, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
+    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
+    db  0bah, 0e3h, 0ffh, 000h, 008h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 008h, 000h, 000h, 000h
+    db  018h, 000h, 000h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
+    db  0bah, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  050h, 018h, 00eh, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  028h, 018h, 010h, 000h, 008h, 008h, 003h, 000h, 002h, 067h, 02dh, 027h, 028h, 090h, 02bh, 0a0h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
+    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
+    db  004h, 0e3h, 0ffh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h
+    db  03fh, 000h, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
+    db  004h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  028h, 018h, 008h, 000h, 000h, 001h, 00fh, 000h, 00eh, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 041h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 040h, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 008h, 009h, 00ah, 00bh, 00ch
+    db  00dh, 00eh, 00fh, 041h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 040h, 005h, 00fh, 0ffh
+    db  064h, 024h, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 07fh, 063h, 063h, 083h, 06bh, 01bh
+    db  072h, 0f0h, 000h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 08dh, 057h, 032h, 000h, 057h
+    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+_palette0:                                   ; 0xc4e43 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+_palette1:                                   ; 0xc4f03 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
+    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
+    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
+    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
+    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
+    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
+    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+_palette2:                                   ; 0xc4fc3 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
+    db  015h, 000h, 02ah, 03fh, 02ah, 000h, 015h, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 02ah, 02ah, 03fh
+    db  000h, 015h, 000h, 000h, 015h, 02ah, 000h, 03fh, 000h, 000h, 03fh, 02ah, 02ah, 015h, 000h, 02ah
+    db  015h, 02ah, 02ah, 03fh, 000h, 02ah, 03fh, 02ah, 000h, 015h, 015h, 000h, 015h, 03fh, 000h, 03fh
+    db  015h, 000h, 03fh, 03fh, 02ah, 015h, 015h, 02ah, 015h, 03fh, 02ah, 03fh, 015h, 02ah, 03fh, 03fh
+    db  015h, 000h, 000h, 015h, 000h, 02ah, 015h, 02ah, 000h, 015h, 02ah, 02ah, 03fh, 000h, 000h, 03fh
+    db  000h, 02ah, 03fh, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 000h, 015h, 015h, 000h, 03fh, 015h, 02ah
+    db  015h, 015h, 02ah, 03fh, 03fh, 000h, 015h, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 03fh, 02ah, 03fh
+    db  015h, 015h, 000h, 015h, 015h, 02ah, 015h, 03fh, 000h, 015h, 03fh, 02ah, 03fh, 015h, 000h, 03fh
+    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+_palette3:                                   ; 0xc5083 LB 0x300
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 005h, 005h, 005h, 008h, 008h, 008h, 00bh, 00bh, 00bh, 00eh, 00eh, 00eh, 011h
+    db  011h, 011h, 014h, 014h, 014h, 018h, 018h, 018h, 01ch, 01ch, 01ch, 020h, 020h, 020h, 024h, 024h
+    db  024h, 028h, 028h, 028h, 02dh, 02dh, 02dh, 032h, 032h, 032h, 038h, 038h, 038h, 03fh, 03fh, 03fh
+    db  000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 03fh, 03fh
+    db  000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh
+    db  000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h
+    db  000h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h
+    db  02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh
+    db  03fh, 037h, 01fh, 03fh, 03fh, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h
+    db  03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h
+    db  03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh, 01fh, 01fh, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh
+    db  02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh
+    db  02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03fh, 03fh
+    db  02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h
+    db  02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh
+    db  02dh, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh
+    db  03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h
+    db  01ch, 015h, 000h, 01ch, 01ch, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h
+    db  01ch, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h
+    db  01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch, 000h, 000h, 01ch, 000h, 000h, 01ch, 007h, 000h, 01ch
+    db  00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch
+    db  00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 01ch, 01ch
+    db  00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h
+    db  00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh
+    db  00eh, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh
+    db  018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h
+    db  01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h
+    db  01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah
+    db  01ch, 014h, 018h, 01ch, 014h, 016h, 01ch, 014h, 014h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch
+    db  018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h, 01ch
+    db  000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h, 010h, 010h
+    db  000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h
+    db  000h, 010h, 00ch, 000h, 010h, 010h, 000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h
+    db  000h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h
+    db  00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h
+    db  010h, 00eh, 008h, 010h, 010h, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah
+    db  010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh
+    db  010h, 008h, 00ch, 010h, 008h, 00ah, 010h, 008h, 008h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h
+    db  00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah, 010h
+    db  00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 010h, 010h
+    db  00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh
+    db  00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh
+    db  00bh, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh
+    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_static_functionality:                       ; 0xc5383 LB 0x10
+    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
+_dcc_table:                                  ; 0xc5393 LB 0x24
+    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h
+_secondary_save_area:                        ; 0xc53b7 LB 0x1a
+    db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
+    db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont8:                                   ; 0xc53ed LB 0x800
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
+    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
+    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
+    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
+    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
+    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
+    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
+    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
+    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
+    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
+    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
+    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
+    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
+    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
+    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
+    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
+    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
+    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
+    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
+    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
+    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
+    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
+    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
+    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
+    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
+    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
+    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
+    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
+    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
+    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
+    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
+    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
+    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
+    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
+    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
+    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
+    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
+    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
+    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
+    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
+    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
+    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
+    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
+    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
+    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
+    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
+    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
+    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
+    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
+    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
+    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
+    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
+    db  078h, 0cch, 0c0h, 0cch, 078h, 018h, 00ch, 078h, 000h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  01ch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 07eh, 0c3h, 03ch, 006h, 03eh, 066h, 03fh, 000h
+    db  0cch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 0e0h, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h
+    db  030h, 030h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 000h, 000h, 078h, 0c0h, 0c0h, 078h, 00ch, 038h
+    db  07eh, 0c3h, 03ch, 066h, 07eh, 060h, 03ch, 000h, 0cch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  0e0h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 0cch, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  07ch, 0c6h, 038h, 018h, 018h, 018h, 03ch, 000h, 0e0h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  0c6h, 038h, 06ch, 0c6h, 0feh, 0c6h, 0c6h, 000h, 030h, 030h, 000h, 078h, 0cch, 0fch, 0cch, 000h
+    db  01ch, 000h, 0fch, 060h, 078h, 060h, 0fch, 000h, 000h, 000h, 07fh, 00ch, 07fh, 0cch, 07fh, 000h
+    db  03eh, 06ch, 0cch, 0feh, 0cch, 0cch, 0ceh, 000h, 078h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h
+    db  000h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 0e0h, 000h, 078h, 0cch, 0cch, 078h, 000h
+    db  078h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h, 000h, 0e0h, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  000h, 0cch, 000h, 0cch, 0cch, 07ch, 00ch, 0f8h, 0c3h, 018h, 03ch, 066h, 066h, 03ch, 018h, 000h
+    db  0cch, 000h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 018h, 018h, 07eh, 0c0h, 0c0h, 07eh, 018h, 018h
+    db  038h, 06ch, 064h, 0f0h, 060h, 0e6h, 0fch, 000h, 0cch, 0cch, 078h, 0fch, 030h, 0fch, 030h, 030h
+    db  0f8h, 0cch, 0cch, 0fah, 0c6h, 0cfh, 0c6h, 0c7h, 00eh, 01bh, 018h, 03ch, 018h, 018h, 0d8h, 070h
+    db  01ch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 038h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  000h, 01ch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 01ch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  000h, 0f8h, 000h, 0f8h, 0cch, 0cch, 0cch, 000h, 0fch, 000h, 0cch, 0ech, 0fch, 0dch, 0cch, 000h
+    db  03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h
+    db  030h, 000h, 030h, 060h, 0c0h, 0cch, 078h, 000h, 000h, 000h, 000h, 0fch, 0c0h, 0c0h, 000h, 000h
+    db  000h, 000h, 000h, 0fch, 00ch, 00ch, 000h, 000h, 0c3h, 0c6h, 0cch, 0deh, 033h, 066h, 0cch, 00fh
+    db  0c3h, 0c6h, 0cch, 0dbh, 037h, 06fh, 0cfh, 003h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 000h
+    db  000h, 033h, 066h, 0cch, 066h, 033h, 000h, 000h, 000h, 0cch, 066h, 033h, 066h, 0cch, 000h, 000h
+    db  022h, 088h, 022h, 088h, 022h, 088h, 022h, 088h, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
+    db  0dbh, 077h, 0dbh, 0eeh, 0dbh, 077h, 0dbh, 0eeh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h
+    db  000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h
+    db  036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h
+    db  018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h
+    db  018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h
+    db  036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h
+    db  036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h
+    db  036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
+    db  036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h
+    db  018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h
+    db  018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 0c8h, 0dch, 076h, 000h, 000h, 078h, 0cch, 0f8h, 0cch, 0f8h, 0c0h, 0c0h
+    db  000h, 0fch, 0cch, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
+    db  0fch, 0cch, 060h, 030h, 060h, 0cch, 0fch, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 070h, 000h
+    db  000h, 066h, 066h, 066h, 066h, 07ch, 060h, 0c0h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 000h
+    db  0fch, 030h, 078h, 0cch, 0cch, 078h, 030h, 0fch, 038h, 06ch, 0c6h, 0feh, 0c6h, 06ch, 038h, 000h
+    db  038h, 06ch, 0c6h, 0c6h, 06ch, 06ch, 0eeh, 000h, 01ch, 030h, 018h, 07ch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 07eh, 0dbh, 0dbh, 07eh, 000h, 000h, 006h, 00ch, 07eh, 0dbh, 0dbh, 07eh, 060h, 0c0h
+    db  038h, 060h, 0c0h, 0f8h, 0c0h, 060h, 038h, 000h, 078h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 000h
+    db  000h, 0fch, 000h, 0fch, 000h, 0fch, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 0fch, 000h
+    db  060h, 030h, 018h, 030h, 060h, 000h, 0fch, 000h, 018h, 030h, 060h, 030h, 018h, 000h, 0fch, 000h
+    db  00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 070h
+    db  030h, 030h, 000h, 0fch, 000h, 030h, 030h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h
+    db  038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 0ech, 06ch, 03ch, 01ch
+    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont14:                                  ; 0xc5bed LB 0xe00
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
+    db  0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 0feh, 0feh
+    db  0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch
+    db  038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h
+    db  03ch, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 01eh, 00eh, 01ah, 032h
+    db  078h, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 066h, 066h, 03ch, 018h
+    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 070h, 0f0h
+    db  0e0h, 000h, 000h, 000h, 000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 080h, 0c0h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h, 000h
+    db  002h, 006h, 00eh, 03eh, 0feh, 03eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch
+    db  07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h
+    db  066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh
+    db  01bh, 01bh, 01bh, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h
+    db  00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 000h
+    db  000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 060h
+    db  0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h
+    db  0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 028h, 06ch, 0feh, 06ch, 028h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 03ch, 03ch, 03ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 066h, 066h, 066h
+    db  024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch
+    db  06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h
+    db  086h, 0c6h, 07ch, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 066h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h, 000h
+    db  030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
+    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
+    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h
+    db  006h, 00ch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 006h, 006h
+    db  03ch, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh
+    db  00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 07ch, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0c6h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h, 000h, 000h, 018h
+    db  018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
+    db  000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h
+    db  018h, 00ch, 006h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h
+    db  000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h, 0fch, 066h
+    db  066h, 066h, 07ch, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h
+    db  0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h
+    db  066h, 06ch, 0f8h, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 062h, 066h
+    db  0feh, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 066h, 03ah, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 01eh, 00ch
+    db  00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 0e6h, 066h, 06ch, 06ch
+    db  078h, 06ch, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h
+    db  062h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 0c6h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h
+    db  000h, 000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h
+    db  07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h, 000h, 000h, 0fch, 066h
+    db  066h, 066h, 07ch, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 060h
+    db  038h, 00ch, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 07eh, 07eh, 05ah, 018h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 010h, 000h
+    db  000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 07ch, 06ch, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 06ch, 038h, 038h, 038h, 06ch, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  066h, 066h, 066h, 066h, 03ch, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h
+    db  08ch, 018h, 030h, 060h, 0c2h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 03ch, 030h, 030h, 030h
+    db  030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch
+    db  00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch
+    db  03ch, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0e0h, 060h
+    db  060h, 078h, 06ch, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+    db  0c6h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch
+    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 006h, 006h
+    db  000h, 00eh, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h, 000h, 000h, 0e0h, 060h, 060h, 066h
+    db  06ch, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ech, 0feh, 0d6h, 0d6h, 0d6h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0dch, 076h, 066h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+    db  0c6h, 070h, 01ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h
+    db  030h, 036h, 01ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch
+    db  076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 03ch, 018h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 06ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0feh, 0cch, 018h, 030h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 00eh, 018h, 018h, 018h
+    db  070h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h
+    db  018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h, 000h
+    db  0cch, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h
+    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 078h
+    db  00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 000h, 078h, 00ch, 07ch
+    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch
+    db  076h, 000h, 000h, 000h, 000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  0cch, 0cch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h
+    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 000h, 038h
+    db  018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h
+    db  03ch, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h
+    db  000h, 000h, 038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0cch, 076h, 036h, 07eh, 0d8h, 0d8h, 06eh, 000h, 000h, 000h, 000h, 000h, 03eh, 06ch
+    db  0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 07ch
+    db  0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h, 07ch, 0c6h, 0c6h
+    db  0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h, 000h, 0c6h
+    db  0c6h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h
+    db  0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 018h, 03ch, 066h, 060h
+    db  060h, 066h, 03ch, 018h, 018h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h
+    db  060h, 0e6h, 0fch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 03ch, 018h, 07eh, 018h, 07eh, 018h
+    db  018h, 000h, 000h, 000h, 000h, 0f8h, 0cch, 0cch, 0f8h, 0c4h, 0cch, 0deh, 0cch, 0cch, 0c6h, 000h
+    db  000h, 000h, 000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch
+    db  018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h
+    db  000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h, 000h, 0cch
+    db  0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h
+    db  066h, 066h, 066h, 000h, 000h, 000h, 076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h
+    db  0c6h, 000h, 000h, 000h, 000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h
+    db  030h, 060h, 0dch, 086h, 00ch, 018h, 03eh, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h, 030h, 066h
+    db  0ceh, 09eh, 03eh, 006h, 006h, 000h, 000h, 000h, 018h, 018h, 000h, 018h, 018h, 03ch, 03ch, 03ch
+    db  018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h
+    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 055h, 0aah
+    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 0ddh, 077h, 0ddh, 077h
+    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 036h, 036h
+    db  036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0feh
+    db  006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h
+    db  018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h
+    db  018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  0f0h, 0f0h, 0f0h, 0f0h, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
+    db  00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0fch, 0c6h, 0c6h, 0fch, 0c0h, 0c0h, 040h, 000h, 000h, 000h, 0feh, 0c6h
+    db  0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 06ch
+    db  06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h
+    db  060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h, 000h
+    db  038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch
+    db  0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h, 000h, 01eh, 030h, 018h, 00ch
+    db  03eh, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh
+    db  07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h
+    db  0c0h, 000h, 000h, 000h, 000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 030h, 01ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 030h, 018h
+    db  00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h, 060h
+    db  030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 00ch
+    db  00ch, 0ech, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont16:                                  ; 0xc69ed LB 0x1000
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 0ffh, 0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 0ffh, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 06ch, 0feh, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 01eh, 00eh, 01ah, 032h, 078h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 030h, 070h, 0f0h, 0e0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 080h, 0c0h, 0e0h, 0f0h, 0f8h, 0feh, 0f8h, 0f0h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 002h, 006h, 00eh, 01eh, 03eh, 0feh, 03eh, 01eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 066h, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 01bh, 01bh, 000h, 000h, 000h, 000h
+    db  000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 03ch, 03ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 066h, 066h, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 000h
+    db  018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h, 006h, 086h, 0c6h, 07ch, 018h, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 060h, 0c6h, 086h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 030h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 006h, 006h, 03ch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c6h, 006h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 006h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 066h, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h, 066h, 066h, 06ch, 0f8h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 0c6h, 066h, 03ah, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01eh, 00ch, 00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0e6h, 066h, 066h, 06ch, 078h, 078h, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 06ch, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 060h, 038h, 00ch, 006h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 03ch, 000h, 000h, 000h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 078h, 06ch, 066h, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c0h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 006h, 006h, 000h, 00eh, 006h, 006h, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 066h, 06ch, 078h, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 076h, 066h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h, 030h, 030h, 036h, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 0cch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00eh, 018h, 018h, 018h, 070h, 018h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h, 018h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h
+    db  000h, 000h, 0cch, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 00ch, 018h, 030h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0cch, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 03ch, 066h, 060h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 066h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 0c6h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 060h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03eh, 06ch, 0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h
+    db  000h, 0c6h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0e6h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h, 000h
+    db  000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 00ch, 018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c0h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 006h, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh, 000h, 000h
+    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h, 006h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 000h, 018h, 018h, 018h, 03ch, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h
+    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
+    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 078h, 0cch, 0cch, 0cch, 0d8h, 0cch, 0c6h, 0c6h, 0c6h, 0cch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c6h, 0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01eh, 030h, 018h, 00ch, 03eh, 066h, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh, 0dbh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h, 0c0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 060h, 030h, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 00fh, 00ch, 00ch, 00ch, 00ch, 00ch, 0ech, 06ch, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont14alt:                               ; 0xc79ed LB 0x12d
+    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
+    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
+    db  000h, 000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 02dh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 000h, 000h, 0c3h
+    db  0e7h, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh
+    db  099h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h
+    db  0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h
+    db  0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 061h
+    db  0c3h, 0ffh, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh
+    db  0dbh, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h
+    db  000h, 000h, 091h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h
+    db  000h, 09bh, 000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h
+    db  09dh, 000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 000h, 000h, 000h, 09eh
+    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 0f3h, 000h, 000h, 000h, 0f1h, 000h
+    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
+    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+_vgafont16alt:                               ; 0xc7b1a LB 0x144
+    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
+    db  000h, 000h, 04dh, 000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h
+    db  000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch
+    db  000h, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch
+    db  018h, 000h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh
+    db  066h, 066h, 000h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch
+    db  066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h
+    db  030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h
+    db  0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h
+    db  0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h
+    db  000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h, 078h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h, 091h, 000h, 000h
+    db  000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h, 09bh, 000h
+    db  018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 09dh
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  09eh, 000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h
+    db  000h, 0abh, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh
+    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
+    db  006h, 000h, 000h, 000h
+_vbebios_copyright:                          ; 0xc7c5e LB 0x15
+    db  'VirtualBox VESA BIOS', 000h
+_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
+    db  'Oracle Corporation', 000h
+_vbebios_product_name:                       ; 0xc7c86 LB 0x21
+    db  'Oracle VM VirtualBox VBE Adapter', 000h
+_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
+    db  'Oracle VM VirtualBox Version 5.0.51', 000h
+_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
+    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
+_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
+    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
+
+  ; Padding 0x1 bytes at 0xc7d1f
+    db  001h
+
+section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+
+section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+
+  ; Padding 0x2e0 bytes at 0xc7d20
+    db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 045h, 03ah, 05ch, 076h, 062h
+    db  06fh, 078h, 05ch, 073h, 076h, 06eh, 05ch, 074h, 072h, 075h, 06eh, 06bh, 05ch, 06fh, 075h, 074h
+    db  05ch, 077h, 069h, 06eh, 02eh, 061h, 06dh, 064h, 036h, 034h, 05ch, 072h, 065h, 06ch, 065h, 061h
+    db  073h, 065h, 05ch, 06fh, 062h, 06ah, 05ch, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h
+    db  06fh, 073h, 033h, 038h, 036h, 05ch, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h, 06fh
+    db  073h, 033h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0dfh
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum	(revision 60422)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum	(revision 60422)
@@ -0,0 +1,1 @@
+c55fd6730fd6a7ad4c88d60dfd7826a2 *VBoxVgaBios386.rom
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm	(revision 60422)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm	(revision 60422)
@@ -0,0 +1,8391 @@
+; $Id$ 
+;; @file
+; Auto Generated source file. Do not edit.
+;
+
+;
+; Source file: vgarom.asm
+;
+;  ============================================================================================
+;  
+;   Copyright (C) 2001,2002 the LGPL VGABios developers Team
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  
+;  ============================================================================================
+;  
+;   This VGA Bios is specific to the plex86/bochs Emulated VGA card.
+;   You can NOT drive any physical vga card with it.
+;  
+;  ============================================================================================
+;  
+
+;
+; Source file: vberom.asm
+;
+;  ============================================================================================
+;  
+;   Copyright (C) 2002 Jeroen Janssen
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  
+;  ============================================================================================
+;  
+;   This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
+;   You can NOT drive any physical vga card with it.
+;  
+;  ============================================================================================
+;  
+;   This VBE Bios is based on information taken from :
+;    - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
+;  
+;  ============================================================================================
+
+;
+; Source file: vgabios.c
+;
+;  // ============================================================================================
+;  
+;  vgabios.c
+;  
+;  // ============================================================================================
+;  //
+;  //  Copyright (C) 2001,2002 the LGPL VGABios developers Team
+;  //
+;  //  This library is free software; you can redistribute it and/or
+;  //  modify it under the terms of the GNU Lesser General Public
+;  //  License as published by the Free Software Foundation; either
+;  //  version 2 of the License, or (at your option) any later version.
+;  //
+;  //  This library is distributed in the hope that it will be useful,
+;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;  //  Lesser General Public License for more details.
+;  //
+;  //  You should have received a copy of the GNU Lesser General Public
+;  //  License along with this library; if not, write to the Free Software
+;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VGA Bios is specific to the plex86/bochs Emulated VGA card.
+;  //  You can NOT drive any physical vga card with it.
+;  //
+;  // ============================================================================================
+;  //
+;  //  This file contains code ripped from :
+;  //   - rombios.c of plex86
+;  //
+;  //  This VGA Bios contains fonts from :
+;  //   - fntcol16.zip (c) by Joseph Gil avalable at :
+;  //      ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
+;  //     These fonts are public domain
+;  //
+;  //  This VGA Bios is based on information taken from :
+;  //   - Kevin Lawton's vga card emulation for bochs/plex86
+;  //   - Ralf Brown's interrupts list available at http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
+;  //   - Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
+;  //   - Michael Abrash's Graphics Programming Black Book
+;  //   - Francois Gervais' book "programmation des cartes graphiques cga-ega-vga" edited by sybex
+;  //   - DOSEMU 1.0.1 source code for several tables values and formulas
+;  //
+;  // Thanks for patches, comments and ideas to :
+;  //   - techt@pikeonline.net
+;  //
+;  // ============================================================================================
+
+;
+; Source file: vbe.c
+;
+;  // ============================================================================================
+;  //
+;  //  Copyright (C) 2002 Jeroen Janssen
+;  //
+;  //  This library is free software; you can redistribute it and/or
+;  //  modify it under the terms of the GNU Lesser General Public
+;  //  License as published by the Free Software Foundation; either
+;  //  version 2 of the License, or (at your option) any later version.
+;  //
+;  //  This library is distributed in the hope that it will be useful,
+;  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;  //  Lesser General Public License for more details.
+;  //
+;  //  You should have received a copy of the GNU Lesser General Public
+;  //  License along with this library; if not, write to the Free Software
+;  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VBE is part of the VGA Bios specific to the plex86/bochs Emulated VGA card.
+;  //  You can NOT drive any physical vga card with it.
+;  //
+;  // ============================================================================================
+;  //
+;  //  This VBE Bios is based on information taken from :
+;  //   - VESA BIOS EXTENSION (VBE) Core Functions Standard Version 3.0 located at www.vesa.org
+;  //
+;  // ============================================================================================
+
+;
+; Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+; other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+; the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+; a choice of LGPL license versions is made available with the language indicating
+; that LGPLv2 or any later version may be used, or where a choice of which version
+; of the LGPL is applied is otherwise unspecified.
+;
+
+
+
+
+
+section VGAROM progbits vstart=0x0 align=1 ; size=0x9e0 class=CODE group=AUTO
+    db  055h, 0aah, 040h, 0e9h, 064h, 00ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h, 042h
+    db  04dh, 000h
+vgabios_int10_handler:                       ; 0xc0022 LB 0x57e
+    pushfw                                    ; 9c
+    cmp ah, 00fh                              ; 80 fc 0f
+    jne short 0002eh                          ; 75 06
+    call 00193h                               ; e8 68 01
+    jmp near 00103h                           ; e9 d5 00
+    cmp ah, 01ah                              ; 80 fc 1a
+    jne short 00039h                          ; 75 06
+    call 00566h                               ; e8 30 05
+    jmp near 00103h                           ; e9 ca 00
+    cmp ah, 00bh                              ; 80 fc 0b
+    jne short 00044h                          ; 75 06
+    call 00105h                               ; e8 c4 00
+    jmp near 00103h                           ; e9 bf 00
+    cmp ax, 01103h                            ; 3d 03 11
+    jne short 0004fh                          ; 75 06
+    call 0045ah                               ; e8 0e 04
+    jmp near 00103h                           ; e9 b4 00
+    cmp ah, 012h                              ; 80 fc 12
+    jne short 00094h                          ; 75 40
+    cmp bl, 010h                              ; 80 fb 10
+    jne short 0005fh                          ; 75 06
+    call 00467h                               ; e8 0b 04
+    jmp near 00103h                           ; e9 a4 00
+    cmp bl, 030h                              ; 80 fb 30
+    jne short 0006ah                          ; 75 06
+    call 0048ah                               ; e8 23 04
+    jmp near 00103h                           ; e9 99 00
+    cmp bl, 031h                              ; 80 fb 31
+    jne short 00075h                          ; 75 06
+    call 004ddh                               ; e8 6b 04
+    jmp near 00103h                           ; e9 8e 00
+    cmp bl, 032h                              ; 80 fb 32
+    jne short 00080h                          ; 75 06
+    call 00502h                               ; e8 85 04
+    jmp near 00103h                           ; e9 83 00
+    cmp bl, 033h                              ; 80 fb 33
+    jne short 0008ah                          ; 75 05
+    call 00520h                               ; e8 98 04
+    jmp short 00103h                          ; eb 79
+    cmp bl, 034h                              ; 80 fb 34
+    jne short 000e7h                          ; 75 58
+    call 00544h                               ; e8 b2 04
+    jmp short 00103h                          ; eb 6f
+    cmp ax, 0101bh                            ; 3d 1b 10
+    je short 000e7h                           ; 74 4e
+    cmp ah, 010h                              ; 80 fc 10
+    jne short 000a3h                          ; 75 05
+    call 001bah                               ; e8 19 01
+    jmp short 00103h                          ; eb 60
+    cmp ah, 04fh                              ; 80 fc 4f
+    jne short 000e7h                          ; 75 3f
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 000b1h                          ; 75 05
+    call 00846h                               ; e8 97 07
+    jmp short 00103h                          ; eb 52
+    cmp AL, strict byte 005h                  ; 3c 05
+    jne short 000bah                          ; 75 05
+    call 0086bh                               ; e8 b3 07
+    jmp short 00103h                          ; eb 49
+    cmp AL, strict byte 006h                  ; 3c 06
+    jne short 000c3h                          ; 75 05
+    call 00898h                               ; e8 d7 07
+    jmp short 00103h                          ; eb 40
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 000cch                          ; 75 05
+    call 008ebh                               ; e8 21 08
+    jmp short 00103h                          ; eb 37
+    cmp AL, strict byte 008h                  ; 3c 08
+    jne short 000d5h                          ; 75 05
+    call 0091fh                               ; e8 4c 08
+    jmp short 00103h                          ; eb 2e
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 000deh                          ; 75 05
+    call 00956h                               ; e8 7a 08
+    jmp short 00103h                          ; eb 25
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    jne short 000e7h                          ; 75 05
+    call 009c9h                               ; e8 e4 08
+    jmp short 00103h                          ; eb 1c
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    mov bx, 0c000h                            ; bb 00 c0
+    mov ds, bx                                ; 8e db
+    call 03264h                               ; e8 6b 31
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popfw                                     ; 9d
+    iret                                      ; cf
+    cmp bh, 000h                              ; 80 ff 00
+    je short 00110h                           ; 74 06
+    cmp bh, 001h                              ; 80 ff 01
+    je short 00161h                           ; 74 52
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push DS                                   ; 1e
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ds, dx                                ; 8e da
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    cmp byte [word 00049h], 003h              ; 80 3e 49 00 03
+    jbe short 00154h                          ; 76 2f
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 000h                  ; b0 00
+    out DX, AL                                ; ee
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    and AL, strict byte 00fh                  ; 24 0f
+    test AL, strict byte 008h                 ; a8 08
+    je short 00135h                           ; 74 02
+    add AL, strict byte 008h                  ; 04 08
+    out DX, AL                                ; ee
+    mov CL, strict byte 001h                  ; b1 01
+    and bl, 010h                              ; 80 e3 10
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0efh                  ; 24 ef
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0013bh                          ; 75 e7
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop DS                                    ; 1f
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov CL, strict byte 001h                  ; b1 01
+    and bl, 001h                              ; 80 e3 01
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0feh                  ; 24 fe
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0016eh                          ; 75 e7
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    push bx                                   ; 53
+    mov bx, strict word 00062h                ; bb 62 00
+    mov al, byte [bx]                         ; 8a 07
+    pop bx                                    ; 5b
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    push bx                                   ; 53
+    mov bx, 00087h                            ; bb 87 00
+    mov ah, byte [bx]                         ; 8a 27
+    and ah, 080h                              ; 80 e4 80
+    mov bx, strict word 00049h                ; bb 49 00
+    mov al, byte [bx]                         ; 8a 07
+    db  00ah, 0c4h
+    ; or al, ah                                 ; 0a c4
+    mov bx, strict word 0004ah                ; bb 4a 00
+    mov ah, byte [bx]                         ; 8a 27
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    cmp AL, strict byte 000h                  ; 3c 00
+    jne short 001c0h                          ; 75 02
+    jmp short 00221h                          ; eb 61
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 001c6h                          ; 75 02
+    jmp short 0023fh                          ; eb 79
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 001cch                          ; 75 02
+    jmp short 00247h                          ; eb 7b
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 001d3h                          ; 75 03
+    jmp near 00278h                           ; e9 a5 00
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 001dah                          ; 75 03
+    jmp near 002a5h                           ; e9 cb 00
+    cmp AL, strict byte 008h                  ; 3c 08
+    jne short 001e1h                          ; 75 03
+    jmp near 002cdh                           ; e9 ec 00
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 001e8h                          ; 75 03
+    jmp near 002dbh                           ; e9 f3 00
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 001efh                          ; 75 03
+    jmp near 00320h                           ; e9 31 01
+    cmp AL, strict byte 012h                  ; 3c 12
+    jne short 001f6h                          ; 75 03
+    jmp near 00339h                           ; e9 43 01
+    cmp AL, strict byte 013h                  ; 3c 13
+    jne short 001fdh                          ; 75 03
+    jmp near 00361h                           ; e9 64 01
+    cmp AL, strict byte 015h                  ; 3c 15
+    jne short 00204h                          ; 75 03
+    jmp near 003b4h                           ; e9 b0 01
+    cmp AL, strict byte 017h                  ; 3c 17
+    jne short 0020bh                          ; 75 03
+    jmp near 003cfh                           ; e9 c4 01
+    cmp AL, strict byte 018h                  ; 3c 18
+    jne short 00212h                          ; 75 03
+    jmp near 003f7h                           ; e9 e5 01
+    cmp AL, strict byte 019h                  ; 3c 19
+    jne short 00219h                          ; 75 03
+    jmp near 00402h                           ; e9 e9 01
+    cmp AL, strict byte 01ah                  ; 3c 1a
+    jne short 00220h                          ; 75 03
+    jmp near 0040dh                           ; e9 ed 01
+    retn                                      ; c3
+    cmp bl, 014h                              ; 80 fb 14
+    jnbe short 0023eh                         ; 77 18
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push bx                                   ; 53
+    mov BL, strict byte 011h                  ; b3 11
+    call 00221h                               ; e8 dc ff
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov CL, strict byte 000h                  ; b1 00
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 010h                              ; 80 f9 10
+    jne short 00256h                          ; 75 f1
+    mov AL, strict byte 011h                  ; b0 11
+    out DX, AL                                ; ee
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0f7h                  ; 24 f7
+    and bl, 001h                              ; 80 e3 01
+    sal bl, 1                                 ; d0 e3
+    sal bl, 1                                 ; d0 e3
+    sal bl, 1                                 ; d0 e3
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    cmp bl, 014h                              ; 80 fb 14
+    jnbe short 002cch                         ; 77 22
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    mov BL, strict byte 011h                  ; b3 11
+    call 002a5h                               ; e8 d1 ff
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    pop bx                                    ; 5b
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov CL, strict byte 000h                  ; b1 00
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    cmp cl, 010h                              ; 80 f9 10
+    jne short 002e3h                          ; 75 e7
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 011h                  ; b0 11
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c8h                            ; ba c8 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    mov dx, 003c9h                            ; ba c9 03
+    pop ax                                    ; 58
+    push ax                                   ; 50
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    out DX, AL                                ; ee
+    db  08ah, 0c5h
+    ; mov al, ch                                ; 8a c5
+    out DX, AL                                ; ee
+    db  08ah, 0c1h
+    ; mov al, cl                                ; 8a c1
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003c8h                            ; ba c8 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003c9h                            ; ba c9 03
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [es:bx]                      ; 26 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    jne short 0034ah                          ; 75 ee
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    and bl, 001h                              ; 80 e3 01
+    jne short 0038fh                          ; 75 18
+    and AL, strict byte 07fh                  ; 24 7f
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    db  00ah, 0c7h
+    ; or al, bh                                 ; 0a c7
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    jmp short 003a9h                          ; eb 1a
+    push ax                                   ; 50
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    pop ax                                    ; 58
+    and AL, strict byte 080h                  ; 24 80
+    jne short 003a3h                          ; 75 04
+    sal bh, 1                                 ; d0 e7
+    sal bh, 1                                 ; d0 e7
+    and bh, 00fh                              ; 80 e7 0f
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c7h                            ; ba c7 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop ax                                    ; 58
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    xchg al, ah                               ; 86 e0
+    push ax                                   ; 50
+    in AL, DX                                 ; ec
+    db  08ah, 0e8h
+    ; mov ch, al                                ; 8a e8
+    in AL, DX                                 ; ec
+    db  08ah, 0c8h
+    ; mov cl, al                                ; 8a c8
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, 003c7h                            ; ba c7 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    in AL, DX                                 ; ec
+    mov byte [es:bx], al                      ; 26 88 07
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    jne short 003e0h                          ; 75 ee
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c6h                            ; ba c6 03
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c6h                            ; ba c6 03
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    shr bl, 1                                 ; d0 eb
+    shr bl, 1                                 ; d0 eb
+    shr bl, 1                                 ; d0 eb
+    shr bl, 1                                 ; d0 eb
+    shr bl, 1                                 ; d0 eb
+    shr bl, 1                                 ; d0 eb
+    shr bl, 1                                 ; d0 eb
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  08ah, 0f8h
+    ; mov bh, al                                ; 8a f8
+    and bh, 00fh                              ; 80 e7 0f
+    test bl, 001h                             ; f6 c3 01
+    jne short 00449h                          ; 75 04
+    shr bh, 1                                 ; d0 ef
+    shr bh, 1                                 ; d0 ef
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003c4h                            ; ba c4 03
+    db  08ah, 0e3h
+    ; mov ah, bl                                ; 8a e3
+    mov AL, strict byte 003h                  ; b0 03
+    out DX, ax                                ; ef
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    db  032h, 0edh
+    ; xor ch, ch                                ; 32 ed
+    mov bx, 00088h                            ; bb 88 00
+    mov cl, byte [bx]                         ; 8a 0f
+    and cl, 00fh                              ; 80 e1 0f
+    mov bx, strict word 00063h                ; bb 63 00
+    mov ax, word [bx]                         ; 8b 07
+    mov bx, strict word 00003h                ; bb 03 00
+    cmp ax, 003b4h                            ; 3d b4 03
+    jne short 00487h                          ; 75 02
+    mov BH, strict byte 001h                  ; b7 01
+    pop ax                                    ; 58
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    mov bx, 00088h                            ; bb 88 00
+    mov ah, byte [bx]                         ; 8a 27
+    cmp dl, 001h                              ; 80 fa 01
+    je short 004b8h                           ; 74 15
+    jc short 004c2h                           ; 72 1d
+    cmp dl, 002h                              ; 80 fa 02
+    je short 004ach                           ; 74 02
+    jmp short 004d6h                          ; eb 2a
+    and AL, strict byte 07fh                  ; 24 7f
+    or AL, strict byte 010h                   ; 0c 10
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 009h                               ; 80 cc 09
+    jne short 004cch                          ; 75 14
+    and AL, strict byte 06fh                  ; 24 6f
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 009h                               ; 80 cc 09
+    jne short 004cch                          ; 75 0a
+    and AL, strict byte 0efh                  ; 24 ef
+    or AL, strict byte 080h                   ; 0c 80
+    and ah, 0f0h                              ; 80 e4 f0
+    or ah, 008h                               ; 80 cc 08
+    mov bx, 00089h                            ; bb 89 00
+    mov byte [bx], al                         ; 88 07
+    mov bx, 00088h                            ; bb 88 00
+    mov byte [bx], ah                         ; 88 27
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    sal dl, 1                                 ; d0 e2
+    sal dl, 1                                 ; d0 e2
+    sal dl, 1                                 ; d0 e2
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0f7h                  ; 24 f7
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    and bl, 001h                              ; 80 e3 01
+    xor bl, 001h                              ; 80 f3 01
+    sal bl, 1                                 ; d0 e3
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0fdh                  ; 24 fd
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    xor dl, 001h                              ; 80 f2 01
+    sal dl, 1                                 ; d0 e2
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0fdh                  ; 24 fd
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    and dl, 001h                              ; 80 e2 01
+    xor dl, 001h                              ; 80 f2 01
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 00089h                            ; bb 89 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 0feh                  ; 24 fe
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov byte [bx], al                         ; 88 07
+    mov ax, 01212h                            ; b8 12 12
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0056fh                           ; 74 05
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 00584h                           ; 74 16
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 0008ah                            ; bb 8a 00
+    mov al, byte [bx]                         ; 8a 07
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    pop ax                                    ; 58
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    push DS                                   ; 1e
+    push ax                                   ; 50
+    push bx                                   ; 53
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    mov bx, 0008ah                            ; bb 8a 00
+    mov byte [bx], al                         ; 88 07
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    times 0x7 db 0
+do_out_dx_ax:                                ; 0xc05a0 LB 0x7
+    xchg ah, al                               ; 86 c4
+    out DX, AL                                ; ee
+    xchg ah, al                               ; 86 c4
+    out DX, AL                                ; ee
+    retn                                      ; c3
+do_in_ax_dx:                                 ; 0xc05a7 LB 0x43
+    in AL, DX                                 ; ec
+    xchg ah, al                               ; 86 c4
+    in AL, DX                                 ; ec
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    je short 005b1h                           ; 74 fb
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    jne short 005beh                          ; 75 fb
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 005a0h                               ; e8 d0 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 d1 ff
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 005e8h                          ; 76 0e
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    shr ah, 1                                 ; d0 ec
+    shr ah, 1                                 ; d0 ec
+    shr ah, 1                                 ; d0 ec
+    test AL, strict byte 007h                 ; a8 07
+    je short 005e8h                           ; 74 02
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_dispi_get_max_bpp:                          ; 0xc05ea LB 0x26
+    push dx                                   ; 52
+    push bx                                   ; 53
+    call 00624h                               ; e8 35 00
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    or ax, strict byte 00002h                 ; 83 c8 02
+    call 00610h                               ; e8 19 00
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 005a0h                               ; e8 a0 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 a1 ff
+    push ax                                   ; 50
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    call 00610h                               ; e8 04 00
+    pop ax                                    ; 58
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    retn                                      ; c3
+dispi_set_enable_:                           ; 0xc0610 LB 0x26
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00004h                ; b8 04 00
+    call 005a0h                               ; e8 85 ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 7e ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00004h                ; b8 04 00
+    call 005a0h                               ; e8 72 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 73 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+dispi_set_bank_:                             ; 0xc0636 LB 0x26
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00005h                ; b8 05 00
+    call 005a0h                               ; e8 5f ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 58 ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00005h                ; b8 05 00
+    call 005a0h                               ; e8 4c ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 4d ff
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_dispi_set_bank_farcall:                     ; 0xc065c LB 0xe7
+    cmp bx, 00100h                            ; 81 fb 00 01
+    je short 00686h                           ; 74 24
+    db  00bh, 0dbh
+    ; or bx, bx                                 ; 0b db
+    jne short 00698h                          ; 75 32
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 005a0h                               ; e8 2d ff
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 26 ff
+    call 005a7h                               ; e8 2a ff
+    pop dx                                    ; 5a
+    db  03bh, 0d0h
+    ; cmp dx, ax                                ; 3b d0
+    jne short 00698h                          ; 75 16
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retf                                      ; cb
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 005a0h                               ; e8 11 ff
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 12 ff
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    retf                                      ; cb
+    mov ax, 0014fh                            ; b8 4f 01
+    retf                                      ; cb
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00008h                ; b8 08 00
+    call 005a0h                               ; e8 f9 fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 f2 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00008h                ; b8 08 00
+    call 005a0h                               ; e8 e6 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 e7 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00009h                ; b8 09 00
+    call 005a0h                               ; e8 d3 fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 cc fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00009h                ; b8 09 00
+    call 005a0h                               ; e8 c0 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 c1 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push dx                                   ; 52
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    call 005c6h                               ; e8 d6 fe
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnbe short 006f6h                         ; 77 02
+    shr bx, 1                                 ; d1 eb
+    shr bx, 1                                 ; d1 eb
+    shr bx, 1                                 ; d1 eb
+    shr bx, 1                                 ; d1 eb
+    mov dx, 003d4h                            ; ba d4 03
+    db  08ah, 0e3h
+    ; mov ah, bl                                ; 8a e3
+    mov AL, strict byte 013h                  ; b0 13
+    out DX, ax                                ; ef
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    retn                                      ; c3
+    call 006e8h                               ; e8 dd ff
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00006h                ; b8 06 00
+    call 005a0h                               ; e8 8a fe
+    pop ax                                    ; 58
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 83 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00006h                ; b8 06 00
+    call 005a0h                               ; e8 77 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 78 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00007h                ; b8 07 00
+    call 005a0h                               ; e8 65 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 66 fe
+    pop dx                                    ; 5a
+    retn                                      ; c3
+_vga_compat_setup:                           ; 0xc0743 LB 0xf0
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00001h                ; b8 01 00
+    call 005a0h                               ; e8 52 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 53 fe
+    push ax                                   ; 50
+    mov dx, 003d4h                            ; ba d4 03
+    mov ax, strict word 00011h                ; b8 11 00
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    push ax                                   ; 50
+    shr ax, 1                                 ; d1 e8
+    shr ax, 1                                 ; d1 e8
+    shr ax, 1                                 ; d1 e8
+    dec ax                                    ; 48
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov AL, strict byte 001h                  ; b0 01
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    call 006e8h                               ; e8 7a ff
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00002h                ; b8 02 00
+    call 005a0h                               ; e8 29 fe
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 2a fe
+    dec ax                                    ; 48
+    push ax                                   ; 50
+    mov dx, 003d4h                            ; ba d4 03
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    mov AL, strict byte 012h                  ; b0 12
+    out DX, ax                                ; ef
+    pop ax                                    ; 58
+    mov AL, strict byte 007h                  ; b0 07
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    and AL, strict byte 0bdh                  ; 24 bd
+    test ah, 001h                             ; f6 c4 01
+    je short 00796h                           ; 74 02
+    or AL, strict byte 002h                   ; 0c 02
+    test ah, 002h                             ; f6 c4 02
+    je short 0079dh                           ; 74 02
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    mov dx, 003d4h                            ; ba d4 03
+    mov ax, strict word 00009h                ; b8 09 00
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 060h                  ; 24 60
+    out DX, AL                                ; ee
+    mov dx, 003d4h                            ; ba d4 03
+    mov AL, strict byte 017h                  ; b0 17
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 003h                   ; 0c 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 001h                   ; 0c 01
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003ceh                            ; ba ce 03
+    mov ax, 00506h                            ; b8 06 05
+    out DX, ax                                ; ef
+    mov dx, 003c4h                            ; ba c4 03
+    mov ax, 00f02h                            ; b8 02 0f
+    out DX, ax                                ; ef
+    mov dx, 001ceh                            ; ba ce 01
+    mov ax, strict word 00003h                ; b8 03 00
+    call 005a0h                               ; e8 b9 fd
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 ba fd
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 00831h                           ; 72 40
+    mov dx, 003d4h                            ; ba d4 03
+    mov AL, strict byte 014h                  ; b0 14
+    out DX, AL                                ; ee
+    mov dx, 003d5h                            ; ba d5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    mov dx, 003c0h                            ; ba c0 03
+    mov AL, strict byte 010h                  ; b0 10
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 040h                   ; 0c 40
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    out DX, AL                                ; ee
+    mov dx, 003c4h                            ; ba c4 03
+    mov AL, strict byte 004h                  ; b0 04
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    or AL, strict byte 008h                   ; 0c 08
+    out DX, AL                                ; ee
+    mov dx, 003ceh                            ; ba ce 03
+    mov AL, strict byte 005h                  ; b0 05
+    out DX, AL                                ; ee
+    mov dx, 003cfh                            ; ba cf 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 09fh                  ; 24 9f
+    or AL, strict byte 040h                   ; 0c 40
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+_vbe_has_vbe_display:                        ; 0xc0833 LB 0x13
+    push DS                                   ; 1e
+    push bx                                   ; 53
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov bx, 000b9h                            ; bb b9 00
+    mov al, byte [bx]                         ; 8a 07
+    and AL, strict byte 001h                  ; 24 01
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    pop bx                                    ; 5b
+    pop DS                                    ; 1f
+    retn                                      ; c3
+vbe_biosfn_return_current_mode:              ; 0xc0846 LB 0x25
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    call 00624h                               ; e8 d5 fd
+    and ax, strict byte 00001h                ; 83 e0 01
+    je short 0085dh                           ; 74 09
+    mov bx, 000bah                            ; bb ba 00
+    mov ax, word [bx]                         ; 8b 07
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    jne short 00866h                          ; 75 09
+    mov bx, strict word 00049h                ; bb 49 00
+    mov al, byte [bx]                         ; 8a 07
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    mov ax, strict word 0004fh                ; b8 4f 00
+    pop DS                                    ; 1f
+    retn                                      ; c3
+vbe_biosfn_display_window_control:           ; 0xc086b LB 0x2d
+    cmp bl, 000h                              ; 80 fb 00
+    jne short 00894h                          ; 75 24
+    cmp bh, 001h                              ; 80 ff 01
+    je short 0088bh                           ; 74 16
+    jc short 0087bh                           ; 72 04
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    call 00636h                               ; e8 b6 fd
+    call 0064ah                               ; e8 c7 fd
+    db  03bh, 0c2h
+    ; cmp ax, dx                                ; 3b c2
+    jne short 00894h                          ; 75 0d
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    call 0064ah                               ; e8 bc fd
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+vbe_biosfn_set_get_logical_scan_line_length: ; 0xc0898 LB 0x53
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    cmp bl, 001h                              ; 80 fb 01
+    je short 008c6h                           ; 74 27
+    cmp bl, 002h                              ; 80 fb 02
+    je short 008aah                           ; 74 06
+    jc short 008c3h                           ; 72 1d
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    push ax                                   ; 50
+    call 005c6h                               ; e8 18 fd
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    db  08ah, 0dch
+    ; mov bl, ah                                ; 8a dc
+    db  00ah, 0dbh
+    ; or bl, bl                                 ; 0a db
+    jne short 008beh                          ; 75 08
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov BL, strict byte 001h                  ; b3 01
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    pop ax                                    ; 58
+    div bx                                    ; f7 f3
+    call 00708h                               ; e8 42 fe
+    call 005c6h                               ; e8 fd fc
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    db  08ah, 0dch
+    ; mov bl, ah                                ; 8a dc
+    call 0071fh                               ; e8 4f fe
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    db  00ah, 0dbh
+    ; or bl, bl                                 ; 0a db
+    jne short 008deh                          ; 75 08
+    shr ax, 1                                 ; d1 e8
+    shr ax, 1                                 ; d1 e8
+    shr ax, 1                                 ; d1 e8
+    mov BL, strict byte 001h                  ; b3 01
+    mul bx                                    ; f7 e3
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    call 00731h                               ; e8 4c fe
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+vbe_biosfn_set_get_display_start:            ; 0xc08eb LB 0x34
+    cmp bl, 080h                              ; 80 fb 80
+    je short 008fbh                           ; 74 0b
+    cmp bl, 001h                              ; 80 fb 01
+    je short 0090fh                           ; 74 1a
+    jc short 00901h                           ; 72 0a
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    call 005b9h                               ; e8 bb fc
+    call 005ach                               ; e8 ab fc
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    call 0069ch                               ; e8 96 fd
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    call 006c2h                               ; e8 b7 fd
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    call 006b0h                               ; e8 9e fd
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    call 006d6h                               ; e8 bf fd
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    db  032h, 0ffh
+    ; xor bh, bh                                ; 32 ff
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+vbe_biosfn_set_get_dac_palette_format:       ; 0xc091f LB 0x37
+    cmp bl, 001h                              ; 80 fb 01
+    je short 00942h                           ; 74 1e
+    jc short 0092ah                           ; 72 04
+    mov ax, 00100h                            ; b8 00 01
+    retn                                      ; c3
+    call 00624h                               ; e8 f7 fc
+    cmp bh, 006h                              ; 80 ff 06
+    je short 0093ch                           ; 74 0a
+    cmp bh, 008h                              ; 80 ff 08
+    jne short 00952h                          ; 75 1b
+    or ax, strict byte 00020h                 ; 83 c8 20
+    jne short 0093fh                          ; 75 03
+    and ax, strict byte 0ffdfh                ; 83 e0 df
+    call 00610h                               ; e8 ce fc
+    mov BH, strict byte 006h                  ; b7 06
+    call 00624h                               ; e8 dd fc
+    and ax, strict byte 00020h                ; 83 e0 20
+    je short 0094eh                           ; 74 02
+    mov BH, strict byte 008h                  ; b7 08
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+vbe_biosfn_set_get_palette_data:             ; 0xc0956 LB 0x73
+    test bl, bl                               ; 84 db
+    je short 00969h                           ; 74 0f
+    cmp bl, 001h                              ; 80 fb 01
+    je short 00997h                           ; 74 38
+    cmp bl, 003h                              ; 80 fb 03
+    jbe short 009c5h                          ; 76 61
+    cmp bl, 080h                              ; 80 fb 80
+    jne short 009c1h                          ; 75 58
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pop DS                                    ; 1f
+    db  08ah, 0c2h
+    ; mov al, dl                                ; 8a c2
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    db  08bh, 0f7h
+    ; mov si, di                                ; 8b f7
+    lodsw                                     ; ad
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    lodsw                                     ; ad
+    out DX, AL                                ; ee
+    db  08ah, 0c7h
+    ; mov al, bh                                ; 8a c7
+    out DX, AL                                ; ee
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, AL                                ; ee
+    loop 0097dh                               ; e2 f3
+    pop DS                                    ; 1f
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push sp                                   ; 54
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    db  08ah, 0c2h
+    ; mov al, dl                                ; 8a c2
+    mov dx, 003c7h                            ; ba c7 03
+    out DX, AL                                ; ee
+    add dl, 002h                              ; 80 c2 02
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    in AL, DX                                 ; ec
+    db  08ah, 0d8h
+    ; mov bl, al                                ; 8a d8
+    in AL, DX                                 ; ec
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    in AL, DX                                 ; ec
+    stosw                                     ; ab
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    stosw                                     ; ab
+    loop 009aah                               ; e2 f3
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    pop bx                                    ; 5b
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    jmp short 00993h                          ; eb d2
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+    mov ax, 0024fh                            ; b8 4f 02
+    retn                                      ; c3
+vbe_biosfn_return_protected_mode_interface: ; 0xc09c9 LB 0x17
+    test bl, bl                               ; 84 db
+    jne short 009dch                          ; 75 0f
+    mov di, 0c000h                            ; bf 00 c0
+    mov es, di                                ; 8e c7
+    mov di, 04400h                            ; bf 00 44
+    mov cx, 00115h                            ; b9 15 01
+    mov ax, strict word 0004fh                ; b8 4f 00
+    retn                                      ; c3
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+
+  ; Padding 0x20 bytes at 0xc09e0
+  times 32 db 0
+
+section _TEXT progbits vstart=0xa00 align=1 ; size=0x3186 class=CODE group=AUTO
+set_int_vector_:                             ; 0xc0a00 LB 0x1c
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    sal bx, 1                                 ; d1 e3
+    sal bx, 1                                 ; d1 e3
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov word [es:bx], dx                      ; 26 89 17
+    mov word [es:bx+002h], 0c000h             ; 26 c7 47 02 00 c0
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+init_vga_card_:                              ; 0xc0a1c LB 0x1c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov AL, strict byte 0c3h                  ; b0 c3
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 004h                  ; b0 04
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+init_bios_area_:                             ; 0xc0a38 LB 0x32
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    xor bx, bx                                ; 31 db
+    mov ax, strict word 00040h                ; b8 40 00
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx+010h]                 ; 26 8a 47 10
+    and AL, strict byte 0cfh                  ; 24 cf
+    or AL, strict byte 020h                   ; 0c 20
+    mov byte [es:bx+010h], al                 ; 26 88 47 10
+    mov byte [es:bx+00085h], 010h             ; 26 c6 87 85 00 10
+    mov word [es:bx+00087h], 0f960h           ; 26 c7 87 87 00 60 f9
+    mov byte [es:bx+00089h], 051h             ; 26 c6 87 89 00 51
+    mov byte [es:bx+065h], 009h               ; 26 c6 47 65 09
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+_vgabios_init_func:                          ; 0xc0a6a LB 0x22
+    inc bp                                    ; 45
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    call 00a1ch                               ; e8 ab ff
+    call 00a38h                               ; e8 c4 ff
+    call 036a3h                               ; e8 2c 2c
+    mov dx, strict word 00022h                ; ba 22 00
+    mov ax, strict word 00010h                ; b8 10 00
+    call 00a00h                               ; e8 80 ff
+    mov ax, strict word 00003h                ; b8 03 00
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    int 010h                                  ; cd 10
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    dec bp                                    ; 4d
+    retf                                      ; cb
+vga_get_cursor_pos_:                         ; 0xc0a8c LB 0x46
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    mov cl, al                                ; 88 c1
+    mov si, dx                                ; 89 d6
+    cmp AL, strict byte 007h                  ; 3c 07
+    jbe short 00aa7h                          ; 76 0e
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], strict word 00000h      ; 26 c7 04 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    jmp short 00acbh                          ; eb 24
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 07 27
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], ax                      ; 26 89 04
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 1                                 ; d1 e2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 f1 26
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vga_read_char_attr_:                         ; 0xc0ad2 LB 0xaf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov ch, al                                ; 88 c5
+    mov si, dx                                ; 89 d6
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 b2 26
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 82 26
+    mov cl, al                                ; 88 c1
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 00b68h                           ; 74 74
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-012h]                         ; 8d 5e ee
+    lea dx, [bp-010h]                         ; 8d 56 f0
+    call 00a8ch                               ; e8 8b ff
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 81 26
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 8e 26
+    mov di, ax                                ; 89 c7
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 00b68h                          ; 75 2e
+    mul word [bp-00ch]                        ; f7 66 f4
+    sal ax, 1                                 ; d1 e0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov cl, ch                                ; 88 e9
+    xor ch, ch                                ; 30 ed
+    inc ax                                    ; 40
+    mul cx                                    ; f7 e1
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mul di                                    ; f7 e7
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    sal dx, 1                                 ; d1 e2
+    add dx, cx                                ; 01 ca
+    mov ax, word [bx+04633h]                  ; 8b 87 33 46
+    call 031b7h                               ; e8 52 26
+    mov word [ss:si], ax                      ; 36 89 04
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    xchg si, ax                               ; 96
+    db  00bh, 0d4h
+    ; or dx, sp                                 ; 0b d4
+    db  00bh, 0d9h
+    ; or bx, cx                                 ; 0b d9
+    db  00bh, 0e1h
+    ; or sp, cx                                 ; 0b e1
+    db  00bh, 0e6h
+    ; or sp, si                                 ; 0b e6
+    db  00bh, 0ebh
+    ; or bp, bx                                 ; 0b eb
+    db  00bh, 0f0h
+    ; or si, ax                                 ; 0b f0
+    db  00bh, 0f5h
+    ; or si, bp                                 ; 0b f5
+    db  00bh
+vga_get_font_info_:                          ; 0xc0b81 LB 0x7b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov si, dx                                ; 89 d6
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jnbe short 00bcbh                         ; 77 3e
+    mov di, ax                                ; 89 c7
+    sal di, 1                                 ; d1 e7
+    jmp word [cs:di+00b71h]                   ; 2e ff a5 71 0b
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 031d3h                               ; e8 35 26
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    mov word [es:si], dx                      ; 26 89 14
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 ec 25
+    xor ah, ah                                ; 30 e4
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, cx                                ; 89 cb
+    mov word [es:bx], ax                      ; 26 89 07
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 da 25
+    xor ah, ah                                ; 30 e4
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+    mov dx, 0010ch                            ; ba 0c 01
+    jmp short 00b99h                          ; eb c0
+    mov ax, 05bedh                            ; b8 ed 5b
+    mov dx, 0c000h                            ; ba 00 c0
+    jmp short 00b9eh                          ; eb bd
+    mov ax, 053edh                            ; b8 ed 53
+    jmp short 00bdch                          ; eb f6
+    mov ax, 057edh                            ; b8 ed 57
+    jmp short 00bdch                          ; eb f1
+    mov ax, 079edh                            ; b8 ed 79
+    jmp short 00bdch                          ; eb ec
+    mov ax, 069edh                            ; b8 ed 69
+    jmp short 00bdch                          ; eb e7
+    mov ax, 07b1ah                            ; b8 1a 7b
+    jmp short 00bdch                          ; eb e2
+    jmp short 00bcbh                          ; eb cf
+vga_read_pixel_:                             ; 0xc0bfc LB 0x143
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, dx                                ; 89 d6
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov di, cx                                ; 89 cf
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 87 25
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 57 25
+    mov ch, al                                ; 88 c5
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 00c2eh                           ; 74 0f
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 00c31h                          ; 75 03
+    jmp near 00d38h                           ; e9 07 01
+    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    cmp bl, cl                                ; 38 cb
+    jc short 00c48h                           ; 72 0f
+    jbe short 00c50h                          ; 76 15
+    cmp bl, 005h                              ; 80 fb 05
+    je short 00ca8h                           ; 74 68
+    cmp bl, 004h                              ; 80 fb 04
+    je short 00c50h                           ; 74 0b
+    jmp near 00d33h                           ; e9 eb 00
+    cmp bl, 002h                              ; 80 fb 02
+    je short 00cadh                           ; 74 60
+    jmp near 00d33h                           ; e9 e3 00
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 5e 25
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mul bx                                    ; f7 e3
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, si                                ; 89 f3
+    shr bx, CL                                ; d3 eb
+    add bx, ax                                ; 01 c3
+    mov cx, si                                ; 89 f1
+    and cx, strict byte 00007h                ; 83 e1 07
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-006h], ch                    ; 88 6e fa
+    jmp short 00c80h                          ; eb 06
+    cmp byte [bp-006h], 004h                  ; 80 7e fa 04
+    jnc short 00caah                          ; 73 2a
+    mov ah, byte [bp-006h]                    ; 8a 66 fa
+    xor al, al                                ; 30 c0
+    or AL, strict byte 004h                   ; 0c 04
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, 0a000h                            ; b8 00 a0
+    call 0319bh                               ; e8 08 25
+    and al, byte [bp-008h]                    ; 22 46 f8
+    test al, al                               ; 84 c0
+    jbe short 00ca3h                          ; 76 09
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    mov AL, strict byte 001h                  ; b0 01
+    sal al, CL                                ; d2 e0
+    or ch, al                                 ; 08 c5
+    inc byte [bp-006h]                        ; fe 46 fa
+    jmp short 00c7ah                          ; eb d2
+    jmp short 00d13h                          ; eb 69
+    jmp near 00d35h                           ; e9 88 00
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    shr ax, 1                                 ; d1 e8
+    mov bx, strict word 00050h                ; bb 50 00
+    mul bx                                    ; f7 e3
+    mov bx, si                                ; 89 f3
+    shr bx, 1                                 ; d1 eb
+    shr bx, 1                                 ; d1 eb
+    add bx, ax                                ; 01 c3
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 00cc8h                           ; 74 03
+    add bh, 020h                              ; 80 c7 20
+    mov dx, bx                                ; 89 da
+    mov ax, 0b800h                            ; b8 00 b8
+    call 0319bh                               ; e8 cb 24
+    mov bl, ch                                ; 88 eb
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    jne short 00cfah                          ; 75 1b
+    mov cx, si                                ; 89 f1
+    xor ch, ch                                ; 30 ed
+    and cl, 003h                              ; 80 e1 03
+    mov bx, strict word 00003h                ; bb 03 00
+    sub bx, cx                                ; 29 cb
+    mov cx, bx                                ; 89 d9
+    sal cx, 1                                 ; d1 e1
+    xor ah, ah                                ; 30 e4
+    sar ax, CL                                ; d3 f8
+    mov ch, al                                ; 88 c5
+    and ch, 003h                              ; 80 e5 03
+    jmp short 00d35h                          ; eb 3b
+    mov cx, si                                ; 89 f1
+    xor ch, ch                                ; 30 ed
+    and cl, 007h                              ; 80 e1 07
+    mov bx, strict word 00007h                ; bb 07 00
+    sub bx, cx                                ; 29 cb
+    mov cx, bx                                ; 89 d9
+    xor ah, ah                                ; 30 e4
+    sar ax, CL                                ; d3 f8
+    mov ch, al                                ; 88 c5
+    and ch, 001h                              ; 80 e5 01
+    jmp short 00d35h                          ; eb 22
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 9b 24
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mul bx                                    ; f7 e3
+    mov dx, si                                ; 89 f2
+    add dx, ax                                ; 01 c2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 0319bh                               ; e8 6c 24
+    mov ch, al                                ; 88 c5
+    jmp short 00d35h                          ; eb 02
+    xor ch, ch                                ; 30 ed
+    mov byte [ss:di], ch                      ; 36 88 2d
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_perform_gray_scale_summing_:          ; 0xc0d3f LB 0x9f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor al, al                                ; 30 c0
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    xor si, si                                ; 31 f6
+    cmp si, di                                ; 39 fe
+    jnc short 00dc3h                          ; 73 65
+    mov al, bl                                ; 88 d8
+    mov dx, 003c7h                            ; ba c7 03
+    out DX, AL                                ; ee
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov cx, strict word 0004dh                ; b9 4d 00
+    imul cx                                   ; f7 e9
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, 00097h                            ; ba 97 00
+    imul dx                                   ; f7 ea
+    add cx, ax                                ; 01 c1
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov cl, byte [bp-00ch]                    ; 8a 4e f4
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    add ax, word [bp-00ah]                    ; 03 46 f6
+    add ax, 00080h                            ; 05 80 00
+    mov al, ah                                ; 88 e0
+    cbw                                       ; 98
+    mov cx, ax                                ; 89 c1
+    cmp ax, strict word 0003fh                ; 3d 3f 00
+    jbe short 00db1h                          ; 76 03
+    mov cx, strict word 0003fh                ; b9 3f 00
+    mov al, bl                                ; 88 d8
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    inc si                                    ; 46
+    jmp short 00d5ah                          ; eb 97
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_cursor_shape_:                    ; 0xc0dde LB 0xb3
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov ch, dl                                ; 88 d5
+    and byte [bp-00ah], 03fh                  ; 80 66 f6 3f
+    and ch, 01fh                              ; 80 e5 1f
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov bh, byte [bp-00ch]                    ; 8a 7e f4
+    mov al, ch                                ; 88 e8
+    mov si, ax                                ; 89 c6
+    mov bl, ch                                ; 88 eb
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 b8 23
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 85 23
+    mov cl, al                                ; 88 c1
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 96 23
+    mov bx, ax                                ; 89 c3
+    mov di, ax                                ; 89 c7
+    test cl, 001h                             ; f6 c1 01
+    je short 00e65h                           ; 74 3b
+    cmp ax, strict word 00008h                ; 3d 08 00
+    jbe short 00e65h                          ; 76 36
+    cmp ch, 008h                              ; 80 fd 08
+    jnc short 00e65h                          ; 73 31
+    cmp byte [bp-00ah], 020h                  ; 80 7e f6 20
+    jnc short 00e65h                          ; 73 2b
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    inc ax                                    ; 40
+    cmp si, ax                                ; 39 c6
+    je short 00e4bh                           ; 74 09
+    mul bx                                    ; f7 e3
+    mov CL, strict byte 003h                  ; b1 03
+    shr ax, CL                                ; d3 e8
+    dec ax                                    ; 48
+    jmp short 00e54h                          ; eb 09
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov CL, strict byte 003h                  ; b1 03
+    shr ax, CL                                ; d3 e8
+    dec ax                                    ; 48
+    dec ax                                    ; 48
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mul di                                    ; f7 e7
+    mov CL, strict byte 003h                  ; b1 03
+    shr ax, CL                                ; d3 e8
+    dec ax                                    ; 48
+    mov ch, al                                ; 88 c5
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 49 23
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 00ah                  ; b0 0a
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea si, [bx+001h]                         ; 8d 77 01
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_cursor_pos_:                      ; 0xc0e91 LB 0xa3
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov cx, dx                                ; 89 d1
+    cmp AL, strict byte 007h                  ; 3c 07
+    jbe short 00ea4h                          ; 76 03
+    jmp near 00f2ch                           ; e9 88 00
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 1                                 ; d1 e2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov bx, cx                                ; 89 cb
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 10 23
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 dd 22
+    cmp al, byte [bp-008h]                    ; 3a 46 f8
+    jne short 00f2ch                          ; 75 69
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 eb 22
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 c4 22
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    inc dx                                    ; 42
+    mov ax, bx                                ; 89 d8
+    mul dx                                    ; f7 e2
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov ax, dx                                ; 89 d0
+    inc ax                                    ; 40
+    mul si                                    ; f7 e6
+    mov dl, cl                                ; 88 ca
+    xor dh, dh                                ; 30 f6
+    mov si, ax                                ; 89 c6
+    add si, dx                                ; 01 d6
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mul bx                                    ; f7 e3
+    add si, ax                                ; 01 c6
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 ae 22
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 00eh                  ; b0 0e
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov cx, si                                ; 89 f1
+    mov cl, ch                                ; 88 e9
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    lea cx, [bx+001h]                         ; 8d 4f 01
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    mov AL, strict byte 00fh                  ; b0 0f
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    and si, 000ffh                            ; 81 e6 ff 00
+    mov ax, si                                ; 89 f0
+    mov dx, cx                                ; 89 ca
+    out DX, AL                                ; ee
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_active_page_:                     ; 0xc0f34 LB 0xe5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ch, al                                ; 88 c5
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe short 00f58h                         ; 77 14
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 4e 22
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 1e 22
+    mov cl, al                                ; 88 c1
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 00f5bh                          ; 75 03
+    jmp near 0100fh                           ; e9 b4 00
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-00eh]                         ; 8d 5e f2
+    lea dx, [bp-00ch]                         ; 8d 56 f4
+    call 00a8ch                               ; e8 24 fb
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, bx                                ; 89 de
+    sal si, CL                                ; d3 e6
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 00fc0h                          ; 75 47
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 35 22
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 0e 22
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    inc dx                                    ; 42
+    mov ax, bx                                ; 89 d8
+    mul dx                                    ; f7 e2
+    mov si, ax                                ; 89 c6
+    mov dx, ax                                ; 89 c2
+    sal dx, 1                                 ; d1 e2
+    or dl, 0ffh                               ; 80 ca ff
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    inc ax                                    ; 40
+    mul di                                    ; f7 e7
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 10 22
+    or si, 000ffh                             ; 81 ce ff 00
+    lea ax, [si+001h]                         ; 8d 44 01
+    mul di                                    ; f7 e7
+    jmp short 00fd0h                          ; eb 10
+    mov bl, byte [bx+046afh]                  ; 8a 9f af 46
+    mov CL, strict byte 006h                  ; b1 06
+    sal bx, CL                                ; d3 e3
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mul word [bx+046c6h]                      ; f7 a7 c6 46
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 dc 21
+    mov si, ax                                ; 89 c6
+    mov AL, strict byte 00ch                  ; b0 0c
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov al, bh                                ; 88 f8
+    lea di, [si+001h]                         ; 8d 7c 01
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 00dh                  ; b0 0d
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    xor ah, bh                                ; 30 fc
+    mov si, ax                                ; 89 c6
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 a2 21
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, si                                ; 89 f0
+    call 00e91h                               ; e8 82 fe
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_set_video_mode_:                      ; 0xc1019 LB 0x3c7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00012h                ; 83 ec 12
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    and AL, strict byte 080h                  ; 24 80
+    mov byte [bp-012h], al                    ; 88 46 ee
+    call 00833h                               ; e8 04 f8
+    test ax, ax                               ; 85 c0
+    je short 0103fh                           ; 74 0c
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    and byte [bp-00ch], 07fh                  ; 80 66 f4 7f
+    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
+    jne short 0104dh                          ; 75 04
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 1b 21
+    mov byte [bp-010h], al                    ; 88 46 f0
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0105fh                          ; 75 03
+    jmp near 013d6h                           ; e9 77 03
+    mov byte [bp-014h], al                    ; 88 46 ec
+    mov byte [bp-013h], 000h                  ; c6 46 ed 00
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 006h                  ; b1 06
+    sal bx, CL                                ; d3 e3
+    mov al, byte [bx+046c3h]                  ; 8a 87 c3 46
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bx+046c4h]                  ; 8a 87 c4 46
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 03 21
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 fa 20
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 f1 20
+    mov ch, al                                ; 88 c5
+    test AL, strict byte 008h                 ; a8 08
+    jne short 010f5h                          ; 75 45
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    sal bx, CL                                ; d3 e3
+    mov al, byte [bx+04635h]                  ; 8a 87 35 46
+    mov dx, 003c6h                            ; ba c6 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
+    cmp bl, 001h                              ; 80 fb 01
+    jc short 010dbh                           ; 72 0d
+    jbe short 010e4h                          ; 76 14
+    cmp bl, cl                                ; 38 cb
+    je short 010eeh                           ; 74 1a
+    cmp bl, 002h                              ; 80 fb 02
+    je short 010e9h                           ; 74 10
+    jmp short 010f1h                          ; eb 16
+    test bl, bl                               ; 84 db
+    jne short 010f1h                          ; 75 12
+    mov di, 04e43h                            ; bf 43 4e
+    jmp short 010f1h                          ; eb 0d
+    mov di, 04f03h                            ; bf 03 4f
+    jmp short 010f1h                          ; eb 08
+    mov di, 04fc3h                            ; bf c3 4f
+    jmp short 010f1h                          ; eb 03
+    mov di, 05083h                            ; bf 83 50
+    xor bx, bx                                ; 31 db
+    jmp short 010fdh                          ; eb 08
+    jmp short 01149h                          ; eb 52
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 0113ch                          ; 73 3f
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov al, byte [si+04636h]                  ; 8a 84 36 46
+    mov si, ax                                ; 89 c6
+    mov al, byte [si+046bfh]                  ; 8a 84 bf 46
+    cmp bx, ax                                ; 39 c3
+    jnbe short 01131h                         ; 77 1b
+    mov ax, bx                                ; 89 d8
+    mov dx, strict word 00003h                ; ba 03 00
+    mul dx                                    ; f7 e2
+    mov si, di                                ; 89 fe
+    add si, ax                                ; 01 c6
+    mov al, byte [si]                         ; 8a 04
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    mov al, byte [si+001h]                    ; 8a 44 01
+    out DX, AL                                ; ee
+    mov al, byte [si+002h]                    ; 8a 44 02
+    out DX, AL                                ; ee
+    jmp short 01139h                          ; eb 08
+    xor al, al                                ; 30 c0
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 010f7h                          ; eb bb
+    test ch, 002h                             ; f6 c5 02
+    je short 01149h                           ; 74 08
+    mov dx, 00100h                            ; ba 00 01
+    xor ax, ax                                ; 31 c0
+    call 00d3fh                               ; e8 f6 fb
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor bx, bx                                ; 31 db
+    jmp short 01158h                          ; eb 05
+    cmp bx, strict byte 00013h                ; 83 fb 13
+    jnbe short 01173h                         ; 77 1b
+    mov al, bl                                ; 88 d8
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 006h                  ; b1 06
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    add si, bx                                ; 01 de
+    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 01153h                          ; eb e0
+    mov AL, strict byte 014h                  ; b0 14
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 003h                  ; b0 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    mov bx, strict word 00001h                ; bb 01 00
+    jmp short 01190h                          ; eb 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jnbe short 011aeh                         ; 77 1e
+    mov al, bl                                ; 88 d8
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 006h                  ; b1 06
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    add si, bx                                ; 01 de
+    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 0118bh                          ; eb dd
+    xor bx, bx                                ; 31 db
+    jmp short 011b7h                          ; eb 05
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jnbe short 011d5h                         ; 77 1e
+    mov al, bl                                ; 88 d8
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 006h                  ; b1 06
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    add si, bx                                ; 01 de
+    mov al, byte [si+046fah]                  ; 8a 84 fa 46
+    mov dx, 003cfh                            ; ba cf 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 011b2h                          ; eb dd
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
+    jne short 011eah                          ; 75 05
+    mov dx, 003b4h                            ; ba b4 03
+    jmp short 011edh                          ; eb 03
+    mov dx, 003d4h                            ; ba d4 03
+    mov si, dx                                ; 89 d6
+    mov ax, strict word 00011h                ; b8 11 00
+    out DX, ax                                ; ef
+    xor bx, bx                                ; 31 db
+    jmp short 011fch                          ; eb 05
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jnbe short 0121bh                         ; 77 1f
+    mov al, bl                                ; 88 d8
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 006h                  ; b1 06
+    sal ax, CL                                ; d3 e0
+    mov cx, ax                                ; 89 c1
+    mov di, ax                                ; 89 c7
+    add di, bx                                ; 01 df
+    lea dx, [si+001h]                         ; 8d 54 01
+    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    jmp short 011f7h                          ; eb dc
+    mov bx, cx                                ; 89 cb
+    mov al, byte [bx+046cch]                  ; 8a 87 cc 46
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    jne short 01298h                          ; 75 61
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, ch                                ; 30 ef
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 0125ah                          ; 75 13
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 04000h                            ; b9 00 40
+    mov ax, 00720h                            ; b8 20 07
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01258h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 01298h                          ; eb 3e
+    cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
+    jnc short 01272h                          ; 73 12
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 04000h                            ; b9 00 40
+    xor ax, ax                                ; 31 c0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01270h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 01298h                          ; eb 26
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov AL, strict byte 00fh                  ; b0 0f
+    out DX, AL                                ; ee
+    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov cx, 08000h                            ; b9 00 80
+    xor ax, ax                                ; 31 c0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01294h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 03 1f
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 13 1f
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 006h                  ; b1 06
+    sal bx, CL                                ; d3 e3
+    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 fd 1e
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 f2 1e
+    mov bl, byte [bp-018h]                    ; 8a 5e e8
+    xor bh, bh                                ; 30 ff
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 c8 1e
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 d8 1e
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    or bl, 060h                               ; 80 cb 60
+    xor bh, bh                                ; 30 ff
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 ab 1e
+    mov bx, 000f9h                            ; bb f9 00
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 9f 1e
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 88 1e
+    mov bl, al                                ; 88 c3
+    and bl, 07fh                              ; 80 e3 7f
+    xor bh, bh                                ; 30 ff
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 86 1e
+    mov bx, strict word 00008h                ; bb 08 00
+    mov dx, 0008ah                            ; ba 8a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 7a 1e
+    mov cx, ds                                ; 8c d9
+    mov bx, 053d1h                            ; bb d1 53
+    mov dx, 000a8h                            ; ba a8 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031e5h                               ; e8 a8 1e
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00065h                ; ba 65 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 61 1e
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00066h                ; ba 66 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 56 1e
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 0136ch                          ; 75 09
+    mov dx, strict word 00007h                ; ba 07 00
+    mov ax, strict word 00006h                ; b8 06 00
+    call 00ddeh                               ; e8 72 fa
+    xor bx, bx                                ; 31 db
+    jmp short 01375h                          ; eb 05
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jnc short 01381h                          ; 73 0c
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    call 00e91h                               ; e8 13 fb
+    inc bx                                    ; 43
+    jmp short 01370h                          ; eb ef
+    xor ax, ax                                ; 31 c0
+    call 00f34h                               ; e8 ae fb
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 013a6h                          ; 75 10
+    xor bl, bl                                ; 30 db
+    mov AL, strict byte 004h                  ; b0 04
+    mov AH, strict byte 011h                  ; b4 11
+    int 010h                                  ; cd 10
+    xor bl, bl                                ; 30 db
+    mov al, cl                                ; 88 c8
+    mov AH, strict byte 011h                  ; b4 11
+    int 010h                                  ; cd 10
+    mov dx, 057edh                            ; ba ed 57
+    mov ax, strict word 0001fh                ; b8 1f 00
+    call 00a00h                               ; e8 51 f6
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    cmp ax, strict word 00010h                ; 3d 10 00
+    je short 013d1h                           ; 74 1a
+    cmp ax, strict word 0000eh                ; 3d 0e 00
+    je short 013cch                           ; 74 10
+    cmp ax, strict word 00008h                ; 3d 08 00
+    jne short 013d6h                          ; 75 15
+    mov dx, 053edh                            ; ba ed 53
+    mov ax, strict word 00043h                ; b8 43 00
+    call 00a00h                               ; e8 36 f6
+    jmp short 013d6h                          ; eb 0a
+    mov dx, 05bedh                            ; ba ed 5b
+    jmp short 013c4h                          ; eb f3
+    mov dx, 069edh                            ; ba ed 69
+    jmp short 013c4h                          ; eb ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vgamem_copy_pl4_:                            ; 0xc13e0 LB 0x8f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, dl                                ; 88 d0
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov byte [bp-006h], cl                    ; 88 4e fa
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp+006h]                    ; 8a 56 06
+    xor dh, dh                                ; 30 f6
+    mov cx, dx                                ; 89 d1
+    imul dx                                   ; f7 ea
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    xor dh, dh                                ; 30 f6
+    mov si, dx                                ; 89 d6
+    imul dx                                   ; f7 ea
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    add ax, dx                                ; 01 d0
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul cx                                   ; f7 e9
+    imul si                                   ; f7 ee
+    add ax, bx                                ; 01 d8
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, 00105h                            ; b8 05 01
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+006h]                    ; 3a 5e 06
+    jnc short 0145fh                          ; 73 30
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov si, ax                                ; 89 c6
+    mov ax, dx                                ; 89 d0
+    imul si                                   ; f7 ee
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    add si, ax                                ; 01 c6
+    mov di, word [bp-00ch]                    ; 8b 7e f4
+    add di, ax                                ; 01 c7
+    mov dx, 0a000h                            ; ba 00 a0
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0145bh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 0142ah                          ; eb cb
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_fill_pl4_:                            ; 0xc146f LB 0x7c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, dl                                ; 88 d0
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov bh, cl                                ; 88 cf
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    imul cx                                   ; f7 e9
+    mov dl, bh                                ; 88 fa
+    xor dh, dh                                ; 30 f6
+    imul dx                                   ; f7 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnc short 014dbh                          ; 73 2d
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    mov al, bh                                ; 88 f8
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    imul di                                   ; f7 ef
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, ax                                ; 01 c7
+    mov ax, si                                ; 89 f0
+    mov dx, 0a000h                            ; ba 00 a0
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 014d7h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 014a9h                          ; eb ce
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_copy_cga_:                            ; 0xc14eb LB 0xc2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, dl                                ; 88 d0
+    mov bh, cl                                ; 88 cf
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    imul cx                                   ; f7 e9
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    xor dh, dh                                ; 30 f6
+    mov di, dx                                ; 89 d7
+    imul dx                                   ; f7 ea
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    add dx, ax                                ; 01 c2
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov al, bl                                ; 88 d8
+    imul cx                                   ; f7 e9
+    imul di                                   ; f7 ef
+    sar ax, 1                                 ; d1 f8
+    add ax, si                                ; 01 f0
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+006h]                    ; 3a 5e 06
+    jnc short 015a4h                          ; 73 70
+    test bl, 001h                             ; f6 c3 01
+    je short 01570h                           ; 74 37
+    mov cl, bh                                ; 88 f9
+    xor ch, ch                                ; 30 ed
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov si, ax                                ; 89 c6
+    mov ax, dx                                ; 89 d0
+    imul si                                   ; f7 ee
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    add si, 02000h                            ; 81 c6 00 20
+    add si, ax                                ; 01 c6
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, 02000h                            ; 81 c7 00 20
+    add di, ax                                ; 01 c7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0156eh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    jmp short 015a0h                          ; eb 30
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, bl                                ; 88 d8
+    sar ax, 1                                 ; d1 f8
+    mov dl, byte [bp+004h]                    ; 8a 56 04
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-00bh], ch                    ; 88 6e f5
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    imul dx                                   ; f7 ea
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    add si, ax                                ; 01 c6
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, ax                                ; 01 c7
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 015a0h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 0152fh                          ; eb 8b
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vgamem_fill_cga_:                            ; 0xc15ad LB 0xa8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, dl                                ; 88 d0
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    mov bh, cl                                ; 88 cf
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    imul cx                                   ; f7 e9
+    mov dl, bh                                ; 88 fa
+    xor dh, dh                                ; 30 f6
+    imul dx                                   ; f7 ea
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnc short 0164ch                          ; 73 65
+    test bl, 001h                             ; f6 c3 01
+    je short 0161dh                           ; 74 31
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, bh                                ; 88 f8
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    imul di                                   ; f7 ef
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, 02000h                            ; 81 c7 00 20
+    add di, ax                                ; 01 c7
+    mov ax, si                                ; 89 f0
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 0161bh                               ; e3 02
+    rep stosb                                 ; f3 aa
+    jmp short 01648h                          ; eb 2b
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    sar dx, 1                                 ; d1 fa
+    mov al, bh                                ; 88 f8
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    imul di                                   ; f7 ef
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, ax                                ; 01 c7
+    mov ax, si                                ; 89 f0
+    mov dx, 0b800h                            ; ba 00 b8
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01648h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp short 015e2h                          ; eb 96
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+biosfn_scroll_:                              ; 0xc1655 LB 0x576
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001eh                ; 83 ec 1e
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov byte [bp-00eh], bl                    ; 88 5e f2
+    mov byte [bp-00ch], cl                    ; 88 4e f4
+    mov ch, byte [bp+006h]                    ; 8a 6e 06
+    cmp bl, byte [bp+004h]                    ; 3a 5e 04
+    jnbe short 0168ah                         ; 77 19
+    cmp ch, cl                                ; 38 cd
+    jc short 0168ah                           ; 72 15
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 1d 1b
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 ed 1a
+    mov byte [bp-010h], al                    ; 88 46 f0
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0168dh                          ; 75 03
+    jmp near 01bc2h                           ; e9 35 05
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 05 1b
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    inc bx                                    ; 43
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 13 1b
+    mov word [bp-018h], ax                    ; 89 46 e8
+    cmp byte [bp+008h], 0ffh                  ; 80 7e 08 ff
+    jne short 016b9h                          ; 75 0c
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 e5 1a
+    mov byte [bp+008h], al                    ; 88 46 08
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, bx                                ; 39 d8
+    jc short 016c9h                           ; 72 07
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp+004h], al                    ; 88 46 04
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-018h]                    ; 3b 46 e8
+    jc short 016d7h                           ; 72 05
+    mov ch, byte [bp-018h]                    ; 8a 6e e8
+    db  0feh, 0cdh
+    ; dec ch                                    ; fe cd
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    cmp ax, bx                                ; 39 d8
+    jbe short 016e3h                          ; 76 03
+    mov byte [bp-00ah], ah                    ; 88 66 f6
+    mov al, ch                                ; 88 e8
+    sub al, byte [bp-00ch]                    ; 2a 46 f4
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov CL, strict byte 003h                  ; b1 03
+    mov di, ax                                ; 89 c7
+    sal di, CL                                ; d3 e7
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    dec ax                                    ; 48
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    lea ax, [bx-001h]                         ; 8d 47 ff
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mul bx                                    ; f7 e3
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
+    jne short 01766h                          ; 75 50
+    sal ax, 1                                 ; d1 e0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+008h]                    ; 8a 46 08
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    lea ax, [bx+001h]                         ; 8d 47 01
+    mul dx                                    ; f7 e2
+    mov bx, ax                                ; 89 c3
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01769h                          ; 75 39
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 01769h                          ; 75 33
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 01769h                          ; 75 2d
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-01eh]                    ; 3b 46 e2
+    jne short 01769h                          ; 75 23
+    mov al, ch                                ; 88 e8
+    cmp ax, word [bp-01ch]                    ; 3b 46 e4
+    jne short 01769h                          ; 75 1c
+    mov ah, byte [bp-008h]                    ; 8a 66 f8
+    xor al, ch                                ; 30 e8
+    add ax, strict word 00020h                ; 05 20 00
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, word [bp-01ah]                    ; 8b 4e e6
+    mov di, bx                                ; 89 df
+    cld                                       ; fc
+    jcxz 01763h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp near 01bc2h                           ; e9 5c 04
+    jmp near 018f7h                           ; e9 8e 01
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 017d7h                          ; 75 68
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 017d9h                           ; 72 56
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add ax, word [bp-016h]                    ; 03 46 ea
+    cmp ax, dx                                ; 39 d0
+    jnbe short 01793h                         ; 77 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 017dch                          ; 75 49
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ah, byte [bp-008h]                    ; 8a 66 f8
+    xor al, al                                ; 30 c0
+    mov di, ax                                ; 89 c7
+    add di, strict byte 00020h                ; 83 c7 20
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    sal ax, 1                                 ; d1 e0
+    mov dx, bx                                ; 89 da
+    add dx, ax                                ; 01 c2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov cx, word [bp-022h]                    ; 8b 4e de
+    mov ax, di                                ; 89 f8
+    mov di, dx                                ; 89 d7
+    cld                                       ; fc
+    jcxz 017d5h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 01827h                          ; eb 50
+    jmp short 0182dh                          ; eb 54
+    jmp near 01bc2h                           ; e9 e6 03
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    mov di, dx                                ; 89 d7
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    xor dh, dh                                ; 30 f6
+    mov word [bp-014h], dx                    ; 89 56 ec
+    add ax, dx                                ; 01 d0
+    sal ax, 1                                 ; d1 e0
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    add ax, word [bp-014h]                    ; 03 46 ec
+    sal ax, 1                                 ; d1 e0
+    add ax, bx                                ; 01 d8
+    mov cx, di                                ; 89 f9
+    mov si, word [bp-020h]                    ; 8b 76 e0
+    mov dx, word [bp-022h]                    ; 8b 56 de
+    mov di, ax                                ; 89 c7
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 01827h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    inc word [bp-016h]                        ; ff 46 ea
+    jmp near 01777h                           ; e9 4a ff
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 017d9h                         ; 77 9a
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01851h                         ; 77 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01890h                          ; 75 3f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov ah, byte [bp-008h]                    ; 8a 66 f8
+    mov AL, strict byte 020h                  ; b0 20
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    add dx, ax                                ; 01 c2
+    sal dx, 1                                 ; d1 e2
+    add dx, bx                                ; 01 da
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov si, word [si+04633h]                  ; 8b b4 33 46
+    mov cx, di                                ; 89 f9
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov di, dx                                ; 89 d7
+    mov es, si                                ; 8e c6
+    cld                                       ; fc
+    jcxz 0188eh                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp short 018e7h                          ; eb 57
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    sub dx, ax                                ; 29 c2
+    mov ax, dx                                ; 89 d0
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov word [bp-022h], ax                    ; 89 46 de
+    add dx, ax                                ; 01 c2
+    sal dx, 1                                 ; d1 e2
+    mov word [bp-020h], dx                    ; 89 56 e0
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mul word [bp-018h]                        ; f7 66 e8
+    add ax, word [bp-022h]                    ; 03 46 de
+    sal ax, 1                                 ; d1 e0
+    add ax, bx                                ; 01 d8
+    mov cx, di                                ; 89 f9
+    mov si, word [bp-020h]                    ; 8b 76 e0
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    mov di, ax                                ; 89 c7
+    mov es, dx                                ; 8e c2
+    cld                                       ; fc
+    jcxz 018e7h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 0191ah                           ; 72 29
+    dec word [bp-016h]                        ; ff 4e ea
+    jmp near 01835h                           ; e9 3e ff
+    mov al, byte [si+046afh]                  ; 8a 84 af 46
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 006h                  ; b1 06
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov al, byte [si+046c5h]                  ; 8a 84 c5 46
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [di+04631h]                  ; 8a 85 31 46
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 0191dh                           ; 74 0b
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 0191dh                           ; 74 07
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0194bh                           ; 74 31
+    jmp near 01bc2h                           ; e9 a5 02
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01989h                          ; 75 66
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 01989h                          ; 75 60
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 01989h                          ; 75 5a
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    lea ax, [bx-001h]                         ; 8d 47 ff
+    cmp dx, ax                                ; 39 c2
+    jne short 01989h                          ; 75 4c
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp-018h]                    ; 8b 56 e8
+    dec dx                                    ; 4a
+    cmp ax, dx                                ; 39 d0
+    je short 0194eh                           ; 74 05
+    jmp short 01989h                          ; eb 3e
+    jmp near 01a85h                           ; e9 37 01
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, bx                                ; 89 d8
+    mul word [bp-018h]                        ; f7 66 e8
+    mov dl, byte [bp-012h]                    ; 8a 56 ee
+    xor dh, dh                                ; 30 f6
+    mul dx                                    ; f7 e2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    mov bx, word [bx+04633h]                  ; 8b 9f 33 46
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    xor di, di                                ; 31 ff
+    mov es, bx                                ; 8e c3
+    cld                                       ; fc
+    jcxz 01980h                               ; e3 02
+    rep stosb                                 ; f3 aa
+    mov ax, strict word 00005h                ; b8 05 00
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    jmp short 0191ah                          ; eb 91
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 019d4h                          ; 75 45
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01a05h                           ; 72 62
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add ax, word [bp-016h]                    ; 03 46 ea
+    cmp ax, dx                                ; 39 d0
+    jnbe short 019b3h                         ; 77 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 019d6h                          ; 75 23
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    call 0146fh                               ; e8 9d fa
+    jmp short 01a00h                          ; eb 2c
+    jmp short 01a08h                          ; eb 32
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov bx, ax                                ; 89 c3
+    add al, byte [bp-00ah]                    ; 02 46 f6
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    mov byte [bp-014h], dl                    ; 88 56 ec
+    mov byte [bp-013h], ah                    ; 88 66 ed
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 013e0h                               ; e8 e0 f9
+    inc word [bp-016h]                        ; ff 46 ea
+    jmp short 01997h                          ; eb 92
+    jmp near 01bc2h                           ; e9 ba 01
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01a05h                         ; 77 eb
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add dx, ax                                ; 01 c2
+    cmp dx, word [bp-016h]                    ; 3b 56 ea
+    jnbe short 01a2ah                         ; 77 04
+    test al, al                               ; 84 c0
+    jne short 01a4bh                          ; 75 21
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov cl, byte [bp-018h]                    ; 8a 4e e8
+    xor ch, ch                                ; 30 ed
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    call 0146fh                               ; e8 26 fa
+    jmp short 01a76h                          ; eb 2b
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    sub al, byte [bp-00ah]                    ; 2a 46 f6
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    mov byte [bp-014h], dl                    ; 88 56 ec
+    mov byte [bp-013h], ah                    ; 88 66 ed
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 013e0h                               ; e8 6a f9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01acch                           ; 72 4c
+    dec word [bp-016h]                        ; ff 4e ea
+    jmp short 01a10h                          ; eb 8b
+    mov bl, byte [di+04632h]                  ; 8a 9d 32 46
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01acfh                          ; 75 40
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 01acfh                          ; 75 3a
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 01acfh                          ; 75 34
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    cmp ax, word [bp-01eh]                    ; 3b 46 e2
+    jne short 01acfh                          ; 75 2c
+    mov al, ch                                ; 88 e8
+    cmp ax, word [bp-01ch]                    ; 3b 46 e4
+    jne short 01acfh                          ; 75 25
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mul dx                                    ; f7 e2
+    xor bh, bh                                ; 30 ff
+    mul bx                                    ; f7 e3
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, ax                                ; 89 c1
+    mov ax, dx                                ; 89 d0
+    xor di, di                                ; 31 ff
+    cld                                       ; fc
+    jcxz 01acch                               ; e3 02
+    rep stosb                                 ; f3 aa
+    jmp near 01bc2h                           ; e9 f3 00
+    cmp bl, 002h                              ; 80 fb 02
+    jne short 01addh                          ; 75 09
+    sal byte [bp-00ch], 1                     ; d0 66 f4
+    sal byte [bp-006h], 1                     ; d0 66 fa
+    sal word [bp-018h], 1                     ; d1 66 e8
+    cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
+    jne short 01b4ch                          ; 75 69
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01acch                           ; 72 d5
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add ax, word [bp-016h]                    ; 03 46 ea
+    cmp ax, dx                                ; 39 d0
+    jnbe short 01b07h                         ; 77 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01b28h                          ; 75 21
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    call 015adh                               ; e8 87 fa
+    jmp short 01b47h                          ; eb 1f
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov bx, ax                                ; 89 c3
+    add al, byte [bp-00ah]                    ; 02 46 f6
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    call 014ebh                               ; e8 a4 f9
+    inc word [bp-016h]                        ; ff 46 ea
+    jmp short 01aebh                          ; eb 9f
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01bc2h                         ; 77 64
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    add ax, dx                                ; 01 d0
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jnbe short 01b70h                         ; 77 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 01b91h                          ; 75 21
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    call 015adh                               ; e8 1e fa
+    jmp short 01bb3h                          ; eb 22
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    sub al, byte [bp-00ah]                    ; 2a 46 f6
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    call 014ebh                               ; e8 38 f9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01bc2h                           ; 72 05
+    dec word [bp-016h]                        ; ff 4e ea
+    jmp short 01b54h                          ; eb 92
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00008h                               ; c2 08 00
+write_gfx_char_pl4_:                         ; 0xc1bcb LB 0xf8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov al, cl                                ; 88 c8
+    cmp byte [bp+006h], 010h                  ; 80 7e 06 10
+    je short 01befh                           ; 74 0b
+    cmp byte [bp+006h], 00eh                  ; 80 7e 06 0e
+    jne short 01bf4h                          ; 75 0a
+    mov di, 05bedh                            ; bf ed 5b
+    jmp short 01bf7h                          ; eb 08
+    mov di, 069edh                            ; bf ed 69
+    jmp short 01bf7h                          ; eb 03
+    mov di, 053edh                            ; bf ed 53
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    imul si                                   ; f7 ee
+    mov bl, byte [bp+004h]                    ; 8a 5e 04
+    imul bx                                   ; f7 eb
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    add ax, bx                                ; 01 d8
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    imul si                                   ; f7 ee
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, 00f02h                            ; b8 02 0f
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00205h                            ; b8 05 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 01c39h                           ; 74 06
+    mov ax, 01803h                            ; b8 03 18
+    out DX, ax                                ; ef
+    jmp short 01c3dh                          ; eb 04
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    xor ch, ch                                ; 30 ed
+    cmp ch, byte [bp+006h]                    ; 3a 6e 06
+    jnc short 01cabh                          ; 73 67
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bl, byte [bp+004h]                    ; 8a 5e 04
+    xor bh, bh                                ; 30 ff
+    imul bx                                   ; f7 eb
+    mov si, word [bp-010h]                    ; 8b 76 f0
+    add si, ax                                ; 01 c6
+    mov byte [bp-008h], bh                    ; 88 7e f8
+    jmp short 01c6ch                          ; eb 13
+    xor bx, bx                                ; 31 db
+    mov dx, si                                ; 89 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 031a9h                               ; e8 46 15
+    inc byte [bp-008h]                        ; fe 46 f8
+    cmp byte [bp-008h], 008h                  ; 80 7e f8 08
+    jnc short 01ca7h                          ; 73 3b
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    xor ah, ah                                ; 30 e4
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ah, byte [bp-012h]                    ; 8a 66 ee
+    xor al, al                                ; 30 c0
+    or AL, strict byte 008h                   ; 0c 08
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov dx, si                                ; 89 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    call 0319bh                               ; e8 0f 15
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    add bx, ax                                ; 01 c3
+    add bx, di                                ; 01 fb
+    mov al, byte [bx]                         ; 8a 07
+    test word [bp-012h], ax                   ; 85 46 ee
+    je short 01c59h                           ; 74 bb
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 00fh                  ; 24 0f
+    mov bx, ax                                ; 89 c3
+    jmp short 01c5bh                          ; eb b4
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 01c3fh                          ; eb 94
+    mov ax, 0ff08h                            ; b8 08 ff
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+write_gfx_char_cga_:                         ; 0xc1cc3 LB 0x13a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov si, 053edh                            ; be ed 53
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov ax, bx                                ; 89 d8
+    imul di                                   ; f7 ef
+    mov bx, ax                                ; 89 c3
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov cx, 00140h                            ; b9 40 01
+    imul cx                                   ; f7 e9
+    add bx, ax                                ; 01 c3
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov di, ax                                ; 89 c7
+    sal di, CL                                ; d3 e7
+    mov byte [bp-006h], ah                    ; 88 66 fa
+    jmp near 01d54h                           ; e9 52 00
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 01d13h                          ; eb 0b
+    or al, bl                                 ; 08 d8
+    shr ch, 1                                 ; d0 ed
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cmp ah, 008h                              ; 80 fc 08
+    jnc short 01d3eh                          ; 73 2b
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    add bx, si                                ; 01 f3
+    mov bl, byte [bx]                         ; 8a 1f
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov bl, ch                                ; 88 eb
+    test dx, bx                               ; 85 da
+    je short 01d0ah                           ; 74 e2
+    mov CL, strict byte 007h                  ; b1 07
+    sub cl, ah                                ; 28 e1
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    and bl, 001h                              ; 80 e3 01
+    sal bl, CL                                ; d2 e3
+    test byte [bp-00ah], 080h                 ; f6 46 f6 80
+    je short 01d08h                           ; 74 ce
+    xor al, bl                                ; 30 d8
+    jmp short 01d0ah                          ; eb cc
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 031a9h                               ; e8 5e 14
+    inc byte [bp-006h]                        ; fe 46 fa
+    cmp byte [bp-006h], 008h                  ; 80 7e fa 08
+    jnc short 01da6h                          ; 73 52
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sar ax, 1                                 ; d1 f8
+    mov bx, strict word 00050h                ; bb 50 00
+    imul bx                                   ; f7 eb
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    test byte [bp-006h], 001h                 ; f6 46 fa 01
+    je short 01d72h                           ; 74 04
+    add byte [bp-00bh], 020h                  ; 80 46 f5 20
+    mov CH, strict byte 080h                  ; b5 80
+    cmp byte [bp+006h], 001h                  ; 80 7e 06 01
+    jne short 01d8bh                          ; 75 11
+    test byte [bp-00ah], ch                   ; 84 6e f6
+    je short 01d02h                           ; 74 83
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 0319bh                               ; e8 13 14
+    jmp near 01d04h                           ; e9 79 ff
+    test ch, ch                               ; 84 ed
+    jbe short 01d4bh                          ; 76 bc
+    test byte [bp-00ah], 080h                 ; f6 46 f6 80
+    je short 01da0h                           ; 74 0b
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 0319bh                               ; e8 fd 13
+    jmp short 01da2h                          ; eb 02
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 01dadh                          ; eb 07
+    jmp short 01df4h                          ; eb 4c
+    cmp ah, 004h                              ; 80 fc 04
+    jnc short 01de2h                          ; 73 35
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    add bx, si                                ; 01 f3
+    mov bl, byte [bx]                         ; 8a 1f
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov bl, ch                                ; 88 eb
+    test dx, bx                               ; 85 da
+    je short 01ddch                           ; 74 1a
+    mov CL, strict byte 003h                  ; b1 03
+    sub cl, ah                                ; 28 e1
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    and bl, 003h                              ; 80 e3 03
+    sal cl, 1                                 ; d0 e1
+    sal bl, CL                                ; d2 e3
+    test byte [bp-00ah], 080h                 ; f6 46 f6 80
+    je short 01ddah                           ; 74 04
+    xor al, bl                                ; 30 d8
+    jmp short 01ddch                          ; eb 02
+    or al, bl                                 ; 08 d8
+    shr ch, 1                                 ; d0 ed
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 01da8h                          ; eb c6
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, 0b800h                            ; b8 00 b8
+    call 031a9h                               ; e8 ba 13
+    inc word [bp-00ch]                        ; ff 46 f4
+    jmp short 01d8bh                          ; eb 97
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+write_gfx_char_lin_:                         ; 0xc1dfd LB 0xac
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov al, cl                                ; 88 c8
+    mov si, 053edh                            ; be ed 53
+    xor ah, ah                                ; 30 e4
+    mov bl, byte [bp+004h]                    ; 8a 5e 04
+    xor bh, bh                                ; 30 ff
+    imul bx                                   ; f7 eb
+    mov CL, strict byte 006h                  ; b1 06
+    sal ax, CL                                ; d3 e0
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov CL, strict byte 003h                  ; b1 03
+    mov dx, bx                                ; 89 da
+    sal dx, CL                                ; d3 e2
+    add dx, ax                                ; 01 c2
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov di, bx                                ; 89 df
+    sal di, CL                                ; d3 e7
+    xor ch, ch                                ; 30 ed
+    jmp short 01e7dh                          ; eb 44
+    cmp cl, 008h                              ; 80 f9 08
+    jnc short 01e76h                          ; 73 38
+    xor dl, dl                                ; 30 d2
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    add ax, di                                ; 01 f8
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov al, byte [bx]                         ; 8a 07
+    xor ah, ah                                ; 30 e4
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    test ax, bx                               ; 85 d8
+    je short 01e5ah                           ; 74 03
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    mov bl, cl                                ; 88 cb
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, bx                                ; 01 da
+    mov bx, ax                                ; 89 c3
+    mov ax, 0a000h                            ; b8 00 a0
+    call 031a9h                               ; e8 3a 13
+    shr byte [bp-008h], 1                     ; d0 6e f8
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    jmp short 01e39h                          ; eb c3
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    cmp ch, 008h                              ; 80 fd 08
+    jnc short 01ea0h                          ; 73 23
+    mov bl, ch                                ; 88 eb
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, bx                                ; 89 d8
+    imul dx                                   ; f7 ea
+    mov CL, strict byte 003h                  ; b1 03
+    sal ax, CL                                ; d3 e0
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov byte [bp-008h], 080h                  ; c6 46 f8 80
+    xor cl, cl                                ; 30 c9
+    jmp short 01e3eh                          ; eb 9e
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+biosfn_write_char_attr_:                     ; 0xc1ea9 LB 0x192
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ah                ; 83 ec 1a
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-012h], dl                    ; 88 56 ee
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov si, cx                                ; 89 ce
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 d6 12
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 a6 12
+    mov cl, al                                ; 88 c1
+    mov byte [bp-014h], al                    ; 88 46 ec
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 01ed6h                          ; 75 03
+    jmp near 02034h                           ; e9 5e 01
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-01eh]                         ; 8d 5e e2
+    lea dx, [bp-01ch]                         ; 8d 56 e4
+    call 00a8ch                               ; e8 a8 eb
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov byte [bp-00eh], ah                    ; 88 66 f2
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 a2 12
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 af 12
+    mov bx, ax                                ; 89 c3
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov di, ax                                ; 89 c7
+    sal di, CL                                ; d3 e7
+    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
+    jne short 01f67h                          ; 75 49
+    mov ax, bx                                ; 89 d8
+    mul word [bp-01ah]                        ; f7 66 e6
+    sal ax, 1                                 ; d1 e0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    inc ax                                    ; 40
+    mul dx                                    ; f7 e2
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mul bx                                    ; f7 e3
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov dx, ax                                ; 89 c2
+    add dx, bx                                ; 01 da
+    sal dx, 1                                 ; d1 e2
+    add dx, cx                                ; 01 ca
+    mov bh, byte [bp-006h]                    ; 8a 7e fa
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    mov word [bp-01ch], bx                    ; 89 5e e4
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov cx, si                                ; 89 f1
+    mov di, dx                                ; 89 d7
+    cld                                       ; fc
+    jcxz 01f64h                               ; e3 02
+    rep stosw                                 ; f3 ab
+    jmp near 02034h                           ; e9 cd 00
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    mov CL, strict byte 006h                  ; b1 06
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov al, byte [di+04632h]                  ; 8a 85 32 46
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 01f91h                           ; 74 0a
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-016h]                    ; 3b 46 ea
+    jc short 01f94h                           ; 72 03
+    jmp near 02034h                           ; e9 a0 00
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov al, byte [bx+04631h]                  ; 8a 87 31 46
+    cmp al, cl                                ; 38 c8
+    jc short 01fb2h                           ; 72 0d
+    jbe short 01fb8h                          ; 76 11
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0200dh                           ; 74 62
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 01fb8h                           ; 74 09
+    jmp near 0202eh                           ; e9 7c 00
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 01fe1h                           ; 74 2b
+    jmp short 0202eh                          ; eb 76
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    push bx                                   ; 53
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    mov cx, bx                                ; 89 d9
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov di, ax                                ; 89 c7
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    mov ax, bx                                ; 89 d8
+    mov bx, dx                                ; 89 d3
+    mov dx, di                                ; 89 fa
+    call 01bcbh                               ; e8 ec fb
+    jmp short 0202eh                          ; eb 4d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    push ax                                   ; 50
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    push ax                                   ; 50
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov cx, ax                                ; 89 c1
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    mov byte [bp-018h], bl                    ; 88 5e e8
+    mov byte [bp-017h], ah                    ; 88 66 e9
+    mov di, word [bp-018h]                    ; 8b 7e e8
+    mov bx, ax                                ; 89 c3
+    mov ax, di                                ; 89 f8
+    call 01cc3h                               ; e8 b8 fc
+    jmp short 0202eh                          ; eb 21
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    mov cx, bx                                ; 89 d9
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov dx, ax                                ; 89 c2
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov di, bx                                ; 89 df
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    mov ax, bx                                ; 89 d8
+    mov bx, dx                                ; 89 d3
+    mov dx, di                                ; 89 fa
+    call 01dfdh                               ; e8 cf fd
+    inc byte [bp-00ch]                        ; fe 46 f4
+    jmp near 01f81h                           ; e9 4d ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_char_only_:                     ; 0xc203b LB 0x193
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00018h                ; 83 ec 18
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov si, cx                                ; 89 ce
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 44 11
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 14 11
+    mov cl, al                                ; 88 c1
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 02068h                          ; 75 03
+    jmp near 021c7h                           ; e9 5f 01
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    lea bx, [bp-01ch]                         ; 8d 5e e4
+    lea dx, [bp-01ah]                         ; 8d 56 e6
+    call 00a8ch                               ; e8 14 ea
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov byte [bp-014h], ah                    ; 88 66 ec
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 0e 11
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    inc bx                                    ; 43
+    mov word [bp-018h], bx                    ; 89 5e e8
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 19 11
+    mov di, ax                                ; 89 c7
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    jne short 02102h                          ; 75 4e
+    mov ax, di                                ; 89 f8
+    mul word [bp-018h]                        ; f7 66 e8
+    sal ax, 1                                 ; d1 e0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov ax, bx                                ; 89 d8
+    mul di                                    ; f7 e7
+    mov dl, byte [bp-00eh]                    ; 8a 56 f2
+    xor dh, dh                                ; 30 f6
+    add ax, dx                                ; 01 d0
+    sal ax, 1                                 ; d1 e0
+    mov di, cx                                ; 89 cf
+    add di, ax                                ; 01 c7
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 02065h                           ; 74 84
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    mov ax, dx                                ; 89 d0
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, dx                                ; 89 d3
+    sal bx, CL                                ; d3 e3
+    mov cx, word [bx+04633h]                  ; 8b 8f 33 46
+    mov bx, ax                                ; 89 c3
+    mov dx, di                                ; 89 fa
+    mov ax, cx                                ; 89 c8
+    call 031a9h                               ; e8 ab 10
+    inc di                                    ; 47
+    inc di                                    ; 47
+    jmp short 020dbh                          ; eb d9
+    mov di, ax                                ; 89 c7
+    mov dl, byte [di+046afh]                  ; 8a 95 af 46
+    xor dh, dh                                ; 30 f6
+    mov CL, strict byte 006h                  ; b1 06
+    mov di, dx                                ; 89 d7
+    sal di, CL                                ; d3 e7
+    mov al, byte [di+046c5h]                  ; 8a 85 c5 46
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+04632h]                  ; 8a 87 32 46
+    mov byte [bp-010h], al                    ; 88 46 f0
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 02179h                           ; 74 55
+    mov dl, byte [bp-00eh]                    ; 8a 56 f2
+    xor dh, dh                                ; 30 f6
+    cmp dx, word [bp-016h]                    ; 3b 56 ea
+    jnc short 02179h                          ; 73 4b
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, dx                                ; 89 d3
+    sal bx, CL                                ; d3 e3
+    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    cmp bl, cl                                ; 38 cb
+    jc short 0214dh                           ; 72 0e
+    jbe short 02154h                          ; 76 13
+    cmp bl, 005h                              ; 80 fb 05
+    je short 021a0h                           ; 74 5a
+    cmp bl, 004h                              ; 80 fb 04
+    je short 02154h                           ; 74 09
+    jmp short 021c1h                          ; eb 74
+    cmp bl, 002h                              ; 80 fb 02
+    je short 0217bh                           ; 74 29
+    jmp short 021c1h                          ; eb 6d
+    mov dl, byte [bp-012h]                    ; 8a 56 ee
+    xor dh, dh                                ; 30 f6
+    push dx                                   ; 52
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov cx, bx                                ; 89 d9
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    mov di, dx                                ; 89 d7
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    mov ax, dx                                ; 89 d0
+    mov dx, di                                ; 89 fa
+    call 01bcbh                               ; e8 54 fa
+    jmp short 021c1h                          ; eb 48
+    jmp short 021c7h                          ; eb 4c
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    push bx                                   ; 53
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov cx, bx                                ; 89 d9
+    mov dl, byte [bp-00eh]                    ; 8a 56 f2
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov di, bx                                ; 89 df
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov bx, dx                                ; 89 d3
+    mov dx, di                                ; 89 fa
+    call 01cc3h                               ; e8 25 fb
+    jmp short 021c1h                          ; eb 21
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov cx, bx                                ; 89 d9
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    mov dx, bx                                ; 89 da
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov ax, bx                                ; 89 d8
+    mov bx, di                                ; 89 fb
+    call 01dfdh                               ; e8 3c fc
+    inc byte [bp-00eh]                        ; fe 46 f2
+    jmp near 0211eh                           ; e9 57 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_pixel_:                         ; 0xc21ce LB 0x17f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov byte [bp-004h], dl                    ; 88 56 fc
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 b4 0f
+    xor ah, ah                                ; 30 e4
+    call 03170h                               ; e8 84 0f
+    mov ch, al                                ; 88 c5
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 02219h                           ; 74 27
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    je short 02219h                           ; 74 18
+    mov al, byte [bx+04631h]                  ; 8a 87 31 46
+    cmp al, cl                                ; 38 c8
+    jc short 02215h                           ; 72 0c
+    jbe short 0221fh                          ; 76 14
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0221ch                           ; 74 0d
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 0221fh                           ; 74 0c
+    jmp short 02219h                          ; eb 04
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0228ah                           ; 74 71
+    jmp near 0231eh                           ; e9 02 01
+    jmp near 02324h                           ; e9 05 01
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 8f 0f
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mul bx                                    ; f7 e3
+    mov CL, strict byte 003h                  ; b1 03
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    shr bx, CL                                ; d3 eb
+    add bx, ax                                ; 01 c3
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov cx, word [bp-008h]                    ; 8b 4e f8
+    and cl, 007h                              ; 80 e1 07
+    mov ax, 00080h                            ; b8 80 00
+    sar ax, CL                                ; d3 f8
+    mov ah, al                                ; 88 c4
+    xor al, al                                ; 30 c0
+    or AL, strict byte 008h                   ; 0c 08
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, 00205h                            ; b8 05 02
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, 0a000h                            ; b8 00 a0
+    call 0319bh                               ; e8 3f 0f
+    test byte [bp-004h], 080h                 ; f6 46 fc 80
+    je short 02269h                           ; 74 07
+    mov ax, 01803h                            ; b8 03 18
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    mov ax, 0a000h                            ; b8 00 a0
+    call 031a9h                               ; e8 30 0f
+    mov ax, 0ff08h                            ; b8 08 ff
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, strict word 00003h                ; b8 03 00
+    out DX, ax                                ; ef
+    jmp short 02219h                          ; eb 8f
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    shr ax, 1                                 ; d1 e8
+    mov si, strict word 00050h                ; be 50 00
+    mul si                                    ; f7 e6
+    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    jne short 022a4h                          ; 75 09
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    shr bx, 1                                 ; d1 eb
+    shr bx, 1                                 ; d1 eb
+    jmp short 022a9h                          ; eb 05
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    shr bx, CL                                ; d3 eb
+    add bx, ax                                ; 01 c3
+    mov word [bp-006h], bx                    ; 89 5e fa
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 022b8h                           ; 74 04
+    add byte [bp-005h], 020h                  ; 80 46 fb 20
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    mov ax, 0b800h                            ; b8 00 b8
+    call 0319bh                               ; e8 da 0e
+    mov bl, al                                ; 88 c3
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    cmp byte [si+04632h], 002h                ; 80 bc 32 46 02
+    jne short 022eeh                          ; 75 1a
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    and al, cl                                ; 20 c8
+    mov ah, cl                                ; 88 cc
+    sub ah, al                                ; 28 c4
+    mov al, ah                                ; 88 e0
+    sal al, 1                                 ; d0 e0
+    mov bh, byte [bp-004h]                    ; 8a 7e fc
+    and bh, cl                                ; 20 cf
+    mov cl, al                                ; 88 c1
+    sal bh, CL                                ; d2 e7
+    mov AL, strict byte 003h                  ; b0 03
+    jmp short 02301h                          ; eb 13
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    and AL, strict byte 007h                  ; 24 07
+    mov CL, strict byte 007h                  ; b1 07
+    sub cl, al                                ; 28 c1
+    mov bh, byte [bp-004h]                    ; 8a 7e fc
+    and bh, 001h                              ; 80 e7 01
+    sal bh, CL                                ; d2 e7
+    mov AL, strict byte 001h                  ; b0 01
+    sal al, CL                                ; d2 e0
+    test byte [bp-004h], 080h                 ; f6 46 fc 80
+    je short 0230dh                           ; 74 04
+    xor bl, bh                                ; 30 fb
+    jmp short 02313h                          ; eb 06
+    not al                                    ; f6 d0
+    and bl, al                                ; 20 c3
+    or bl, bh                                 ; 08 fb
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    mov ax, 0b800h                            ; b8 00 b8
+    call 031a9h                               ; e8 8b 0e
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 8a 0e
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mul bx                                    ; f7 e3
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    add bx, ax                                ; 01 c3
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    mov ax, 0a000h                            ; b8 00 a0
+    jmp short 0231bh                          ; eb ce
+biosfn_write_teletype_:                      ; 0xc234d LB 0x25f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ah                ; 83 ec 1a
+    mov byte [bp-016h], al                    ; 88 46 ea
+    mov byte [bp-014h], dl                    ; 88 56 ec
+    mov byte [bp-00eh], bl                    ; 88 5e f2
+    mov byte [bp-00ch], cl                    ; 88 4e f4
+    cmp dl, 0ffh                              ; 80 fa ff
+    jne short 02372h                          ; 75 0c
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 2c 0e
+    mov byte [bp-014h], al                    ; 88 46 ec
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 20 0e
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 03170h                               ; e8 ec 0d
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 023eeh                           ; 74 63
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov ax, bx                                ; 89 d8
+    lea bx, [bp-01eh]                         ; 8d 5e e2
+    lea dx, [bp-01ch]                         ; 8d 56 e4
+    call 00a8ch                               ; e8 f3 e6
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov byte [bp-008h], bh                    ; 88 7e f8
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 ed 0d
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    inc bx                                    ; 43
+    mov word [bp-018h], bx                    ; 89 5e e8
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 f8 0d
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 023d5h                           ; 72 0c
+    jbe short 023dch                          ; 76 11
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    je short 023e7h                           ; 74 18
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 023f1h                           ; 74 1e
+    jmp short 023f4h                          ; eb 1f
+    cmp AL, strict byte 007h                  ; 3c 07
+    jne short 023f4h                          ; 75 1b
+    jmp near 024eah                           ; e9 0e 01
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jbe short 023ebh                          ; 76 09
+    dec byte [bp-006h]                        ; fe 4e fa
+    jmp short 023ebh                          ; eb 04
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    jmp near 024eah                           ; e9 fc 00
+    jmp near 025a5h                           ; e9 b4 01
+    jmp near 024e7h                           ; e9 f3 00
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, bx                                ; 89 de
+    sal si, CL                                ; d3 e6
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 0244ch                          ; 75 46
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mul word [bp-018h]                        ; f7 66 e8
+    sal ax, 1                                 ; d1 e0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    mov ax, bx                                ; 89 d8
+    mul word [bp-01ah]                        ; f7 66 e6
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    add ax, bx                                ; 01 d8
+    sal ax, 1                                 ; d1 e0
+    add cx, ax                                ; 01 c1
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov dx, cx                                ; 89 ca
+    call 031a9h                               ; e8 74 0d
+    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
+    jne short 02492h                          ; 75 57
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    inc dx                                    ; 42
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    call 031a9h                               ; e8 5f 0d
+    jmp short 02492h                          ; eb 46
+    mov bl, byte [bx+046afh]                  ; 8a 9f af 46
+    mov CL, strict byte 006h                  ; b1 06
+    sal bx, CL                                ; d3 e3
+    mov bl, byte [bx+046c5h]                  ; 8a 9f c5 46
+    mov ah, byte [si+04632h]                  ; 8a a4 32 46
+    mov al, byte [si+04631h]                  ; 8a 84 31 46
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 02470h                           ; 72 0c
+    jbe short 02476h                          ; 76 10
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 024b4h                           ; 74 4a
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 02476h                           ; 74 08
+    jmp short 024d7h                          ; eb 67
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 02494h                           ; 74 20
+    jmp short 024d7h                          ; eb 61
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    xor ch, ch                                ; 30 ed
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    call 01bcbh                               ; e8 39 f7
+    jmp short 024d7h                          ; eb 43
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    push ax                                   ; 50
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    xor ch, ch                                ; 30 ed
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    call 01cc3h                               ; e8 11 f8
+    jmp short 024d7h                          ; eb 23
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov si, bx                                ; 89 de
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    mov dx, bx                                ; 89 da
+    mov bl, byte [bp-016h]                    ; 8a 5e ea
+    mov di, bx                                ; 89 df
+    mov cx, ax                                ; 89 c1
+    mov bx, si                                ; 89 f3
+    mov ax, di                                ; 89 f8
+    call 01dfdh                               ; e8 26 f9
+    inc byte [bp-006h]                        ; fe 46 fa
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    cmp bx, word [bp-01ah]                    ; 3b 5e e6
+    jne short 024eah                          ; 75 06
+    mov byte [bp-006h], bh                    ; 88 7e fa
+    inc byte [bp-008h]                        ; fe 46 f8
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    cmp bx, ax                                ; 39 c3
+    jne short 02567h                          ; 75 71
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    xor bh, ah                                ; 30 e7
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, bx                                ; 89 de
+    sal si, CL                                ; d3 e6
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [bp-012h], al                    ; 88 46 ee
+    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    jne short 02569h                          ; 75 51
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mul word [bp-018h]                        ; f7 66 e8
+    sal ax, 1                                 ; d1 e0
+    or AL, strict byte 0ffh                   ; 0c ff
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    xor bh, bh                                ; 30 ff
+    inc ax                                    ; 40
+    mul bx                                    ; f7 e3
+    mov cx, ax                                ; 89 c1
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov ax, dx                                ; 89 d0
+    dec ax                                    ; 48
+    mul word [bp-01ah]                        ; f7 66 e6
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    add ax, bx                                ; 01 d8
+    sal ax, 1                                 ; d1 e0
+    mov dx, cx                                ; 89 ca
+    add dx, ax                                ; 01 c2
+    inc dx                                    ; 42
+    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    call 0319bh                               ; e8 51 0c
+    mov dx, strict word 00001h                ; ba 01 00
+    push dx                                   ; 52
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    push bx                                   ; 53
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    push bx                                   ; 53
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    push bx                                   ; 53
+    mov bl, al                                ; 88 c3
+    mov dx, bx                                ; 89 da
+    xor cx, cx                                ; 31 c9
+    xor bl, al                                ; 30 c3
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02581h                          ; eb 1a
+    jmp short 02587h                          ; eb 1e
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    xor bh, bh                                ; 30 ff
+    push bx                                   ; 53
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    push bx                                   ; 53
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    push bx                                   ; 53
+    xor cx, cx                                ; 31 c9
+    xor bl, bl                                ; 30 db
+    xor dx, dx                                ; 31 d2
+    call 01655h                               ; e8 d1 f0
+    dec byte [bp-008h]                        ; fe 4e f8
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov word [bp-01eh], bx                    ; 89 5e e2
+    mov CL, strict byte 008h                  ; b1 08
+    sal word [bp-01eh], CL                    ; d3 66 e2
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    add word [bp-01eh], bx                    ; 01 5e e2
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
+    mov ax, bx                                ; 89 d8
+    call 00e91h                               ; e8 ec e8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_font_access_:                            ; 0xc25ac LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, 00100h                            ; b8 00 01
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00402h                            ; b8 02 04
+    out DX, ax                                ; ef
+    mov ax, 00704h                            ; b8 04 07
+    out DX, ax                                ; ef
+    mov ax, 00300h                            ; b8 00 03
+    out DX, ax                                ; ef
+    mov ax, 00204h                            ; b8 04 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00005h                ; b8 05 00
+    out DX, ax                                ; ef
+    mov ax, 00406h                            ; b8 06 04
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+release_font_access_:                        ; 0xc25d8 LB 0x3f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, 00100h                            ; b8 00 01
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, ax                                ; ef
+    mov ax, 00302h                            ; b8 02 03
+    out DX, ax                                ; ef
+    mov ax, 00304h                            ; b8 04 03
+    out DX, ax                                ; ef
+    mov ax, 00300h                            ; b8 00 03
+    out DX, ax                                ; ef
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00001h                ; 25 01 00
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov ah, al                                ; 88 c4
+    or ah, 00ah                               ; 80 cc 0a
+    xor al, al                                ; 30 c0
+    or AL, strict byte 006h                   ; 0c 06
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, ax                                ; ef
+    mov ax, strict word 00004h                ; b8 04 00
+    out DX, ax                                ; ef
+    mov ax, 01005h                            ; b8 05 10
+    out DX, ax                                ; ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_scan_lines_:                             ; 0xc2617 LB 0xc8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 8d 0b
+    mov dx, ax                                ; 89 c2
+    mov si, ax                                ; 89 c6
+    mov AL, strict byte 009h                  ; b0 09
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ah, al                                ; 88 c4
+    and ah, 0e0h                              ; 80 e4 e0
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    or al, ah                                 ; 08 e0
+    out DX, AL                                ; ee
+    cmp bl, 008h                              ; 80 fb 08
+    jne short 0264eh                          ; 75 08
+    mov dx, strict word 00007h                ; ba 07 00
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp short 0265bh                          ; eb 0d
+    mov dl, bl                                ; 88 da
+    sub dl, 003h                              ; 80 ea 03
+    xor dh, dh                                ; 30 f6
+    mov al, bl                                ; 88 d8
+    sub AL, strict byte 004h                  ; 2c 04
+    xor ah, ah                                ; 30 e4
+    call 00ddeh                               ; e8 80 e7
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    mov byte [bp-009h], 000h                  ; c6 46 f7 00
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 54 0b
+    mov AL, strict byte 012h                  ; b0 12
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    lea cx, [si+001h]                         ; 8d 4c 01
+    mov dx, cx                                ; 89 ca
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    and dl, 002h                              ; 80 e2 02
+    xor dh, ch                                ; 30 ee
+    mov CL, strict byte 007h                  ; b1 07
+    sal dx, CL                                ; d3 e2
+    and AL, strict byte 040h                  ; 24 40
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 003h                  ; b1 03
+    sal ax, CL                                ; d3 e0
+    add ax, dx                                ; 01 d0
+    inc ax                                    ; 40
+    add ax, bx                                ; 01 d8
+    xor dx, dx                                ; 31 d2
+    div word [bp-00ah]                        ; f7 76 f6
+    mov cx, ax                                ; 89 c1
+    mov bl, al                                ; 88 c3
+    db  0feh, 0cbh
+    ; dec bl                                    ; fe cb
+    xor bh, bh                                ; 30 ff
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 f1 0a
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 f6 0a
+    mov dx, ax                                ; 89 c2
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mul dx                                    ; f7 e2
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 ef 0a
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_user_pat_:                  ; 0xc26df LB 0x85
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00ch], cx                    ; 89 4e f4
+    call 025ach                               ; e8 b6 fe
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 00eh                  ; b1 0e
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov al, byte [bp+006h]                    ; 8a 46 06
+    and AL, strict byte 004h                  ; 24 04
+    mov CL, strict byte 00bh                  ; b1 0b
+    sal ax, CL                                ; d3 e0
+    add bx, ax                                ; 01 c3
+    mov word [bp-008h], bx                    ; 89 5e f8
+    xor bx, bx                                ; 31 db
+    cmp bx, word [bp-00ch]                    ; 3b 5e f4
+    jnc short 0274ah                          ; 73 32
+    mov al, byte [bp+008h]                    ; 8a 46 08
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    mul si                                    ; f7 e6
+    add ax, word [bp-00ah]                    ; 03 46 f6
+    mov di, word [bp+004h]                    ; 8b 7e 04
+    add di, bx                                ; 01 df
+    mov CL, strict byte 005h                  ; b1 05
+    sal di, CL                                ; d3 e7
+    add di, word [bp-008h]                    ; 03 7e f8
+    mov cx, si                                ; 89 f1
+    mov si, ax                                ; 89 c6
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 02747h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 02713h                          ; eb c9
+    call 025d8h                               ; e8 8b fe
+    cmp byte [bp-006h], 010h                  ; 80 7e fa 10
+    jc short 0275bh                           ; 72 08
+    mov al, byte [bp+008h]                    ; 8a 46 08
+    xor ah, ah                                ; 30 e4
+    call 02617h                               ; e8 bc fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00006h                               ; c2 06 00
+biosfn_load_text_8_14_pat_:                  ; 0xc2764 LB 0x76
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 025ach                               ; e8 39 fe
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 00eh                  ; b1 0e
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    mov CL, strict byte 00bh                  ; b1 0b
+    sal ax, CL                                ; d3 e0
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 02796h                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 027c2h                          ; 73 2c
+    mov ax, bx                                ; 89 d8
+    mov si, strict word 0000eh                ; be 0e 00
+    mul si                                    ; f7 e6
+    mov CL, strict byte 005h                  ; b1 05
+    mov di, bx                                ; 89 df
+    sal di, CL                                ; d3 e7
+    add di, word [bp-00ch]                    ; 03 7e f4
+    mov si, 05bedh                            ; be ed 5b
+    add si, ax                                ; 01 c6
+    mov cx, strict word 0000eh                ; b9 0e 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 027bfh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 02790h                          ; eb ce
+    call 025d8h                               ; e8 13 fe
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 027d1h                           ; 72 06
+    mov ax, strict word 0000eh                ; b8 0e 00
+    call 02617h                               ; e8 46 fe
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_8_8_pat_:                   ; 0xc27da LB 0x74
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 025ach                               ; e8 c3 fd
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 00eh                  ; b1 0e
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    mov CL, strict byte 00bh                  ; b1 0b
+    sal ax, CL                                ; d3 e0
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 0280ch                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 02836h                          ; 73 2a
+    mov CL, strict byte 003h                  ; b1 03
+    mov si, bx                                ; 89 de
+    sal si, CL                                ; d3 e6
+    mov CL, strict byte 005h                  ; b1 05
+    mov di, bx                                ; 89 df
+    sal di, CL                                ; d3 e7
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 053edh                            ; 81 c6 ed 53
+    mov cx, strict word 00008h                ; b9 08 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 02833h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 02806h                          ; eb d0
+    call 025d8h                               ; e8 9f fd
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 02845h                           ; 72 06
+    mov ax, strict word 00008h                ; b8 08 00
+    call 02617h                               ; e8 d2 fd
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_text_8_16_pat_:                  ; 0xc284e LB 0x74
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    call 025ach                               ; e8 4f fd
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 003h                  ; 24 03
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 00eh                  ; b1 0e
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 004h                  ; 24 04
+    mov CL, strict byte 00bh                  ; b1 0b
+    sal ax, CL                                ; d3 e0
+    add bx, ax                                ; 01 c3
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    xor bx, bx                                ; 31 db
+    jmp short 02880h                          ; eb 06
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jnc short 028aah                          ; 73 2a
+    mov CL, strict byte 004h                  ; b1 04
+    mov si, bx                                ; 89 de
+    sal si, CL                                ; d3 e6
+    mov CL, strict byte 005h                  ; b1 05
+    mov di, bx                                ; 89 df
+    sal di, CL                                ; d3 e7
+    add di, word [bp-00ch]                    ; 03 7e f4
+    add si, 069edh                            ; 81 c6 ed 69
+    mov cx, strict word 00010h                ; b9 10 00
+    mov dx, 0c000h                            ; ba 00 c0
+    mov ax, 0a000h                            ; b8 00 a0
+    mov es, ax                                ; 8e c0
+    cld                                       ; fc
+    jcxz 028a7h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    inc bx                                    ; 43
+    jmp short 0287ah                          ; eb d0
+    call 025d8h                               ; e8 2b fd
+    cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
+    jc short 028b9h                           ; 72 06
+    mov ax, strict word 00010h                ; b8 10 00
+    call 02617h                               ; e8 5e fd
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_8_chars_:                  ; 0xc28c2 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_user_chars_:                 ; 0xc28c7 LB 0x7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+biosfn_load_gfx_8_14_chars_:                 ; 0xc28ce LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_8_dd_chars_:               ; 0xc28d3 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_load_gfx_8_16_chars_:                 ; 0xc28d8 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_alternate_prtsc_:                     ; 0xc28dd LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_switch_video_interface_:              ; 0xc28e2 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_enable_video_refresh_control_:        ; 0xc28e7 LB 0x5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_write_string_:                        ; 0xc28ec LB 0x96
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov si, cx                                ; 89 ce
+    mov di, word [bp+00ah]                    ; 8b 7e 0a
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    lea bx, [bp-00eh]                         ; 8d 5e f2
+    lea dx, [bp-00ch]                         ; 8d 56 f4
+    call 00a8ch                               ; e8 7d e1
+    cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
+    jne short 02921h                          ; 75 0c
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [bp+006h], al                    ; 88 46 06
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov byte [bp+004h], ah                    ; 88 66 04
+    mov dh, byte [bp+004h]                    ; 8a 76 04
+    mov dl, byte [bp+006h]                    ; 8a 56 06
+    xor ah, ah                                ; 30 e4
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    call 00e91h                               ; e8 62 e5
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 02968h                           ; 74 33
+    mov dx, di                                ; 89 fa
+    inc di                                    ; 47
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    call 0319bh                               ; e8 5d 08
+    mov cl, al                                ; 88 c1
+    test byte [bp-008h], 002h                 ; f6 46 f8 02
+    je short 02952h                           ; 74 0c
+    mov dx, di                                ; 89 fa
+    inc di                                    ; 47
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    call 0319bh                               ; e8 4c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, ax                                ; 89 c2
+    mov al, cl                                ; 88 c8
+    mov cx, strict word 00003h                ; b9 03 00
+    call 0234dh                               ; e8 e7 f9
+    jmp short 0292fh                          ; eb c7
+    test byte [bp-008h], 001h                 ; f6 46 f8 01
+    jne short 02979h                          ; 75 0b
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    call 00e91h                               ; e8 18 e5
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00008h                               ; c2 08 00
+biosfn_read_state_info_:                     ; 0xc2982 LB 0x102
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push dx                                   ; 52
+    push bx                                   ; 53
+    mov cx, ds                                ; 8c d9
+    mov bx, 05383h                            ; bb 83 53
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031e5h                               ; e8 4d 08
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov si, strict word 00049h                ; be 49 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 029b3h                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00022h                ; 83 c7 22
+    mov cx, strict word 00003h                ; b9 03 00
+    mov si, 00084h                            ; be 84 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 029ceh                               ; e3 06
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov dx, 0008ah                            ; ba 8a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 c4 07
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00025h                ; 83 c2 25
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 c2 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00026h                ; 83 c2 26
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 b4 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00027h                ; 83 c2 27
+    mov bx, strict word 00010h                ; bb 10 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 a5 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00028h                ; 83 c2 28
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 97 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00029h                ; 83 c2 29
+    mov bx, strict word 00008h                ; bb 08 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 88 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov bx, strict word 00002h                ; bb 02 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 79 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002bh                ; 83 c2 2b
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 6b 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 0002ch                ; 83 c2 2c
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 5d 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00031h                ; 83 c2 31
+    mov bx, strict word 00003h                ; bb 03 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 4e 07
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00032h                ; 83 c2 32
+    xor bx, bx                                ; 31 db
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    call 031a9h                               ; e8 40 07
+    mov di, word [bp-00ah]                    ; 8b 7e f6
+    add di, strict byte 00033h                ; 83 c7 33
+    mov cx, strict word 0000dh                ; b9 0d 00
+    xor ax, ax                                ; 31 c0
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cld                                       ; fc
+    jcxz 02a7ch                               ; e3 02
+    rep stosb                                 ; f3 aa
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_read_video_state_size2_:              ; 0xc2a84 LB 0x23
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, ax                                ; 89 c2
+    xor ax, ax                                ; 31 c0
+    test dl, 001h                             ; f6 c2 01
+    je short 02a94h                           ; 74 03
+    mov ax, strict word 00046h                ; b8 46 00
+    test dl, 002h                             ; f6 c2 02
+    je short 02a9ch                           ; 74 03
+    add ax, strict word 0002ah                ; 05 2a 00
+    test dl, 004h                             ; f6 c2 04
+    je short 02aa4h                           ; 74 03
+    add ax, 00304h                            ; 05 04 03
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    retn                                      ; c3
+vga_get_video_state_size_:                   ; 0xc2aa7 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, dx                                ; 89 d3
+    call 02a84h                               ; e8 d4 ff
+    mov word [ss:bx], ax                      ; 36 89 07
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_save_video_state_:                    ; 0xc2ab9 LB 0x381
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov cx, bx                                ; 89 d9
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 e8 06
+    mov di, ax                                ; 89 c7
+    test byte [bp-00ch], 001h                 ; f6 46 f4 01
+    je short 02b45h                           ; 74 6e
+    mov dx, 003c4h                            ; ba c4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 c1 06
+    inc cx                                    ; 41
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 b0 06
+    inc cx                                    ; 41
+    mov dx, 003ceh                            ; ba ce 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 9e 06
+    inc cx                                    ; 41
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, 003c0h                            ; ba c0 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 80 06
+    inc cx                                    ; 41
+    mov dx, 003cah                            ; ba ca 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 6e 06
+    mov ax, strict word 00001h                ; b8 01 00
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    add cx, ax                                ; 01 c1
+    jmp short 02b4eh                          ; eb 09
+    jmp near 02c49h                           ; e9 01 01
+    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
+    jnbe short 02b6ch                         ; 77 1e
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 43 06
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02b48h                          ; eb dc
+    xor al, al                                ; 30 c0
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, 003c5h                            ; ba c5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 26 06
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    jmp short 02b91h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
+    jnbe short 02baeh                         ; 77 1d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    lea dx, [di+001h]                         ; 8d 55 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 01 06
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02b8bh                          ; eb dd
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02bbbh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
+    jnbe short 02be5h                         ; 77 2a
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    and ax, strict word 00020h                ; 25 20 00
+    or ax, word [bp-00ah]                     ; 0b 46 f6
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003c1h                            ; ba c1 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 ca 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02bb5h                          ; eb d0
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02bf8h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnbe short 02c16h                         ; 77 1e
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov dx, 003cfh                            ; ba cf 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 99 05
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02bf2h                          ; eb dc
+    mov bx, di                                ; 89 fb
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 a6 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 7f 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 75 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 6b 05
+    inc cx                                    ; 41
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 61 05
+    inc cx                                    ; 41
+    test byte [bp-00ch], 002h                 ; f6 46 f4 02
+    jne short 02c52h                          ; 75 03
+    jmp near 02dbfh                           ; e9 6d 01
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 40 05
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 43 05
+    inc cx                                    ; 41
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 47 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 4c 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 33 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 38 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 1f 05
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 24 05
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 ef 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 f2 04
+    inc cx                                    ; 41
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 f6 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 fb 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 c6 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 c9 04
+    inc cx                                    ; 41
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 b1 04
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 b4 04
+    inc cx                                    ; 41
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 9c 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 9f 04
+    inc cx                                    ; 41
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 a3 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 a8 04
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 02d2ch                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnc short 02d4ah                          ; 73 1e
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    sal dx, 1                                 ; d1 e2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 7d 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 82 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02d26h                          ; eb dc
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031b7h                               ; e8 64 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 69 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0319bh                               ; e8 34 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 37 04
+    inc cx                                    ; 41
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 031b7h                               ; e8 3c 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 41 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, strict word 0007eh                ; ba 7e 00
+    xor ax, ax                                ; 31 c0
+    call 031b7h                               ; e8 29 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 2e 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 0010ch                            ; ba 0c 01
+    xor ax, ax                                ; 31 c0
+    call 031b7h                               ; e8 16 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 1b 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, 0010eh                            ; ba 0e 01
+    xor ax, ax                                ; 31 c0
+    call 031b7h                               ; e8 03 04
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 08 04
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00ch], 004h                 ; f6 46 f4 04
+    je short 02e30h                           ; 74 6b
+    mov dx, 003c7h                            ; ba c7 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 d3 03
+    inc cx                                    ; 41
+    mov dx, 003c8h                            ; ba c8 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 c1 03
+    inc cx                                    ; 41
+    mov dx, 003c6h                            ; ba c6 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 af 03
+    inc cx                                    ; 41
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    jmp short 02e0fh                          ; eb 07
+    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
+    jnc short 02e26h                          ; 73 17
+    mov dx, 003c9h                            ; ba c9 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 89 03
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02e08h                          ; eb e2
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 7a 03
+    inc cx                                    ; 41
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+biosfn_restore_video_state_:                 ; 0xc2e3a LB 0x336
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    push ax                                   ; 50
+    mov si, dx                                ; 89 d6
+    mov cx, bx                                ; 89 d9
+    test byte [bp-00eh], 001h                 ; f6 46 f2 01
+    je short 02ea5h                           ; 74 57
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea dx, [bx+040h]                         ; 8d 57 40
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 5b 03
+    mov di, ax                                ; 89 c7
+    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
+    lea cx, [bx+005h]                         ; 8d 4f 05
+    jmp short 02e6eh                          ; eb 06
+    cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
+    jnbe short 02e86h                         ; 77 18
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 1f 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02e68h                          ; eb e2
+    xor al, al                                ; 30 c0
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 08 03
+    mov dx, 003c5h                            ; ba c5 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    mov ax, strict word 00011h                ; b8 11 00
+    mov dx, di                                ; 89 fa
+    out DX, ax                                ; ef
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02eaeh                          ; eb 09
+    jmp near 02f9bh                           ; e9 f3 00
+    cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
+    jnbe short 02ecbh                         ; 77 1d
+    cmp word [bp-00ah], strict byte 00011h    ; 83 7e f6 11
+    je short 02ec5h                           ; 74 11
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 da 02
+    lea dx, [di+001h]                         ; 8d 55 01
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02ea8h                          ; eb dd
+    mov dx, 003cch                            ; ba cc 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    cmp di, 003d4h                            ; 81 ff d4 03
+    jne short 02ee0h                          ; 75 04
+    or byte [bp-008h], 001h                   ; 80 4e f8 01
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, 003c2h                            ; ba c2 03
+    out DX, AL                                ; ee
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 0fff9h                ; 83 c2 f9
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 a5 02
+    lea dx, [di+001h]                         ; 8d 55 01
+    out DX, AL                                ; ee
+    lea dx, [bx+003h]                         ; 8d 57 03
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 99 02
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02f1ah                          ; eb 06
+    cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
+    jnbe short 02f38h                         ; 77 1e
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    and ax, strict word 00020h                ; 25 20 00
+    or ax, word [bp-00ah]                     ; 0b 46 f6
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 6d 02
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02f14h                          ; eb dc
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov dx, 003c0h                            ; ba c0 03
+    out DX, AL                                ; ee
+    mov dx, 003dah                            ; ba da 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    jmp short 02f52h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnbe short 02f6ah                         ; 77 18
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 3b 02
+    mov dx, 003cfh                            ; ba cf 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 02f4ch                          ; eb e2
+    add cx, strict byte 00006h                ; 83 c1 06
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 27 02
+    mov dx, 003c4h                            ; ba c4 03
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 1b 02
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 10 02
+    mov dx, 003ceh                            ; ba ce 03
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 04 02
+    lea dx, [di+006h]                         ; 8d 55 06
+    out DX, AL                                ; ee
+    test byte [bp-00eh], 002h                 ; f6 46 f2 02
+    jne short 02fa4h                          ; 75 03
+    jmp near 03119h                           ; e9 75 01
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 f0 01
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 f1 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 f7 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004ah                ; ba 4a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 fa 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 e3 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004ch                ; ba 4c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 e6 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 cf 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00063h                ; ba 63 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 d2 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 9f 01
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00084h                            ; ba 84 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 a0 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 a6 01
+    mov bx, ax                                ; 89 c3
+    mov dx, 00085h                            ; ba 85 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 a9 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 76 01
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 75 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 5f 01
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, 00088h                            ; ba 88 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 5e 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 48 01
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, 00089h                            ; ba 89 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 47 01
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 4d 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00060h                ; ba 60 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 50 01
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 03084h                          ; eb 06
+    cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
+    jnc short 030a2h                          ; 73 1e
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 2c 01
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    sal dx, 1                                 ; d1 e2
+    add dx, strict byte 00050h                ; 83 c2 50
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 2a 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 0307eh                          ; eb dc
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 0e 01
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0004eh                ; ba 4e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 11 01
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 de 00
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov bx, dx                                ; 89 d3
+    mov dx, strict word 00062h                ; ba 62 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 dd 00
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 e3 00
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0007ch                ; ba 7c 00
+    xor ax, ax                                ; 31 c0
+    call 031c5h                               ; e8 e7 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 d0 00
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0007eh                ; ba 7e 00
+    xor ax, ax                                ; 31 c0
+    call 031c5h                               ; e8 d4 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 bd 00
+    mov bx, ax                                ; 89 c3
+    mov dx, 0010ch                            ; ba 0c 01
+    xor ax, ax                                ; 31 c0
+    call 031c5h                               ; e8 c1 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 031b7h                               ; e8 aa 00
+    mov bx, ax                                ; 89 c3
+    mov dx, 0010eh                            ; ba 0e 01
+    xor ax, ax                                ; 31 c0
+    call 031c5h                               ; e8 ae 00
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00eh], 004h                 ; f6 46 f2 04
+    je short 03166h                           ; 74 47
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 74 00
+    xor ah, ah                                ; 30 e4
+    mov word [bp-008h], ax                    ; 89 46 f8
+    inc cx                                    ; 41
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 67 00
+    mov dx, 003c6h                            ; ba c6 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    xor al, al                                ; 30 c0
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    jmp short 0314dh                          ; eb 07
+    cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
+    jnc short 0315eh                          ; 73 11
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 47 00
+    mov dx, 003c9h                            ; ba c9 03
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    inc word [bp-00ah]                        ; ff 46 f6
+    jmp short 03146h                          ; eb e8
+    inc cx                                    ; 41
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, 003c8h                            ; ba c8 03
+    out DX, AL                                ; ee
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+find_vga_entry_:                             ; 0xc3170 LB 0x2b
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dl, al                                ; 88 c2
+    mov AH, strict byte 0ffh                  ; b4 ff
+    xor al, al                                ; 30 c0
+    jmp short 03184h                          ; eb 06
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jnbe short 03194h                         ; 77 10
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 003h                  ; b1 03
+    sal bx, CL                                ; d3 e3
+    cmp dl, byte [bx+0462fh]                  ; 3a 97 2f 46
+    jne short 0317eh                          ; 75 ec
+    mov ah, al                                ; 88 c4
+    mov al, ah                                ; 88 e0
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+read_byte_:                                  ; 0xc319b LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx]                      ; 26 8a 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_byte_:                                 ; 0xc31a9 LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov byte [es:si], bl                      ; 26 88 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_word_:                                  ; 0xc31b7 LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_word_:                                 ; 0xc31c5 LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_dword_:                                 ; 0xc31d3 LB 0x12
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_dword_:                                ; 0xc31e5 LB 0x7f
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+    dec di                                    ; 4f
+    sbb AL, strict byte 01bh                  ; 1c 1b
+    adc dx, word [bp+si]                      ; 13 12
+    adc word [bx+si], dx                      ; 11 10
+    push CS                                   ; 0e
+    or ax, 00a0ch                             ; 0d 0c 0a
+    or word [bx+si], cx                       ; 09 08
+    pop ES                                    ; 07
+    push ES                                   ; 06
+    add ax, 00304h                            ; 05 04 03
+    add al, byte [bx+di]                      ; 02 01
+    add bl, ch                                ; 00 eb
+    xor ax, 0328fh                            ; 35 8f 32
+    int3                                      ; cc
+    db  032h, 0dch
+    ; xor bl, ah                                ; 32 dc
+    db  032h, 0e9h
+    ; xor ch, cl                                ; 32 e9
+    db  032h, 0f9h
+    ; xor bh, cl                                ; 32 f9
+    xor cl, byte [bx+di]                      ; 32 09
+    xor dx, word [bp+si]                      ; 33 12
+    xor ax, word [si+033h]                    ; 33 44 33
+    imul si, word [bp+di], 03377h             ; 69 33 77 33
+    db  08fh, 033h
+    ; pop word [bp+di]                          ; 8f 33
+    cmpsw                                     ; a7
+    db  033h, 0c3h
+    ; xor ax, bx                                ; 33 c3
+    db  033h, 0d7h
+    ; xor dx, di                                ; 33 d7
+    db  033h, 0edh
+    ; xor bp, bp                                ; 33 ed
+    db  033h, 0f9h
+    ; xor di, cx                                ; 33 f9
+    xor di, word [di-00dcch]                  ; 33 bd 34 f2
+    xor AL, strict byte 017h                  ; 34 17
+    xor ax, 0352ch                            ; 35 2c 35
+    outsb                                     ; 6e
+    xor ax, 02430h                            ; 35 30 24
+    and sp, word [bp+si]                      ; 23 22
+    and word [bx+si], sp                      ; 21 20
+    adc AL, strict byte 012h                  ; 14 12
+    adc word [bx+si], dx                      ; 11 10
+    add AL, strict byte 002h                  ; 04 02
+    add word [bx+si], ax                      ; 01 00
+    jmp short 0327dh                          ; eb 35
+    sbb byte [si], dh                         ; 18 34
+    db  036h, 034h, 045h
+    ; ss xor AL, strict byte 045h               ; 36 34 45
+    xor AL, strict byte 054h                  ; 34 54
+    xor AL, strict byte 018h                  ; 34 18
+    xor AL, strict byte 036h                  ; 34 36
+    xor AL, strict byte 045h                  ; 34 45
+    xor AL, strict byte 054h                  ; 34 54
+    xor AL, strict byte 063h                  ; 34 63
+    xor AL, strict byte 06fh                  ; 34 6f
+    xor AL, strict byte 088h                  ; 34 88
+    xor AL, strict byte 092h                  ; 34 92
+    xor AL, strict byte 09ch                  ; 34 9c
+    xor AL, strict byte 0a6h                  ; 34 a6
+    db  034h
+_int10_func:                                 ; 0xc3264 LB 0x38e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    jnbe short 032d9h                         ; 77 62
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00016h                ; b9 16 00
+    mov di, 031f7h                            ; bf f7 31
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+0320ch]               ; 2e 8b 85 0c 32
+    mov cl, byte [bp+012h]                    ; 8a 4e 12
+    jmp ax                                    ; ff e0
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    xor ah, ah                                ; 30 e4
+    call 01019h                               ; e8 82 dd
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    and ax, strict word 0007fh                ; 25 7f 00
+    cmp ax, strict word 00007h                ; 3d 07 00
+    je short 032b7h                           ; 74 15
+    cmp ax, strict word 00006h                ; 3d 06 00
+    je short 032aeh                           ; 74 07
+    cmp ax, strict word 00005h                ; 3d 05 00
+    jbe short 032b7h                          ; 76 0b
+    jmp short 032c0h                          ; eb 12
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 03fh                   ; 0c 3f
+    jmp short 032c7h                          ; eb 10
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 030h                   ; 0c 30
+    jmp short 032c7h                          ; eb 07
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 020h                   ; 0c 20
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp short 032d9h                          ; eb 0d
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+011h]                    ; 8a 46 11
+    call 00ddeh                               ; e8 05 db
+    jmp near 035ebh                           ; e9 0f 03
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 00e91h                               ; e8 aa db
+    jmp short 032d9h                          ; eb f0
+    lea bx, [bp+00eh]                         ; 8d 5e 0e
+    lea dx, [bp+010h]                         ; 8d 56 10
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 00a8ch                               ; e8 95 d7
+    jmp short 032d9h                          ; eb e0
+    xor ax, ax                                ; 31 c0
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    jmp short 032d9h                          ; eb d0
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 00f34h                               ; e8 24 dc
+    jmp short 032d9h                          ; eb c7
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov ax, 000ffh                            ; b8 ff 00
+    push ax                                   ; 50
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00fh]                    ; 8a 46 0f
+    push ax                                   ; 50
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp+011h]                    ; 8a 5e 11
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp+00dh]                    ; 8a 56 0d
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-005h], ah                    ; 88 66 fb
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 01655h                               ; e8 13 e3
+    jmp short 032d9h                          ; eb 95
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov ax, 000ffh                            ; b8 ff 00
+    push ax                                   ; 50
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00fh]                    ; 8a 46 0f
+    push ax                                   ; 50
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    mov cx, ax                                ; 89 c1
+    mov bl, byte [bp+011h]                    ; 8a 5e 11
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    jmp short 0333fh                          ; eb d6
+    lea dx, [bp+012h]                         ; 8d 56 12
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 00ad2h                               ; e8 5e d7
+    jmp near 035ebh                           ; e9 74 02
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 01ea9h                               ; e8 1d eb
+    jmp near 035ebh                           ; e9 5c 02
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 0203bh                               ; e8 97 ec
+    jmp near 035ebh                           ; e9 44 02
+    mov cx, word [bp+00eh]                    ; 8b 4e 0e
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dl, byte [bp+012h]                    ; 8a 56 12
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    call 021ceh                               ; e8 0e ee
+    jmp near 035ebh                           ; e9 28 02
+    lea cx, [bp+012h]                         ; 8d 4e 12
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 00bfch                               ; e8 28 d8
+    jmp near 035ebh                           ; e9 14 02
+    mov cx, strict word 00002h                ; b9 02 00
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 000ffh                            ; ba ff 00
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 0234dh                               ; e8 63 ef
+    jmp near 035ebh                           ; e9 fe 01
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    call 00d3fh                               ; e8 49 d9
+    jmp near 035ebh                           ; e9 f2 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00030h                ; 3d 30 00
+    jnbe short 0346ch                         ; 77 69
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0000fh                ; b9 0f 00
+    mov di, 03238h                            ; bf 38 32
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+03246h]               ; 2e 8b 85 46 32
+    jmp ax                                    ; ff e0
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    push ax                                   ; 50
+    push word [bp+00eh]                       ; ff 76 0e
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    call 026dfh                               ; e8 ab f2
+    jmp short 0346ch                          ; eb 36
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 02764h                               ; e8 21 f3
+    jmp short 0346ch                          ; eb 27
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 027dah                               ; e8 88 f3
+    jmp short 0346ch                          ; eb 18
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    call 0284eh                               ; e8 ed f3
+    jmp short 0346ch                          ; eb 09
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    call 028c2h                               ; e8 56 f4
+    jmp near 035ebh                           ; e9 7c 01
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    mov cx, ax                                ; 89 c1
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    call 028c7h                               ; e8 41 f4
+    jmp short 0346ch                          ; eb e4
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 028ceh                               ; e8 3e f4
+    jmp short 0346ch                          ; eb da
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 028d3h                               ; e8 39 f4
+    jmp short 0346ch                          ; eb d0
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    call 028d8h                               ; e8 34 f4
+    jmp short 0346ch                          ; eb c6
+    lea ax, [bp+00eh]                         ; 8d 46 0e
+    push ax                                   ; 50
+    lea cx, [bp+010h]                         ; 8d 4e 10
+    lea bx, [bp+008h]                         ; 8d 5e 08
+    lea dx, [bp+016h]                         ; 8d 56 16
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 00b81h                               ; e8 c6 d6
+    jmp short 0346ch                          ; eb af
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00036h                ; 3d 36 00
+    je short 034ebh                           ; 74 24
+    cmp ax, strict word 00035h                ; 3d 35 00
+    je short 034d6h                           ; 74 0a
+    cmp ax, strict word 00020h                ; 3d 20 00
+    jne short 03514h                          ; 75 43
+    call 028ddh                               ; e8 09 f4
+    jmp short 03514h                          ; eb 3e
+    mov al, cl                                ; 88 c8
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    call 028e2h                               ; e8 01 f4
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 012h                   ; 0c 12
+    jmp near 032c7h                           ; e9 dc fd
+    mov al, cl                                ; 88 c8
+    call 028e7h                               ; e8 f7 f3
+    jmp short 034e1h                          ; eb ef
+    push word [bp+008h]                       ; ff 76 08
+    push word [bp+016h]                       ; ff 76 16
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+00fh]                    ; 8a 46 0f
+    push ax                                   ; 50
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    mov dx, ax                                ; 89 c2
+    mov al, cl                                ; 88 c8
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    call 028ech                               ; e8 d8 f3
+    jmp near 035ebh                           ; e9 d4 00
+    mov bx, si                                ; 89 f3
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    call 02982h                               ; e8 60 f4
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 01bh                   ; 0c 1b
+    jmp near 032c7h                           ; e9 9b fd
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 03558h                           ; 74 22
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 0354ah                           ; 74 0f
+    test ax, ax                               ; 85 c0
+    jne short 03564h                          ; 75 25
+    lea dx, [bp+00ch]                         ; 8d 56 0c
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02aa7h                               ; e8 5f f5
+    jmp short 03564h                          ; eb 1a
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02ab9h                               ; e8 63 f5
+    jmp short 03564h                          ; eb 0c
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    call 02e3ah                               ; e8 d6 f8
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 01ch                   ; 0c 1c
+    jmp near 032c7h                           ; e9 59 fd
+    call 00833h                               ; e8 c2 d2
+    test ax, ax                               ; 85 c0
+    je short 035c8h                           ; 74 53
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    jc short 03592h                           ; 72 13
+    jbe short 035b8h                          ; 76 37
+    cmp ax, strict word 0000ah                ; 3d 0a 00
+    je short 035dfh                           ; 74 59
+    cmp ax, strict word 00009h                ; 3d 09 00
+    je short 035dfh                           ; 74 54
+    cmp ax, strict word 00004h                ; 3d 04 00
+    je short 035cah                           ; 74 3a
+    jmp short 035dfh                          ; eb 4d
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 035a8h                           ; 74 11
+    test ax, ax                               ; 85 c0
+    jne short 035dfh                          ; 75 44
+    mov bx, si                                ; 89 f3
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03724h                               ; e8 7e 01
+    jmp short 035ebh                          ; eb 43
+    mov cx, si                                ; 89 f1
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03853h                               ; e8 9d 02
+    jmp short 035ebh                          ; eb 33
+    mov cx, si                                ; 89 f1
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03910h                               ; e8 4a 03
+    jmp short 035ebh                          ; eb 23
+    jmp short 035e6h                          ; eb 1c
+    lea ax, [bp+00ch]                         ; 8d 46 0c
+    push ax                                   ; 50
+    mov cx, word [bp+016h]                    ; 8b 4e 16
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    lea ax, [bp+012h]                         ; 8d 46 12
+    call 03af9h                               ; e8 1c 05
+    jmp short 035ebh                          ; eb 0c
+    mov word [bp+012h], 00100h                ; c7 46 12 00 01
+    jmp short 035ebh                          ; eb 05
+    mov word [bp+012h], 00100h                ; c7 46 12 00 01
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_xres_:                             ; 0xc35f2 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00001h                ; b8 01 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 005a0h                               ; e8 9e cf
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 96 cf
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_yres_:                             ; 0xc3611 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 005a0h                               ; e8 7f cf
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 77 cf
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_bpp_:                              ; 0xc3630 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00003h                ; b8 03 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 005a0h                               ; e8 60 cf
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a0h                               ; e8 58 cf
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+in_word_:                                    ; 0xc364f LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov dx, bx                                ; 89 da
+    out DX, ax                                ; ef
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+in_byte_:                                    ; 0xc3661 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov dx, bx                                ; 89 da
+    out DX, ax                                ; ef
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_get_id_:                               ; 0xc3675 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ax, ax                                ; 31 c0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_id_:                               ; 0xc3689 LB 0x1a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    xor ax, ax                                ; 31 c0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, bx                                ; 89 d8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_init_:                                   ; 0xc36a3 LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov ax, 0b0c0h                            ; b8 c0 b0
+    call 03689h                               ; e8 db ff
+    call 03675h                               ; e8 c4 ff
+    cmp ax, 0b0c0h                            ; 3d c0 b0
+    jne short 036c8h                          ; 75 12
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, 000b9h                            ; ba b9 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 e7 fa
+    mov ax, 0b0c4h                            ; b8 c4 b0
+    call 03689h                               ; e8 c1 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+mode_info_find_mode_:                        ; 0xc36cf LB 0x55
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    xor dx, dx                                ; 31 d2
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 6d ff
+    cmp ax, 077cch                            ; 3d cc 77
+    jne short 03719h                          ; 75 32
+    mov bx, strict word 00004h                ; bb 04 00
+    mov dx, bx                                ; 89 da
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 5d ff
+    mov cx, ax                                ; 89 c1
+    cmp cx, strict byte 0ffffh                ; 83 f9 ff
+    je short 03719h                           ; 74 20
+    lea dx, [bx+002h]                         ; 8d 57 02
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 4d ff
+    lea dx, [bx+044h]                         ; 8d 57 44
+    cmp cx, di                                ; 39 f9
+    jne short 03715h                          ; 75 0c
+    test si, si                               ; 85 f6
+    jne short 03711h                          ; 75 04
+    mov ax, bx                                ; 89 d8
+    jmp short 0371bh                          ; eb 0a
+    test AL, strict byte 080h                 ; a8 80
+    jne short 0370dh                          ; 75 f8
+    mov bx, dx                                ; 89 d3
+    jmp short 036ech                          ; eb d3
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_return_controller_information_: ; 0xc3724 LB 0x12f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
+    call 005eah                               ; e8 ae ce
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov word [bp-008h], di                    ; 89 7e f8
+    xor dx, dx                                ; 31 d2
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 02 ff
+    cmp ax, 077cch                            ; 3d cc 77
+    je short 0375ch                           ; 74 0a
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], 00100h                  ; 26 c7 04 00 01
+    jmp near 0384bh                           ; e9 ef 00
+    mov cx, strict word 00004h                ; b9 04 00
+    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cmp word [es:bx+002h], 03245h             ; 26 81 7f 02 45 32
+    jne short 03776h                          ; 75 07
+    cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
+    je short 03785h                           ; 74 0f
+    cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
+    jne short 0378ah                          ; 75 0c
+    cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
+    jne short 0378ah                          ; 75 05
+    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:bx], 04556h                  ; 26 c7 07 56 45
+    mov word [es:bx+002h], 04153h             ; 26 c7 47 02 53 41
+    mov word [es:bx+004h], 00200h             ; 26 c7 47 04 00 02
+    mov word [es:bx+006h], 07c5eh             ; 26 c7 47 06 5e 7c
+    mov [es:bx+008h], ds                      ; 26 8c 5f 08
+    mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
+    mov word [es:bx+00ch], strict word 00000h ; 26 c7 47 0c 00 00
+    mov word [es:bx+010h], di                 ; 26 89 7f 10
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    add ax, strict word 00022h                ; 05 22 00
+    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
+    mov dx, strict word 0ffffh                ; ba ff ff
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 84 fe
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:bx+012h], ax                 ; 26 89 47 12
+    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
+    je short 037fch                           ; 74 24
+    mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00
+    mov word [es:bx+016h], 07c73h             ; 26 c7 47 16 73 7c
+    mov [es:bx+018h], ds                      ; 26 8c 5f 18
+    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
+    mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
+    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
+    mov [es:bx+020h], ds                      ; 26 8c 5f 20
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 0001bh                ; 83 c2 1b
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03661h                               ; e8 5a fe
+    xor ah, ah                                ; 30 e4
+    cmp ax, word [bp-010h]                    ; 3b 46 f0
+    jnbe short 03827h                         ; 77 19
+    mov dx, cx                                ; 89 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 39 fe
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, word [bp-00ch]                    ; 03 56 f4
+    mov ax, di                                ; 89 f8
+    call 031c5h                               ; e8 a2 f9
+    add word [bp-00ch], strict byte 00002h    ; 83 46 f4 02
+    add cx, strict byte 00044h                ; 83 c1 44
+    mov dx, cx                                ; 89 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 1d fe
+    mov bx, ax                                ; 89 c3
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 037fch                          ; 75 c3
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, word [bp-00ch]                    ; 03 56 f4
+    mov ax, di                                ; 89 f8
+    call 031c5h                               ; e8 81 f9
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], strict word 0004fh      ; 26 c7 04 4f 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_return_mode_information_:         ; 0xc3853 LB 0xbd
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, dx                                ; 89 d0
+    mov si, bx                                ; 89 de
+    mov word [bp-006h], cx                    ; 89 4e fa
+    test dh, 040h                             ; f6 c6 40
+    je short 0386ch                           ; 74 05
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 0386eh                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    and ah, 001h                              ; 80 e4 01
+    call 036cfh                               ; e8 5b fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    test ax, ax                               ; 85 c0
+    je short 038b1h                           ; 74 36
+    mov cx, 00100h                            ; b9 00 01
+    xor ax, ax                                ; 31 c0
+    mov di, word [bp-006h]                    ; 8b 7e fa
+    mov es, si                                ; 8e c6
+    cld                                       ; fc
+    jcxz 0388ah                               ; e3 02
+    rep stosb                                 ; f3 aa
+    xor cx, cx                                ; 31 c9
+    jmp short 03893h                          ; eb 05
+    cmp cx, strict byte 00042h                ; 83 f9 42
+    jnc short 038b3h                          ; 73 20
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    add dx, cx                                ; 01 ca
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03661h                               ; e8 c1 fd
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, cx                                ; 01 ca
+    mov ax, si                                ; 89 f0
+    call 031a9h                               ; e8 fb f8
+    inc cx                                    ; 41
+    jmp short 0388eh                          ; eb dd
+    jmp short 038feh                          ; eb 4b
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov ax, si                                ; 89 f0
+    call 0319bh                               ; e8 de f8
+    test AL, strict byte 001h                 ; a8 01
+    je short 038ddh                           ; 74 1c
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov bx, 0065ch                            ; bb 5c 06
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 f6 f8
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov bx, 0c000h                            ; bb 00 c0
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 e8 f8
+    mov ax, strict word 0000bh                ; b8 0b 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 005a0h                               ; e8 ba cc
+    mov dx, 001cfh                            ; ba cf 01
+    call 005a7h                               ; e8 bb cc
+    mov dx, word [bp-006h]                    ; 8b 56 fa
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 031c5h                               ; e8 cc f8
+    mov ax, strict word 0004fh                ; b8 4f 00
+    jmp short 03901h                          ; eb 03
+    mov ax, 00100h                            ; b8 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov word [es:bx], ax                      ; 26 89 07
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_set_mode_:                        ; 0xc3910 LB 0xeb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    test byte [bp-009h], 040h                 ; f6 46 f7 40
+    je short 03928h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0392ah                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov dx, ax                                ; 89 c2
+    test ax, ax                               ; 85 c0
+    je short 03933h                           ; 74 03
+    mov ax, strict word 00040h                ; b8 40 00
+    mov byte [bp-006h], al                    ; 88 46 fa
+    test byte [bp-009h], 080h                 ; f6 46 f7 80
+    je short 03941h                           ; 74 05
+    mov ax, 00080h                            ; b8 80 00
+    jmp short 03943h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov byte [bp-008h], al                    ; 88 46 f8
+    and byte [bp-009h], 001h                  ; 80 66 f7 01
+    cmp word [bp-00ah], 00100h                ; 81 7e f6 00 01
+    jnc short 03964h                          ; 73 13
+    xor ax, ax                                ; 31 c0
+    call 00610h                               ; e8 ba cc
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    call 01019h                               ; e8 bb d6
+    mov ax, strict word 0004fh                ; b8 4f 00
+    jmp near 039f1h                           ; e9 8d 00
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 036cfh                               ; e8 65 fd
+    mov bx, ax                                ; 89 c3
+    test ax, ax                               ; 85 c0
+    jne short 03973h                          ; 75 03
+    jmp near 039eeh                           ; e9 7b 00
+    lea dx, [bx+014h]                         ; 8d 57 14
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 d3 fc
+    mov cx, ax                                ; 89 c1
+    lea dx, [bx+016h]                         ; 8d 57 16
+    mov ax, 003b6h                            ; b8 b6 03
+    call 0364fh                               ; e8 c8 fc
+    mov di, ax                                ; 89 c7
+    lea dx, [bx+01bh]                         ; 8d 57 1b
+    mov ax, 003b6h                            ; b8 b6 03
+    call 03661h                               ; e8 cf fc
+    mov bl, al                                ; 88 c3
+    mov dl, al                                ; 88 c2
+    xor ax, ax                                ; 31 c0
+    call 00610h                               ; e8 75 cc
+    cmp bl, 004h                              ; 80 fb 04
+    jne short 039a6h                          ; 75 06
+    mov ax, strict word 0006ah                ; b8 6a 00
+    call 01019h                               ; e8 73 d6
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    call 03630h                               ; e8 83 fc
+    mov ax, cx                                ; 89 c8
+    call 035f2h                               ; e8 40 fc
+    mov ax, di                                ; 89 f8
+    call 03611h                               ; e8 5a fc
+    xor ax, ax                                ; 31 c0
+    call 00636h                               ; e8 7a cc
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    or AL, strict byte 001h                   ; 0c 01
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    or al, dl                                 ; 08 d0
+    call 00610h                               ; e8 45 cc
+    call 00743h                               ; e8 75 cd
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    mov dx, 000bah                            ; ba ba 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031c5h                               ; e8 eb f7
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    or bl, 060h                               ; 80 cb 60
+    xor bh, bh                                ; 30 ff
+    mov dx, 00087h                            ; ba 87 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 031a9h                               ; e8 be f7
+    jmp near 0395eh                           ; e9 70 ff
+    mov ax, 00100h                            ; b8 00 01
+    mov word [ss:si], ax                      ; 36 89 04
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_read_video_state_size_:           ; 0xc39fb LB 0x8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov ax, strict word 00012h                ; b8 12 00
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_save_video_state_:                ; 0xc3a03 LB 0x5b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov di, ax                                ; 89 c7
+    mov cx, dx                                ; 89 d1
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 031c5h                               ; e8 9f f7
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 03a55h                           ; 74 27
+    mov si, strict word 00001h                ; be 01 00
+    jmp short 03a38h                          ; eb 05
+    cmp si, strict byte 00009h                ; 83 fe 09
+    jnbe short 03a55h                         ; 77 1d
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 03a52h                           ; 74 15
+    mov ax, si                                ; 89 f0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, 001cfh                            ; ba cf 01
+    in ax, DX                                 ; ed
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    mov ax, di                                ; 89 f8
+    call 031c5h                               ; e8 75 f7
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    inc si                                    ; 46
+    jmp short 03a33h                          ; eb de
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_restore_video_state_:             ; 0xc3a5e LB 0x9b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov cx, ax                                ; 89 c1
+    mov bx, dx                                ; 89 d3
+    call 031b7h                               ; e8 4b f7
+    mov word [bp-008h], ax                    ; 89 46 f8
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    test byte [bp-008h], 001h                 ; f6 46 f8 01
+    jne short 03a87h                          ; 75 10
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    jmp short 03af1h                          ; eb 6a
+    mov ax, strict word 00001h                ; b8 01 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 031b7h                               ; e8 22 f7
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 031b7h                               ; e8 0e f7
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00003h                ; b8 03 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 031b7h                               ; e8 fa f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    mov ax, strict word 00004h                ; b8 04 00
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    mov si, strict word 00005h                ; be 05 00
+    jmp short 03adbh                          ; eb 05
+    cmp si, strict byte 00009h                ; 83 fe 09
+    jnbe short 03af1h                         ; 77 16
+    mov ax, si                                ; 89 f0
+    mov dx, 001ceh                            ; ba ce 01
+    out DX, ax                                ; ef
+    mov dx, bx                                ; 89 da
+    mov ax, cx                                ; 89 c8
+    call 031b7h                               ; e8 cf f6
+    mov dx, 001cfh                            ; ba cf 01
+    out DX, ax                                ; ef
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    inc si                                    ; 46
+    jmp short 03ad6h                          ; eb e5
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vbe_biosfn_save_restore_state_:              ; 0xc3af9 LB 0x8d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov ax, bx                                ; 89 d8
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov di, strict word 0004fh                ; bf 4f 00
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 03b59h                           ; 74 46
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 03b3dh                           ; 74 25
+    test ax, ax                               ; 85 c0
+    jne short 03b75h                          ; 75 59
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02a84h                               ; e8 62 ef
+    mov cx, ax                                ; 89 c1
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03b2fh                           ; 74 05
+    call 039fbh                               ; e8 ce fe
+    add ax, cx                                ; 01 c8
+    add ax, strict word 0003fh                ; 05 3f 00
+    mov CL, strict byte 006h                  ; b1 06
+    shr ax, CL                                ; d3 e8
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:bx], ax                      ; 26 89 07
+    jmp short 03b78h                          ; eb 3b
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov dx, cx                                ; 89 ca
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02ab9h                               ; e8 6f ef
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03b78h                           ; 74 28
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 03a03h                               ; e8 ac fe
+    jmp short 03b78h                          ; eb 1f
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov dx, cx                                ; 89 ca
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    call 02e3ah                               ; e8 d4 f2
+    test byte [bp-006h], 008h                 ; f6 46 fa 08
+    je short 03b78h                           ; 74 0c
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 03a5eh                               ; e8 eb fe
+    jmp short 03b78h                          ; eb 03
+    mov di, 00100h                            ; bf 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov word [es:si], di                      ; 26 89 3c
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+
+  ; Padding 0x87a bytes at 0xc3b86
+  times 2170 db 0
+
+section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
+vesa_pm_start:                               ; 0xc4400 LB 0x114
+    sbb byte [bx+si], al                      ; 18 00
+    dec di                                    ; 4f
+    add byte [bx+si], dl                      ; 00 10
+    add word [bx+si], cx                      ; 01 08
+    add dh, cl                                ; 00 ce
+    add di, cx                                ; 01 cf
+    add di, cx                                ; 01 cf
+    add ax, dx                                ; 01 d0
+    add word [bp-048fdh], si                  ; 01 b6 03 b7
+    db  003h, 0ffh
+    ; add di, di                                ; 03 ff
+    db  0ffh
+    db  0ffh
+    jmp word [bp-07dh]                        ; ff 66 83
+    sti                                       ; fb
+    add byte [si+005h], dh                    ; 00 74 05
+    mov eax, strict dword 066c30100h          ; 66 b8 00 01 c3 66
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    add ax, 06600h                            ; 05 00 66
+    out DX, ax                                ; ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    in eax, DX                                ; 66 ed
+    pop edx                                   ; 66 5a
+    db  066h, 03bh, 0d0h
+    ; cmp edx, eax                              ; 66 3b d0
+    jne short 0444ah                          ; 75 05
+    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
+    mov ax, 0014fh                            ; b8 4f 01
+    retn                                      ; c3
+    cmp bl, 080h                              ; 80 fb 80
+    je short 0445eh                           ; 74 0a
+    cmp bl, 000h                              ; 80 fb 00
+    je short 0446eh                           ; 74 15
+    mov eax, strict dword 052c30100h          ; 66 b8 00 01 c3 52
+    mov edx, strict dword 0a8ec03dah          ; 66 ba da 03 ec a8
+    or byte [di-005h], dh                     ; 08 75 fb
+    in AL, DX                                 ; ec
+    test AL, strict byte 008h                 ; a8 08
+    je short 04468h                           ; 74 fb
+    pop dx                                    ; 5a
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sal dx, 010h                              ; c1 e2 10
+    and cx, strict word 0ffffh                ; 81 e1 ff ff
+    add byte [bx+si], al                      ; 00 00
+    db  00bh, 0cah
+    ; or cx, dx                                 ; 0b ca
+    sal cx, 002h                              ; c1 e1 02
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    push ax                                   ; 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    push ES                                   ; 06
+    add byte [bp-011h], ah                    ; 00 66 ef
+    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
+    db  00fh, 0b7h, 0c8h
+    ; movzx cx, ax                              ; 0f b7 c8
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    add ax, word [bx+si]                      ; 03 00
+    out DX, eax                               ; 66 ef
+    mov edx, strict dword 0ed6601cfh          ; 66 ba cf 01 66 ed
+    db  00fh, 0b7h, 0f0h
+    ; movzx si, ax                              ; 0f b7 f0
+    pop ax                                    ; 58
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 044c7h                           ; 74 17
+    add si, strict byte 00007h                ; 83 c6 07
+    shr si, 003h                              ; c1 ee 03
+    imul cx, si                               ; 0f af ce
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div cx                                    ; f7 f1
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div si                                    ; f7 f6
+    jmp short 044d3h                          ; eb 0c
+    shr cx, 1                                 ; d1 e9
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    div cx                                    ; f7 f1
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    sal ax, 1                                 ; d1 e0
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    or byte [bx+si], al                       ; 08 00
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    pop edx                                   ; 66 5a
+    db  066h, 08bh, 0c7h
+    ; mov eax, edi                              ; 66 8b c7
+    push edx                                  ; 66 52
+    push eax                                  ; 66 50
+    mov edx, strict dword 0b86601ceh          ; 66 ba ce 01 66 b8
+    or word [bx+si], ax                       ; 09 00
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    mov edx, strict dword 0ef6601cfh          ; 66 ba cf 01 66 ef
+    pop edx                                   ; 66 5a
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    mov eax, strict dword 066c3004fh          ; 66 b8 4f 00 c3 66
+    mov ax, 0014fh                            ; b8 4f 01
+vesa_pm_end:                                 ; 0xc4514 LB 0x1
+    retn                                      ; c3
+
+  ; Padding 0xeb bytes at 0xc4515
+  times 235 db 0
+
+section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
+_msg_vga_init:                               ; 0xc4600 LB 0x2f
+    db  'Oracle VM VirtualBox Version 5.0.51 VGA BIOS', 00dh, 00ah, 000h
+_vga_modes:                                  ; 0xc462f LB 0x80
+    db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
+    db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
+    db  004h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h, 005h, 001h, 002h, 002h, 000h, 0b8h, 0ffh, 001h
+    db  006h, 001h, 002h, 001h, 000h, 0b8h, 0ffh, 001h, 007h, 000h, 001h, 004h, 000h, 0b0h, 0ffh, 000h
+    db  00dh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h, 00eh, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 001h
+    db  00fh, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 000h, 010h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+    db  011h, 001h, 003h, 001h, 000h, 0a0h, 0ffh, 002h, 012h, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+    db  013h, 001h, 005h, 008h, 000h, 0a0h, 0ffh, 003h, 06ah, 001h, 004h, 004h, 000h, 0a0h, 0ffh, 002h
+_line_to_vpti:                               ; 0xc46af LB 0x10
+    db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
+_dac_regs:                                   ; 0xc46bf LB 0x4
+    dd  0ff3f3f3fh
+_video_param_table:                          ; 0xc46c3 LB 0x780
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
+    db  028h, 018h, 008h, 000h, 008h, 009h, 003h, 000h, 002h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0a2h, 0ffh, 000h, 013h, 015h, 017h, 002h, 004h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 003h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 00fh, 00fh, 0ffh
+    db  050h, 018h, 008h, 000h, 010h, 001h, 001h, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 0c1h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
+    db  0b9h, 0c2h, 0ffh, 000h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h, 017h
+    db  017h, 017h, 017h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00dh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  028h, 018h, 008h, 000h, 020h, 009h, 00fh, 000h, 006h, 063h, 02dh, 027h, 028h, 090h, 02bh, 080h
+    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 000h, 096h
+    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 018h, 008h, 000h, 040h, 001h, 00fh, 000h, 006h, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 000h, 096h
+    db  0b9h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 010h, 011h, 012h, 013h, 014h
+    db  015h, 016h, 017h, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
+    db  0bah, 0e3h, 0ffh, 000h, 008h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 008h, 000h, 000h, 000h
+    db  018h, 000h, 000h, 001h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 018h, 00eh, 000h, 080h, 001h, 00fh, 000h, 006h, 0a3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 083h, 085h, 05dh, 028h, 00fh, 063h
+    db  0bah, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  050h, 018h, 00eh, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  028h, 018h, 010h, 000h, 008h, 008h, 003h, 000h, 002h, 067h, 02dh, 027h, 028h, 090h, 02bh, 0a0h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 014h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 067h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 01fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 00ch, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00eh, 00fh, 0ffh
+    db  050h, 018h, 010h, 000h, 010h, 000h, 003h, 000h, 002h, 066h, 05fh, 04fh, 050h, 082h, 055h, 081h
+    db  0bfh, 01fh, 000h, 04fh, 00dh, 00eh, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 00fh, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 008h, 008h, 008h, 008h, 008h, 008h, 008h, 010h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 00eh, 000h, 00fh, 008h, 000h, 000h, 000h, 000h, 000h, 010h, 00ah, 00fh, 0ffh
+    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
+    db  004h, 0e3h, 0ffh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h, 03fh, 000h
+    db  03fh, 000h, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  050h, 01dh, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  00bh, 03eh, 000h, 040h, 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 08ch, 0dfh, 028h, 000h, 0e7h
+    db  004h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+    db  028h, 018h, 008h, 000h, 000h, 001h, 00fh, 000h, 00eh, 063h, 05fh, 04fh, 050h, 082h, 054h, 080h
+    db  0bfh, 01fh, 000h, 041h, 000h, 000h, 000h, 000h, 000h, 000h, 09ch, 08eh, 08fh, 028h, 040h, 096h
+    db  0b9h, 0a3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h, 008h, 009h, 00ah, 00bh, 00ch
+    db  00dh, 00eh, 00fh, 041h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 040h, 005h, 00fh, 0ffh
+    db  064h, 024h, 010h, 000h, 000h, 001h, 00fh, 000h, 006h, 0e3h, 07fh, 063h, 063h, 083h, 06bh, 01bh
+    db  072h, 0f0h, 000h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 08dh, 057h, 032h, 000h, 057h
+    db  073h, 0e3h, 0ffh, 000h, 001h, 002h, 003h, 004h, 005h, 014h, 007h, 038h, 039h, 03ah, 03bh, 03ch
+    db  03dh, 03eh, 03fh, 001h, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 005h, 00fh, 0ffh
+_palette0:                                   ; 0xc4e43 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah
+    db  02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 02ah, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+    db  03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh, 03fh
+_palette1:                                   ; 0xc4f03 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
+    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
+    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
+    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah
+    db  000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah, 000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah
+    db  015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh, 015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh
+    db  015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+_palette2:                                   ; 0xc4fc3 LB 0xc0
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 02ah, 000h, 02ah, 02ah, 02ah, 000h, 000h, 015h, 000h, 000h, 03fh, 000h, 02ah
+    db  015h, 000h, 02ah, 03fh, 02ah, 000h, 015h, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 02ah, 02ah, 03fh
+    db  000h, 015h, 000h, 000h, 015h, 02ah, 000h, 03fh, 000h, 000h, 03fh, 02ah, 02ah, 015h, 000h, 02ah
+    db  015h, 02ah, 02ah, 03fh, 000h, 02ah, 03fh, 02ah, 000h, 015h, 015h, 000h, 015h, 03fh, 000h, 03fh
+    db  015h, 000h, 03fh, 03fh, 02ah, 015h, 015h, 02ah, 015h, 03fh, 02ah, 03fh, 015h, 02ah, 03fh, 03fh
+    db  015h, 000h, 000h, 015h, 000h, 02ah, 015h, 02ah, 000h, 015h, 02ah, 02ah, 03fh, 000h, 000h, 03fh
+    db  000h, 02ah, 03fh, 02ah, 000h, 03fh, 02ah, 02ah, 015h, 000h, 015h, 015h, 000h, 03fh, 015h, 02ah
+    db  015h, 015h, 02ah, 03fh, 03fh, 000h, 015h, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 03fh, 02ah, 03fh
+    db  015h, 015h, 000h, 015h, 015h, 02ah, 015h, 03fh, 000h, 015h, 03fh, 02ah, 03fh, 015h, 000h, 03fh
+    db  015h, 02ah, 03fh, 03fh, 000h, 03fh, 03fh, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+_palette3:                                   ; 0xc5083 LB 0x300
+    db  000h, 000h, 000h, 000h, 000h, 02ah, 000h, 02ah, 000h, 000h, 02ah, 02ah, 02ah, 000h, 000h, 02ah
+    db  000h, 02ah, 02ah, 015h, 000h, 02ah, 02ah, 02ah, 015h, 015h, 015h, 015h, 015h, 03fh, 015h, 03fh
+    db  015h, 015h, 03fh, 03fh, 03fh, 015h, 015h, 03fh, 015h, 03fh, 03fh, 03fh, 015h, 03fh, 03fh, 03fh
+    db  000h, 000h, 000h, 005h, 005h, 005h, 008h, 008h, 008h, 00bh, 00bh, 00bh, 00eh, 00eh, 00eh, 011h
+    db  011h, 011h, 014h, 014h, 014h, 018h, 018h, 018h, 01ch, 01ch, 01ch, 020h, 020h, 020h, 024h, 024h
+    db  024h, 028h, 028h, 028h, 02dh, 02dh, 02dh, 032h, 032h, 032h, 038h, 038h, 038h, 03fh, 03fh, 03fh
+    db  000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 03fh, 03fh
+    db  000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh
+    db  000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h, 02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 000h
+    db  000h, 03fh, 000h, 000h, 03fh, 010h, 000h, 03fh, 01fh, 000h, 03fh, 02fh, 000h, 03fh, 03fh, 000h
+    db  02fh, 03fh, 000h, 01fh, 03fh, 000h, 010h, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh
+    db  03fh, 037h, 01fh, 03fh, 03fh, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h
+    db  03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh, 02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h
+    db  03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh, 01fh, 01fh, 03fh, 01fh, 01fh, 03fh, 027h, 01fh, 03fh
+    db  02fh, 01fh, 03fh, 037h, 01fh, 03fh, 03fh, 01fh, 037h, 03fh, 01fh, 02fh, 03fh, 01fh, 027h, 03fh
+    db  02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03fh, 03fh
+    db  02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h
+    db  02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh, 03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 02dh
+    db  02dh, 03fh, 02dh, 02dh, 03fh, 031h, 02dh, 03fh, 036h, 02dh, 03fh, 03ah, 02dh, 03fh, 03fh, 02dh
+    db  03ah, 03fh, 02dh, 036h, 03fh, 02dh, 031h, 03fh, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h
+    db  01ch, 015h, 000h, 01ch, 01ch, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h
+    db  01ch, 000h, 000h, 01ch, 007h, 000h, 01ch, 00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h
+    db  01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch, 000h, 000h, 01ch, 000h, 000h, 01ch, 007h, 000h, 01ch
+    db  00eh, 000h, 01ch, 015h, 000h, 01ch, 01ch, 000h, 015h, 01ch, 000h, 00eh, 01ch, 000h, 007h, 01ch
+    db  00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 01ch, 01ch
+    db  00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h
+    db  00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh, 018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 00eh
+    db  00eh, 01ch, 00eh, 00eh, 01ch, 011h, 00eh, 01ch, 015h, 00eh, 01ch, 018h, 00eh, 01ch, 01ch, 00eh
+    db  018h, 01ch, 00eh, 015h, 01ch, 00eh, 011h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h
+    db  01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h
+    db  01ch, 014h, 014h, 01ch, 016h, 014h, 01ch, 018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah
+    db  01ch, 014h, 018h, 01ch, 014h, 016h, 01ch, 014h, 014h, 01ch, 014h, 014h, 01ch, 016h, 014h, 01ch
+    db  018h, 014h, 01ch, 01ah, 014h, 01ch, 01ch, 014h, 01ah, 01ch, 014h, 018h, 01ch, 014h, 016h, 01ch
+    db  000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h, 010h, 010h
+    db  000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h
+    db  000h, 010h, 00ch, 000h, 010h, 010h, 000h, 00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 000h
+    db  000h, 010h, 000h, 000h, 010h, 004h, 000h, 010h, 008h, 000h, 010h, 00ch, 000h, 010h, 010h, 000h
+    db  00ch, 010h, 000h, 008h, 010h, 000h, 004h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h
+    db  010h, 00eh, 008h, 010h, 010h, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah
+    db  010h, 008h, 008h, 010h, 00ah, 008h, 010h, 00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh
+    db  010h, 008h, 00ch, 010h, 008h, 00ah, 010h, 008h, 008h, 010h, 008h, 008h, 010h, 00ah, 008h, 010h
+    db  00ch, 008h, 010h, 00eh, 008h, 010h, 010h, 008h, 00eh, 010h, 008h, 00ch, 010h, 008h, 00ah, 010h
+    db  00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 010h, 010h
+    db  00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh
+    db  00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh, 00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 00bh
+    db  00bh, 010h, 00bh, 00bh, 010h, 00ch, 00bh, 010h, 00dh, 00bh, 010h, 00fh, 00bh, 010h, 010h, 00bh
+    db  00fh, 010h, 00bh, 00dh, 010h, 00bh, 00ch, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_static_functionality:                       ; 0xc5383 LB 0x10
+    db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
+_dcc_table:                                  ; 0xc5393 LB 0x24
+    db  010h, 001h, 007h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h
+_secondary_save_area:                        ; 0xc53b7 LB 0x1a
+    db  01ah, 000h, 093h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_video_save_pointer_table:                   ; 0xc53d1 LB 0x1c
+    db  0c3h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0b7h, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont8:                                   ; 0xc53ed LB 0x800
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
+    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
+    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
+    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
+    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
+    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
+    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
+    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
+    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
+    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
+    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
+    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
+    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
+    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
+    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
+    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
+    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
+    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
+    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
+    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
+    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
+    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
+    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
+    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
+    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
+    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
+    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
+    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
+    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
+    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
+    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
+    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
+    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
+    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
+    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
+    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
+    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
+    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
+    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
+    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
+    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
+    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
+    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
+    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
+    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
+    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
+    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
+    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
+    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
+    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
+    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
+    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
+    db  078h, 0cch, 0c0h, 0cch, 078h, 018h, 00ch, 078h, 000h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  01ch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 07eh, 0c3h, 03ch, 006h, 03eh, 066h, 03fh, 000h
+    db  0cch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 0e0h, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h
+    db  030h, 030h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 000h, 000h, 078h, 0c0h, 0c0h, 078h, 00ch, 038h
+    db  07eh, 0c3h, 03ch, 066h, 07eh, 060h, 03ch, 000h, 0cch, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  0e0h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h, 0cch, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  07ch, 0c6h, 038h, 018h, 018h, 018h, 03ch, 000h, 0e0h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  0c6h, 038h, 06ch, 0c6h, 0feh, 0c6h, 0c6h, 000h, 030h, 030h, 000h, 078h, 0cch, 0fch, 0cch, 000h
+    db  01ch, 000h, 0fch, 060h, 078h, 060h, 0fch, 000h, 000h, 000h, 07fh, 00ch, 07fh, 0cch, 07fh, 000h
+    db  03eh, 06ch, 0cch, 0feh, 0cch, 0cch, 0ceh, 000h, 078h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h
+    db  000h, 0cch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 0e0h, 000h, 078h, 0cch, 0cch, 078h, 000h
+    db  078h, 0cch, 000h, 0cch, 0cch, 0cch, 07eh, 000h, 000h, 0e0h, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  000h, 0cch, 000h, 0cch, 0cch, 07ch, 00ch, 0f8h, 0c3h, 018h, 03ch, 066h, 066h, 03ch, 018h, 000h
+    db  0cch, 000h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 018h, 018h, 07eh, 0c0h, 0c0h, 07eh, 018h, 018h
+    db  038h, 06ch, 064h, 0f0h, 060h, 0e6h, 0fch, 000h, 0cch, 0cch, 078h, 0fch, 030h, 0fch, 030h, 030h
+    db  0f8h, 0cch, 0cch, 0fah, 0c6h, 0cfh, 0c6h, 0c7h, 00eh, 01bh, 018h, 03ch, 018h, 018h, 0d8h, 070h
+    db  01ch, 000h, 078h, 00ch, 07ch, 0cch, 07eh, 000h, 038h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  000h, 01ch, 000h, 078h, 0cch, 0cch, 078h, 000h, 000h, 01ch, 000h, 0cch, 0cch, 0cch, 07eh, 000h
+    db  000h, 0f8h, 000h, 0f8h, 0cch, 0cch, 0cch, 000h, 0fch, 000h, 0cch, 0ech, 0fch, 0dch, 0cch, 000h
+    db  03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h
+    db  030h, 000h, 030h, 060h, 0c0h, 0cch, 078h, 000h, 000h, 000h, 000h, 0fch, 0c0h, 0c0h, 000h, 000h
+    db  000h, 000h, 000h, 0fch, 00ch, 00ch, 000h, 000h, 0c3h, 0c6h, 0cch, 0deh, 033h, 066h, 0cch, 00fh
+    db  0c3h, 0c6h, 0cch, 0dbh, 037h, 06fh, 0cfh, 003h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 000h
+    db  000h, 033h, 066h, 0cch, 066h, 033h, 000h, 000h, 000h, 0cch, 066h, 033h, 066h, 0cch, 000h, 000h
+    db  022h, 088h, 022h, 088h, 022h, 088h, 022h, 088h, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
+    db  0dbh, 077h, 0dbh, 0eeh, 0dbh, 077h, 0dbh, 0eeh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h
+    db  000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h
+    db  036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h
+    db  018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h
+    db  018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h
+    db  036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h
+    db  036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h
+    db  036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
+    db  036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h
+    db  018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h
+    db  018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 0c8h, 0dch, 076h, 000h, 000h, 078h, 0cch, 0f8h, 0cch, 0f8h, 0c0h, 0c0h
+    db  000h, 0fch, 0cch, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
+    db  0fch, 0cch, 060h, 030h, 060h, 0cch, 0fch, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 070h, 000h
+    db  000h, 066h, 066h, 066h, 066h, 07ch, 060h, 0c0h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 000h
+    db  0fch, 030h, 078h, 0cch, 0cch, 078h, 030h, 0fch, 038h, 06ch, 0c6h, 0feh, 0c6h, 06ch, 038h, 000h
+    db  038h, 06ch, 0c6h, 0c6h, 06ch, 06ch, 0eeh, 000h, 01ch, 030h, 018h, 07ch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 07eh, 0dbh, 0dbh, 07eh, 000h, 000h, 006h, 00ch, 07eh, 0dbh, 0dbh, 07eh, 060h, 0c0h
+    db  038h, 060h, 0c0h, 0f8h, 0c0h, 060h, 038h, 000h, 078h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 000h
+    db  000h, 0fch, 000h, 0fch, 000h, 0fch, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 0fch, 000h
+    db  060h, 030h, 018h, 030h, 060h, 000h, 0fch, 000h, 018h, 030h, 060h, 030h, 018h, 000h, 0fch, 000h
+    db  00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 070h
+    db  030h, 030h, 000h, 0fch, 000h, 030h, 030h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h
+    db  038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 0ech, 06ch, 03ch, 01ch
+    db  078h, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 070h, 018h, 030h, 060h, 078h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 03ch, 03ch, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont14:                                  ; 0xc5bed LB 0xe00
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 07eh, 000h, 000h, 000h, 000h, 000h, 07eh, 0ffh
+    db  0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 0feh, 0feh
+    db  0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch
+    db  038h, 010h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h
+    db  03ch, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 01eh, 00eh, 01ah, 032h
+    db  078h, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 066h, 066h, 03ch, 018h
+    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 070h, 0f0h
+    db  0e0h, 000h, 000h, 000h, 000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 080h, 0c0h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h, 000h
+    db  002h, 006h, 00eh, 03eh, 0feh, 03eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch
+    db  07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h
+    db  066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh
+    db  01bh, 01bh, 01bh, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h
+    db  00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 000h
+    db  000h, 000h, 000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 060h
+    db  0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h
+    db  0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 028h, 06ch, 0feh, 06ch, 028h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 03ch, 03ch, 03ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 066h, 066h, 066h
+    db  024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch
+    db  06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h
+    db  086h, 0c6h, 07ch, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 066h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h, 000h
+    db  030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
+    db  07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
+    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h
+    db  006h, 00ch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 006h, 006h
+    db  03ch, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh
+    db  00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 07ch, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0c6h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h, 000h, 000h, 018h
+    db  018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h
+    db  000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h
+    db  018h, 00ch, 006h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h
+    db  000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h, 0fch, 066h
+    db  066h, 066h, 07ch, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h
+    db  0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h
+    db  066h, 06ch, 0f8h, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 062h, 066h
+    db  0feh, 000h, 000h, 000h, 000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 066h, 03ah, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 01eh, 00ch
+    db  00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h, 000h, 0e6h, 066h, 06ch, 06ch
+    db  078h, 06ch, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h
+    db  062h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 0c6h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h
+    db  000h, 000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h
+    db  07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h, 000h, 000h, 0fch, 066h
+    db  066h, 066h, 07ch, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 060h
+    db  038h, 00ch, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 07eh, 07eh, 05ah, 018h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 010h, 000h
+    db  000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 07ch, 06ch, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 06ch, 038h, 038h, 038h, 06ch, 0c6h, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  066h, 066h, 066h, 066h, 03ch, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h
+    db  08ch, 018h, 030h, 060h, 0c2h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 03ch, 030h, 030h, 030h
+    db  030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch
+    db  00eh, 006h, 002h, 000h, 000h, 000h, 000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch
+    db  03ch, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0e0h, 060h
+    db  060h, 078h, 06ch, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+    db  0c6h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch
+    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 006h, 006h
+    db  000h, 00eh, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h, 000h, 000h, 0e0h, 060h, 060h, 066h
+    db  06ch, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ech, 0feh, 0d6h, 0d6h, 0d6h
+    db  0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0dch, 076h, 066h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+    db  0c6h, 070h, 01ch, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h
+    db  030h, 036h, 01ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch
+    db  076h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 03ch, 018h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0d6h, 0d6h, 0feh, 06ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0feh, 0cch, 018h, 030h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h, 00eh, 018h, 018h, 018h
+    db  070h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h
+    db  018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h, 000h
+    db  0cch, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h
+    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 078h
+    db  00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 000h, 078h, 00ch, 07ch
+    db  0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch
+    db  076h, 000h, 000h, 000h, 000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 03ch, 066h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  0cch, 0cch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h
+    db  000h, 07ch, 0c6h, 0feh, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 000h, 038h
+    db  018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h
+    db  03ch, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h
+    db  000h, 000h, 038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 066h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0cch, 076h, 036h, 07eh, 0d8h, 0d8h, 06eh, 000h, 000h, 000h, 000h, 000h, 03eh, 06ch
+    db  0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 000h, 07ch
+    db  0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h, 07ch, 0c6h, 0c6h
+    db  0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h
+    db  07ch, 000h, 000h, 000h, 000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h, 000h, 0c6h
+    db  0c6h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 000h
+    db  0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 018h, 03ch, 066h, 060h
+    db  060h, 066h, 03ch, 018h, 018h, 000h, 000h, 000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h
+    db  060h, 0e6h, 0fch, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 03ch, 018h, 07eh, 018h, 07eh, 018h
+    db  018h, 000h, 000h, 000h, 000h, 0f8h, 0cch, 0cch, 0f8h, 0c4h, 0cch, 0deh, 0cch, 0cch, 0c6h, 000h
+    db  000h, 000h, 000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 00ch
+    db  018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h
+    db  000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 018h, 030h, 060h, 000h, 0cch
+    db  0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h
+    db  066h, 066h, 066h, 000h, 000h, 000h, 076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h
+    db  0c6h, 000h, 000h, 000h, 000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h
+    db  030h, 060h, 0dch, 086h, 00ch, 018h, 03eh, 000h, 000h, 0c0h, 0c0h, 0c6h, 0cch, 0d8h, 030h, 066h
+    db  0ceh, 09eh, 03eh, 006h, 006h, 000h, 000h, 000h, 018h, 018h, 000h, 018h, 018h, 03ch, 03ch, 03ch
+    db  018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h
+    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 055h, 0aah
+    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 0ddh, 077h, 0ddh, 077h
+    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 036h, 036h
+    db  036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0feh
+    db  006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h
+    db  018h, 018h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h
+    db  018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  0f0h, 0f0h, 0f0h, 0f0h, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
+    db  00fh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0fch, 0c6h, 0c6h, 0fch, 0c0h, 0c0h, 040h, 000h, 000h, 000h, 0feh, 0c6h
+    db  0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 06ch
+    db  06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h
+    db  060h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h, 000h
+    db  038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 038h, 06ch
+    db  0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h, 000h, 01eh, 030h, 018h, 00ch
+    db  03eh, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh
+    db  07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h
+    db  0c0h, 000h, 000h, 000h, 000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 030h, 01ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 030h, 018h
+    db  00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00ch, 018h, 030h, 060h
+    db  030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h
+    db  070h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 00fh, 00ch, 00ch, 00ch, 00ch
+    db  00ch, 0ech, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont16:                                  ; 0xc69ed LB 0x1000
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 081h, 0a5h, 081h, 081h, 0bdh, 099h, 081h, 081h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07eh, 0ffh, 0dbh, 0ffh, 0ffh, 0c3h, 0e7h, 0ffh, 0ffh, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 06ch, 0feh, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 03ch, 03ch, 0e7h, 0e7h, 0e7h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 07eh, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 01eh, 00eh, 01ah, 032h, 078h, 0cch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03fh, 033h, 03fh, 030h, 030h, 030h, 030h, 070h, 0f0h, 0e0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07fh, 063h, 07fh, 063h, 063h, 063h, 063h, 067h, 0e7h, 0e6h, 0c0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 018h, 018h, 0dbh, 03ch, 0e7h, 03ch, 0dbh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 080h, 0c0h, 0e0h, 0f0h, 0f8h, 0feh, 0f8h, 0f0h, 0e0h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 002h, 006h, 00eh, 01eh, 03eh, 0feh, 03eh, 01eh, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 066h, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07fh, 0dbh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 01bh, 01bh, 000h, 000h, 000h, 000h
+    db  000h, 07ch, 0c6h, 060h, 038h, 06ch, 0c6h, 0c6h, 06ch, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0feh, 0feh, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 07eh, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 038h, 07ch, 07ch, 0feh, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 0feh, 07ch, 07ch, 038h, 038h, 010h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 03ch, 03ch, 03ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 066h, 066h, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 06ch, 06ch, 0feh, 06ch, 06ch, 000h, 000h, 000h, 000h
+    db  018h, 018h, 07ch, 0c6h, 0c2h, 0c0h, 07ch, 006h, 006h, 086h, 0c6h, 07ch, 018h, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0c2h, 0c6h, 00ch, 018h, 030h, 060h, 0c6h, 086h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 06ch, 038h, 076h, 0dch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 030h, 030h, 030h, 060h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 018h, 030h, 030h, 030h, 030h, 030h, 030h, 018h, 00ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 018h, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 018h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 018h, 030h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 002h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 038h, 078h, 018h, 018h, 018h, 018h, 018h, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 006h, 006h, 03ch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00ch, 01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 00ch, 00ch, 01eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0fch, 006h, 006h, 006h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 060h, 0c0h, 0c0h, 0fch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c6h, 006h, 006h, 00ch, 018h, 030h, 030h, 030h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 07eh, 006h, 006h, 006h, 00ch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 018h, 018h, 030h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 006h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 006h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 000h, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 060h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 060h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 00ch, 018h, 018h, 018h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0deh, 0deh, 0deh, 0dch, 0c0h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 066h, 066h, 066h, 066h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0f8h, 06ch, 066h, 066h, 066h, 066h, 066h, 066h, 06ch, 0f8h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 066h, 062h, 068h, 078h, 068h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0deh, 0c6h, 0c6h, 066h, 03ah, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01eh, 00ch, 00ch, 00ch, 00ch, 00ch, 0cch, 0cch, 0cch, 078h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0e6h, 066h, 066h, 06ch, 078h, 078h, 06ch, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0f0h, 060h, 060h, 060h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0d6h, 0deh, 07ch, 00ch, 00eh, 000h, 000h
+    db  000h, 000h, 0fch, 066h, 066h, 066h, 07ch, 06ch, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 07ch, 0c6h, 0c6h, 060h, 038h, 00ch, 006h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 030h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 080h, 0c0h, 0e0h, 070h, 038h, 01ch, 00eh, 006h, 002h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 00ch, 03ch, 000h, 000h, 000h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 078h, 06ch, 066h, 066h, 066h, 066h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c0h, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01ch, 00ch, 00ch, 03ch, 06ch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 0cch, 078h, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 06ch, 076h, 066h, 066h, 066h, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 006h, 006h, 000h, 00eh, 006h, 006h, 006h, 006h, 006h, 006h, 066h, 066h, 03ch, 000h
+    db  000h, 000h, 0e0h, 060h, 060h, 066h, 06ch, 078h, 078h, 06ch, 066h, 0e6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0cch, 0cch, 0cch, 0cch, 0cch, 07ch, 00ch, 00ch, 01eh, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0dch, 076h, 066h, 060h, 060h, 060h, 0f0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07ch, 0c6h, 060h, 038h, 00ch, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 010h, 030h, 030h, 0fch, 030h, 030h, 030h, 030h, 036h, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 0f8h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 0cch, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00eh, 018h, 018h, 018h, 070h, 018h, 018h, 018h, 018h, 00eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 070h, 018h, 018h, 018h, 00eh, 018h, 018h, 018h, 018h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03ch, 066h, 0c2h, 0c0h, 0c0h, 0c0h, 0c2h, 066h, 03ch, 00ch, 006h, 07ch, 000h, 000h
+    db  000h, 000h, 0cch, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 00ch, 018h, 030h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0cch, 000h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 038h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 03ch, 066h, 060h, 060h, 066h, 03ch, 00ch, 006h, 03ch, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0feh, 0c0h, 0c0h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 066h, 000h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 03ch, 066h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 0c6h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  038h, 06ch, 038h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 000h, 0feh, 066h, 060h, 07ch, 060h, 060h, 066h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 03eh, 06ch, 0cch, 0cch, 0feh, 0cch, 0cch, 0cch, 0cch, 0ceh, 000h, 000h, 000h, 000h
+    db  000h, 010h, 038h, 06ch, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 030h, 078h, 0cch, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 060h, 030h, 018h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c6h, 000h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07eh, 006h, 00ch, 078h, 000h
+    db  000h, 0c6h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 0c6h, 000h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 064h, 060h, 0f0h, 060h, 060h, 060h, 060h, 0e6h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h, 000h
+    db  000h, 00eh, 01bh, 018h, 018h, 018h, 07eh, 018h, 018h, 018h, 018h, 018h, 0d8h, 070h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 078h, 00ch, 07ch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 00ch, 018h, 030h, 000h, 038h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 018h, 030h, 060h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 076h, 0dch, 000h, 0dch, 066h, 066h, 066h, 066h, 066h, 066h, 000h, 000h, 000h, 000h
+    db  076h, 0dch, 000h, 0c6h, 0e6h, 0f6h, 0feh, 0deh, 0ceh, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 03ch, 06ch, 06ch, 03eh, 000h, 07eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 07ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 030h, 030h, 000h, 030h, 030h, 060h, 0c0h, 0c6h, 0c6h, 07ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0feh, 006h, 006h, 006h, 006h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh, 000h, 000h
+    db  000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h, 006h, 000h, 000h
+    db  000h, 000h, 018h, 018h, 000h, 018h, 018h, 018h, 03ch, 03ch, 03ch, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 036h, 06ch, 0d8h, 06ch, 036h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0d8h, 06ch, 036h, 06ch, 0d8h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h, 011h, 044h
+    db  055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah, 055h, 0aah
+    db  0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h, 0ddh, 077h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0feh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0feh, 006h, 0f6h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 0f6h, 006h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0feh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 0f8h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f8h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 03fh, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 037h, 030h, 037h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 0f7h, 000h, 0f7h, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 0ffh, 000h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 03fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 018h, 018h, 018h, 018h, 01fh, 018h, 01fh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 01fh, 018h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  036h, 036h, 036h, 036h, 036h, 036h, 036h, 0ffh, 036h, 036h, 036h, 036h, 036h, 036h, 036h, 036h
+    db  018h, 018h, 018h, 018h, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 01fh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
+    db  0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
+    db  00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh, 00fh
+    db  0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 0d8h, 0d8h, 0d8h, 0dch, 076h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 078h, 0cch, 0cch, 0cch, 0d8h, 0cch, 0c6h, 0c6h, 0c6h, 0cch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 0feh, 0c6h, 0c6h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 0c0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 0feh, 0c6h, 060h, 030h, 018h, 030h, 060h, 0c6h, 0feh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 0d8h, 0d8h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 066h, 066h, 066h, 066h, 066h, 07ch, 060h, 060h, 0c0h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 076h, 0dch, 018h, 018h, 018h, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07eh, 018h, 03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0feh, 0c6h, 0c6h, 06ch, 038h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 06ch, 06ch, 06ch, 0eeh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01eh, 030h, 018h, 00ch, 03eh, 066h, 066h, 066h, 066h, 03ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 07eh, 0dbh, 0dbh, 0dbh, 07eh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 003h, 006h, 07eh, 0dbh, 0dbh, 0f3h, 07eh, 060h, 0c0h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 01ch, 030h, 060h, 060h, 07ch, 060h, 060h, 060h, 030h, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 07ch, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 0c6h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 0feh, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 07eh, 018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 030h, 018h, 00ch, 006h, 00ch, 018h, 030h, 000h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 00ch, 018h, 030h, 060h, 030h, 018h, 00ch, 000h, 07eh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 00eh, 01bh, 01bh, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h
+    db  018h, 018h, 018h, 018h, 018h, 018h, 018h, 018h, 0d8h, 0d8h, 0d8h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 018h, 018h, 000h, 07eh, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 076h, 0dch, 000h, 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 038h, 06ch, 06ch, 038h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 00fh, 00ch, 00ch, 00ch, 00ch, 00ch, 0ech, 06ch, 06ch, 03ch, 01ch, 000h, 000h, 000h, 000h
+    db  000h, 0d8h, 06ch, 06ch, 06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 070h, 0d8h, 030h, 060h, 0c8h, 0f8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 07ch, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont14alt:                               ; 0xc79ed LB 0x12d
+    db  01dh, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h, 022h
+    db  000h, 063h, 063h, 063h, 022h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 000h
+    db  000h, 000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h, 02dh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 0ffh, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 000h, 000h, 0c3h
+    db  0e7h, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh
+    db  099h, 018h, 018h, 018h, 018h, 018h, 03ch, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h
+    db  0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h
+    db  0dbh, 0dbh, 0ffh, 066h, 066h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  03ch, 066h, 0c3h, 0c3h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  018h, 018h, 03ch, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h, 030h, 061h
+    db  0c3h, 0ffh, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h, 0ffh, 0dbh, 0dbh, 0dbh
+    db  0dbh, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h, 000h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h
+    db  000h, 000h, 091h, 000h, 000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h
+    db  000h, 09bh, 000h, 018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h
+    db  09dh, 000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 000h, 000h, 000h, 09eh
+    db  000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 0f3h, 000h, 000h, 000h, 0f1h, 000h
+    db  000h, 018h, 018h, 018h, 0ffh, 018h, 018h, 018h, 000h, 0ffh, 000h, 000h, 000h, 0f6h, 000h, 000h
+    db  018h, 018h, 000h, 000h, 0ffh, 000h, 000h, 018h, 018h, 000h, 000h, 000h, 000h
+_vgafont16alt:                               ; 0xc7b1a LB 0x144
+    db  01dh, 000h, 000h, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 030h, 000h, 000h, 03ch, 066h, 0c3h, 0c3h, 0dbh, 0dbh, 0c3h, 0c3h, 066h, 03ch, 000h, 000h
+    db  000h, 000h, 04dh, 000h, 000h, 0c3h, 0e7h, 0ffh, 0ffh, 0dbh, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 000h
+    db  000h, 000h, 000h, 054h, 000h, 000h, 0ffh, 0dbh, 099h, 018h, 018h, 018h, 018h, 018h, 018h, 03ch
+    db  000h, 000h, 000h, 000h, 056h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch
+    db  018h, 000h, 000h, 000h, 000h, 057h, 000h, 000h, 0c3h, 0c3h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh
+    db  066h, 066h, 000h, 000h, 000h, 000h, 058h, 000h, 000h, 0c3h, 0c3h, 066h, 03ch, 018h, 018h, 03ch
+    db  066h, 0c3h, 0c3h, 000h, 000h, 000h, 000h, 059h, 000h, 000h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h
+    db  018h, 018h, 018h, 03ch, 000h, 000h, 000h, 000h, 05ah, 000h, 000h, 0ffh, 0c3h, 086h, 00ch, 018h
+    db  030h, 060h, 0c1h, 0c3h, 0ffh, 000h, 000h, 000h, 000h, 06dh, 000h, 000h, 000h, 000h, 000h, 0e6h
+    db  0ffh, 0dbh, 0dbh, 0dbh, 0dbh, 0dbh, 000h, 000h, 000h, 000h, 076h, 000h, 000h, 000h, 000h, 000h
+    db  0c3h, 0c3h, 0c3h, 0c3h, 066h, 03ch, 018h, 000h, 000h, 000h, 000h, 077h, 000h, 000h, 000h, 000h
+    db  000h, 0c3h, 0c3h, 0c3h, 0dbh, 0dbh, 0ffh, 066h, 000h, 000h, 000h, 000h, 078h, 000h, 000h, 000h
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 03ch, 066h, 0c3h, 000h, 000h, 000h, 000h, 091h, 000h, 000h
+    db  000h, 000h, 000h, 06eh, 03bh, 01bh, 07eh, 0d8h, 0dch, 077h, 000h, 000h, 000h, 000h, 09bh, 000h
+    db  018h, 018h, 07eh, 0c3h, 0c0h, 0c0h, 0c0h, 0c3h, 07eh, 018h, 018h, 000h, 000h, 000h, 000h, 09dh
+    db  000h, 000h, 0c3h, 066h, 03ch, 018h, 0ffh, 018h, 0ffh, 018h, 018h, 018h, 000h, 000h, 000h, 000h
+    db  09eh, 000h, 0fch, 066h, 066h, 07ch, 062h, 066h, 06fh, 066h, 066h, 066h, 0f3h, 000h, 000h, 000h
+    db  000h, 0abh, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 060h, 0ceh, 09bh, 006h, 00ch, 01fh
+    db  000h, 000h, 0ach, 000h, 0c0h, 0c0h, 0c2h, 0c6h, 0cch, 018h, 030h, 066h, 0ceh, 096h, 03eh, 006h
+    db  006h, 000h, 000h, 000h
+_vbebios_copyright:                          ; 0xc7c5e LB 0x15
+    db  'VirtualBox VESA BIOS', 000h
+_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
+    db  'Oracle Corporation', 000h
+_vbebios_product_name:                       ; 0xc7c86 LB 0x21
+    db  'Oracle VM VirtualBox VBE Adapter', 000h
+_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
+    db  'Oracle VM VirtualBox Version 5.0.51', 000h
+_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
+    db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
+_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
+    db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
+
+  ; Padding 0x1 bytes at 0xc7d1f
+    db  001h
+
+section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+
+section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+
+  ; Padding 0x2e0 bytes at 0xc7d20
+    db  000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 045h, 03ah, 05ch, 076h, 062h
+    db  06fh, 078h, 05ch, 073h, 076h, 06eh, 05ch, 074h, 072h, 075h, 06eh, 06bh, 05ch, 06fh, 075h, 074h
+    db  05ch, 077h, 069h, 06eh, 02eh, 061h, 06dh, 064h, 036h, 034h, 05ch, 072h, 065h, 06ch, 065h, 061h
+    db  073h, 065h, 05ch, 06fh, 062h, 06ah, 05ch, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h
+    db  06fh, 073h, 038h, 030h, 038h, 036h, 05ch, 056h, 042h, 06fh, 078h, 056h, 067h, 061h, 042h, 069h
+    db  06fh, 073h, 038h, 030h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 071h
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum	(revision 60422)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum	(revision 60422)
@@ -0,0 +1,1 @@
+7f2f52d90f55c26e73437db1a189c0ea *VBoxVgaBios8086.rom
Index: /trunk/src/VBox/Devices/Graphics/BIOS/inlines.h
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/inlines.h	(revision 60421)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/inlines.h	(revision 60422)
@@ -75,6 +75,8 @@
 #pragma aux rep_insw = ".286" "rep insw" parm [es di] [cx] [dx] value [es di] modify exact [cx di];
 
+#if VBOX_BIOS_CPU >= 80386
 char __far *rep_insd(char __far *buffer, unsigned ndwords, unsigned port);
-#pragma aux rep_insd = ".386" "rep insd" parm [es di] [cx] [dx] value [es di] modify exact [cx di];
+# pragma aux rep_insd = ".386" "rep insd" parm [es di] [cx] [dx] value [es di] modify exact [cx di];
+#endif
 
 char __far *rep_outsb(char __far *buffer, unsigned nbytes, unsigned port);
@@ -84,6 +86,8 @@
 #pragma aux rep_outsw = ".286" "rep outs dx,word ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
 
+#if VBOX_BIOS_CPU >= 80386
 char __far *rep_outsd(char __far *buffer, unsigned ndwords, unsigned port);
-#pragma aux rep_outsd = ".386" "rep outs dx,dword ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
+# pragma aux rep_outsd = ".386" "rep outs dx,dword ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
+#endif
 
 uint16_t __far swap_16(uint16_t val);
Index: /trunk/src/VBox/Devices/Graphics/BIOS/vberom.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/vberom.asm	(revision 60421)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/vberom.asm	(revision 60422)
@@ -38,4 +38,5 @@
 
 include vgadefs.inc
+include commondefs.inc
 
 public	_vga_compat_setup
@@ -56,5 +57,5 @@
 VGAROM  segment public 'CODE'
 
-.386
+SET_DEFAULT_CPU
 
 VBE_BYTEWISE_IO EQU 1
@@ -123,5 +124,11 @@
   jbe  get_bpp_noinc
   mov  ah, al
+if VBOX_BIOS_CPU gt 8086
   shr  ah, 3
+else
+  shr  ah, 1
+  shr  ah, 1
+  shr  ah, 1
+endif
   test al, 07
   jz   get_bpp_noinc
@@ -283,5 +290,11 @@
   shr  bx, 1
 set_width_svga:
+if VBOX_BIOS_CPU gt 8086
   shr  bx, 3
+else
+  shr  bx, 1
+  shr  bx, 1
+  shr  bx, 1
+endif
   mov  dx, VGAREG_VGA_CRTC_ADDRESS
   mov  ah, bl
@@ -342,5 +355,11 @@
   pop  ax
   push ax
+if VBOX_BIOS_CPU gt 8086
   shr  ax, 3
+else
+  shr  ax, 1
+  shr  ax, 1
+  shr  ax, 1
+endif
   dec  ax
   mov  ah, al
@@ -588,5 +607,11 @@
   or   bl, bl
   jnz  no_4bpp_1
+if VBOX_BIOS_CPU gt 8086
   shl  ax, 3
+else
+  shl  ax, 1
+  shl  ax, 1
+  shl  ax, 1
+endif
   mov  bl, 1
 no_4bpp_1:
@@ -604,5 +629,11 @@
   or   bl, bl
   jnz  no_4bpp_2
+if VBOX_BIOS_CPU gt 8086
   shr  ax, 3
+else
+  shr  ax, 1
+  shr  ax, 1
+  shr  ax, 1
+endif
   mov  bl, 1
 no_4bpp_2:
@@ -770,5 +801,5 @@
 endif
 set_palette_data:
-  pushad
+  DO_PUSHAD
   push  ds
   push  es
@@ -780,4 +811,5 @@
   mov   si, di
 set_pal_loop:
+if VBOX_BIOS_CPU ge 80386
   lodsd
   ror   eax, 16
@@ -787,7 +819,17 @@
   rol   eax, 8
   out   dx, al
+else
+  lodsw
+  mov   bx, ax
+  lodsw
+  out   dx, al
+  mov   al, bh
+  out   dx, al
+  mov   al, bl
+  out   dx, al
+endif
   loop  set_pal_loop
   pop   ds
-  popad
+  DO_POPAD
 vbe_09_ok:
   mov  ax, 004Fh
@@ -795,9 +837,10 @@
 
 get_palette_data:
-  pushad
+  DO_PUSHAD
   mov   al, dl
   mov   dx, VGAREG_DAC_READ_ADDRESS
   out   dx, al
   add   dl, 2
+if VBOX_BIOS_CPU ge 80386
 get_pal_loop:
   xor   eax, eax
@@ -808,6 +851,18 @@
   in    al, dx
   stosd
+else
+  xor   bx, bx
+get_pal_loop:
+  in    al, dx
+  mov   bl, al
+  in    al, dx
+  mov   ah, al
+  in    al, dx
+  stosw
+  mov   ax, bx
+  stosw
+endif
   loop  get_pal_loop
-  popad
+  DO_POPAD
   jmp   vbe_09_ok
 
Index: /trunk/src/VBox/Devices/Graphics/BIOS/vgarom.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/vgarom.asm	(revision 60421)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/vgarom.asm	(revision 60422)
@@ -34,4 +34,5 @@
 
 include vgadefs.inc
+include commondefs.inc
 
 public  vgabios_int10_handler
@@ -79,5 +80,5 @@
 ;;
 
-.286
+SET_DEFAULT_CPU_286
 
 vgabios_int10_handler:
@@ -86,9 +87,9 @@
   push es
   push ds
-  pusha
+  DO_PUSHA
   mov   bx, 0C000h
   mov   ds, bx
   call _int10_debugmsg
-  popa
+  DO_POPA
   pop ds
   pop es
@@ -199,5 +200,5 @@
   push es
   push ds
-  pusha
+  DO_PUSHA
 
 ;; We have to set ds to access the right data segment
@@ -206,5 +207,5 @@
   call _int10_func
 
-  popa
+  DO_POPA
   pop ds
   pop es
@@ -484,5 +485,11 @@
   and   al, 0F7h
   and   bl, 01
+if VBOX_BIOS_CPU gt 8086
   shl   bl, 3
+else
+  shl   bl, 1
+  shl   bl, 1
+  shl   bl, 1
+endif
   or    al, bl
   mov   dx, VGAREG_ACTL_ADDRESS
@@ -655,5 +662,15 @@
   jnz   set_dac_page
   and   al, 07Fh
+if VBOX_BIOS_CPU gt 8086
   shl   bh, 7
+else
+  shl   bh, 1
+  shl   bh, 1
+  shl   bh, 1
+  shl   bh, 1
+  shl   bh, 1
+  shl   bh, 1
+  shl   bh, 1
+endif
   or    al, bh
   mov   dx, VGAREG_ACTL_ADDRESS
@@ -670,5 +687,10 @@
   and   al, 80h
   jnz   set_dac_16_page
+if VBOX_BIOS_CPU gt 8086
   shl   bh, 2
+else
+  shl   bh, 1
+  shl   bh, 1
+endif
 set_dac_16_page:
   and   bh, 0Fh
@@ -778,5 +800,15 @@
   in    al, dx
   mov   bl, al
+if VBOX_BIOS_CPU gt 8086
   shr   bl, 7
+else
+  shr   bl, 1
+  shr   bl, 1
+  shr   bl, 1
+  shr   bl, 1
+  shr   bl, 1
+  shr   bl, 1
+  shr   bl, 1
+endif
   mov   dx, VGAREG_ACTL_RESET
   in    al, dx
@@ -790,5 +822,10 @@
   test  bl, 01
   jnz   get_dac_16_page
+if VBOX_BIOS_CPU gt 8086
   shr   bh, 2
+else
+  shr   bh, 1
+  shr   bh, 1
+endif
 get_dac_16_page:
   mov   dx, VGAREG_ACTL_RESET
@@ -923,5 +960,11 @@
   mov   dl, al
   and   dl, 01
+if VBOX_BIOS_CPU gt 8086
   shl   dl, 3
+else
+  shl   dl, 1
+  shl   dl, 1
+  shl   dl, 1
+endif
   mov   ax, BIOSMEM_SEG
   mov   ds, ax
Index: /trunk/src/VBox/Devices/Graphics/DevVGA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA.cpp	(revision 60421)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA.cpp	(revision 60422)
@@ -6447,6 +6447,27 @@
     if (pThis->pbVgaBios == NULL)
     {
-        pbVgaBiosBinary = g_abVgaBiosBinary;
-        cbVgaBiosBinary = g_cbVgaBiosBinary;
+        PVM pVM = PDMDevHlpGetVM(pDevIns);
+        CPUMMICROARCH enmMicroarch = pVM ? pVM->cpum.ro.GuestFeatures.enmMicroarch : kCpumMicroarch_Intel_P6;
+        if (   enmMicroarch == kCpumMicroarch_Intel_8086
+            || enmMicroarch == kCpumMicroarch_Intel_80186
+            || enmMicroarch == kCpumMicroarch_NEC_V20
+            || enmMicroarch == kCpumMicroarch_NEC_V30)
+        {
+            pbVgaBiosBinary = g_abVgaBiosBinary8086;
+            cbVgaBiosBinary = g_cbVgaBiosBinary8086;
+            LogRel(("VGA: Using the 8086 BIOS image!\n"));
+        }
+        else if (enmMicroarch == kCpumMicroarch_Intel_80286)
+        {
+            pbVgaBiosBinary = g_abVgaBiosBinary286;
+            cbVgaBiosBinary = g_cbVgaBiosBinary286;
+            LogRel(("VGA: Using the 286 BIOS image!\n"));
+        }
+        else
+        {
+            pbVgaBiosBinary = g_abVgaBiosBinary386;
+            cbVgaBiosBinary = g_cbVgaBiosBinary386;
+            LogRel(("VGA: Using the 386+ BIOS image.\n"));
+        }
         fFlags          = PGMPHYS_ROM_FLAGS_PERMANENT_BINARY;
     }
@@ -6457,6 +6478,6 @@
     }
 
-    AssertReleaseMsg(g_cbVgaBiosBinary <= _64K && g_cbVgaBiosBinary >= 32*_1K, ("g_cbVgaBiosBinary=%#x\n", g_cbVgaBiosBinary));
-    AssertReleaseMsg(RT_ALIGN_Z(g_cbVgaBiosBinary, PAGE_SIZE) == g_cbVgaBiosBinary, ("g_cbVgaBiosBinary=%#x\n", g_cbVgaBiosBinary));
+    AssertReleaseMsg(cbVgaBiosBinary <= _64K && cbVgaBiosBinary >= 32*_1K, ("cbVgaBiosBinary=%#x\n", cbVgaBiosBinary));
+    AssertReleaseMsg(RT_ALIGN_Z(cbVgaBiosBinary, PAGE_SIZE) == cbVgaBiosBinary, ("cbVgaBiosBinary=%#x\n", cbVgaBiosBinary));
     /* Note! Because of old saved states we'll always register at least 36KB of ROM. */
     rc = PDMDevHlpROMRegister(pDevIns, 0x000c0000, RT_MAX(cbVgaBiosBinary, 36*_1K), pbVgaBiosBinary, cbVgaBiosBinary,
Index: /trunk/src/VBox/Devices/PC/BIOS/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/Makefile.kmk	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/Makefile.kmk	(revision 60422)
@@ -25,12 +25,16 @@
  # VBoxPcBios - The PC BIOS.
  #
- MISCBINS += VBoxPcBios
- VBoxPcBios_TEMPLATE = VBoxBios
- VBoxPcBios_DEFS = \
+ MISCBINS += VBoxPcBios386
+ VBoxPcBios386_TEMPLATE = VBoxBios
+ VBoxPcBios386_BLD_TYPE = release
+ VBoxPcBios386_CFLAGS = -3
+ VBoxPcBios386_DEFS = \
  	VBOX_PC_BIOS \
  	VBOX_LANBOOT_SEG=0xE200 \
  	VBOX_WITH_SCSI \
- 	VBOX_WITH_AHCI
- VBoxPcBios_LDFLAGS = \
+ 	VBOX_WITH_AHCI \
+	VBOX_BIOS_CPU=80386
+ #VBoxPcBios386_DEFS.debug = DEBUG_ATA DEBUG_POST DEBUG_INT13
+ VBoxPcBios386_LDFLAGS = \
  	output raw offset=0xF0000 \
  	order \
@@ -41,5 +45,5 @@
  	  segment BIOS32  segaddr=0xF000 offset=0xDA00 \
  	  segment BIOSSEG segaddr=0xF000 offset=0xE000
- VBoxPcBios_SOURCES = \
+ VBoxPcBios386_SOURCES = \
  	post.c \
  	bios.c \
@@ -68,6 +72,7 @@
  	pcibio32.asm \
  	apm_pm.asm \
- 	$(VBoxPcBios32_1_TARGET) \
+ 	$(VBoxPcBios32_0_OUTDIR)/VBoxPcBios32.lib \
  	orgs.asm
+ #$(VBoxPcBios32_1_TARGET) - reference is lost when extending the target. weird.
 
  # For 32-bit C code in PC BIOS.
@@ -77,29 +82,53 @@
        pci32.c
 
+ MISCBINS += VBoxPcBios286
+ VBoxPcBios286_EXTENDS = VBoxPcBios386
+ VBoxPcBios286_CFLAGS  = -2
+ VBoxPcBios286_DEFS    = $(filter-out VBOX_BIOS_CPU=80386,$(VBoxPcBios386_DEFS)) VBOX_BIOS_CPU=80286
+
+ MISCBINS += VBoxPcBios8086
+ VBoxPcBios8086_EXTENDS = VBoxPcBios386
+ VBoxPcBios8086_CFLAGS  = -0
+ VBoxPcBios8086_DEFS    = $(filter-out VBOX_BIOS_CPU=80386,$(VBoxPcBios386_DEFS)) VBOX_BIOS_CPU=80186 ## @todo get it working as 8086!
+
+
  #
- # Updates the alternative source file.
+ # Updates the alternative source files.
  #
- update-pcbios-source +| $(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum: \
- 		$$(VBoxPcBios_1_TARGET) \
- 		$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
-		$(VBOX_VBOXCMP)
- if1of ($(KBUILD_TYPE), release)
-	$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
-		--bios-image $< \
-		--bios-map $(basename $<).map \
-		--bios-sym $(basename $<).sym \
-		--bios-type system \
-		--output $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm
-	$(QUIET)yasm -f bin -o $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm
-	$(VBOX_VBOXCMP) $< $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin
-	$(CP) --changed -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
-	$(REDIRECT) -C $(dir $(VBoxPcBios_1_TARGET)) -- \
-		$(MD5SUM_EXT) -bo $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum $(notdir $(VBoxPcBios_1_TARGET))
-	$(CP) --changed -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum $(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
-	$(RM) -f -- $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.md5sum
- else
-	$(QUIET)$(ECHO) "Fatal error: Can only update VBoxBiosAlternative.asm/md5sum with a release build."
-	$(QUIET)exit 1
- endif
+ define def_VBoxPcBiosUpdateAltSource
+
+  $$(PATH_SUB_CURRENT)/VBoxBiosAlternative$(1).asm +| $$(PATH_SUB_CURRENT)/VBoxBiosAlternative$(1).md5sum: \
+  		$$$$(VBoxPcBios$(1)_1_TARGET) \
+  		$$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
+  		$$(VBOX_VBOXCMP)
+  if1of ($(KBUILD_TYPE), release)
+	$$(VBOX_MAKE_ALTERNATIVE_SOURCE) \
+       	--bios-image $$< \
+       	--bios-map $$(basename $$<).map \
+       	--bios-sym $$(basename $$<).sym \
+       	--bios-type system \
+       	--output $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).asm
+	$$(QUIET)yasm -f bin -o $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).bin $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).asm
+	$$(VBOX_VBOXCMP) $$< $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).bin
+	$$(CP) --changed -- $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).asm $$(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative$(1).asm
+	$$(REDIRECT) -C $$(dir $$(VBoxPcBios$(1)_1_TARGET)) -- \
+       	$$(MD5SUM_EXT) -bo $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).md5sum $$(notdir $$(VBoxPcBios$(1)_1_TARGET))
+	$$(CP) --changed -- $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).md5sum $$(PATH_ROOT)/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative$(1).md5sum
+	$$(RM) -f -- $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).asm $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative.bin $$(VBoxPcBios$(1)_0_OUTDIR)/VBoxBiosAlternative$(1).md5sum
+  else
+	$$(QUIET)$$(ECHO) "Fatal error: Can only update VBoxBiosAlternative$(1).asm/md5sum with a release build."
+	$$(QUIET)exit 1
+  endif
+
+ endef
+
+ $(evalcall2 def_VBoxPcBiosUpdateAltSource,386)
+ $(evalcall2 def_VBoxPcBiosUpdateAltSource,286)
+ $(evalcall2 def_VBoxPcBiosUpdateAltSource,8086)
+
+ update-pcbios-source: \
+ 	$(PATH_SUB_CURRENT)/VBoxBiosAlternative386.asm \
+ 	$(PATH_SUB_CURRENT)/VBoxBiosAlternative286.asm \
+ 	$(PATH_SUB_CURRENT)/VBoxBiosAlternative8086.asm
 
 endif # VBOX_WITH_OPEN_WATCOM
@@ -112,25 +141,32 @@
 PcBiosBin_TEMPLATE  = VBOXR3
 PcBiosBin_DEFS      = IN_VBOXDD2
-PcBiosBin_SOURCES   = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
-PcBiosBin_CLEAN     = $(PcBiosBin_0_OUTDIR)/PcBiosBin.c
 
-ifdef VBOX_WITH_OPEN_WATCOM
- $$(PcBiosBin_0_OUTDIR)/PcBiosBin.c: $$(VBoxPcBios_1_TARGET) $(VBOX_BIN2C) | $$(dir $$@)
-	$(call MSG_TOOL,bin2c,PcBiosBin,$<,$@)
-	$(QUIET)$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary $< $@
-else
- PcBiosBin_CLEAN    += $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom
+define def_VBoxPcBiosBin
+ PcBiosBin_CLEAN   += $$(PcBiosBin_0_OUTDIR)/PcBiosBin$(1).c
+ PcBiosBin_SOURCES += $$(PcBiosBin_0_OUTDIR)/PcBiosBin$(1).c
 
- $$(PcBiosBin_0_OUTDIR)/PcBiosBin.c + $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom: \
-		$(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm \
-		$(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum \
-		$(VBOX_BIN2C) | $$(dir $$@)
-	$(call MSG_TOOL,bin2c,PcBiosBin,$<,$@)
-	$(QUIET)yasm -f bin -o $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $<
-	$(QUIET)$(REDIRECT) -C $(PcBiosBin_0_OUTDIR) -- \
-		$(MD5SUM_EXT) -c $(basename $<).md5sum
-	$(QUIET)$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary $(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $@
-	$(QUIET)$(RM) -f -- $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom
-endif
+ ifdef VBOX_WITH_OPEN_WATCOM
+  $$$$(PcBiosBin_0_OUTDIR)/PcBiosBin$(1).c: $$$$(VBoxPcBios$(1)_1_TARGET) $$(VBOX_BIN2C) | $$$$(dir $$$$@)
+	$$(call MSG_TOOL,bin2c,PcBiosBin,$$<,$$@)
+	$$(QUIET)$$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary$(1) $$< $$@
+ else
+  PcBiosBin_CLEAN    += $(PcBiosBin_0_OUTDIR)/VBoxPcBios$(1).rom
+
+  $$$$(PcBiosBin_0_OUTDIR)/PcBiosBin$(1).c + $$$$(PcBiosBin_0_OUTDIR)/VBoxPcBios$(1).rom: \
+		$$(PATH_SUB_CURRENT)/VBoxBiosAlternative$(1).asm \
+		$$(PATH_SUB_CURRENT)/VBoxBiosAlternative$(1).md5sum \
+		$$(VBOX_BIN2C) | $$$$(dir $$$$@)
+	$$(call MSG_TOOL,bin2c,PcBiosBin,$$<,$$@)
+	$$(QUIET)yasm -f bin -o $$(PcBiosBin_0_OUTDIR)/VBoxPcBios.rom $$<
+	$$(QUIET)$$(REDIRECT) -C $$(PcBiosBin_0_OUTDIR) -- \
+		$$(MD5SUM_EXT) -c $$(basename $$<).md5sum
+	$$(QUIET)$$(VBOX_BIN2C) -min 64 -max 256 -mask 0xffff -ascii -export PcBiosBinary$(1) $$(PcBiosBin_0_OUTDIR)/VBoxPcBios$(1).rom $@
+	$$(QUIET)$$(RM) -f -- $$$$(PcBiosBin_0_OUTDIR)/VBoxPcBios$(1).rom
+ endif
+endef
+$(evalcall2 def_VBoxPcBiosBin,386)
+$(evalcall2 def_VBoxPcBiosBin,286)
+$(evalcall2 def_VBoxPcBiosBin,8086)
+
 
 
@@ -141,5 +177,8 @@
  INSTALLS += VBoxPcBiosSym
  VBoxPcBiosSym_TEMPLATE = VBoxDbgSyms
- VBoxPcBiosSym_SOURCES = $(basename $(VBoxPcBios_1_TARGET)).sym
+ VBoxPcBiosSym_SOURCES = \
+ 	$(basename $(VBoxPcBios386_1_TARGET)).sym \
+ 	$(basename $(VBoxPcBios286_1_TARGET)).sym \
+ 	$(basename $(VBoxPcBios8086_1_TARGET)).sym
 endif
 
Index: unk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm	(revision 60421)
+++ 	(revision )
@@ -1,16956 +1,0 @@
-; $Id$ 
-;; @file
-; Auto Generated source file. Do not edit.
-;
-
-;
-; Source file: post.c
-;
-;  BIOS POST routines. Used only during initialization.
-;  
-;  
-;  
-;  Copyright (C) 2004-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: bios.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: print.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: ata.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: floppy.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: floppyt.c
-;
-;  $Id$
-;  Floppy drive tables.
-;  
-;  
-;  
-;  Copyright (C) 2011-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: eltorito.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: boot.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: keyboard.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: disk.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: serial.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: system.c
-;
-;  
-;  Copyright (C) 2006-2016 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: invop.c
-;
-;  $Id$
-;  Real mode invalid opcode handler.
-;  
-;  
-;  
-;  Copyright (C) 2013-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: timepci.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: ps2mouse.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: parallel.c
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-
-;
-; Source file: logo.c
-;
-;  $Id$
-;  Stuff for drawing the BIOS logo.
-;  
-;  
-;  
-;  Copyright (C) 2004-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: scsi.c
-;
-;  $Id$
-;  SCSI host adapter driver to boot from SCSI disks
-;  
-;  
-;  
-;  Copyright (C) 2004-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: ahci.c
-;
-;  $Id$
-;  AHCI host adapter driver to boot from SATA disks.
-;  
-;  
-;  
-;  Copyright (C) 2011-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: apm.c
-;
-;  $Id$
-;  APM BIOS support. Implements APM version 1.2.
-;  
-;  
-;  
-;  Copyright (C) 2004-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: pcibios.c
-;
-;  $Id$
-;  PCI BIOS support.
-;  
-;  
-;  
-;  Copyright (C) 2004-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: pciutil.c
-;
-;  Utility routines for calling the PCI BIOS.
-;  
-;  
-;  
-;  Copyright (C) 2011-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: vds.c
-;
-;  Utility routines for calling the Virtual DMA Services.
-;  
-;  
-;  
-;  Copyright (C) 2011-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-;
-; Source file: support.asm
-;
-;  $Id$
-;  Compiler support routines.
-;  
-;  
-;  
-;  Copyright (C) 2012-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  
-
-;
-; Source file: pcibio32.asm
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  
-;  --------------------------------------------------------------------
-
-;
-; Source file: apm_pm.asm
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  
-;  --------------------------------------------------------------------
-;  
-;  Protected-mode APM implementation.
-;  
-
-;
-; Source file: orgs.asm
-;
-;  
-;  Copyright (C) 2006-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-;  --------------------------------------------------------------------
-;  
-;  This code is based on:
-;  
-;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
-;  
-;   Copyright (C) 2002  MandrakeSoft S.A.
-;  
-;     MandrakeSoft S.A.
-;     43, rue d'Aboukir
-;     75002 Paris - France
-;     http://www.linux-mandrake.com/
-;     http://www.mandrakesoft.com/
-;  
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Lesser General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-;  
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Lesser General Public License for more details.
-;  
-;   You should have received a copy of the GNU Lesser General Public
-;   License along with this library; if not, write to the Free Software
-;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
-;  
-;  
-
-;
-; Source file: pci32.c
-;
-;  $Id$
-;  32-bit PCI BIOS wrapper.
-;  
-;  
-;  
-;  Copyright (C) 2004-2015 Oracle Corporation
-;  
-;  This file is part of VirtualBox Open Source Edition (OSE), as
-;  available from http://www.virtualbox.org. This file is free software;
-;  you can redistribute it and/or modify it under the terms of the GNU
-;  General Public License (GPL) as published by the Free Software
-;  Foundation, in version 2 as it comes in the "COPYING" file of the
-;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-
-
-
-
-section _DATA progbits vstart=0x0 align=1 ; size=0xb0 class=DATA group=DGROUP
-_fd_parm:                                    ; 0xf0000 LB 0x5b
-    db  0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 080h, 0dfh, 002h, 025h
-    db  002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 040h, 0dfh, 002h, 025h, 002h, 00fh, 01bh
-    db  0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 000h, 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h
-    db  00fh, 008h, 04fh, 080h, 0afh, 002h, 025h, 002h, 012h, 01bh, 0ffh, 06ch, 0f6h, 00fh, 008h, 04fh
-    db  000h, 0afh, 002h, 025h, 002h, 024h, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 0c0h, 0afh, 002h
-    db  025h, 002h, 0ffh, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 0ffh, 000h
-_fd_map:                                     ; 0xf005b LB 0xf
-    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
-_pktacc:                                     ; 0xf006a LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 064h, 02bh, 025h, 080h, 04ch, 08fh
-_softrst:                                    ; 0xf0076 LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 029h, 03bh, 029h, 03bh
-_dskacc:                                     ; 0xf0082 LB 0x2e
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 054h, 02ah, 009h, 02bh, 000h, 000h, 000h, 000h
-    db  06fh, 07eh, 04ah, 07fh, 022h, 08eh, 0c8h, 08eh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
-    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
-
-section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
-    db   'NMI Handler called', 00ah, 000h
-    db   'INT18: BOOT FAILURE', 00ah, 000h
-    db   '%s', 00ah, 000h, 000h
-    db   'FATAL: ', 000h
-    db   'bios_printf: unknown %ll format', 00ah, 000h
-    db   'bios_printf: unknown format', 00ah, 000h
-    db   'ata-detect: Failed to detect ATA device', 00ah, 000h
-    db   'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h
-    db   'ata-detect: Failed to detect ATAPI device', 00ah, 000h
-    db   ' slave', 000h
-    db   'master', 000h
-    db   'ata%d %s: ', 000h
-    db   '%c', 000h
-    db   ' ATA-%d Hard-Disk (%lu MBytes)', 00ah, 000h
-    db   ' ATAPI-%d CD-ROM/DVD-ROM', 00ah, 000h
-    db   ' ATAPI-%d Device', 00ah, 000h
-    db   'ata%d %s: Unknown device', 00ah, 000h
-    db   'ata_cmd_packet', 000h
-    db   '%s: DATA_OUT not supported yet', 00ah, 000h
-    db   'set_diskette_current_cyl: drive > 1', 00ah, 000h
-    db   'int13_diskette_function', 000h
-    db   '%s: drive>1 || head>1 ...', 00ah, 000h
-    db   '%s: ctrl not ready', 00ah, 000h
-    db   '%s: write error', 00ah, 000h
-    db   '%s: bad floppy type', 00ah, 000h
-    db   '%s: unsupported AH=%02x', 00ah, 000h, 000h
-    db   'int13_eltorito', 000h
-    db   '%s: call with AX=%04x not implemented.', 00ah, 000h
-    db   '%s: unsupported AH=%02x', 00ah, 000h
-    db   'int13_cdemu', 000h
-    db   '%s: function %02x, emulation not active for DL= %02x', 00ah, 000h
-    db   '%s: function %02x, error %02x !', 00ah, 000h
-    db   '%s: function AH=%02x unsupported, returns fail', 00ah, 000h
-    db   'int13_cdrom', 000h
-    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
-    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
-    db   '%s: function %02x. Can', 027h, 't use 64bits lba', 00ah, 000h
-    db   '%s: function %02x, status %02x !', 00ah, 000h, 000h
-    db   'Booting from %s...', 00ah, 000h
-    db   'Boot from %s failed', 00ah, 000h
-    db   'Boot from %s %d failed', 00ah, 000h
-    db   'No bootable medium found! System halted.', 00ah, 000h
-    db   'Could not read from the boot medium! System halted.', 00ah, 000h
-    db   'CDROM boot failure code : %04x', 00ah, 000h
-    db   'Boot : bseqnr=%d, bootseq=%x', 00dh, 00ah, 000h, 000h
-    db   'Keyboard error:%u', 00ah, 000h
-    db   'KBD: int09 handler: AL=0', 00ah, 000h
-    db   'KBD: int09h_handler(): unknown scancode read: 0x%02x!', 00ah, 000h
-    db   'KBD: int09h_handler(): scancode & asciicode are zero?', 00ah, 000h
-    db   'KBD: int16h: out of keyboard input', 00ah, 000h
-    db   'KBD: unsupported int 16h function %02x', 00ah, 000h
-    db   'AX=%04x BX=%04x CX=%04x DX=%04x ', 00ah, 000h, 000h
-    db   'int13_harddisk', 000h
-    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
-    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
-    db   '%s: function %02x, count out of range!', 00ah, 000h
-    db   '%s: function %02x, disk %02x, parameters out of range %04x/%04x/%04x!', 00ah
-    db   000h
-    db   '%s: function %02x, error %02x !', 00ah, 000h
-    db   'format disk track called', 00ah, 000h
-    db   '%s: function %02xh unimplemented, returns success', 00ah, 000h
-    db   '%s: function %02xh unsupported, returns fail', 00ah, 000h
-    db   'int13_harddisk_ext', 000h
-    db   '%s: function %02x. LBA out of range', 00ah, 000h, 000h
-    db   'int15: Func 24h, subfunc %02xh, A20 gate control not supported', 00ah, 000h
-    db   '*** int 15h function AH=bf not yet supported!', 00ah, 000h
-    db   'EISA BIOS not present', 00ah, 000h
-    db   '*** int 15h function AX=%04x, BX=%04x not yet supported!', 00ah, 000h
-    db   'sendmouse', 000h
-    db   'setkbdcomm', 000h
-    db   'Mouse reset returned %02x (should be ack)', 00ah, 000h
-    db   'Mouse status returned %02x (should be ack)', 00ah, 000h
-    db   'INT 15h C2 AL=6, BH=%02x', 00ah, 000h
-    db   'INT 15h C2 default case entered', 00ah, 000h, 000h
-    db   'Key pressed: %x', 00ah, 000h
-    db   00ah, 00ah, '  AHCI controller:', 000h
-    db   00ah, '    %d) Hard disk', 000h
-    db   00ah, 00ah, '  SCSI controller:', 000h
-    db   '  IDE controller:', 000h
-    db   00ah, 00ah, 'AHCI controller:', 00ah, 000h
-    db   00ah, '    %d) ', 000h
-    db   'Secondary ', 000h
-    db   'Primary ', 000h
-    db   'Slave', 000h
-    db   'Master', 000h
-    db   'No hard disks found', 000h
-    db   00ah, 000h
-    db   'Press F12 to select boot device.', 00ah, 000h
-    db   00ah, 'VirtualBox temporary boot device selection', 00ah, 00ah, 'Detected H'
-    db   'ard disks:', 00ah, 00ah, 000h
-    db   00ah, 'Other boot devices:', 00ah, ' f) Floppy', 00ah, ' c) CD-ROM', 00ah
-    db   ' l) LAN', 00ah, 00ah, ' b) Continue booting', 00ah, 000h
-    db   'Delaying boot for %d seconds:', 000h
-    db   ' %d', 000h, 000h
-    db   'scsi_read_sectors', 000h
-    db   '%s: device_id out of range %d', 00ah, 000h
-    db   'scsi_write_sectors', 000h
-    db   'scsi_cmd_packet', 000h
-    db   '%s: DATA_OUT not supported yet', 00ah, 000h
-    db   'scsi_enumerate_attached_devices', 000h
-    db   '%s: SCSI_INQUIRY failed', 00ah, 000h
-    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
-    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
-    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
-    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
-    db   'ahci_read_sectors', 000h
-    db   '%s: device_id out of range %d', 00ah, 000h
-    db   'ahci_write_sectors', 000h
-    db   'ahci_cmd_packet', 000h
-    db   '%s: DATA_OUT not supported yet', 00ah, 000h
-    db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u 0x%llx sectors', 00ah, 000h
-    db   'Standby', 000h
-    db   'Suspend', 000h
-    db   'Shutdown', 000h
-    db   'APM: Unsupported function AX=%04X BX=%04X called', 00ah, 000h, 000h
-    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
-
-section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
-    db  'VirtualBox 5.0.51', 000h
-_bios_prefix_string:                         ; 0xf0da0 LB 0x8
-    db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0da8 LB 0x6
-    db  'CD001', 000h
-_eltorito:                                   ; 0xf0dae LB 0x18
-    db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0dc6 LB 0x28
-    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
-    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
-    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
-    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
-    db  040h, 003h, 000h, 003h, 000h, 079h, 000h, 000h, 033h, 004h, 023h, 004h, 000h, 000h, 000h, 07ah
-    db  000h, 000h, 034h, 005h, 024h, 005h, 000h, 000h, 000h, 07bh, 000h, 000h, 035h, 006h, 025h, 006h
-    db  000h, 000h, 000h, 07ch, 000h, 000h, 036h, 007h, 05eh, 007h, 01eh, 007h, 000h, 07dh, 000h, 000h
-    db  037h, 008h, 026h, 008h, 000h, 000h, 000h, 07eh, 000h, 000h, 038h, 009h, 02ah, 009h, 000h, 000h
-    db  000h, 07fh, 000h, 000h, 039h, 00ah, 028h, 00ah, 000h, 000h, 000h, 080h, 000h, 000h, 030h, 00bh
-    db  029h, 00bh, 000h, 000h, 000h, 081h, 000h, 000h, 02dh, 00ch, 05fh, 00ch, 01fh, 00ch, 000h, 082h
-    db  000h, 000h, 03dh, 00dh, 02bh, 00dh, 000h, 000h, 000h, 083h, 000h, 000h, 008h, 00eh, 008h, 00eh
-    db  07fh, 00eh, 000h, 000h, 000h, 000h, 009h, 00fh, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h
-    db  071h, 010h, 051h, 010h, 011h, 010h, 000h, 010h, 040h, 000h, 077h, 011h, 057h, 011h, 017h, 011h
-    db  000h, 011h, 040h, 000h, 065h, 012h, 045h, 012h, 005h, 012h, 000h, 012h, 040h, 000h, 072h, 013h
-    db  052h, 013h, 012h, 013h, 000h, 013h, 040h, 000h, 074h, 014h, 054h, 014h, 014h, 014h, 000h, 014h
-    db  040h, 000h, 079h, 015h, 059h, 015h, 019h, 015h, 000h, 015h, 040h, 000h, 075h, 016h, 055h, 016h
-    db  015h, 016h, 000h, 016h, 040h, 000h, 069h, 017h, 049h, 017h, 009h, 017h, 000h, 017h, 040h, 000h
-    db  06fh, 018h, 04fh, 018h, 00fh, 018h, 000h, 018h, 040h, 000h, 070h, 019h, 050h, 019h, 010h, 019h
-    db  000h, 019h, 040h, 000h, 05bh, 01ah, 07bh, 01ah, 01bh, 01ah, 000h, 000h, 000h, 000h, 05dh, 01bh
-    db  07dh, 01bh, 01dh, 01bh, 000h, 000h, 000h, 000h, 00dh, 01ch, 00dh, 01ch, 00ah, 01ch, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 061h, 01eh, 041h, 01eh
-    db  001h, 01eh, 000h, 01eh, 040h, 000h, 073h, 01fh, 053h, 01fh, 013h, 01fh, 000h, 01fh, 040h, 000h
-    db  064h, 020h, 044h, 020h, 004h, 020h, 000h, 020h, 040h, 000h, 066h, 021h, 046h, 021h, 006h, 021h
-    db  000h, 021h, 040h, 000h, 067h, 022h, 047h, 022h, 007h, 022h, 000h, 022h, 040h, 000h, 068h, 023h
-    db  048h, 023h, 008h, 023h, 000h, 023h, 040h, 000h, 06ah, 024h, 04ah, 024h, 00ah, 024h, 000h, 024h
-    db  040h, 000h, 06bh, 025h, 04bh, 025h, 00bh, 025h, 000h, 025h, 040h, 000h, 06ch, 026h, 04ch, 026h
-    db  00ch, 026h, 000h, 026h, 040h, 000h, 03bh, 027h, 03ah, 027h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  027h, 028h, 022h, 028h, 000h, 000h, 000h, 000h, 000h, 000h, 060h, 029h, 07eh, 029h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 02bh
-    db  07ch, 02bh, 01ch, 02bh, 000h, 000h, 000h, 000h, 07ah, 02ch, 05ah, 02ch, 01ah, 02ch, 000h, 02ch
-    db  040h, 000h, 078h, 02dh, 058h, 02dh, 018h, 02dh, 000h, 02dh, 040h, 000h, 063h, 02eh, 043h, 02eh
-    db  003h, 02eh, 000h, 02eh, 040h, 000h, 076h, 02fh, 056h, 02fh, 016h, 02fh, 000h, 02fh, 040h, 000h
-    db  062h, 030h, 042h, 030h, 002h, 030h, 000h, 030h, 040h, 000h, 06eh, 031h, 04eh, 031h, 00eh, 031h
-    db  000h, 031h, 040h, 000h, 06dh, 032h, 04dh, 032h, 00dh, 032h, 000h, 032h, 040h, 000h, 02ch, 033h
-    db  03ch, 033h, 000h, 000h, 000h, 000h, 000h, 000h, 02eh, 034h, 03eh, 034h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 02fh, 035h, 03fh, 035h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 037h, 02ah, 037h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 020h, 039h, 020h, 039h, 020h, 039h
-    db  020h, 039h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03bh
-    db  000h, 054h, 000h, 05eh, 000h, 068h, 000h, 000h, 000h, 03ch, 000h, 055h, 000h, 05fh, 000h, 069h
-    db  000h, 000h, 000h, 03dh, 000h, 056h, 000h, 060h, 000h, 06ah, 000h, 000h, 000h, 03eh, 000h, 057h
-    db  000h, 061h, 000h, 06bh, 000h, 000h, 000h, 03fh, 000h, 058h, 000h, 062h, 000h, 06ch, 000h, 000h
-    db  000h, 040h, 000h, 059h, 000h, 063h, 000h, 06dh, 000h, 000h, 000h, 041h, 000h, 05ah, 000h, 064h
-    db  000h, 06eh, 000h, 000h, 000h, 042h, 000h, 05bh, 000h, 065h, 000h, 06fh, 000h, 000h, 000h, 043h
-    db  000h, 05ch, 000h, 066h, 000h, 070h, 000h, 000h, 000h, 044h, 000h, 05dh, 000h, 067h, 000h, 071h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 047h, 037h, 047h, 000h, 077h, 000h, 000h, 020h, 000h
-    db  000h, 048h, 038h, 048h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 049h, 039h, 049h, 000h, 084h
-    db  000h, 000h, 020h, 000h, 02dh, 04ah, 02dh, 04ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04bh
-    db  034h, 04bh, 000h, 073h, 000h, 000h, 020h, 000h, 000h, 04ch, 035h, 04ch, 000h, 000h, 000h, 000h
-    db  020h, 000h, 000h, 04dh, 036h, 04dh, 000h, 074h, 000h, 000h, 020h, 000h, 02bh, 04eh, 02bh, 04eh
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 04fh, 031h, 04fh, 000h, 075h, 000h, 000h, 020h, 000h
-    db  000h, 050h, 032h, 050h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 051h, 033h, 051h, 000h, 076h
-    db  000h, 000h, 020h, 000h, 000h, 052h, 030h, 052h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 053h
-    db  02eh, 053h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 056h, 07ch, 056h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
-    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
-_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
-    db  '%s: keyboard input buffer full', 00ah, 000h
-
-  ; Padding 0x478 bytes at 0xf1188
-  times 1144 db 0
-
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x88e5 class=CODE group=AUTO
-rom_scan_:                                   ; 0xf1600 LB 0x50
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov bx, ax                                ; 89 c3
-    mov cx, dx                                ; 89 d1
-    cmp bx, cx                                ; 39 cb
-    jnc short 01648h                          ; 73 38
-    xor si, si                                ; 31 f6
-    mov dx, bx                                ; 89 da
-    mov es, bx                                ; 8e c3
-    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 01642h                          ; 75 25
-    mov word [bp-008h], bx                    ; 89 5e f8
-    mov word [bp-00ah], strict word 00003h    ; c7 46 f6 03 00
-    call far [bp-00ah]                        ; ff 5e f6
-    cli                                       ; fa
-    mov es, bx                                ; 8e c3
-    mov al, byte [es:si+002h]                 ; 26 8a 44 02
-    add AL, strict byte 003h                  ; 04 03
-    and AL, strict byte 0fch                  ; 24 fc
-    xor ah, ah                                ; 30 e4
-    cwd                                       ; 99
-    sal dx, 002h                              ; c1 e2 02
-    db  01bh, 0c2h
-    ; sbb ax, dx                                ; 1b c2
-    sar ax, 002h                              ; c1 f8 02
-    add bx, ax                                ; 01 c3
-    jmp short 0160ch                          ; eb ca
-    add bx, 00080h                            ; 81 c3 80 00
-    jmp short 0160ch                          ; eb c4
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-read_byte_:                                  ; 0xf1650 LB 0xe
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, dx                                ; 89 d3
-    mov es, ax                                ; 8e c0
-    mov al, byte [es:bx]                      ; 26 8a 07
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-write_byte_:                                 ; 0xf165e LB 0xe
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, dx                                ; 89 d6
-    mov es, ax                                ; 8e c0
-    mov byte [es:si], bl                      ; 26 88 1c
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn                                      ; c3
-read_word_:                                  ; 0xf166c LB 0xe
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, dx                                ; 89 d3
-    mov es, ax                                ; 8e c0
-    mov ax, word [es:bx]                      ; 26 8b 07
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-write_word_:                                 ; 0xf167a LB 0xe
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, dx                                ; 89 d6
-    mov es, ax                                ; 8e c0
-    mov word [es:si], bx                      ; 26 89 1c
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn                                      ; c3
-read_dword_:                                 ; 0xf1688 LB 0x12
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, dx                                ; 89 d3
-    mov es, ax                                ; 8e c0
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-write_dword_:                                ; 0xf169a LB 0x12
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, dx                                ; 89 d6
-    mov es, ax                                ; 8e c0
-    mov word [es:si], bx                      ; 26 89 1c
-    mov word [es:si+002h], cx                 ; 26 89 4c 02
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn                                      ; c3
-inb_cmos_:                                   ; 0xf16ac LB 0x1d
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov AH, strict byte 070h                  ; b4 70
-    cmp AL, strict byte 080h                  ; 3c 80
-    jc short 016b8h                           ; 72 02
-    mov AH, strict byte 072h                  ; b4 72
-    movzx dx, ah                              ; 0f b6 d4
-    out DX, AL                                ; ee
-    movzx dx, ah                              ; 0f b6 d4
-    inc dx                                    ; 42
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-outb_cmos_:                                  ; 0xf16c9 LB 0x1f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    mov ah, dl                                ; 88 d4
-    mov BL, strict byte 070h                  ; b3 70
-    cmp AL, strict byte 080h                  ; 3c 80
-    jc short 016d7h                           ; 72 02
-    mov BL, strict byte 072h                  ; b3 72
-    movzx dx, bl                              ; 0f b6 d3
-    out DX, AL                                ; ee
-    movzx dx, bl                              ; 0f b6 d3
-    inc dx                                    ; 42
-    mov al, ah                                ; 88 e0
-    out DX, AL                                ; ee
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_dummy_isr_function:                         ; 0xf16e8 LB 0x6b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push ax                                   ; 50
-    mov CL, strict byte 0ffh                  ; b1 ff
-    mov AL, strict byte 00bh                  ; b0 0b
-    mov dx, strict word 00020h                ; ba 20 00
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    mov byte [bp-002h], al                    ; 88 46 fe
-    test al, al                               ; 84 c0
-    je short 01743h                           ; 74 43
-    mov AL, strict byte 00bh                  ; b0 0b
-    mov dx, 000a0h                            ; ba a0 00
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    test al, al                               ; 84 c0
-    je short 01725h                           ; 74 16
-    mov dx, 000a1h                            ; ba a1 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    xor ah, ah                                ; 30 e4
-    movzx bx, cl                              ; 0f b6 d9
-    or ax, bx                                 ; 09 d8
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    mov dx, 000a0h                            ; ba a0 00
-    out DX, AL                                ; ee
-    jmp short 0173ah                          ; eb 15
-    mov dx, strict word 00021h                ; ba 21 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and bl, 0fbh                              ; 80 e3 fb
-    mov byte [bp-002h], bl                    ; 88 5e fe
-    xor ah, ah                                ; 30 e4
-    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
-    or ax, bx                                 ; 09 d8
-    out DX, AL                                ; ee
-    mov AL, strict byte 020h                  ; b0 20
-    mov dx, strict word 00020h                ; ba 20 00
-    out DX, AL                                ; ee
-    mov cl, byte [bp-002h]                    ; 8a 4e fe
-    movzx bx, cl                              ; 0f b6 d9
-    mov dx, strict word 0006bh                ; ba 6b 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 0f ff
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_nmi_handler_msg:                            ; 0xf1753 LB 0x12
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push 000b0h                               ; 68 b0 00
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 14 02
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int18_panic_msg:                            ; 0xf1765 LB 0x12
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push 000c4h                               ; 68 c4 00
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 02 02
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_log_bios_start:                             ; 0xf1777 LB 0x20
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 ac 01
-    push 00d8eh                               ; 68 8e 0d
-    push 000d9h                               ; 68 d9 00
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e2 01
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_print_bios_banner:                          ; 0xf1797 LB 0x2e
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dx, strict word 00072h                ; ba 72 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 c9 fe
-    mov cx, ax                                ; 89 c1
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00072h                ; ba 72 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 ca fe
-    cmp cx, 01234h                            ; 81 f9 34 12
-    jne short 017beh                          ; 75 08
-    mov AL, strict byte 003h                  ; b0 03
-    mov AH, strict byte 000h                  ; b4 00
-    int 010h                                  ; cd 10
-    jmp short 017c1h                          ; eb 03
-    call 07a3ah                               ; e8 79 62
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-send_:                                       ; 0xf17c5 LB 0x3b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    mov bx, ax                                ; 89 c3
-    mov cl, dl                                ; 88 d1
-    test AL, strict byte 008h                 ; a8 08
-    je short 017d8h                           ; 74 06
-    mov al, dl                                ; 88 d0
-    mov dx, 00403h                            ; ba 03 04
-    out DX, AL                                ; ee
-    test bl, 004h                             ; f6 c3 04
-    je short 017e3h                           ; 74 06
-    mov al, cl                                ; 88 c8
-    mov dx, 00504h                            ; ba 04 05
-    out DX, AL                                ; ee
-    test bl, 002h                             ; f6 c3 02
-    je short 017f9h                           ; 74 11
-    cmp cl, 00ah                              ; 80 f9 0a
-    jne short 017f3h                          ; 75 06
-    mov AL, strict byte 00dh                  ; b0 0d
-    mov AH, strict byte 00eh                  ; b4 0e
-    int 010h                                  ; cd 10
-    mov al, cl                                ; 88 c8
-    mov AH, strict byte 00eh                  ; b4 0e
-    int 010h                                  ; cd 10
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-put_int_:                                    ; 0xf1800 LB 0x5f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov si, ax                                ; 89 c6
-    mov word [bp-008h], dx                    ; 89 56 f8
-    mov di, strict word 0000ah                ; bf 0a 00
-    mov ax, dx                                ; 89 d0
-    cwd                                       ; 99
-    idiv di                                   ; f7 ff
-    mov word [bp-006h], ax                    ; 89 46 fa
-    test ax, ax                               ; 85 c0
-    je short 01825h                           ; 74 0a
-    dec bx                                    ; 4b
-    mov dx, ax                                ; 89 c2
-    mov ax, si                                ; 89 f0
-    call 01800h                               ; e8 dd ff
-    jmp short 01840h                          ; eb 1b
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jle short 01834h                          ; 7e 0a
-    mov dx, strict word 00020h                ; ba 20 00
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 93 ff
-    jmp short 01825h                          ; eb f1
-    test cx, cx                               ; 85 c9
-    je short 01840h                           ; 74 08
-    mov dx, strict word 0002dh                ; ba 2d 00
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 85 ff
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov DL, strict byte 00ah                  ; b2 0a
-    mul dl                                    ; f6 e2
-    mov dl, byte [bp-008h]                    ; 8a 56 f8
-    sub dl, al                                ; 28 c2
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 030h                  ; 04 30
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 6d ff
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-put_uint_:                                   ; 0xf185f LB 0x60
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov si, ax                                ; 89 c6
-    mov word [bp-008h], dx                    ; 89 56 f8
-    mov ax, dx                                ; 89 d0
-    xor dx, dx                                ; 31 d2
-    mov di, strict word 0000ah                ; bf 0a 00
-    div di                                    ; f7 f7
-    mov word [bp-006h], ax                    ; 89 46 fa
-    test ax, ax                               ; 85 c0
-    je short 01885h                           ; 74 0a
-    dec bx                                    ; 4b
-    mov dx, ax                                ; 89 c2
-    mov ax, si                                ; 89 f0
-    call 0185fh                               ; e8 dc ff
-    jmp short 018a0h                          ; eb 1b
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jle short 01894h                          ; 7e 0a
-    mov dx, strict word 00020h                ; ba 20 00
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 33 ff
-    jmp short 01885h                          ; eb f1
-    test cx, cx                               ; 85 c9
-    je short 018a0h                           ; 74 08
-    mov dx, strict word 0002dh                ; ba 2d 00
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 25 ff
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov DL, strict byte 00ah                  ; b2 0a
-    mul dl                                    ; f6 e2
-    mov dl, byte [bp-008h]                    ; 8a 56 f8
-    sub dl, al                                ; 28 c2
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 030h                  ; 04 30
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 0d ff
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-put_luint_:                                  ; 0xf18bf LB 0x72
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov si, ax                                ; 89 c6
-    mov word [bp-006h], bx                    ; 89 5e fa
-    mov di, dx                                ; 89 d7
-    mov ax, bx                                ; 89 d8
-    mov dx, cx                                ; 89 ca
-    mov bx, strict word 0000ah                ; bb 0a 00
-    xor cx, cx                                ; 31 c9
-    call 09dd0h                               ; e8 f7 84
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov cx, dx                                ; 89 d1
-    mov dx, ax                                ; 89 c2
-    or dx, cx                                 ; 09 ca
-    je short 018f3h                           ; 74 0f
-    push word [bp+004h]                       ; ff 76 04
-    lea dx, [di-001h]                         ; 8d 55 ff
-    mov bx, ax                                ; 89 c3
-    mov ax, si                                ; 89 f0
-    call 018bfh                               ; e8 ce ff
-    jmp short 01910h                          ; eb 1d
-    dec di                                    ; 4f
-    test di, di                               ; 85 ff
-    jle short 01902h                          ; 7e 0a
-    mov dx, strict word 00020h                ; ba 20 00
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 c5 fe
-    jmp short 018f3h                          ; eb f1
-    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 01910h                           ; 74 08
-    mov dx, strict word 0002dh                ; ba 2d 00
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 b5 fe
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov DL, strict byte 00ah                  ; b2 0a
-    mul dl                                    ; f6 e2
-    mov dl, byte [bp-006h]                    ; 8a 56 fa
-    sub dl, al                                ; 28 c2
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 030h                  ; 04 30
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 9d fe
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-put_str_:                                    ; 0xf1931 LB 0x21
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    push si                                   ; 56
-    mov si, ax                                ; 89 c6
-    mov es, cx                                ; 8e c1
-    mov dl, byte [es:bx]                      ; 26 8a 17
-    test dl, dl                               ; 84 d2
-    je short 0194bh                           ; 74 0a
-    xor dh, dh                                ; 30 f6
-    mov ax, si                                ; 89 f0
-    call 017c5h                               ; e8 7d fe
-    inc bx                                    ; 43
-    jmp short 01938h                          ; eb ed
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-put_str_near_:                               ; 0xf1952 LB 0x20
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    mov cx, ax                                ; 89 c1
-    mov bx, dx                                ; 89 d3
-    mov dl, byte [bx]                         ; 8a 17
-    test dl, dl                               ; 84 d2
-    je short 0196bh                           ; 74 0a
-    xor dh, dh                                ; 30 f6
-    mov ax, cx                                ; 89 c8
-    call 017c5h                               ; e8 5d fe
-    inc bx                                    ; 43
-    jmp short 0195bh                          ; eb f0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-bios_printf_:                                ; 0xf1972 LB 0x33d
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0001ch                ; 83 ec 1c
-    lea bx, [bp+008h]                         ; 8d 5e 08
-    mov word [bp-016h], bx                    ; 89 5e ea
-    mov [bp-014h], ss                         ; 8c 56 ec
-    xor bx, bx                                ; 31 db
-    xor di, di                                ; 31 ff
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    and ax, strict word 00007h                ; 25 07 00
-    cmp ax, strict word 00007h                ; 3d 07 00
-    jne short 019a0h                          ; 75 0b
-    push 000deh                               ; 68 de 00
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 d5 ff
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov si, word [bp+006h]                    ; 8b 76 06
-    mov dl, byte [si]                         ; 8a 14
-    test dl, dl                               ; 84 d2
-    je near 01c93h                            ; 0f 84 e8 02
-    cmp dl, 025h                              ; 80 fa 25
-    jne short 019b8h                          ; 75 08
-    mov bx, strict word 00001h                ; bb 01 00
-    xor di, di                                ; 31 ff
-    jmp near 01c8dh                           ; e9 d5 02
-    test bx, bx                               ; 85 db
-    je near 01c85h                            ; 0f 84 c7 02
-    cmp dl, 030h                              ; 80 fa 30
-    jc short 019d6h                           ; 72 13
-    cmp dl, 039h                              ; 80 fa 39
-    jnbe short 019d6h                         ; 77 0e
-    movzx ax, dl                              ; 0f b6 c2
-    imul di, di, strict byte 0000ah           ; 6b ff 0a
-    sub ax, strict word 00030h                ; 2d 30 00
-    add di, ax                                ; 01 c7
-    jmp near 01c8dh                           ; e9 b7 02
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [bp-014h], ax                    ; 89 46 ec
-    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
-    les bx, [bp-016h]                         ; c4 5e ea
-    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
-    mov word [bp-012h], ax                    ; 89 46 ee
-    cmp dl, 078h                              ; 80 fa 78
-    je short 019f4h                           ; 74 05
-    cmp dl, 058h                              ; 80 fa 58
-    jne short 01a4ah                          ; 75 56
-    test di, di                               ; 85 ff
-    jne short 019fbh                          ; 75 03
-    mov di, strict word 00004h                ; bf 04 00
-    cmp dl, 078h                              ; 80 fa 78
-    jne short 01a07h                          ; 75 07
-    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
-    jmp short 01a0ch                          ; eb 05
-    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
-    lea ax, [di-001h]                         ; 8d 45 ff
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    test ax, ax                               ; 85 c0
-    jl near 01c81h                            ; 0f 8c 66 02
-    mov cx, ax                                ; 89 c1
-    sal cx, 002h                              ; c1 e1 02
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    shr ax, CL                                ; d3 e8
-    xor ah, ah                                ; 30 e4
-    and AL, strict byte 00fh                  ; 24 0f
-    cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 01a35h                         ; 77 07
-    mov dx, ax                                ; 89 c2
-    add dx, strict byte 00030h                ; 83 c2 30
-    jmp short 01a3dh                          ; eb 08
-    sub ax, strict word 0000ah                ; 2d 0a 00
-    mov dx, word [bp-00eh]                    ; 8b 56 f2
-    add dx, ax                                ; 01 c2
-    xor dh, dh                                ; 30 f6
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 017c5h                               ; e8 80 fd
-    dec word [bp-00ch]                        ; ff 4e f4
-    jmp short 01a12h                          ; eb c8
-    cmp dl, 075h                              ; 80 fa 75
-    jne short 01a5eh                          ; 75 0f
-    xor cx, cx                                ; 31 c9
-    mov bx, di                                ; 89 fb
-    mov dx, ax                                ; 89 c2
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0185fh                               ; e8 04 fe
-    jmp near 01c81h                           ; e9 23 02
-    cmp dl, 06ch                              ; 80 fa 6c
-    jne near 01b40h                           ; 0f 85 db 00
-    mov bx, word [bp+006h]                    ; 8b 5e 06
-    cmp dl, byte [bx+001h]                    ; 3a 57 01
-    jne near 01b40h                           ; 0f 85 d1 00
-    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
-    mov bx, word [bp+006h]                    ; 8b 5e 06
-    mov dl, byte [bx]                         ; 8a 17
-    mov word [bp-026h], ax                    ; 89 46 da
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [bp-014h], ax                    ; 89 46 ec
-    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
-    les bx, [bp-016h]                         ; c4 5e ea
-    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [bp-014h], ax                    ; 89 46 ec
-    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
-    les bx, [bp-016h]                         ; c4 5e ea
-    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
-    mov word [bp-022h], ax                    ; 89 46 de
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [bp-014h], ax                    ; 89 46 ec
-    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
-    les bx, [bp-016h]                         ; c4 5e ea
-    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
-    mov word [bp-020h], ax                    ; 89 46 e0
-    cmp dl, 078h                              ; 80 fa 78
-    je short 01ac1h                           ; 74 05
-    cmp dl, 058h                              ; 80 fa 58
-    jne short 01b32h                          ; 75 71
-    test di, di                               ; 85 ff
-    jne short 01ac8h                          ; 75 03
-    mov di, strict word 00010h                ; bf 10 00
-    cmp dl, 078h                              ; 80 fa 78
-    jne short 01ad4h                          ; 75 07
-    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
-    jmp short 01ad9h                          ; eb 05
-    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
-    lea ax, [di-001h]                         ; 8d 45 ff
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    test ax, ax                               ; 85 c0
-    jl near 01c81h                            ; 0f 8c 99 01
-    sal ax, 002h                              ; c1 e0 02
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    xor ax, ax                                ; 31 c0
-    mov word [bp-01ch], ax                    ; 89 46 e4
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov ax, word [bp-020h]                    ; 8b 46 e0
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    mov cx, word [bp-024h]                    ; 8b 4e dc
-    mov dx, word [bp-026h]                    ; 8b 56 da
-    mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 09e4ah                               ; e8 3f 83
-    mov ax, dx                                ; 89 d0
-    xor ah, dh                                ; 30 f4
-    and AL, strict byte 00fh                  ; 24 0f
-    cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 01b1dh                         ; 77 07
-    mov dx, ax                                ; 89 c2
-    add dx, strict byte 00030h                ; 83 c2 30
-    jmp short 01b25h                          ; eb 08
-    sub ax, strict word 0000ah                ; 2d 0a 00
-    mov dx, word [bp-00eh]                    ; 8b 56 f2
-    add dx, ax                                ; 01 c2
-    xor dh, dh                                ; 30 f6
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 017c5h                               ; e8 98 fc
-    dec word [bp-00ch]                        ; ff 4e f4
-    jmp short 01adfh                          ; eb ad
-    push 000e6h                               ; 68 e6 00
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 38 fe
-    add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 01c81h                           ; e9 41 01
-    lea bx, [di-001h]                         ; 8d 5d ff
-    cmp dl, 06ch                              ; 80 fa 6c
-    jne near 01c09h                           ; 0f 85 bf 00
-    inc word [bp+006h]                        ; ff 46 06
-    mov si, word [bp+006h]                    ; 8b 76 06
-    mov dl, byte [si]                         ; 8a 14
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [bp-014h], ax                    ; 89 46 ec
-    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
-    les si, [bp-016h]                         ; c4 76 ea
-    mov ax, word [es:si-002h]                 ; 26 8b 44 fe
-    mov word [bp-010h], ax                    ; 89 46 f0
-    cmp dl, 064h                              ; 80 fa 64
-    jne short 01b98h                          ; 75 2d
-    test byte [bp-00fh], 080h                 ; f6 46 f1 80
-    je short 01b86h                           ; 74 15
-    push strict byte 00001h                   ; 6a 01
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov cx, word [bp-010h]                    ; 8b 4e f0
-    neg cx                                    ; f7 d9
-    neg ax                                    ; f7 d8
-    sbb cx, strict byte 00000h                ; 83 d9 00
-    mov dx, bx                                ; 89 da
-    mov bx, ax                                ; 89 c3
-    jmp short 01b8fh                          ; eb 09
-    push strict byte 00000h                   ; 6a 00
-    mov bx, word [bp-012h]                    ; 8b 5e ee
-    mov dx, di                                ; 89 fa
-    mov cx, ax                                ; 89 c1
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 018bfh                               ; e8 2a fd
-    jmp near 01c81h                           ; e9 e9 00
-    cmp dl, 075h                              ; 80 fa 75
-    jne short 01b9fh                          ; 75 02
-    jmp short 01b86h                          ; eb e7
-    cmp dl, 078h                              ; 80 fa 78
-    je short 01babh                           ; 74 07
-    cmp dl, 058h                              ; 80 fa 58
-    jne near 01c81h                           ; 0f 85 d6 00
-    test di, di                               ; 85 ff
-    jne short 01bb2h                          ; 75 03
-    mov di, strict word 00008h                ; bf 08 00
-    cmp dl, 078h                              ; 80 fa 78
-    jne short 01bbeh                          ; 75 07
-    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
-    jmp short 01bc3h                          ; eb 05
-    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
-    lea ax, [di-001h]                         ; 8d 45 ff
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    jl near 01c81h                            ; 0f 8c b0 00
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov cx, word [bp-00ch]                    ; 8b 4e f4
-    sal cx, 002h                              ; c1 e1 02
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    jcxz 01be5h                               ; e3 06
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 01bdfh                               ; e2 fa
-    and ax, strict word 0000fh                ; 25 0f 00
-    cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 01bf4h                         ; 77 07
-    mov dx, ax                                ; 89 c2
-    add dx, strict byte 00030h                ; 83 c2 30
-    jmp short 01bfch                          ; eb 08
-    sub ax, strict word 0000ah                ; 2d 0a 00
-    mov dx, word [bp-00eh]                    ; 8b 56 f2
-    add dx, ax                                ; 01 c2
-    xor dh, dh                                ; 30 f6
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 017c5h                               ; e8 c1 fb
-    dec word [bp-00ch]                        ; ff 4e f4
-    jmp short 01bc9h                          ; eb c0
-    cmp dl, 064h                              ; 80 fa 64
-    jne short 01c2dh                          ; 75 1f
-    test byte [bp-011h], 080h                 ; f6 46 ef 80
-    je short 01c1eh                           ; 74 0a
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    neg dx                                    ; f7 da
-    mov cx, strict word 00001h                ; b9 01 00
-    jmp short 01c25h                          ; eb 07
-    xor cx, cx                                ; 31 c9
-    mov bx, di                                ; 89 fb
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01800h                               ; e8 d5 fb
-    jmp short 01c81h                          ; eb 54
-    cmp dl, 073h                              ; 80 fa 73
-    jne short 01c3fh                          ; 75 0d
-    mov cx, ds                                ; 8c d9
-    mov bx, word [bp-012h]                    ; 8b 5e ee
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01931h                               ; e8 f4 fc
-    jmp short 01c81h                          ; eb 42
-    cmp dl, 053h                              ; 80 fa 53
-    jne short 01c65h                          ; 75 21
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [bp-014h], ax                    ; 89 46 ec
-    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
-    les bx, [bp-016h]                         ; c4 5e ea
-    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov bx, ax                                ; 89 c3
-    mov cx, word [bp-010h]                    ; 8b 4e f0
-    jmp short 01c37h                          ; eb d2
-    cmp dl, 063h                              ; 80 fa 63
-    jne short 01c76h                          ; 75 0c
-    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 017c5h                               ; e8 51 fb
-    jmp short 01c81h                          ; eb 0b
-    push 00107h                               ; 68 07 01
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 f4 fc
-    add sp, strict byte 00004h                ; 83 c4 04
-    xor bx, bx                                ; 31 db
-    jmp short 01c8dh                          ; eb 08
-    xor dh, dh                                ; 30 f6
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 017c5h                               ; e8 38 fb
-    inc word [bp+006h]                        ; ff 46 06
-    jmp near 019a0h                           ; e9 0d fd
-    xor ax, ax                                ; 31 c0
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov word [bp-014h], ax                    ; 89 46 ec
-    test byte [bp+004h], 001h                 ; f6 46 04 01
-    je short 01ca5h                           ; 74 04
-    cli                                       ; fa
-    hlt                                       ; f4
-    jmp short 01ca2h                          ; eb fd
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_ata_init:                                   ; 0xf1caf LB 0xcd
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 b0 f9
-    mov si, 00122h                            ; be 22 01
-    mov dx, ax                                ; 89 c2
-    xor al, al                                ; 30 c0
-    jmp short 01cc9h                          ; eb 04
-    cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 01cedh                          ; 73 24
-    movzx bx, al                              ; 0f b6 d8
-    imul bx, bx, strict byte 00006h           ; 6b db 06
-    mov es, dx                                ; 8e c2
-    add bx, si                                ; 01 f3
-    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
-    db  066h, 026h, 0c7h, 087h, 006h, 002h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+00206h], strict dword 000000000h ; 66 26 c7 87 06 02 00 00 00 00
-    mov byte [es:bx+00205h], 000h             ; 26 c6 87 05 02 00
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    jmp short 01cc5h                          ; eb d8
-    xor al, al                                ; 30 c0
-    jmp short 01cf5h                          ; eb 04
-    cmp AL, strict byte 008h                  ; 3c 08
-    jnc short 01d49h                          ; 73 54
-    movzx bx, al                              ; 0f b6 d8
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, dx                                ; 8e c2
-    add bx, si                                ; 01 f3
-    db  066h, 026h, 0c7h, 047h, 022h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+022h], strict dword 000000000h ; 66 26 c7 47 22 00 00 00 00
-    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
-    mov word [es:bx+028h], 00200h             ; 26 c7 47 28 00 02
-    mov byte [es:bx+027h], 000h               ; 26 c6 47 27 00
-    db  066h, 026h, 0c7h, 047h, 02ah, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+02ah], strict dword 000000000h ; 66 26 c7 47 2a 00 00 00 00
-    db  066h, 026h, 0c7h, 047h, 02eh, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+02eh], strict dword 000000000h ; 66 26 c7 47 2e 00 00 00 00
-    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
-    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
-    db  066h, 026h, 0c7h, 047h, 036h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+036h], strict dword 000000000h ; 66 26 c7 47 36 00 00 00 00
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    jmp short 01cf1h                          ; eb a8
-    xor al, al                                ; 30 c0
-    jmp short 01d51h                          ; eb 04
-    cmp AL, strict byte 010h                  ; 3c 10
-    jnc short 01d68h                          ; 73 17
-    movzx bx, al                              ; 0f b6 d8
-    mov es, dx                                ; 8e c2
-    add bx, si                                ; 01 f3
-    mov byte [es:bx+001e3h], 010h             ; 26 c6 87 e3 01 10
-    mov byte [es:bx+001f4h], 010h             ; 26 c6 87 f4 01 10
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    jmp short 01d4dh                          ; eb e5
-    mov es, dx                                ; 8e c2
-    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
-    mov byte [es:si+001f3h], 000h             ; 26 c6 84 f3 01 00
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ata_reset_:                                  ; 0xf1d7c LB 0xde
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 dc f8
-    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
-    mov di, ax                                ; 89 c7
-    mov bx, word [bp-010h]                    ; 8b 5e f0
-    shr bx, 1                                 ; d1 eb
-    mov dl, byte [bp-010h]                    ; 8a 56 f0
-    and dl, 001h                              ; 80 e2 01
-    mov byte [bp-00ch], dl                    ; 88 56 f4
-    xor bh, bh                                ; 30 ff
-    imul bx, bx, strict byte 00006h           ; 6b db 06
-    mov es, ax                                ; 8e c0
-    add bx, 00122h                            ; 81 c3 22 01
-    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
-    mov si, word [es:bx+00208h]               ; 26 8b b7 08 02
-    lea dx, [si+006h]                         ; 8d 54 06
-    mov AL, strict byte 00eh                  ; b0 0e
-    out DX, AL                                ; ee
-    mov bx, 000ffh                            ; bb ff 00
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 01dd4h                          ; 76 0c
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 080h                 ; a8 80
-    je short 01dc3h                           ; 74 ef
-    lea dx, [si+006h]                         ; 8d 54 06
-    mov AL, strict byte 00ah                  ; b0 0a
-    out DX, AL                                ; ee
-    imul bx, word [bp-010h], strict byte 0001ch ; 6b 5e f0 1c
-    mov es, di                                ; 8e c7
-    add bx, word [bp-00eh]                    ; 03 5e f2
-    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
-    je short 01e36h                           ; 74 4c
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 01df5h                           ; 74 05
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp short 01df8h                          ; eb 03
-    mov ax, 000a0h                            ; b8 a0 00
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00006h                ; 83 c2 06
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00003h                ; 83 c2 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp bl, 001h                              ; 80 fb 01
-    jne short 01e36h                          ; 75 22
-    cmp al, bl                                ; 38 d8
-    jne short 01e36h                          ; 75 1e
-    mov bx, strict word 0ffffh                ; bb ff ff
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 01e36h                          ; 76 16
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 080h                 ; a8 80
-    je short 01e36h                           ; 74 0a
-    mov ax, strict word 0ffffh                ; b8 ff ff
-    dec ax                                    ; 48
-    test ax, ax                               ; 85 c0
-    jnbe short 01e2fh                         ; 77 fb
-    jmp short 01e1bh                          ; eb e5
-    mov bx, strict word 00010h                ; bb 10 00
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 01e4ah                          ; 76 0c
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 040h                 ; a8 40
-    je short 01e39h                           ; 74 ef
-    lea dx, [si+006h]                         ; 8d 54 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ata_cmd_data_in_:                            ; 0xf1e5a LB 0x2e2
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00012h                ; 83 ec 12
-    push ax                                   ; 50
-    push dx                                   ; 52
-    push bx                                   ; 53
-    push cx                                   ; 51
-    mov es, dx                                ; 8e c2
-    mov bx, ax                                ; 89 c3
-    mov al, byte [es:bx+00ch]                 ; 26 8a 47 0c
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    movzx bx, al                              ; 0f b6 d8
-    mov ax, bx                                ; 89 d8
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov di, word [bp-018h]                    ; 8b 7e e8
-    add di, ax                                ; 01 c7
-    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
-    mov word [bp-010h], ax                    ; 89 46 f0
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov di, word [bp-018h]                    ; 8b 7e e8
-    add di, bx                                ; 01 df
-    mov al, byte [es:di+026h]                 ; 26 8a 45 26
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov ax, word [es:di+028h]                 ; 26 8b 45 28
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    test ax, ax                               ; 85 c0
-    jne short 01ec1h                          ; 75 14
-    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
-    jne short 01ebah                          ; 75 07
-    mov word [bp-00eh], 04000h                ; c7 46 f2 00 40
-    jmp short 01ed0h                          ; eb 16
-    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
-    jmp short 01ed0h                          ; eb 0f
-    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
-    jne short 01ecdh                          ; 75 06
-    shr word [bp-00eh], 002h                  ; c1 6e f2 02
-    jmp short 01ed0h                          ; eb 03
-    shr word [bp-00eh], 1                     ; d1 6e f2
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 080h                 ; a8 80
-    je short 01eech                           ; 74 0f
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp near 02133h                           ; e9 47 02
-    mov es, [bp-01ah]                         ; 8e 46 e6
-    mov di, word [bp-018h]                    ; 8b 7e e8
-    mov di, word [es:di+008h]                 ; 26 8b 7d 08
-    mov bx, word [bp-018h]                    ; 8b 5e e8
-    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov al, byte [es:bx+016h]                 ; 26 8a 47 16
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov ax, word [es:bx+012h]                 ; 26 8b 47 12
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov bl, byte [es:bx+014h]                 ; 26 8a 5f 14
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    test al, al                               ; 84 c0
-    jne near 01ffeh                           ; 0f 85 e3 00
-    xor bx, bx                                ; 31 db
-    xor dx, dx                                ; 31 d2
-    xor ah, ah                                ; 30 e4
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov si, word [bp-018h]                    ; 8b 76 e8
-    mov cx, word [es:si]                      ; 26 8b 0c
-    add cx, word [bp-01eh]                    ; 03 4e e2
-    adc bx, word [es:si+002h]                 ; 26 13 5c 02
-    adc dx, word [es:si+004h]                 ; 26 13 54 04
-    mov ax, word [es:si+006h]                 ; 26 8b 44 06
-    adc ax, word [bp-016h]                    ; 13 46 ea
-    test ax, ax                               ; 85 c0
-    jnbe short 01f50h                         ; 77 10
-    jne short 01fb4h                          ; 75 72
-    test dx, dx                               ; 85 d2
-    jnbe short 01f50h                         ; 77 0a
-    jne short 01fb4h                          ; 75 6c
-    cmp bx, 01000h                            ; 81 fb 00 10
-    jnbe short 01f50h                         ; 77 02
-    jne short 01fb4h                          ; 75 64
-    mov bx, si                                ; 89 f3
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00018h                ; be 18 00
-    call 09e4ah                               ; e8 e3 7e
-    xor dh, dh                                ; 30 f6
-    mov word [bp-016h], dx                    ; 89 56 ea
-    mov bx, word [bp-018h]                    ; 8b 5e e8
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-018h]                    ; 8b 76 e8
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00020h                ; be 20 00
-    call 09e4ah                               ; e8 c3 7e
-    mov bx, dx                                ; 89 d3
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00003h                ; 83 c2 03
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00004h                ; 83 c2 04
-    out DX, AL                                ; ee
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00005h                ; 83 c2 05
-    out DX, AL                                ; ee
-    mov es, [bp-01ah]                         ; 8e 46 e6
-    mov bx, word [bp-018h]                    ; 8b 5e e8
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-018h]                    ; 8b 76 e8
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00008h                ; be 08 00
-    call 09e4ah                               ; e8 72 7e
-    mov word [bp-014h], dx                    ; 89 56 ec
-    mov bx, word [bp-018h]                    ; 8b 5e e8
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-018h]                    ; 8b 76 e8
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00018h                ; be 18 00
-    call 09e4ah                               ; e8 54 7e
-    and dx, strict byte 0000fh                ; 83 e2 0f
-    or dl, 040h                               ; 80 ca 40
-    mov bx, dx                                ; 89 d3
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 00ah                  ; b0 0a
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    inc dx                                    ; 42
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    mov al, byte [bp-01eh]                    ; 8a 46 e2
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00003h                ; 83 c2 03
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    out DX, AL                                ; ee
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00004h                ; 83 c2 04
-    out DX, AL                                ; ee
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00005h                ; 83 c2 05
-    out DX, AL                                ; ee
-    test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 02040h                           ; 74 05
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02043h                          ; eb 03
-    mov ax, 000a0h                            ; b8 a0 00
-    movzx dx, bl                              ; 0f b6 d3
-    or ax, dx                                 ; 09 d0
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00006h                ; 83 c2 06
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00007h                ; 83 c2 07
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    out DX, AL                                ; ee
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
-    cmp ax, 000c4h                            ; 3d c4 00
-    je short 02066h                           ; 74 05
-    cmp ax, strict word 00029h                ; 3d 29 00
-    jne short 02070h                          ; 75 0a
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
-    mov word [bp-01eh], strict word 00001h    ; c7 46 e2 01 00
-    jmp short 02073h                          ; eb 03
-    mov bx, strict word 00001h                ; bb 01 00
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 02073h                          ; 75 f1
-    test AL, strict byte 001h                 ; a8 01
-    je short 02095h                           ; 74 0f
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00002h                ; ba 02 00
-    jmp near 02133h                           ; e9 9e 00
-    test dl, 008h                             ; f6 c2 08
-    jne short 020a9h                          ; 75 0f
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00003h                ; ba 03 00
-    jmp near 02133h                           ; e9 8a 00
-    sti                                       ; fb
-    cmp di, 0f800h                            ; 81 ff 00 f8
-    jc short 020bdh                           ; 72 0d
-    sub di, 00800h                            ; 81 ef 00 08
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    add ax, 00080h                            ; 05 80 00
-    mov word [bp-012h], ax                    ; 89 46 ee
-    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
-    jne short 020d1h                          ; 75 0e
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    mov cx, word [bp-00eh]                    ; 8b 4e f2
-    mov es, [bp-012h]                         ; 8e 46 ee
-    db  0f3h, 066h, 06dh
-    ; rep insd                                  ; f3 66 6d
-    jmp short 020dch                          ; eb 0b
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    mov cx, word [bp-00eh]                    ; 8b 4e f2
-    mov es, [bp-012h]                         ; 8e 46 ee
-    rep insw                                  ; f3 6d
-    mov es, [bp-01ah]                         ; 8e 46 e6
-    mov si, word [bp-018h]                    ; 8b 76 e8
-    add word [es:si+018h], bx                 ; 26 01 5c 18
-    dec word [bp-01eh]                        ; ff 4e e2
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 020e9h                          ; 75 f1
-    cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
-    jne short 02112h                          ; 75 14
-    and AL, strict byte 0c9h                  ; 24 c9
-    cmp AL, strict byte 040h                  ; 3c 40
-    je short 02128h                           ; 74 24
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00004h                ; ba 04 00
-    jmp short 02133h                          ; eb 21
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 0c9h                  ; 24 c9
-    cmp AL, strict byte 048h                  ; 3c 48
-    je short 020aah                           ; 74 90
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00005h                ; ba 05 00
-    jmp short 02133h                          ; eb 0b
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    xor dx, dx                                ; 31 d2
-    mov ax, dx                                ; 89 d0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_ata_detect:                                 ; 0xf213c LB 0x65c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, 00260h                            ; 81 ec 60 02
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 1e f5
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov di, 00122h                            ; bf 22 01
-    mov es, ax                                ; 8e c0
-    mov word [bp-022h], di                    ; 89 7e de
-    mov word [bp-034h], ax                    ; 89 46 cc
-    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
-    db  066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h
-    ; mov dword [es:di+00206h], strict dword 003f001f0h ; 66 26 c7 85 06 02 f0 01 f0 03
-    mov byte [es:di+00205h], 00eh             ; 26 c6 85 05 02 0e
-    mov byte [es:di+0020ah], 000h             ; 26 c6 85 0a 02 00
-    db  066h, 026h, 0c7h, 085h, 00ch, 002h, 070h, 001h, 070h, 003h
-    ; mov dword [es:di+0020ch], strict dword 003700170h ; 66 26 c7 85 0c 02 70 01 70 03
-    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
-    xor al, al                                ; 30 c0
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov byte [bp-010h], al                    ; 88 46 f0
-    mov byte [bp-016h], al                    ; 88 46 ea
-    jmp near 0271ch                           ; e9 86 05
-    mov ax, 000a0h                            ; b8 a0 00
-    lea dx, [si+006h]                         ; 8d 54 06
-    out DX, AL                                ; ee
-    lea di, [si+002h]                         ; 8d 7c 02
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    lea bx, [si+003h]                         ; 8d 5c 03
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    mov dx, bx                                ; 89 da
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp cl, 055h                              ; 80 f9 55
-    jne near 0229ah                           ; 0f 85 ca 00
-    cmp AL, strict byte 0aah                  ; 3c aa
-    jne near 0229ah                           ; 0f 85 c4 00
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
-    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    call 01d7ch                               ; e8 8b fb
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 021fch                           ; 74 05
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp short 021ffh                          ; eb 03
-    mov ax, 000a0h                            ; b8 a0 00
-    lea dx, [si+006h]                         ; 8d 54 06
-    out DX, AL                                ; ee
-    lea dx, [si+002h]                         ; 8d 54 02
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    lea dx, [si+003h]                         ; 8d 54 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp bl, 001h                              ; 80 fb 01
-    jne near 0229ah                           ; 0f 85 82 00
-    cmp al, bl                                ; 38 d8
-    jne near 0229ah                           ; 0f 85 7c 00
-    lea dx, [si+004h]                         ; 8d 54 04
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    mov byte [bp-018h], al                    ; 88 46 e8
-    lea dx, [si+005h]                         ; 8d 54 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    mov bh, al                                ; 88 c7
-    lea dx, [si+007h]                         ; 8d 54 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp bl, 014h                              ; 80 fb 14
-    jne short 02259h                          ; 75 1b
-    cmp cl, 0ebh                              ; 80 f9 eb
-    jne short 02259h                          ; 75 16
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
-    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
-    jmp short 0229ah                          ; eb 41
-    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
-    jne short 0227bh                          ; 75 1c
-    test bh, bh                               ; 84 ff
-    jne short 0227bh                          ; 75 18
-    test al, al                               ; 84 c0
-    je short 0227bh                           ; 74 14
-    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add bx, word [bp-022h]                    ; 03 5e de
-    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
-    jmp short 0229ah                          ; eb 1f
-    mov al, byte [bp-018h]                    ; 8a 46 e8
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 0229ah                          ; 75 18
-    cmp bh, al                                ; 38 c7
-    jne short 0229ah                          ; 75 14
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
-    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
-    mov dx, word [bp-024h]                    ; 8b 56 dc
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    movzx si, byte [bp-016h]                  ; 0f b6 76 ea
-    imul si, si, strict byte 0001ch           ; 6b f6 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add si, word [bp-022h]                    ; 03 76 de
-    mov al, byte [es:si+022h]                 ; 26 8a 44 22
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    cmp AL, strict byte 002h                  ; 3c 02
-    jne near 024e9h                           ; 0f 85 2c 02
-    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
-    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
-    lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    mov word [es:bx+008h], dx                 ; 26 89 57 08
-    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
-    mov cx, strict word 00001h                ; b9 01 00
-    mov bx, 000ech                            ; bb ec 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
-    mov dx, es                                ; 8c c2
-    call 01e5ah                               ; e8 6f fb
-    test ax, ax                               ; 85 c0
-    je short 022fah                           ; 74 0b
-    push 00124h                               ; 68 24 01
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 7b f6
-    add sp, strict byte 00004h                ; 83 c4 04
-    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    mov byte [bp-014h], al                    ; 88 46 ec
-    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    mov byte [bp-012h], al                    ; 88 46 ee
-    mov word [bp-02ah], 00200h                ; c7 46 d6 00 02
-    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
-    mov word [bp-026h], ax                    ; 89 46 da
-    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
-    mov word [bp-01ch], ax                    ; 89 46 e4
-    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov si, word [bp-001ech]                  ; 8b b6 14 fe
-    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
-    mov word [bp-02ch], ax                    ; 89 46 d4
-    xor ax, ax                                ; 31 c0
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
-    jne short 02366h                          ; 75 1e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 02366h                          ; 75 19
-    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
-    mov word [bp-02ch], ax                    ; 89 46 d4
-    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    cmp AL, strict byte 001h                  ; 3c 01
-    jc short 02379h                           ; 72 0c
-    jbe short 02381h                          ; 76 12
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 02389h                           ; 74 16
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 02385h                           ; 74 0e
-    jmp short 023c6h                          ; eb 4d
-    test al, al                               ; 84 c0
-    jne short 023c6h                          ; 75 49
-    mov BL, strict byte 01eh                  ; b3 1e
-    jmp short 0238bh                          ; eb 0a
-    mov BL, strict byte 026h                  ; b3 26
-    jmp short 0238bh                          ; eb 06
-    mov BL, strict byte 067h                  ; b3 67
-    jmp short 0238bh                          ; eb 02
-    mov BL, strict byte 070h                  ; b3 70
-    mov al, bl                                ; 88 d8
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 18 f3
-    xor ah, ah                                ; 30 e4
-    mov dx, ax                                ; 89 c2
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, bl                              ; 0f b6 c3
-    call 016ach                               ; e8 0b f3
-    xor ah, ah                                ; 30 e4
-    add ax, dx                                ; 01 d0
-    mov word [bp-038h], ax                    ; 89 46 c8
-    mov al, bl                                ; 88 d8
-    add AL, strict byte 002h                  ; 04 02
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 fb f2
-    xor ah, ah                                ; 30 e4
-    mov word [bp-03ah], ax                    ; 89 46 c6
-    mov al, bl                                ; 88 d8
-    add AL, strict byte 007h                  ; 04 07
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 ed f2
-    xor ah, ah                                ; 30 e4
-    mov word [bp-036h], ax                    ; 89 46 ca
-    jmp short 023d8h                          ; eb 12
-    push word [bp-01eh]                       ; ff 76 e2
-    push word [bp-028h]                       ; ff 76 d8
-    push word [bp-02ch]                       ; ff 76 d4
-    push si                                   ; 56
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-03ah]                         ; 8d 46 c6
-    call 05915h                               ; e8 3d 35
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 4e f5
-    mov ax, word [bp-036h]                    ; 8b 46 ca
-    push ax                                   ; 50
-    mov ax, word [bp-03ah]                    ; 8b 46 c6
-    push ax                                   ; 50
-    mov ax, word [bp-038h]                    ; 8b 46 c8
-    push ax                                   ; 50
-    push dword [bp-01ch]                      ; 66 ff 76 e4
-    push word [bp-026h]                       ; ff 76 da
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 0014dh                               ; 68 4d 01
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 6a f5
-    add sp, strict byte 00014h                ; 83 c4 14
-    movzx di, byte [bp-016h]                  ; 0f b6 7e ea
-    imul di, di, strict byte 0001ch           ; 6b ff 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add di, word [bp-022h]                    ; 03 7e de
-    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
-    mov al, byte [bp-014h]                    ; 8a 46 ec
-    mov byte [es:di+024h], al                 ; 26 88 45 24
-    mov al, byte [bp-012h]                    ; 8a 46 ee
-    mov byte [es:di+026h], al                 ; 26 88 45 26
-    mov ax, word [bp-02ah]                    ; 8b 46 d6
-    mov word [es:di+028h], ax                 ; 26 89 45 28
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
-    mov word [es:di+030h], ax                 ; 26 89 45 30
-    mov ax, word [bp-026h]                    ; 8b 46 da
-    mov word [es:di+032h], ax                 ; 26 89 45 32
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    mov word [es:di+034h], ax                 ; 26 89 45 34
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    mov word [es:di+03ch], ax                 ; 26 89 45 3c
-    mov ax, word [bp-028h]                    ; 8b 46 d8
-    mov word [es:di+03ah], ax                 ; 26 89 45 3a
-    mov ax, word [bp-02ch]                    ; 8b 46 d4
-    mov word [es:di+038h], ax                 ; 26 89 45 38
-    mov word [es:di+036h], si                 ; 26 89 75 36
-    lea di, [di+02ah]                         ; 8d 7d 2a
-    push DS                                   ; 1e
-    push SS                                   ; 16
-    pop DS                                    ; 1f
-    lea si, [bp-03ah]                         ; 8d 76 c6
-    movsw                                     ; a5
-    movsw                                     ; a5
-    movsw                                     ; a5
-    pop DS                                    ; 1f
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    cmp AL, strict byte 002h                  ; 3c 02
-    jnc short 024d4h                          ; 73 60
-    test al, al                               ; 84 c0
-    jne short 0247dh                          ; 75 05
-    mov di, strict word 0003dh                ; bf 3d 00
-    jmp short 02480h                          ; eb 03
-    mov di, strict word 0004dh                ; bf 4d 00
-    mov dx, word [bp-020h]                    ; 8b 56 e0
-    mov ax, word [bp-038h]                    ; 8b 46 c8
-    mov es, dx                                ; 8e c2
-    mov word [es:di], ax                      ; 26 89 05
-    mov al, byte [bp-03ah]                    ; 8a 46 c6
-    mov byte [es:di+002h], al                 ; 26 88 45 02
-    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
-    mov byte [es:di+004h], al                 ; 26 88 45 04
-    mov ax, word [bp-026h]                    ; 8b 46 da
-    mov word [es:di+009h], ax                 ; 26 89 45 09
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    mov byte [es:di+00bh], al                 ; 26 88 45 0b
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
-    mov byte [es:di+00eh], al                 ; 26 88 45 0e
-    xor al, al                                ; 30 c0
-    xor ah, ah                                ; 30 e4
-    jmp short 024beh                          ; eb 05
-    cmp ah, 00fh                              ; 80 fc 0f
-    jnc short 024cch                          ; 73 0e
-    movzx bx, ah                              ; 0f b6 dc
-    mov es, dx                                ; 8e c2
-    add bx, di                                ; 01 fb
-    add al, byte [es:bx]                      ; 26 02 07
-    db  0feh, 0c4h
-    ; inc ah                                    ; fe c4
-    jmp short 024b9h                          ; eb ed
-    neg al                                    ; f6 d8
-    mov es, dx                                ; 8e c2
-    mov byte [es:di+00fh], al                 ; 26 88 45 0f
-    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add bx, word [bp-022h]                    ; 03 5e de
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
-    inc byte [bp-010h]                        ; fe 46 f0
-    cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
-    jne near 0258ch                           ; 0f 85 9b 00
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
-    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
-    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
-    lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    mov word [es:bx+008h], dx                 ; 26 89 57 08
-    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
-    mov cx, strict word 00001h                ; b9 01 00
-    mov bx, 000a1h                            ; bb a1 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
-    mov dx, es                                ; 8c c2
-    call 01e5ah                               ; e8 2c f9
-    test ax, ax                               ; 85 c0
-    je short 0253dh                           ; 74 0b
-    push 00174h                               ; 68 74 01
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 38 f4
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
-    and dl, 01fh                              ; 80 e2 1f
-    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    movzx bx, al                              ; 0f b6 d8
-    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
-    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov si, word [bp-022h]                    ; 8b 76 de
-    add si, cx                                ; 01 ce
-    mov byte [es:si+023h], dl                 ; 26 88 54 23
-    mov byte [es:si+024h], bl                 ; 26 88 5c 24
-    mov byte [es:si+026h], al                 ; 26 88 44 26
-    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    add bx, word [bp-022h]                    ; 03 5e de
-    mov al, byte [bp-016h]                    ; 8a 46 ea
-    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
-    inc byte [bp-006h]                        ; fe 46 fa
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 025c4h                           ; 74 31
-    cmp AL, strict byte 002h                  ; 3c 02
-    jne near 02627h                           ; 0f 85 8e 00
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov si, word [bp-022h]                    ; 8b 76 de
-    add si, ax                                ; 01 c6
-    mov ax, word [es:si+03ch]                 ; 26 8b 44 3c
-    mov bx, word [es:si+03ah]                 ; 26 8b 5c 3a
-    mov cx, word [es:si+038h]                 ; 26 8b 4c 38
-    mov dx, word [es:si+036h]                 ; 26 8b 54 36
-    mov si, strict word 0000bh                ; be 0b 00
-    call 09e4ah                               ; e8 8c 78
-    mov word [bp-030h], dx                    ; 89 56 d0
-    mov word [bp-02eh], cx                    ; 89 4e d2
-    movzx ax, byte [bp-001c3h]                ; 0f b6 86 3d fe
-    sal ax, 008h                              ; c1 e0 08
-    movzx dx, byte [bp-001c4h]                ; 0f b6 96 3c fe
-    or dx, ax                                 ; 09 c2
-    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
-    jmp short 025e2h                          ; eb 09
-    dec byte [bp-00ch]                        ; fe 4e f4
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jbe short 025efh                          ; 76 0d
-    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
-    mov ax, strict word 00001h                ; b8 01 00
-    sal ax, CL                                ; d3 e0
-    test dx, ax                               ; 85 c2
-    je short 025d9h                           ; 74 ea
-    xor di, di                                ; 31 ff
-    jmp short 025f8h                          ; eb 05
-    cmp di, strict byte 00014h                ; 83 ff 14
-    jnl short 0260dh                          ; 7d 15
-    mov si, di                                ; 89 fe
-    add si, di                                ; 01 fe
-    mov al, byte [bp+si-0022dh]               ; 8a 82 d3 fd
-    mov byte [bp+si-064h], al                 ; 88 42 9c
-    mov al, byte [bp+si-0022eh]               ; 8a 82 d2 fd
-    mov byte [bp+si-063h], al                 ; 88 42 9d
-    inc di                                    ; 47
-    jmp short 025f3h                          ; eb e6
-    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
-    mov di, strict word 00027h                ; bf 27 00
-    jmp short 0261bh                          ; eb 05
-    dec di                                    ; 4f
-    test di, di                               ; 85 ff
-    jle short 02627h                          ; 7e 0c
-    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
-    jne short 02627h                          ; 75 06
-    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
-    jmp short 02616h                          ; eb ef
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 0268ah                           ; 74 5c
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 0263bh                           ; 74 09
-    cmp AL, strict byte 001h                  ; 3c 01
-    je near 026f4h                            ; 0f 84 bc 00
-    jmp near 02713h                           ; e9 d8 00
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 02646h                           ; 74 05
-    mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02649h                          ; eb 03
-    mov ax, 001a6h                            ; b8 a6 01
-    push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 001adh                               ; 68 ad 01
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 1b f3
-    add sp, strict byte 00008h                ; 83 c4 08
-    xor di, di                                ; 31 ff
-    movzx ax, byte [bp+di-064h]               ; 0f b6 43 9c
-    inc di                                    ; 47
-    test ax, ax                               ; 85 c0
-    je short 02673h                           ; 74 0e
-    push ax                                   ; 50
-    push 001b8h                               ; 68 b8 01
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 04 f3
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0265ch                          ; eb e9
-    push dword [bp-030h]                      ; 66 ff 76 d0
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    push 001bbh                               ; 68 bb 01
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 ee f2
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 02713h                           ; e9 89 00
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 02695h                           ; 74 05
-    mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02698h                          ; eb 03
-    mov ax, 001a6h                            ; b8 a6 01
-    push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 001adh                               ; 68 ad 01
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 cc f2
-    add sp, strict byte 00008h                ; 83 c4 08
-    xor di, di                                ; 31 ff
-    movzx ax, byte [bp+di-064h]               ; 0f b6 43 9c
-    inc di                                    ; 47
-    test ax, ax                               ; 85 c0
-    je short 026c2h                           ; 74 0e
-    push ax                                   ; 50
-    push 001b8h                               ; 68 b8 01
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 b5 f2
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 026abh                          ; eb e9
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
-    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 026e2h                          ; 75 0a
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    push 001dbh                               ; 68 db 01
-    jmp short 026eah                          ; eb 08
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    push 001f5h                               ; 68 f5 01
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 83 f2
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 02713h                          ; eb 1f
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 026ffh                           ; 74 05
-    mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02702h                          ; eb 03
-    mov ax, 001a6h                            ; b8 a6 01
-    push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 00207h                               ; 68 07 02
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 62 f2
-    add sp, strict byte 00008h                ; 83 c4 08
-    inc byte [bp-016h]                        ; fe 46 ea
-    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
-    jnc short 0276eh                          ; 73 52
-    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
-    mov ax, bx                                ; 89 d8
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    mov cx, ax                                ; 89 c1
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov ax, bx                                ; 89 d8
-    cwd                                       ; 99
-    mov bx, strict word 00002h                ; bb 02 00
-    idiv bx                                   ; f7 fb
-    mov word [bp-032h], dx                    ; 89 56 ce
-    mov al, byte [bp-032h]                    ; 8a 46 ce
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    movzx ax, cl                              ; 0f b6 c1
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
-    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
-    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov dx, ax                                ; 89 c2
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 00ah                  ; b0 0a
-    out DX, AL                                ; ee
-    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
-    je near 02196h                            ; 0f 84 2e fa
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp near 02199h                           ; e9 2b fa
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
-    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
-    mov dx, strict word 00075h                ; ba 75 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 cd ee
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ata_cmd_data_out_:                           ; 0xf2798 LB 0x2bc
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00022h                ; 83 ec 22
-    mov di, ax                                ; 89 c7
-    mov word [bp-00ch], dx                    ; 89 56 f4
-    mov word [bp-024h], bx                    ; 89 5e dc
-    mov word [bp-01ah], cx                    ; 89 4e e6
-    mov es, dx                                ; 8e c2
-    movzx ax, byte [es:di+00ch]               ; 26 0f b6 45 0c
-    mov dx, ax                                ; 89 c2
-    shr dx, 1                                 ; d1 ea
-    mov dh, al                                ; 88 c6
-    and dh, 001h                              ; 80 e6 01
-    mov byte [bp-006h], dh                    ; 88 76 fa
-    xor dh, dh                                ; 30 f6
-    imul dx, dx, strict byte 00006h           ; 6b d2 06
-    mov bx, di                                ; 89 fb
-    add bx, dx                                ; 01 d3
-    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
-    mov word [bp-00ah], dx                    ; 89 56 f6
-    mov dx, word [es:bx+00208h]               ; 26 8b 97 08 02
-    mov word [bp-012h], dx                    ; 89 56 ee
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov bx, di                                ; 89 fb
-    add bx, ax                                ; 01 c3
-    mov al, byte [es:bx+026h]                 ; 26 8a 47 26
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 027f0h                          ; 75 07
-    mov word [bp-020h], 00080h                ; c7 46 e0 80 00
-    jmp short 027f5h                          ; eb 05
-    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 080h                 ; a8 80
-    je short 02811h                           ; 74 0f
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp near 02a4bh                           ; e9 3a 02
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov ax, word [es:di+006h]                 ; 26 8b 45 06
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov ax, word [es:di+004h]                 ; 26 8b 45 04
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov ax, word [es:di+002h]                 ; 26 8b 45 02
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov ax, word [es:di]                      ; 26 8b 05
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov ax, word [es:di+008h]                 ; 26 8b 45 08
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov ax, word [es:di+016h]                 ; 26 8b 45 16
-    mov word [bp-01ch], ax                    ; 89 46 e4
-    mov ax, word [es:di+012h]                 ; 26 8b 45 12
-    mov word [bp-026h], ax                    ; 89 46 da
-    mov ax, word [es:di+014h]                 ; 26 8b 45 14
-    mov word [bp-022h], ax                    ; 89 46 de
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
-    test ax, ax                               ; 85 c0
-    jne near 02922h                           ; 0f 85 c7 00
-    xor dx, dx                                ; 31 d2
-    xor bx, bx                                ; 31 db
-    mov si, word [bp-01eh]                    ; 8b 76 e2
-    add si, word [bp-01ah]                    ; 03 76 e6
-    adc dx, word [bp-016h]                    ; 13 56 ea
-    adc bx, word [bp-014h]                    ; 13 5e ec
-    adc ax, word [bp-010h]                    ; 13 46 f0
-    test ax, ax                               ; 85 c0
-    jnbe short 02882h                         ; 77 10
-    jne short 028e5h                          ; 75 71
-    test bx, bx                               ; 85 db
-    jnbe short 02882h                         ; 77 0a
-    jne short 028e5h                          ; 75 6b
-    cmp dx, 01000h                            ; 81 fa 00 10
-    jnbe short 02882h                         ; 77 02
-    jne short 028e5h                          ; 75 63
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov cx, word [bp-016h]                    ; 8b 4e ea
-    mov dx, word [bp-01eh]                    ; 8b 56 e2
-    mov si, strict word 00018h                ; be 18 00
-    call 09e4ah                               ; e8 b6 75
-    xor dh, dh                                ; 30 f6
-    mov word [bp-01ch], dx                    ; 89 56 e4
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov cx, word [bp-016h]                    ; 8b 4e ea
-    mov dx, word [bp-01eh]                    ; 8b 56 e2
-    mov si, strict word 00020h                ; be 20 00
-    call 09e4ah                               ; e8 9f 75
-    mov bx, dx                                ; 89 d3
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00003h                ; 83 c2 03
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00004h                ; 83 c2 04
-    out DX, AL                                ; ee
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00005h                ; 83 c2 05
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov byte [bp-015h], al                    ; 88 46 eb
-    xor ah, ah                                ; 30 e4
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    xor ah, ah                                ; 30 e4
-    mov word [bp-01ch], ax                    ; 89 46 e4
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov cx, word [bp-016h]                    ; 8b 4e ea
-    mov dx, word [bp-01eh]                    ; 8b 56 e2
-    mov si, strict word 00008h                ; be 08 00
-    call 09e4ah                               ; e8 4b 75
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov word [bp-014h], bx                    ; 89 5e ec
-    mov word [bp-016h], cx                    ; 89 4e ea
-    mov word [bp-01eh], dx                    ; 89 56 e2
-    mov word [bp-026h], dx                    ; 89 56 da
-    mov si, strict word 00010h                ; be 10 00
-    call 09e4ah                               ; e8 36 75
-    mov word [bp-01eh], dx                    ; 89 56 e2
-    mov ax, dx                                ; 89 d0
-    xor ah, dh                                ; 30 f4
-    and AL, strict byte 00fh                  ; 24 0f
-    or AL, strict byte 040h                   ; 0c 40
-    mov word [bp-022h], ax                    ; 89 46 de
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 00ah                  ; b0 0a
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    inc dx                                    ; 42
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00003h                ; 83 c2 03
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    out DX, AL                                ; ee
-    mov ax, word [bp-026h]                    ; 8b 46 da
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00004h                ; 83 c2 04
-    out DX, AL                                ; ee
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00005h                ; 83 c2 05
-    out DX, AL                                ; ee
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 02964h                           ; 74 05
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02967h                          ; eb 03
-    mov ax, 000a0h                            ; b8 a0 00
-    movzx dx, byte [bp-022h]                  ; 0f b6 56 de
-    or ax, dx                                 ; 09 d0
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00006h                ; 83 c2 06
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00007h                ; 83 c2 07
-    mov al, byte [bp-024h]                    ; 8a 46 dc
-    out DX, AL                                ; ee
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 0297eh                          ; 75 f1
-    test AL, strict byte 001h                 ; a8 01
-    je short 029a0h                           ; 74 0f
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00002h                ; ba 02 00
-    jmp near 02a4bh                           ; e9 ab 00
-    test dl, 008h                             ; f6 c2 08
-    jne short 029b4h                          ; 75 0f
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00003h                ; ba 03 00
-    jmp near 02a4bh                           ; e9 97 00
-    sti                                       ; fb
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    cmp ax, 0f800h                            ; 3d 00 f8
-    jc short 029cdh                           ; 72 10
-    sub ax, 00800h                            ; 2d 00 08
-    mov dx, word [bp-018h]                    ; 8b 56 e8
-    add dx, 00080h                            ; 81 c2 80 00
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov word [bp-018h], dx                    ; 89 56 e8
-    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
-    jne short 029e5h                          ; 75 12
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov cx, word [bp-020h]                    ; 8b 4e e0
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    mov es, [bp-018h]                         ; 8e 46 e8
-    db  0f3h, 066h, 026h, 06fh
-    ; rep es outsd                              ; f3 66 26 6f
-    jmp short 029f4h                          ; eb 0f
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov cx, word [bp-020h]                    ; 8b 4e e0
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    mov es, [bp-018h]                         ; 8e 46 e8
-    db  0f3h, 026h, 06fh
-    ; rep es outsw                              ; f3 26 6f
-    mov word [bp-00eh], si                    ; 89 76 f2
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    inc word [es:di+018h]                     ; 26 ff 45 18
-    dec word [bp-01ah]                        ; ff 4e e6
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 02a01h                          ; 75 f1
-    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
-    jne short 02a2ah                          ; 75 14
-    and AL, strict byte 0e9h                  ; 24 e9
-    cmp AL, strict byte 040h                  ; 3c 40
-    je short 02a40h                           ; 74 24
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00006h                ; ba 06 00
-    jmp short 02a4bh                          ; eb 21
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 0c9h                  ; 24 c9
-    cmp AL, strict byte 048h                  ; 3c 48
-    je short 029b5h                           ; 74 83
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00007h                ; ba 07 00
-    jmp short 02a4bh                          ; eb 0b
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    xor dx, dx                                ; 31 d2
-    mov ax, dx                                ; 89 d0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-@ata_read_sectors:                           ; 0xf2a54 LB 0xb5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov si, word [bp+004h]                    ; 8b 76 04
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
-    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
-    mov dx, cx                                ; 89 ca
-    sal dx, 009h                              ; c1 e2 09
-    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02a95h                           ; 74 1f
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov [bp-00ah], es                         ; 8c 46 f6
-    mov di, si                                ; 89 f7
-    add di, ax                                ; 01 c7
-    mov word [es:di+028h], dx                 ; 26 89 55 28
-    mov bx, 000c4h                            ; bb c4 00
-    mov ax, si                                ; 89 f0
-    mov dx, es                                ; 8c c2
-    call 01e5ah                               ; e8 ca f3
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    jmp short 02afah                          ; eb 65
-    xor bx, bx                                ; 31 db
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov word [bp-00ch], bx                    ; 89 5e f4
-    mov di, word [es:si]                      ; 26 8b 3c
-    add di, cx                                ; 01 cf
-    mov word [bp-008h], di                    ; 89 7e f8
-    mov di, word [es:si+002h]                 ; 26 8b 7c 02
-    adc di, bx                                ; 11 df
-    mov word [bp-006h], di                    ; 89 7e fa
-    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
-    adc bx, word [bp-00ah]                    ; 13 5e f6
-    mov di, word [es:si+006h]                 ; 26 8b 7c 06
-    adc di, word [bp-00ch]                    ; 13 7e f4
-    test di, di                               ; 85 ff
-    jnbe short 02ad1h                         ; 77 11
-    jne short 02addh                          ; 75 1b
-    test bx, bx                               ; 85 db
-    jnbe short 02ad1h                         ; 77 0b
-    jne short 02addh                          ; 75 15
-    cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
-    jnbe short 02ad1h                         ; 77 02
-    jne short 02addh                          ; 75 0c
-    mov bx, strict word 00024h                ; bb 24 00
-    mov ax, si                                ; 89 f0
-    mov dx, es                                ; 8c c2
-    call 01e5ah                               ; e8 7f f3
-    jmp short 02b00h                          ; eb 23
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov [bp-006h], es                         ; 8c 46 fa
-    mov di, si                                ; 89 f7
-    add di, ax                                ; 01 c7
-    mov word [es:di+028h], dx                 ; 26 89 55 28
-    mov bx, 000c4h                            ; bb c4 00
-    mov ax, si                                ; 89 f0
-    mov dx, es                                ; 8c c2
-    call 01e5ah                               ; e8 63 f3
-    mov es, [bp-006h]                         ; 8e 46 fa
-    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-@ata_write_sectors:                          ; 0xf2b09 LB 0x5b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    les si, [bp+004h]                         ; c4 76 04
-    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
-    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02b29h                           ; 74 0c
-    mov bx, strict word 00030h                ; bb 30 00
-    mov ax, si                                ; 89 f0
-    mov dx, es                                ; 8c c2
-    call 02798h                               ; e8 71 fc
-    jmp short 02b5bh                          ; eb 32
-    xor ax, ax                                ; 31 c0
-    xor bx, bx                                ; 31 db
-    xor dx, dx                                ; 31 d2
-    mov di, word [es:si]                      ; 26 8b 3c
-    add di, cx                                ; 01 cf
-    mov word [bp-006h], di                    ; 89 7e fa
-    adc ax, word [es:si+002h]                 ; 26 13 44 02
-    adc bx, word [es:si+004h]                 ; 26 13 5c 04
-    adc dx, word [es:si+006h]                 ; 26 13 54 06
-    test dx, dx                               ; 85 d2
-    jnbe short 02b56h                         ; 77 0f
-    jne short 02b1dh                          ; 75 d4
-    test bx, bx                               ; 85 db
-    jnbe short 02b56h                         ; 77 09
-    jne short 02b1dh                          ; 75 ce
-    cmp ax, 01000h                            ; 3d 00 10
-    jnbe short 02b56h                         ; 77 02
-    jne short 02b1dh                          ; 75 c7
-    mov bx, strict word 00034h                ; bb 34 00
-    jmp short 02b20h                          ; eb c5
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-ata_cmd_packet_:                             ; 0xf2b64 LB 0x2e8
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00014h                ; 83 ec 14
-    push ax                                   ; 50
-    mov byte [bp-008h], dl                    ; 88 56 f8
-    mov di, bx                                ; 89 df
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f1 ea
-    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    shr ax, 1                                 ; d1 e8
-    mov ah, byte [bp-01ah]                    ; 8a 66 e6
-    and ah, 001h                              ; 80 e4 01
-    mov byte [bp-006h], ah                    ; 88 66 fa
-    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 02bb6h                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 8f ed
-    push 00221h                               ; 68 21 02
-    push 00230h                               ; 68 30 02
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 c5 ed
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp near 02e41h                           ; e9 8b 02
-    test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 02bb0h                          ; 75 f4
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    mov si, word [bp-012h]                    ; 8b 76 ee
-    add si, ax                                ; 01 c6
-    mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
-    mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
-    mov word [bp-010h], ax                    ; 89 46 f0
-    imul si, word [bp-01ah], strict byte 0001ch ; 6b 76 e6 1c
-    add si, word [bp-012h]                    ; 03 76 ee
-    mov al, byte [es:si+026h]                 ; 26 8a 44 26
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    xor ax, ax                                ; 31 c0
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    cmp AL, strict byte 00ch                  ; 3c 0c
-    jnc short 02bf9h                          ; 73 06
-    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
-    jmp short 02bffh                          ; eb 06
-    jbe short 02bffh                          ; 76 04
-    mov byte [bp-008h], 010h                  ; c6 46 f8 10
-    shr byte [bp-008h], 1                     ; d0 6e f8
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    mov si, word [bp-012h]                    ; 8b 76 ee
-    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
-    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
-    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
-    lea dx, [bx+007h]                         ; 8d 57 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 080h                 ; a8 80
-    je short 02c27h                           ; 74 06
-    mov dx, strict word 00002h                ; ba 02 00
-    jmp near 02e41h                           ; e9 1a 02
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 00ah                  ; b0 0a
-    out DX, AL                                ; ee
-    lea dx, [bx+004h]                         ; 8d 57 04
-    mov AL, strict byte 0f0h                  ; b0 f0
-    out DX, AL                                ; ee
-    lea dx, [bx+005h]                         ; 8d 57 05
-    mov AL, strict byte 0ffh                  ; b0 ff
-    out DX, AL                                ; ee
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 02c47h                           ; 74 05
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02c4ah                          ; eb 03
-    mov ax, 000a0h                            ; b8 a0 00
-    lea dx, [bx+006h]                         ; 8d 57 06
-    out DX, AL                                ; ee
-    lea dx, [bx+007h]                         ; 8d 57 07
-    mov AL, strict byte 0a0h                  ; b0 a0
-    out DX, AL                                ; ee
-    lea dx, [bx+007h]                         ; 8d 57 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 02c54h                          ; 75 f4
-    test AL, strict byte 001h                 ; a8 01
-    je short 02c73h                           ; 74 0f
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00003h                ; ba 03 00
-    jmp near 02e41h                           ; e9 ce 01
-    test dl, 008h                             ; f6 c2 08
-    jne short 02c87h                          ; 75 0f
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, strict word 00004h                ; ba 04 00
-    jmp near 02e41h                           ; e9 ba 01
-    sti                                       ; fb
-    mov ax, di                                ; 89 f8
-    shr ax, 004h                              ; c1 e8 04
-    add ax, cx                                ; 01 c8
-    mov si, di                                ; 89 fe
-    and si, strict byte 0000fh                ; 83 e6 0f
-    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
-    mov dx, bx                                ; 89 da
-    mov es, ax                                ; 8e c0
-    db  0f3h, 026h, 06fh
-    ; rep es outsw                              ; f3 26 6f
-    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
-    jne short 02cb0h                          ; 75 0b
-    lea dx, [bx+007h]                         ; 8d 57 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    jmp near 02e22h                           ; e9 72 01
-    lea dx, [bx+007h]                         ; 8d 57 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dl, al                                ; 88 c2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 02cb0h                          ; 75 f4
-    test AL, strict byte 088h                 ; a8 88
-    je near 02e22h                            ; 0f 84 60 01
-    test AL, strict byte 001h                 ; a8 01
-    je short 02cd1h                           ; 74 0b
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    jmp short 02c6dh                          ; eb 9c
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 0c9h                  ; 24 c9
-    cmp AL, strict byte 048h                  ; 3c 48
-    je short 02ce4h                           ; 74 0b
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    jmp short 02c81h                          ; eb 9d
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 004h                              ; c1 e8 04
-    mov dx, word [bp+00eh]                    ; 8b 56 0e
-    add dx, ax                                ; 01 c2
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    and ax, strict word 0000fh                ; 25 0f 00
-    mov word [bp+00ch], ax                    ; 89 46 0c
-    mov word [bp+00eh], dx                    ; 89 56 0e
-    lea dx, [bx+005h]                         ; 8d 57 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    sal cx, 008h                              ; c1 e1 08
-    lea dx, [bx+004h]                         ; 8d 57 04
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    add cx, ax                                ; 01 c1
-    mov word [bp-014h], cx                    ; 89 4e ec
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    cmp ax, cx                                ; 39 c8
-    jbe short 02d24h                          ; 76 0c
-    mov ax, cx                                ; 89 c8
-    sub word [bp+004h], cx                    ; 29 4e 04
-    xor ax, cx                                ; 31 c8
-    mov word [bp-014h], ax                    ; 89 46 ec
-    jmp short 02d2eh                          ; eb 0a
-    mov cx, ax                                ; 89 c1
-    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
-    sub word [bp-014h], ax                    ; 29 46 ec
-    xor ax, ax                                ; 31 c0
-    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 02d57h                          ; 75 21
-    mov dx, word [bp-014h]                    ; 8b 56 ec
-    cmp dx, word [bp+006h]                    ; 3b 56 06
-    jbe short 02d57h                          ; 76 19
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    sub ax, word [bp+006h]                    ; 2b 46 06
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    mov word [bp-014h], ax                    ; 89 46 ec
-    xor ax, ax                                ; 31 c0
-    mov word [bp+006h], ax                    ; 89 46 06
-    mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 02d63h                          ; eb 0c
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov dx, word [bp-014h]                    ; 8b 56 ec
-    sub word [bp+006h], dx                    ; 29 56 06
-    sbb word [bp+008h], ax                    ; 19 46 08
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    test cl, 003h                             ; f6 c1 03
-    je short 02d70h                           ; 74 02
-    xor al, al                                ; 30 c0
-    test byte [bp-014h], 003h                 ; f6 46 ec 03
-    je short 02d78h                           ; 74 02
-    xor al, al                                ; 30 c0
-    test byte [bp-00ch], 003h                 ; f6 46 f4 03
-    je short 02d80h                           ; 74 02
-    xor al, al                                ; 30 c0
-    test byte [bp-014h], 001h                 ; f6 46 ec 01
-    je short 02d98h                           ; 74 12
-    inc word [bp-014h]                        ; ff 46 ec
-    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    jbe short 02d98h                          ; 76 09
-    test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je short 02d98h                           ; 74 03
-    dec word [bp-00ch]                        ; ff 4e f4
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 02da9h                          ; 75 0d
-    shr word [bp-014h], 002h                  ; c1 6e ec 02
-    shr cx, 002h                              ; c1 e9 02
-    shr word [bp-00ch], 002h                  ; c1 6e f4 02
-    jmp short 02db1h                          ; eb 08
-    shr word [bp-014h], 1                     ; d1 6e ec
-    shr cx, 1                                 ; d1 e9
-    shr word [bp-00ch], 1                     ; d1 6e f4
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 02de1h                          ; 75 2c
-    test cx, cx                               ; 85 c9
-    je short 02dc3h                           ; 74 0a
-    mov dx, bx                                ; 89 da
-    push eax                                  ; 66 50
-    in eax, DX                                ; 66 ed
-    loop 02dbdh                               ; e2 fc
-    pop eax                                   ; 66 58
-    mov dx, bx                                ; 89 da
-    mov cx, word [bp-014h]                    ; 8b 4e ec
-    les di, [bp+00ch]                         ; c4 7e 0c
-    db  0f3h, 066h, 06dh
-    ; rep insd                                  ; f3 66 6d
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    test ax, ax                               ; 85 c0
-    je short 02e00h                           ; 74 2b
-    mov cx, ax                                ; 89 c1
-    push eax                                  ; 66 50
-    in eax, DX                                ; 66 ed
-    loop 02dd9h                               ; e2 fc
-    pop eax                                   ; 66 58
-    jmp short 02e00h                          ; eb 1f
-    test cx, cx                               ; 85 c9
-    je short 02deah                           ; 74 05
-    mov dx, bx                                ; 89 da
-    in ax, DX                                 ; ed
-    loop 02de7h                               ; e2 fd
-    mov dx, bx                                ; 89 da
-    mov cx, word [bp-014h]                    ; 8b 4e ec
-    les di, [bp+00ch]                         ; c4 7e 0c
-    rep insw                                  ; f3 6d
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    test ax, ax                               ; 85 c0
-    je short 02e00h                           ; 74 05
-    mov cx, ax                                ; 89 c1
-    in ax, DX                                 ; ed
-    loop 02dfdh                               ; e2 fd
-    add word [bp+00ch], si                    ; 01 76 0c
-    xor ax, ax                                ; 31 c0
-    add word [bp-018h], si                    ; 01 76 e8
-    adc word [bp-016h], ax                    ; 11 46 ea
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    mov si, word [bp-012h]                    ; 8b 76 ee
-    mov word [es:si+01ah], ax                 ; 26 89 44 1a
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov word [es:si+01ch], ax                 ; 26 89 44 1c
-    jmp near 02cb0h                           ; e9 8e fe
-    mov al, dl                                ; 88 d0
-    and AL, strict byte 0e9h                  ; 24 e9
-    cmp AL, strict byte 040h                  ; 3c 40
-    je short 02e36h                           ; 74 0c
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    jmp near 02c81h                           ; e9 4b fe
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    add dx, strict byte 00006h                ; 83 c2 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    xor dx, dx                                ; 31 d2
-    mov ax, dx                                ; 89 d0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 0000ch                               ; c2 0c 00
-ata_soft_reset_:                             ; 0xf2e4c LB 0x80
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0e e8
-    mov dx, bx                                ; 89 da
-    shr dx, 1                                 ; d1 ea
-    and bl, 001h                              ; 80 e3 01
-    mov byte [bp-008h], bl                    ; 88 5e f8
-    xor dh, dh                                ; 30 f6
-    imul bx, dx, strict byte 00006h           ; 6b da 06
-    mov es, ax                                ; 8e c0
-    add bx, 00122h                            ; 81 c3 22 01
-    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
-    mov bx, word [es:bx+00208h]               ; 26 8b 9f 08 02
-    lea dx, [bx+006h]                         ; 8d 57 06
-    mov AL, strict byte 00ah                  ; b0 0a
-    out DX, AL                                ; ee
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02e8eh                           ; 74 05
-    mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02e91h                          ; eb 03
-    mov ax, 000a0h                            ; b8 a0 00
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00006h                ; 83 c2 06
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00007h                ; 83 c2 07
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, cx                                ; 89 ca
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 080h                 ; a8 80
-    jne short 02e9fh                          ; 75 f4
-    and AL, strict byte 0e9h                  ; 24 e9
-    cmp AL, strict byte 040h                  ; 3c 40
-    je short 02ebch                           ; 74 0b
-    lea dx, [bx+006h]                         ; 8d 57 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02ec4h                          ; eb 08
-    lea dx, [bx+006h]                         ; 8d 57 06
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    xor ax, ax                                ; 31 c0
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_diskette_ret_status_:                    ; 0xf2ecc LB 0x18
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00041h                ; ba 41 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 81 e7
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_diskette_current_cyl_:                   ; 0xf2ee4 LB 0x2d
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    mov bl, al                                ; 88 c3
-    cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 02ef9h                          ; 76 0b
-    push 00250h                               ; 68 50 02
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 7c ea
-    add sp, strict byte 00004h                ; 83 c4 04
-    movzx ax, dl                              ; 0f b6 c2
-    movzx dx, bl                              ; 0f b6 d3
-    add dx, 00094h                            ; 81 c2 94 00
-    mov bx, ax                                ; 89 c3
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 53 e7
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_wait_for_interrupt_:                  ; 0xf2f11 LB 0x21
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    cli                                       ; fa
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 31 e7
-    test AL, strict byte 080h                 ; a8 80
-    je short 02f27h                           ; 74 04
-    and AL, strict byte 080h                  ; 24 80
-    jmp short 02f2ch                          ; eb 05
-    sti                                       ; fb
-    hlt                                       ; f4
-    cli                                       ; fa
-    jmp short 02f16h                          ; eb ea
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f32 LB 0x46
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    cli                                       ; fa
-    mov dx, strict word 00040h                ; ba 40 00
-    mov ax, dx                                ; 89 d0
-    call 01650h                               ; e8 0f e7
-    test al, al                               ; 84 c0
-    jne short 02f4ah                          ; 75 05
-    sti                                       ; fb
-    xor cl, cl                                ; 30 c9
-    jmp short 02f6eh                          ; eb 24
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 fd e6
-    mov cl, al                                ; 88 c1
-    test AL, strict byte 080h                 ; a8 80
-    je short 02f69h                           ; 74 10
-    and AL, strict byte 07fh                  ; 24 7f
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 f7 e6
-    jmp short 02f6eh                          ; eb 05
-    sti                                       ; fb
-    hlt                                       ; f4
-    cli                                       ; fa
-    jmp short 02f39h                          ; eb cb
-    mov al, cl                                ; 88 c8
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_reset_controller_:                    ; 0xf2f78 LB 0x2b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov dx, 003f2h                            ; ba f2 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    movzx ax, bl                              ; 0f b6 c3
-    and AL, strict byte 0fbh                  ; 24 fb
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    or AL, strict byte 004h                   ; 0c 04
-    out DX, AL                                ; ee
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02f90h                          ; 75 f4
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_prepare_controller_:                  ; 0xf2fa3 LB 0x81
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov cx, ax                                ; 89 c1
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9b e6
-    and AL, strict byte 07fh                  ; 24 7f
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9b e6
-    mov dx, 003f2h                            ; ba f2 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 004h                  ; 24 04
-    mov byte [bp-008h], al                    ; 88 46 f8
-    test cx, cx                               ; 85 c9
-    je short 02fd6h                           ; 74 04
-    mov AL, strict byte 020h                  ; b0 20
-    jmp short 02fd8h                          ; eb 02
-    mov AL, strict byte 010h                  ; b0 10
-    or AL, strict byte 00ch                   ; 0c 0c
-    or al, cl                                 ; 08 c8
-    mov dx, 003f2h                            ; ba f2 03
-    out DX, AL                                ; ee
-    mov bx, strict word 00025h                ; bb 25 00
-    mov dx, strict word 00040h                ; ba 40 00
-    mov ax, dx                                ; 89 d0
-    call 0165eh                               ; e8 73 e6
-    mov dx, 0008bh                            ; ba 8b 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 5c e6
-    shr al, 006h                              ; c0 e8 06
-    mov dx, 003f7h                            ; ba f7 03
-    out DX, AL                                ; ee
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02ffbh                          ; 75 f4
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 0301ch                          ; 75 0f
-    call 02f11h                               ; e8 01 ff
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 42 e6
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_media_known_:                         ; 0xf3024 LB 0x43
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 1c e6
-    mov ah, al                                ; 88 c4
-    test bx, bx                               ; 85 db
-    je short 0303ch                           ; 74 02
-    shr al, 1                                 ; d0 e8
-    and AL, strict byte 001h                  ; 24 01
-    jne short 03044h                          ; 75 04
-    xor ah, ah                                ; 30 e4
-    jmp short 03060h                          ; eb 1c
-    mov dx, 00090h                            ; ba 90 00
-    test bx, bx                               ; 85 db
-    je short 0304eh                           ; 74 03
-    mov dx, 00091h                            ; ba 91 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 fc e5
-    xor ah, ah                                ; 30 e4
-    sar ax, 004h                              ; c1 f8 04
-    and AL, strict byte 001h                  ; 24 01
-    je short 03040h                           ; 74 e3
-    mov ax, strict word 00001h                ; b8 01 00
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_read_id_:                             ; 0xf3067 LB 0x40
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    push si                                   ; 56
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov bx, ax                                ; 89 c3
-    call 02fa3h                               ; e8 2e ff
-    mov AL, strict byte 04ah                  ; b0 4a
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    out DX, AL                                ; ee
-    call 02f11h                               ; e8 90 fe
-    xor si, si                                ; 31 f6
-    jmp short 0308ah                          ; eb 05
-    cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 03096h                          ; 7d 0c
-    mov dx, 003f5h                            ; ba f5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+si-00eh], al                 ; 88 42 f2
-    inc si                                    ; 46
-    jmp short 03085h                          ; eb ef
-    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
-    db  00fh, 094h, 0c0h
-    ; sete al                                   ; 0f 94 c0
-    xor ah, ah                                ; 30 e4
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_drive_recal_:                         ; 0xf30a7 LB 0x48
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    call 02fa3h                               ; e8 f1 fe
-    mov AL, strict byte 007h                  ; b0 07
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    out DX, AL                                ; ee
-    call 02f11h                               ; e8 53 fe
-    test bx, bx                               ; 85 db
-    je short 030c9h                           ; 74 07
-    or AL, strict byte 002h                   ; 0c 02
-    mov cx, 00095h                            ; b9 95 00
-    jmp short 030ceh                          ; eb 05
-    or AL, strict byte 001h                   ; 0c 01
-    mov cx, 00094h                            ; b9 94 00
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 84 e5
-    xor bx, bx                                ; 31 db
-    mov dx, cx                                ; 89 ca
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 7a e5
-    mov ax, strict word 00001h                ; b8 01 00
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_media_sense_:                         ; 0xf30ef LB 0xf0
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    mov di, ax                                ; 89 c7
-    call 030a7h                               ; e8 ab ff
-    test ax, ax                               ; 85 c0
-    jne short 03105h                          ; 75 05
-    xor cx, cx                                ; 31 c9
-    jmp near 031d3h                           ; e9 ce 00
-    mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 a1 e5
-    test di, di                               ; 85 ff
-    jne short 03116h                          ; 75 07
-    mov cl, al                                ; 88 c1
-    shr cl, 004h                              ; c0 e9 04
-    jmp short 0311bh                          ; eb 05
-    mov cl, al                                ; 88 c1
-    and cl, 00fh                              ; 80 e1 0f
-    cmp cl, 001h                              ; 80 f9 01
-    jne short 03129h                          ; 75 09
-    xor cl, cl                                ; 30 c9
-    mov CH, strict byte 015h                  ; b5 15
-    mov si, strict word 00001h                ; be 01 00
-    jmp short 03167h                          ; eb 3e
-    cmp cl, 002h                              ; 80 f9 02
-    jne short 03134h                          ; 75 06
-    xor cl, cl                                ; 30 c9
-    mov CH, strict byte 035h                  ; b5 35
-    jmp short 03124h                          ; eb f0
-    cmp cl, 003h                              ; 80 f9 03
-    jne short 0313fh                          ; 75 06
-    xor cl, cl                                ; 30 c9
-    mov CH, strict byte 017h                  ; b5 17
-    jmp short 03124h                          ; eb e5
-    cmp cl, 004h                              ; 80 f9 04
-    jne short 0314ah                          ; 75 06
-    xor cl, cl                                ; 30 c9
-    mov CH, strict byte 017h                  ; b5 17
-    jmp short 03124h                          ; eb da
-    cmp cl, 005h                              ; 80 f9 05
-    jne short 03155h                          ; 75 06
-    mov CL, strict byte 0cch                  ; b1 cc
-    mov CH, strict byte 0d7h                  ; b5 d7
-    jmp short 03124h                          ; eb cf
-    cmp cl, 00eh                              ; 80 f9 0e
-    je short 0315fh                           ; 74 05
-    cmp cl, 00fh                              ; 80 f9 0f
-    jne short 03161h                          ; 75 02
-    jmp short 0314fh                          ; eb ee
-    xor cl, cl                                ; 30 c9
-    xor ch, ch                                ; 30 ed
-    xor si, si                                ; 31 f6
-    movzx bx, cl                              ; 0f b6 d9
-    mov dx, 0008bh                            ; ba 8b 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 eb e4
-    mov ax, di                                ; 89 f8
-    call 03067h                               ; e8 ef fe
-    test ax, ax                               ; 85 c0
-    jne short 031aeh                          ; 75 32
-    mov al, cl                                ; 88 c8
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 080h                  ; 3c 80
-    je short 031aeh                           ; 74 2a
-    mov al, cl                                ; 88 c8
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 0319bh                           ; 74 0f
-    mov ah, cl                                ; 88 cc
-    and ah, 03fh                              ; 80 e4 3f
-    cmp AL, strict byte 040h                  ; 3c 40
-    je short 031a7h                           ; 74 12
-    test al, al                               ; 84 c0
-    je short 031a0h                           ; 74 07
-    jmp short 03167h                          ; eb cc
-    and cl, 03fh                              ; 80 e1 3f
-    jmp short 03167h                          ; eb c7
-    mov cl, ah                                ; 88 e1
-    or cl, 040h                               ; 80 c9 40
-    jmp short 03167h                          ; eb c0
-    mov cl, ah                                ; 88 e1
-    or cl, 080h                               ; 80 c9 80
-    jmp short 03167h                          ; eb b9
-    test di, di                               ; 85 ff
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    movzx di, al                              ; 0f b6 f8
-    add di, 00090h                            ; 81 c7 90 00
-    movzx bx, cl                              ; 0f b6 d9
-    mov dx, 0008bh                            ; ba 8b 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 98 e4
-    movzx bx, ch                              ; 0f b6 dd
-    mov dx, di                                ; 89 fa
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 8d e4
-    mov cx, si                                ; 89 f1
-    mov ax, cx                                ; 89 c8
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-floppy_drive_exists_:                        ; 0xf31df LB 0x24
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov dx, ax                                ; 89 c2
-    mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 c1 e4
-    test dx, dx                               ; 85 d2
-    jne short 031f4h                          ; 75 05
-    shr al, 004h                              ; c0 e8 04
-    jmp short 031f6h                          ; eb 02
-    and AL, strict byte 00fh                  ; 24 0f
-    test al, al                               ; 84 c0
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int13_diskette_function:                    ; 0xf3203 LB 0x8f7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00016h                ; 83 ec 16
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    shr bx, 008h                              ; c1 eb 08
-    mov byte [bp-006h], bl                    ; 88 5e fa
-    mov si, word [bp+016h]                    ; 8b 76 16
-    and si, 000ffh                            ; 81 e6 ff 00
-    mov al, byte [bp+00eh]                    ; 8a 46 0e
-    mov ah, byte [bp+014h]                    ; 8a 66 14
-    mov cl, byte [bp+016h]                    ; 8a 4e 16
-    mov dx, word [bp+014h]                    ; 8b 56 14
-    shr dx, 008h                              ; c1 ea 08
-    mov word [bp-010h], dx                    ; 89 56 f0
-    cmp bl, 008h                              ; 80 fb 08
-    jc short 0326ah                           ; 72 38
-    mov dx, word [bp+01ch]                    ; 8b 56 1c
-    or dl, 001h                               ; 80 ca 01
-    cmp bl, 008h                              ; 80 fb 08
-    jbe near 037c0h                           ; 0f 86 81 05
-    cmp bl, 016h                              ; 80 fb 16
-    jc short 03260h                           ; 72 1c
-    or si, 00100h                             ; 81 ce 00 01
-    cmp bl, 016h                              ; 80 fb 16
-    jbe near 038f4h                           ; 0f 86 a5 06
-    cmp bl, 018h                              ; 80 fb 18
-    je near 0398ah                            ; 0f 84 34 07
-    cmp bl, 017h                              ; 80 fb 17
-    je near 03918h                            ; 0f 84 bb 06
-    jmp near 03ad7h                           ; e9 77 08
-    cmp bl, 015h                              ; 80 fb 15
-    je near 038b0h                            ; 0f 84 49 06
-    jmp near 03ad7h                           ; e9 6d 08
-    cmp bl, 001h                              ; 80 fb 01
-    jc short 03284h                           ; 72 15
-    jbe near 032fdh                           ; 0f 86 8a 00
-    cmp bl, 005h                              ; 80 fb 05
-    je near 0363ah                            ; 0f 84 c0 03
-    cmp bl, 004h                              ; 80 fb 04
-    jbe near 0331bh                           ; 0f 86 9a 00
-    jmp near 03ad7h                           ; e9 53 08
-    test bl, bl                               ; 84 db
-    jne near 03ad7h                           ; 0f 85 4d 08
-    mov al, byte [bp+00eh]                    ; 8a 46 0e
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 032a8h                          ; 76 14
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 00001h                ; b8 01 00
-    call 02ecch                               ; e8 27 fc
-    jmp near 03616h                           ; e9 6e 03
-    mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 fe e3
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 032bbh                          ; 75 07
-    mov cl, al                                ; 88 c1
-    shr cl, 004h                              ; c0 e9 04
-    jmp short 032c0h                          ; eb 05
-    mov cl, al                                ; 88 c1
-    and cl, 00fh                              ; 80 e1 0f
-    test cl, cl                               ; 84 c9
-    jne short 032d4h                          ; 75 10
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 080h                               ; 80 cc 80
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, 00080h                            ; b8 80 00
-    jmp short 032a2h                          ; eb ce
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 0003eh                ; ba 3e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 7f e3
-    xor al, al                                ; 30 c0
-    mov byte [bp+017h], al                    ; 88 46 17
-    xor ah, ah                                ; 30 e4
-    call 02ecch                               ; e8 e3 fb
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    xor dx, dx                                ; 31 d2
-    call 02ee4h                               ; e8 ee fb
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    mov dx, 00441h                            ; ba 41 04
-    xor ax, ax                                ; 31 c0
-    call 01650h                               ; e8 47 e3
-    movzx dx, al                              ; 0f b6 d0
-    sal dx, 008h                              ; c1 e2 08
-    or si, dx                                 ; 09 d6
-    mov word [bp+016h], si                    ; 89 76 16
-    test al, al                               ; 84 c0
-    je short 032f6h                           ; 74 de
-    jmp near 03616h                           ; e9 fb 02
-    mov ch, cl                                ; 88 cd
-    mov dl, byte [bp-010h]                    ; 8a 56 f0
-    mov byte [bp-00ch], dl                    ; 88 56 f4
-    mov byte [bp-00ah], ah                    ; 88 66 f6
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    shr dx, 008h                              ; c1 ea 08
-    mov byte [bp-00eh], dl                    ; 88 56 f2
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 03344h                         ; 77 0e
-    cmp dl, 001h                              ; 80 fa 01
-    jnbe short 03344h                         ; 77 09
-    test cl, cl                               ; 84 c9
-    je short 03344h                           ; 74 05
-    cmp cl, 048h                              ; 80 f9 48
-    jbe short 0336eh                          ; 76 2a
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 e2 e5
-    push 00275h                               ; 68 75 02
-    push 0028dh                               ; 68 8d 02
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 18 e6
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp near 033e4h                           ; e9 76 00
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 031dfh                               ; e8 6a fe
-    test ax, ax                               ; 85 c0
-    je near 03477h                            ; 0f 84 fc 00
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    mov ax, dx                                ; 89 d0
-    call 03024h                               ; e8 a0 fc
-    test ax, ax                               ; 85 c0
-    jne short 033a1h                          ; 75 19
-    mov ax, dx                                ; 89 d0
-    call 030efh                               ; e8 62 fd
-    test ax, ax                               ; 85 c0
-    jne short 033a1h                          ; 75 10
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 00ch                               ; 80 cc 0c
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 0000ch                ; b8 0c 00
-    jmp short 033e4h                          ; eb 43
-    cmp byte [bp-006h], 002h                  ; 80 7e fa 02
-    jne near 03509h                           ; 0f 85 60 01
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    shr ax, 00ch                              ; c1 e8 0c
-    mov cl, al                                ; 88 c1
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    sal dx, 004h                              ; c1 e2 04
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    add bx, dx                                ; 01 d3
-    mov word [bp-012h], bx                    ; 89 5e ee
-    cmp dx, bx                                ; 39 da
-    jbe short 033c5h                          ; 76 02
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    movzx bx, ch                              ; 0f b6 dd
-    sal bx, 009h                              ; c1 e3 09
-    dec bx                                    ; 4b
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    add ax, bx                                ; 01 d8
-    cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jnc short 033eeh                          ; 73 18
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 009h                               ; 80 cc 09
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 00009h                ; b8 09 00
-    call 02ecch                               ; e8 e5 fa
-    mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 03616h                           ; e9 28 02
-    mov AL, strict byte 006h                  ; b0 06
-    mov dx, strict word 0000ah                ; ba 0a 00
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, strict word 0000ch                ; ba 0c 00
-    out DX, AL                                ; ee
-    mov al, byte [bp-012h]                    ; 8a 46 ee
-    mov dx, strict word 00004h                ; ba 04 00
-    out DX, AL                                ; ee
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    shr ax, 008h                              ; c1 e8 08
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, strict word 0000ch                ; ba 0c 00
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    mov dx, strict word 00005h                ; ba 05 00
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    shr ax, 008h                              ; c1 e8 08
-    out DX, AL                                ; ee
-    mov AL, strict byte 046h                  ; b0 46
-    mov dx, strict word 0000bh                ; ba 0b 00
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    mov dx, 00081h                            ; ba 81 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    mov dx, strict word 0000ah                ; ba 0a 00
-    out DX, AL                                ; ee
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 02fa3h                               ; e8 70 fb
-    mov AL, strict byte 0e6h                  ; b0 e6
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
-    sal dx, 002h                              ; c1 e2 02
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    or ax, dx                                 ; 09 d0
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    out DX, AL                                ; ee
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    out DX, AL                                ; ee
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    out DX, AL                                ; ee
-    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
-    movzx ax, ch                              ; 0f b6 c5
-    add ax, dx                                ; 01 d0
-    dec ax                                    ; 48
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov AL, strict byte 0ffh                  ; b0 ff
-    out DX, AL                                ; ee
-    call 02f32h                               ; e8 c2 fa
-    test al, al                               ; 84 c0
-    jne short 03488h                          ; 75 14
-    call 02f78h                               ; e8 01 fb
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 080h                               ; 80 cc 80
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, 00080h                            ; b8 80 00
-    jmp near 033e4h                           ; e9 5c ff
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 034a2h                           ; 74 0e
-    push 00275h                               ; 68 75 02
-    push 002a8h                               ; 68 a8 02
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 d3 e4
-    add sp, strict byte 00006h                ; 83 c4 06
-    xor si, si                                ; 31 f6
-    jmp short 034abh                          ; eb 05
-    cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 034c3h                          ; 7d 18
-    mov dx, 003f5h                            ; ba f5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+si-01ah], al                 ; 88 42 e6
-    movzx bx, al                              ; 0f b6 d8
-    lea dx, [si+042h]                         ; 8d 54 42
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9e e1
-    inc si                                    ; 46
-    jmp short 034a6h                          ; eb e3
-    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
-    je short 034dah                           ; 74 11
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 020h                               ; 80 cc 20
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 00020h                ; b8 20 00
-    jmp near 033e4h                           ; e9 0a ff
-    movzx ax, ch                              ; 0f b6 c5
-    sal ax, 009h                              ; c1 e0 09
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    mov cx, ax                                ; 89 c1
-    mov si, word [bp+010h]                    ; 8b 76 10
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    mov di, si                                ; 89 f7
-    mov es, dx                                ; 8e c2
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsw                                 ; f3 a5
-    pop DS                                    ; 1f
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 02ee4h                               ; e8 e2 f9
-    mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 03983h                           ; e9 7a 04
-    cmp byte [bp-006h], 003h                  ; 80 7e fa 03
-    jne near 03624h                           ; 0f 85 13 01
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    shr ax, 00ch                              ; c1 e8 0c
-    mov cl, al                                ; 88 c1
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    sal dx, 004h                              ; c1 e2 04
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    add bx, dx                                ; 01 d3
-    mov word [bp-012h], bx                    ; 89 5e ee
-    cmp dx, bx                                ; 39 da
-    jbe short 0352dh                          ; 76 02
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    movzx bx, ch                              ; 0f b6 dd
-    sal bx, 009h                              ; c1 e3 09
-    dec bx                                    ; 4b
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    add ax, bx                                ; 01 d8
-    cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jc near 033d6h                            ; 0f 82 96 fe
-    mov AL, strict byte 006h                  ; b0 06
-    mov dx, strict word 0000ah                ; ba 0a 00
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, strict word 0000ch                ; ba 0c 00
-    out DX, AL                                ; ee
-    mov al, byte [bp-012h]                    ; 8a 46 ee
-    mov dx, strict word 00004h                ; ba 04 00
-    out DX, AL                                ; ee
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    shr ax, 008h                              ; c1 e8 08
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, strict word 0000ch                ; ba 0c 00
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    mov dx, strict word 00005h                ; ba 05 00
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    shr ax, 008h                              ; c1 e8 08
-    out DX, AL                                ; ee
-    mov AL, strict byte 04ah                  ; b0 4a
-    mov dx, strict word 0000bh                ; ba 0b 00
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    mov dx, 00081h                            ; ba 81 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    mov dx, strict word 0000ah                ; ba 0a 00
-    out DX, AL                                ; ee
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 02fa3h                               ; e8 1e fa
-    mov AL, strict byte 0c5h                  ; b0 c5
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
-    sal dx, 002h                              ; c1 e2 02
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    or ax, dx                                 ; 09 d0
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    out DX, AL                                ; ee
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    out DX, AL                                ; ee
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    out DX, AL                                ; ee
-    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
-    movzx ax, ch                              ; 0f b6 c5
-    add ax, dx                                ; 01 d0
-    dec ax                                    ; 48
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov AL, strict byte 0ffh                  ; b0 ff
-    out DX, AL                                ; ee
-    call 02f32h                               ; e8 70 f9
-    test al, al                               ; 84 c0
-    je near 03474h                            ; 0f 84 ac fe
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 035e2h                           ; 74 0e
-    push 00275h                               ; 68 75 02
-    push 002a8h                               ; 68 a8 02
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 93 e3
-    add sp, strict byte 00006h                ; 83 c4 06
-    xor si, si                                ; 31 f6
-    jmp short 035ebh                          ; eb 05
-    cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 03603h                          ; 7d 18
-    mov dx, 003f5h                            ; ba f5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+si-01ah], al                 ; 88 42 e6
-    movzx bx, al                              ; 0f b6 d8
-    lea dx, [si+042h]                         ; 8d 54 42
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 5e e0
-    inc si                                    ; 46
-    jmp short 035e6h                          ; eb e3
-    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
-    je near 034f7h                            ; 0f 84 ec fe
-    test byte [bp-019h], 002h                 ; f6 46 e7 02
-    je short 0361dh                           ; 74 0c
-    mov word [bp+016h], 00300h                ; c7 46 16 00 03
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 032f6h                           ; e9 d9 fc
-    mov word [bp+016h], 00100h                ; c7 46 16 00 01
-    jmp short 03616h                          ; eb f2
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 02ee4h                               ; e8 b5 f8
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 032f6h                           ; e9 bc fc
-    mov ch, byte [bp+016h]                    ; 8a 6e 16
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    shr dx, 008h                              ; c1 ea 08
-    mov byte [bp-00eh], dl                    ; 88 56 f2
-    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
-    mov byte [bp-008h], bl                    ; 88 5e f8
-    cmp bl, 001h                              ; 80 fb 01
-    jnbe short 0366ch                         ; 77 12
-    cmp dl, 001h                              ; 80 fa 01
-    jnbe short 0366ch                         ; 77 0d
-    cmp AL, strict byte 04fh                  ; 3c 4f
-    jnbe short 0366ch                         ; 77 09
-    test ch, ch                               ; 84 ed
-    je short 0366ch                           ; 74 05
-    cmp ch, 012h                              ; 80 fd 12
-    jbe short 03681h                          ; 76 15
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 00001h                ; b8 01 00
-    call 02ecch                               ; e8 4f f8
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 031dfh                               ; e8 57 fb
-    test ax, ax                               ; 85 c0
-    je near 032c4h                            ; 0f 84 36 fc
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    mov ax, dx                                ; 89 d0
-    call 03024h                               ; e8 8d f9
-    test ax, ax                               ; 85 c0
-    jne short 036a6h                          ; 75 0b
-    mov ax, dx                                ; 89 d0
-    call 030efh                               ; e8 4f fa
-    test ax, ax                               ; 85 c0
-    je near 03391h                            ; 0f 84 eb fc
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    shr ax, 00ch                              ; c1 e8 0c
-    mov cl, al                                ; 88 c1
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    sal dx, 004h                              ; c1 e2 04
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    add bx, dx                                ; 01 d3
-    mov word [bp-012h], bx                    ; 89 5e ee
-    cmp dx, bx                                ; 39 da
-    jbe short 036c2h                          ; 76 02
-    db  0feh, 0c1h
-    ; inc cl                                    ; fe c1
-    movzx bx, ch                              ; 0f b6 dd
-    sal bx, 002h                              ; c1 e3 02
-    dec bx                                    ; 4b
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    add ax, bx                                ; 01 d8
-    cmp ax, word [bp-012h]                    ; 3b 46 ee
-    jc near 033d6h                            ; 0f 82 01 fd
-    mov AL, strict byte 006h                  ; b0 06
-    mov dx, strict word 0000ah                ; ba 0a 00
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, strict word 0000ch                ; ba 0c 00
-    out DX, AL                                ; ee
-    mov al, byte [bp-012h]                    ; 8a 46 ee
-    mov dx, strict word 00004h                ; ba 04 00
-    out DX, AL                                ; ee
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    shr ax, 008h                              ; c1 e8 08
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    mov dx, strict word 0000ch                ; ba 0c 00
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    mov dx, strict word 00005h                ; ba 05 00
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    shr ax, 008h                              ; c1 e8 08
-    out DX, AL                                ; ee
-    mov AL, strict byte 04ah                  ; b0 4a
-    mov dx, strict word 0000bh                ; ba 0b 00
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    mov dx, 00081h                            ; ba 81 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    mov dx, strict word 0000ah                ; ba 0a 00
-    out DX, AL                                ; ee
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 02fa3h                               ; e8 89 f8
-    mov AL, strict byte 00fh                  ; b0 0f
-    mov dx, 003f5h                            ; ba f5 03
-    out DX, AL                                ; ee
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    sal bx, 002h                              ; c1 e3 02
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    or bx, ax                                 ; 09 c3
-    mov al, bl                                ; 88 d8
-    out DX, AL                                ; ee
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    out DX, AL                                ; ee
-    mov AL, strict byte 04dh                  ; b0 4d
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    out DX, AL                                ; ee
-    mov al, ch                                ; 88 e8
-    out DX, AL                                ; ee
-    xor al, ch                                ; 30 e8
-    out DX, AL                                ; ee
-    mov AL, strict byte 0f6h                  ; b0 f6
-    out DX, AL                                ; ee
-    call 02f32h                               ; e8 e9 f7
-    test al, al                               ; 84 c0
-    jne short 03753h                          ; 75 06
-    call 02f78h                               ; e8 28 f8
-    jmp near 032c4h                           ; e9 71 fb
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 0376dh                           ; 74 0e
-    push 00275h                               ; 68 75 02
-    push 002a8h                               ; 68 a8 02
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 08 e2
-    add sp, strict byte 00006h                ; 83 c4 06
-    xor si, si                                ; 31 f6
-    jmp short 03776h                          ; eb 05
-    cmp si, strict byte 00007h                ; 83 fe 07
-    jnl short 0378eh                          ; 7d 18
-    mov dx, 003f5h                            ; ba f5 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+si-01ah], al                 ; 88 42 e6
-    movzx bx, al                              ; 0f b6 d8
-    lea dx, [si+042h]                         ; 8d 54 42
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d3 de
-    inc si                                    ; 46
-    jmp short 03771h                          ; eb e3
-    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
-    je short 037aah                           ; 74 16
-    test byte [bp-019h], 002h                 ; f6 46 e7 02
-    jne near 03611h                           ; 0f 85 75 fe
-    push 00275h                               ; 68 75 02
-    push 002bch                               ; 68 bc 02
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 cb e1
-    add sp, strict byte 00006h                ; 83 c4 06
-    xor al, al                                ; 30 c0
-    mov byte [bp+017h], al                    ; 88 46 17
-    xor ah, ah                                ; 30 e4
-    call 02ecch                               ; e8 18 f7
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    xor dx, dx                                ; 31 d2
-    call 02ee4h                               ; e8 27 f7
-    jmp near 03983h                           ; e9 c3 01
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 037e4h                          ; 76 1d
-    xor ax, ax                                ; 31 c0
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov word [bp+010h], ax                    ; 89 46 10
-    mov word [bp+014h], ax                    ; 89 46 14
-    mov word [bp+012h], ax                    ; 89 46 12
-    mov word [bp+006h], ax                    ; 89 46 06
-    mov word [bp+008h], ax                    ; 89 46 08
-    movzx ax, ch                              ; 0f b6 c5
-    mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 03901h                           ; e9 1d 01
-    mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 c2 de
-    mov cl, al                                ; 88 c1
-    xor ch, ch                                ; 30 ed
-    test AL, strict byte 0f0h                 ; a8 f0
-    je short 037f4h                           ; 74 02
-    mov CH, strict byte 001h                  ; b5 01
-    test cl, 00fh                             ; f6 c1 0f
-    je short 037fbh                           ; 74 02
-    db  0feh, 0c5h
-    ; inc ch                                    ; fe c5
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 03806h                          ; 75 05
-    shr cl, 004h                              ; c0 e9 04
-    jmp short 03809h                          ; eb 03
-    and cl, 00fh                              ; 80 e1 0f
-    mov byte [bp+011h], 000h                  ; c6 46 11 00
-    movzx ax, cl                              ; 0f b6 c1
-    mov word [bp+010h], ax                    ; 89 46 10
-    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    movzx dx, ch                              ; 0f b6 d5
-    or ax, dx                                 ; 09 d0
-    mov word [bp+012h], ax                    ; 89 46 12
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+012h], ax                    ; 89 46 12
-    cmp cl, 003h                              ; 80 f9 03
-    jc short 03847h                           ; 72 15
-    jbe short 0386eh                          ; 76 3a
-    cmp cl, 005h                              ; 80 f9 05
-    jc short 03875h                           ; 72 3c
-    jbe short 0387ch                          ; 76 41
-    cmp cl, 00fh                              ; 80 f9 0f
-    je short 0388ah                           ; 74 4a
-    cmp cl, 00eh                              ; 80 f9 0e
-    je short 03883h                           ; 74 3e
-    jmp short 03891h                          ; eb 4a
-    cmp cl, 002h                              ; 80 f9 02
-    je short 03867h                           ; 74 1b
-    cmp cl, 001h                              ; 80 f9 01
-    je short 03860h                           ; 74 0f
-    test cl, cl                               ; 84 c9
-    jne short 03891h                          ; 75 3c
-    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 0389fh                          ; eb 3f
-    mov word [bp+014h], 02709h                ; c7 46 14 09 27
-    jmp short 0389fh                          ; eb 38
-    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
-    jmp short 0389fh                          ; eb 31
-    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
-    jmp short 0389fh                          ; eb 2a
-    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
-    jmp short 0389fh                          ; eb 23
-    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
-    jmp short 0389fh                          ; eb 1c
-    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
-    jmp short 0389fh                          ; eb 15
-    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
-    jmp short 0389fh                          ; eb 0e
-    push 00275h                               ; 68 75 02
-    push 002cdh                               ; 68 cd 02
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 d6 e0
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    movzx ax, cl                              ; 0f b6 c1
-    call 03afah                               ; e8 50 02
-    mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03983h                           ; e9 d3 00
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 038bch                          ; 76 05
-    mov word [bp+016h], si                    ; 89 76 16
-    jmp short 03901h                          ; eb 45
-    mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 ea dd
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 038cfh                          ; 75 07
-    mov cl, al                                ; 88 c1
-    shr cl, 004h                              ; c0 e9 04
-    jmp short 038d4h                          ; eb 05
-    mov cl, al                                ; 88 c1
-    and cl, 00fh                              ; 80 e1 0f
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    xor dh, dh                                ; 30 f6
-    test cl, cl                               ; 84 c9
-    je short 038eeh                           ; 74 0d
-    cmp cl, 001h                              ; 80 f9 01
-    jbe short 038ebh                          ; 76 05
-    or dh, 002h                               ; 80 ce 02
-    jmp short 038eeh                          ; eb 03
-    or dh, 001h                               ; 80 ce 01
-    mov word [bp+016h], dx                    ; 89 56 16
-    jmp near 032f6h                           ; e9 02 fa
-    cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 03907h                          ; 76 0f
-    mov word [bp+016h], si                    ; 89 76 16
-    mov ax, strict word 00001h                ; b8 01 00
-    call 02ecch                               ; e8 cb f5
-    mov word [bp+01ch], dx                    ; 89 56 1c
-    jmp near 032f6h                           ; e9 ef f9
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 006h                               ; 80 cc 06
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 00006h                ; b8 06 00
-    jmp near 032a2h                           ; e9 8a f9
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov bl, cl                                ; 88 cb
-    cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 038f8h                         ; 77 d7
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 031dfh                               ; e8 b7 f8
-    test ax, ax                               ; 85 c0
-    je near 032c4h                            ; 0f 84 96 f9
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    movzx dx, al                              ; 0f b6 d0
-    add dx, 00090h                            ; 81 c2 90 00
-    mov word [bp-012h], dx                    ; 89 56 ee
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 0b dd
-    and AL, strict byte 00fh                  ; 24 0f
-    cmp bl, 002h                              ; 80 fb 02
-    jc short 0395bh                           ; 72 0f
-    jbe short 03967h                          ; 76 19
-    cmp bl, 004h                              ; 80 fb 04
-    je short 03963h                           ; 74 10
-    cmp bl, 003h                              ; 80 fb 03
-    je short 0396bh                           ; 74 13
-    jmp near 03294h                           ; e9 39 f9
-    cmp bl, 001h                              ; 80 fb 01
-    je short 03963h                           ; 74 03
-    jmp near 03294h                           ; e9 31 f9
-    or AL, strict byte 090h                   ; 0c 90
-    jmp short 0396dh                          ; eb 06
-    or AL, strict byte 070h                   ; 0c 70
-    jmp short 0396dh                          ; eb 02
-    or AL, strict byte 010h                   ; 0c 10
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e5 dc
-    xor al, al                                ; 30 c0
-    mov byte [bp+017h], al                    ; 88 46 17
-    xor ah, ah                                ; 30 e4
-    call 02ecch                               ; e8 49 f5
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp near 032f6h                           ; e9 6c f9
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov ch, ah                                ; 88 e5
-    and ch, 03fh                              ; 80 e5 3f
-    movzx bx, ah                              ; 0f b6 dc
-    sar bx, 006h                              ; c1 fb 06
-    sal bx, 008h                              ; c1 e3 08
-    add bx, word [bp-010h]                    ; 03 5e f0
-    mov byte [bp-00ch], bl                    ; 88 5e f4
-    cmp AL, strict byte 001h                  ; 3c 01
-    jnbe near 038f8h                          ; 0f 87 51 ff
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 031dfh                               ; e8 31 f8
-    test ax, ax                               ; 85 c0
-    je near 032c4h                            ; 0f 84 10 f9
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    mov ax, dx                                ; 89 d0
-    call 03024h                               ; e8 67 f6
-    test ax, ax                               ; 85 c0
-    jne short 039dbh                          ; 75 1a
-    mov ax, dx                                ; 89 d0
-    call 030efh                               ; e8 29 f7
-    test ax, ax                               ; 85 c0
-    jne short 039dbh                          ; 75 11
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 00ch                               ; 80 cc 0c
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 032a2h                           ; e9 c7 f8
-    mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 cb dc
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 039eeh                          ; 75 07
-    mov cl, al                                ; 88 c1
-    shr cl, 004h                              ; c0 e9 04
-    jmp short 039f3h                          ; eb 05
-    mov cl, al                                ; 88 c1
-    and cl, 00fh                              ; 80 e1 0f
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    movzx dx, al                              ; 0f b6 d0
-    add dx, 00090h                            ; 81 c2 90 00
-    mov word [bp-012h], dx                    ; 89 56 ee
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 46 dc
-    and AL, strict byte 00fh                  ; 24 0f
-    cmp cl, 003h                              ; 80 f9 03
-    jc short 03a2fh                           ; 72 1e
-    mov dl, al                                ; 88 c2
-    or dl, 090h                               ; 80 ca 90
-    cmp cl, 003h                              ; 80 f9 03
-    jbe short 03a6dh                          ; 76 52
-    mov ah, al                                ; 88 c4
-    or ah, 010h                               ; 80 cc 10
-    cmp cl, 005h                              ; 80 f9 05
-    je near 03a92h                            ; 0f 84 6b 00
-    cmp cl, 004h                              ; 80 f9 04
-    je short 03a7ch                           ; 74 50
-    jmp near 03aadh                           ; e9 7e 00
-    cmp cl, 002h                              ; 80 f9 02
-    je short 03a4fh                           ; 74 1b
-    cmp cl, 001h                              ; 80 f9 01
-    jne near 03aadh                           ; 0f 85 72 00
-    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
-    jne near 03aadh                           ; 0f 85 6a 00
-    cmp ch, 009h                              ; 80 fd 09
-    jne near 03aadh                           ; 0f 85 63 00
-    or AL, strict byte 090h                   ; 0c 90
-    jmp near 03aadh                           ; e9 5e 00
-    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
-    jne short 03a5eh                          ; 75 09
-    cmp ch, 009h                              ; 80 fd 09
-    jne short 03a5eh                          ; 75 04
-    or AL, strict byte 070h                   ; 0c 70
-    jmp short 03aadh                          ; eb 4f
-    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
-    jne short 03aadh                          ; 75 49
-    cmp ch, 00fh                              ; 80 fd 0f
-    jne short 03aadh                          ; 75 44
-    or AL, strict byte 010h                   ; 0c 10
-    jmp short 03aadh                          ; eb 40
-    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
-    jne short 03aadh                          ; 75 3a
-    cmp ch, 009h                              ; 80 fd 09
-    jne short 03aadh                          ; 75 35
-    mov al, dl                                ; 88 d0
-    jmp short 03aadh                          ; eb 31
-    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
-    jne short 03aadh                          ; 75 2b
-    cmp ch, 009h                              ; 80 fd 09
-    jne short 03a89h                          ; 75 02
-    jmp short 03a78h                          ; eb ef
-    cmp ch, 012h                              ; 80 fd 12
-    jne short 03aadh                          ; 75 1f
-    mov al, ah                                ; 88 e0
-    jmp short 03aadh                          ; eb 1b
-    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
-    jne short 03aadh                          ; 75 15
-    cmp ch, 009h                              ; 80 fd 09
-    jne short 03a9fh                          ; 75 02
-    jmp short 03a78h                          ; eb d9
-    cmp ch, 012h                              ; 80 fd 12
-    jne short 03aa6h                          ; 75 02
-    jmp short 03a8eh                          ; eb e8
-    cmp ch, 024h                              ; 80 fd 24
-    jne short 03aadh                          ; 75 02
-    or AL, strict byte 0d0h                   ; 0c d0
-    movzx dx, al                              ; 0f b6 d0
-    sar dx, 004h                              ; c1 fa 04
-    test dl, 001h                             ; f6 c2 01
-    je near 039cah                            ; 0f 84 10 ff
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 98 db
-    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    movzx ax, cl                              ; 0f b6 c1
-    call 03afah                               ; e8 29 00
-    mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03979h                           ; e9 a2 fe
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 4f de
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 00275h                               ; 68 75 02
-    push 002e2h                               ; 68 e2 02
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 7e de
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03294h                           ; e9 9a f7
-get_floppy_dpt_:                             ; 0xf3afa LB 0x2f
-    push bx                                   ; 53
-    push dx                                   ; 52
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dl, al                                ; 88 c2
-    xor ax, ax                                ; 31 c0
-    jmp short 03b0bh                          ; eb 06
-    inc ax                                    ; 40
-    cmp ax, strict word 00007h                ; 3d 07 00
-    jnc short 03b22h                          ; 73 17
-    mov bx, ax                                ; 89 c3
-    add bx, ax                                ; 01 c3
-    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
-    jne short 03b05h                          ; 75 f0
-    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
-    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
-    add ax, strict word 00000h                ; 05 00 00
-    jmp short 03b25h                          ; eb 03
-    mov ax, strict word 00041h                ; b8 41 00
-    pop bp                                    ; 5d
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    retn                                      ; c3
-dummy_soft_reset_:                           ; 0xf3b29 LB 0x7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    xor ax, ax                                ; 31 c0
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_cdemu_init:                                 ; 0xf3b30 LB 0x18
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 30 db
-    xor bx, bx                                ; 31 db
-    mov dx, 00366h                            ; ba 66 03
-    call 0165eh                               ; e8 1a db
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_cdemu_isactive:                             ; 0xf3b48 LB 0x16
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 18 db
-    mov dx, 00366h                            ; ba 66 03
-    call 01650h                               ; e8 f6 da
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_cdemu_emulated_drive:                       ; 0xf3b5e LB 0x16
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 02 db
-    mov dx, 00368h                            ; ba 68 03
-    call 01650h                               ; e8 e0 da
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int13_eltorito:                             ; 0xf3b74 LB 0x189
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 ea da
-    mov si, 00366h                            ; be 66 03
-    mov di, ax                                ; 89 c7
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, strict word 0004bh                ; 3d 4b 00
-    jc short 03b9ch                           ; 72 0a
-    jbe short 03bc2h                          ; 76 2e
-    cmp ax, strict word 0004dh                ; 3d 4d 00
-    jbe short 03ba3h                          ; 76 0a
-    jmp near 03cc1h                           ; e9 25 01
-    cmp ax, strict word 0004ah                ; 3d 4a 00
-    jne near 03cc1h                           ; 0f 85 1e 01
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 83 dd
-    push word [bp+016h]                       ; ff 76 16
-    push 002fch                               ; 68 fc 02
-    push 0030bh                               ; 68 0b 03
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 b6 dd
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03cdch                           ; e9 1a 01
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    mov bx, strict word 00013h                ; bb 13 00
-    call 0165eh                               ; e8 90 da
-    mov es, di                                ; 8e c7
-    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    inc dx                                    ; 42
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 7f da
-    mov es, di                                ; 8e c7
-    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 6d da
-    mov es, di                                ; 8e c7
-    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 00003h                ; 83 c2 03
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 5a da
-    mov es, di                                ; 8e c7
-    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
-    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 00004h                ; 83 c2 04
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0169ah                               ; e8 80 da
-    mov es, di                                ; 8e c7
-    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 00008h                ; 83 c2 08
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 4e da
-    mov es, di                                ; 8e c7
-    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 0000ah                ; 83 c2 0a
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 3c da
-    mov es, di                                ; 8e c7
-    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 0000ch                ; 83 c2 0c
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 2a da
-    mov es, di                                ; 8e c7
-    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 0000eh                ; 83 c2 0e
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 18 da
-    mov es, di                                ; 8e c7
-    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 00010h                ; 83 c2 10
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 e9 d9
-    mov es, di                                ; 8e c7
-    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 00011h                ; 83 c2 11
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 d6 d9
-    mov es, di                                ; 8e c7
-    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
-    mov dx, word [bp+00ah]                    ; 8b 56 0a
-    add dx, strict byte 00012h                ; 83 c2 12
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 c3 d9
-    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
-    jne short 03ca7h                          ; 75 06
-    mov es, di                                ; 8e c7
-    mov byte [es:si], 000h                    ; 26 c6 04 00
-    mov byte [bp+017h], 000h                  ; c6 46 17 00
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 a8 d9
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 65 dc
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 002fch                               ; 68 fc 02
-    push 00333h                               ; 68 33 03
-    jmp near 03bb7h                           ; e9 db fe
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov bx, ax                                ; 89 c3
-    shr bx, 008h                              ; c1 eb 08
-    xor bh, bh                                ; 30 ff
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 67 d9
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 03cbah                          ; eb bd
-device_is_cdrom_:                            ; 0xf3cfd LB 0x35
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bl, al                                ; 88 c3
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 5f d9
-    cmp bl, 010h                              ; 80 fb 10
-    jc short 03d16h                           ; 72 04
-    xor ax, ax                                ; 31 c0
-    jmp short 03d2bh                          ; eb 15
-    xor bh, bh                                ; 30 ff
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, ax                                ; 8e c0
-    add bx, 00122h                            ; 81 c3 22 01
-    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 03d12h                          ; 75 ea
-    mov ax, strict word 00001h                ; b8 01 00
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-cdrom_boot_:                                 ; 0xf3d32 LB 0x416
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, 0081ch                            ; 81 ec 1c 08
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 25 d9
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov si, 00366h                            ; be 66 03
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov word [bp-014h], 00122h                ; c7 46 ec 22 01
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 03d67h                          ; eb 09
-    inc byte [bp-00ch]                        ; fe 46 f4
-    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jnc short 03d72h                          ; 73 0b
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 03cfdh                               ; e8 8f ff
-    test ax, ax                               ; 85 c0
-    je short 03d5eh                           ; 74 ec
-    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jc short 03d7eh                           ; 72 06
-    mov ax, strict word 00002h                ; b8 02 00
-    jmp near 040e5h                           ; e9 67 03
-    mov cx, strict word 0000ch                ; b9 0c 00
-    xor bx, bx                                ; 31 db
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-026h]                         ; 8d 46 da
-    call 09e5ah                               ; e8 cf 60
-    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
-    mov ax, strict word 00011h                ; b8 11 00
-    xor dx, dx                                ; 31 d2
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov word [bp-022h], dx                    ; 89 56 de
-    mov ax, strict word 00001h                ; b8 01 00
-    xchg ah, al                               ; 86 c4
-    mov word [bp-01fh], ax                    ; 89 46 e1
-    les bx, [bp-014h]                         ; c4 5e ec
-    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 008h
-    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
-    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 03dc3h                          ; eb 09
-    inc byte [bp-00eh]                        ; fe 46 f2
-    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
-    jnbe short 03dfah                         ; 77 37
-    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
-    imul di, di, strict byte 0001ch           ; 6b ff 1c
-    mov es, [bp-012h]                         ; 8e 46 ee
-    add di, word [bp-014h]                    ; 03 7e ec
-    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
-    add di, di                                ; 01 ff
-    lea dx, [bp-00826h]                       ; 8d 96 da f7
-    push SS                                   ; 16
-    push dx                                   ; 52
-    push strict byte 00001h                   ; 6a 01
-    push strict byte 00000h                   ; 6a 00
-    push 00800h                               ; 68 00 08
-    push strict byte 00000h                   ; 6a 00
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-026h]                         ; 8d 5e da
-    mov dx, strict word 0000ch                ; ba 0c 00
-    call word [word di+0006ah]                ; ff 95 6a 00
-    test ax, ax                               ; 85 c0
-    jne short 03dbah                          ; 75 c0
-    test ax, ax                               ; 85 c0
-    je short 03e04h                           ; 74 06
-    mov ax, strict word 00003h                ; b8 03 00
-    jmp near 040e5h                           ; e9 e1 02
-    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
-    je short 03e11h                           ; 74 06
-    mov ax, strict word 00004h                ; b8 04 00
-    jmp near 040e5h                           ; e9 d4 02
-    xor di, di                                ; 31 ff
-    jmp short 03e1bh                          ; eb 06
-    inc di                                    ; 47
-    cmp di, strict byte 00005h                ; 83 ff 05
-    jnc short 03e2bh                          ; 73 10
-    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
-    je short 03e15h                           ; 74 f0
-    mov ax, strict word 00005h                ; b8 05 00
-    jmp near 040e5h                           ; e9 ba 02
-    xor di, di                                ; 31 ff
-    jmp short 03e35h                          ; eb 06
-    inc di                                    ; 47
-    cmp di, strict byte 00017h                ; 83 ff 17
-    jnc short 03e45h                          ; 73 10
-    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
-    je short 03e2fh                           ; 74 f0
-    mov ax, strict word 00006h                ; b8 06 00
-    jmp near 040e5h                           ; e9 a0 02
-    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
-    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
-    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov word [bp-022h], dx                    ; 89 56 de
-    mov ax, strict word 00001h                ; b8 01 00
-    xchg ah, al                               ; 86 c4
-    mov word [bp-01fh], ax                    ; 89 46 e1
-    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
-    imul di, di, strict byte 0001ch           ; 6b ff 1c
-    mov es, [bp-012h]                         ; 8e 46 ee
-    add di, word [bp-014h]                    ; 03 7e ec
-    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
-    add di, di                                ; 01 ff
-    lea dx, [bp-00826h]                       ; 8d 96 da f7
-    push SS                                   ; 16
-    push dx                                   ; 52
-    push strict byte 00001h                   ; 6a 01
-    push strict byte 00000h                   ; 6a 00
-    push 00800h                               ; 68 00 08
-    push strict byte 00000h                   ; 6a 00
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-026h]                         ; 8d 5e da
-    mov dx, strict word 0000ch                ; ba 0c 00
-    call word [word di+0006ah]                ; ff 95 6a 00
-    test ax, ax                               ; 85 c0
-    je short 03ea2h                           ; 74 06
-    mov ax, strict word 00007h                ; b8 07 00
-    jmp near 040e5h                           ; e9 43 02
-    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
-    je short 03eafh                           ; 74 06
-    mov ax, strict word 00008h                ; b8 08 00
-    jmp near 040e5h                           ; e9 36 02
-    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
-    je short 03ebch                           ; 74 06
-    mov ax, strict word 00009h                ; b8 09 00
-    jmp near 040e5h                           ; e9 29 02
-    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
-    je short 03ec9h                           ; 74 06
-    mov ax, strict word 0000ah                ; b8 0a 00
-    jmp near 040e5h                           ; e9 1c 02
-    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
-    jne short 03ec3h                          ; 75 f3
-    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
-    je short 03eddh                           ; 74 06
-    mov ax, strict word 0000bh                ; b8 0b 00
-    jmp near 040e5h                           ; e9 08 02
-    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov byte [es:si+001h], al                 ; 26 88 44 01
-    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
-    jne short 03ef6h                          ; 75 07
-    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
-    jmp short 03f09h                          ; eb 13
-    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
-    jnc short 03f04h                          ; 73 07
-    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
-    jmp short 03f09h                          ; eb 05
-    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
-    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
-    mov ax, di                                ; 89 f8
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov byte [es:si+003h], al                 ; 26 88 44 03
-    mov ax, di                                ; 89 f8
-    cwd                                       ; 99
-    mov bx, strict word 00002h                ; bb 02 00
-    idiv bx                                   ; f7 fb
-    mov word [es:si+004h], dx                 ; 26 89 54 04
-    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
-    mov word [bp-016h], ax                    ; 89 46 ea
-    test ax, ax                               ; 85 c0
-    jne short 03f37h                          ; 75 05
-    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov word [es:si+00ch], ax                 ; 26 89 44 0c
-    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
-    mov di, word [bp-00800h]                  ; 8b be 00 f8
-    mov word [es:si+00eh], di                 ; 26 89 7c 0e
-    test di, di                               ; 85 ff
-    je short 03f59h                           ; 74 06
-    cmp di, 00400h                            ; 81 ff 00 04
-    jbe short 03f5fh                          ; 76 06
-    mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 040e5h                           ; e9 86 01
-    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
-    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov word [es:si+00ah], dx                 ; 26 89 54 0a
-    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov word [bp-022h], dx                    ; 89 56 de
-    lea dx, [di-001h]                         ; 8d 55 ff
-    shr dx, 002h                              ; c1 ea 02
-    inc dx                                    ; 42
-    mov ax, dx                                ; 89 d0
-    xchg ah, al                               ; 86 c4
-    mov word [bp-01fh], ax                    ; 89 46 e1
-    les bx, [bp-014h]                         ; c4 5e ec
-    mov word [es:bx+00eh], dx                 ; 26 89 57 0e
-    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
-    mov ax, di                                ; 89 f8
-    sal ax, 009h                              ; c1 e0 09
-    mov dx, 00800h                            ; ba 00 08
-    sub dx, ax                                ; 29 c2
-    mov ax, dx                                ; 89 d0
-    and ah, 007h                              ; 80 e4 07
-    mov word [es:bx+020h], ax                 ; 26 89 47 20
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    add bx, ax                                ; 01 c3
-    movzx ax, byte [es:bx+022h]               ; 26 0f b6 47 22
-    add ax, ax                                ; 01 c0
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    push word [bp-016h]                       ; ff 76 ea
-    push dword 000000001h                     ; 66 6a 01
-    mov ax, di                                ; 89 f8
-    xor di, di                                ; 31 ff
-    mov cx, strict word 00009h                ; b9 09 00
-    sal ax, 1                                 ; d1 e0
-    rcl di, 1                                 ; d1 d7
-    loop 03fcdh                               ; e2 fa
-    push di                                   ; 57
-    push ax                                   ; 50
-    push strict byte 00000h                   ; 6a 00
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-026h]                         ; 8d 5e da
-    mov dx, strict word 0000ch                ; ba 0c 00
-    mov di, word [bp-01ah]                    ; 8b 7e e6
-    call word [word di+0006ah]                ; ff 95 6a 00
-    les bx, [bp-014h]                         ; c4 5e ec
-    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
-    test ax, ax                               ; 85 c0
-    je short 03ffdh                           ; 74 06
-    mov ax, strict word 0000dh                ; b8 0d 00
-    jmp near 040e5h                           ; e9 e8 00
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov al, byte [es:si+001h]                 ; 26 8a 44 01
-    cmp AL, strict byte 002h                  ; 3c 02
-    jc short 04015h                           ; 72 0d
-    jbe short 0402dh                          ; 76 23
-    cmp AL, strict byte 004h                  ; 3c 04
-    je short 04043h                           ; 74 35
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 04038h                           ; 74 26
-    jmp near 0408eh                           ; e9 79 00
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 0408eh                          ; 75 75
-    mov es, [bp-010h]                         ; 8e 46 f0
-    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
-    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
-    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
-    jmp short 0408eh                          ; eb 61
-    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
-    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
-    jmp short 04025h                          ; eb ed
-    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
-    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
-    jmp short 04025h                          ; eb e2
-    mov dx, 001c4h                            ; ba c4 01
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01650h                               ; e8 04 d6
-    and AL, strict byte 03fh                  ; 24 3f
-    xor ah, ah                                ; 30 e4
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov word [es:si+014h], ax                 ; 26 89 44 14
-    mov dx, 001c4h                            ; ba c4 01
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01650h                               ; e8 f0 d5
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 002h                              ; c1 e3 02
-    mov dx, 001c5h                            ; ba c5 01
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01650h                               ; e8 e1 d5
-    xor ah, ah                                ; 30 e4
-    add ax, bx                                ; 01 d8
-    inc ax                                    ; 40
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov word [es:si+012h], ax                 ; 26 89 44 12
-    mov dx, 001c3h                            ; ba c3 01
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01650h                               ; e8 cc d5
-    xor ah, ah                                ; 30 e4
-    inc ax                                    ; 40
-    mov es, [bp-010h]                         ; 8e 46 f0
-    mov word [es:si+010h], ax                 ; 26 89 44 10
-    mov es, [bp-010h]                         ; 8e 46 f0
-    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 040cch                           ; 74 34
-    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
-    jne short 040b5h                          ; 75 16
-    mov dx, strict word 00010h                ; ba 10 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 a8 d5
-    or AL, strict byte 041h                   ; 0c 41
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00010h                ; ba 10 00
-    mov ax, strict word 00040h                ; b8 40 00
-    jmp short 040c9h                          ; eb 14
-    mov dx, 00304h                            ; ba 04 03
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01650h                               ; e8 92 d5
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00304h                            ; ba 04 03
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 0165eh                               ; e8 92 d5
-    mov es, [bp-010h]                         ; 8e 46 f0
-    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 040dah                           ; 74 04
-    mov byte [es:si], 001h                    ; 26 c6 04 01
-    mov es, [bp-010h]                         ; 8e 46 f0
-    movzx ax, byte [es:si+002h]               ; 26 0f b6 44 02
-    sal ax, 008h                              ; c1 e0 08
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e0h, 044h, 0eeh
-    db  041h, 038h, 042h, 060h, 042h, 02dh, 042h, 060h, 042h, 02dh, 042h, 036h, 044h, 013h, 042h, 0e0h
-    db  044h, 0e0h, 044h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 0d7h, 044h, 013h
-    db  042h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h
-    db  044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h
-_int13_cdemu:                                ; 0xf4148 LB 0x434
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0002ah                ; 83 ec 2a
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 13 d5
-    mov di, 00366h                            ; bf 66 03
-    mov cx, ax                                ; 89 c1
-    mov si, di                                ; 89 fe
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov es, ax                                ; 8e c0
-    mov al, byte [es:di+003h]                 ; 26 8a 45 03
-    add al, al                                ; 00 c0
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov al, byte [es:di+004h]                 ; 26 8a 45 04
-    add byte [bp-006h], al                    ; 00 46 fa
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d6 d4
-    mov es, cx                                ; 8e c1
-    cmp byte [es:di], 000h                    ; 26 80 3d 00
-    je short 0419eh                           ; 74 0e
-    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    cmp dx, ax                                ; 39 c2
-    je short 041c7h                           ; 74 29
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 88 d7
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0034ch                               ; 68 4c 03
-    push 00358h                               ; 68 58 03
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 b1 d7
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04500h                           ; e9 39 03
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe near 044e0h                          ; 0f 87 0c 03
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 040efh                            ; bf ef 40
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0410ch]               ; 2e 8b 85 0c 41
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    xor bh, bh                                ; 30 ff
-    jmp ax                                    ; ff e0
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    add bx, word [bp-00eh]                    ; 03 5e f2
-    movzx bx, byte [es:bx+022h]               ; 26 0f b6 5f 22
-    add bx, bx                                ; 01 db
-    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
-    je near 04213h                            ; 0f 84 08 00
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call word [word bx+00076h]                ; ff 97 76 00
-    mov byte [bp+017h], 000h                  ; c6 46 17 00
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 3c d4
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 003h                               ; 80 cc 03
-    jmp near 04508h                           ; e9 d0 02
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 0f d4
-    mov cl, al                                ; 88 c1
-    movzx ax, cl                              ; 0f b6 c1
-    sal ax, 008h                              ; c1 e0 08
-    or bx, ax                                 ; 09 c3
-    mov word [bp+016h], bx                    ; 89 5e 16
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 05 d4
-    test cl, cl                               ; 84 c9
-    je short 04217h                           ; 74 ba
-    jmp near 0451ch                           ; e9 bc 02
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov di, word [es:si+014h]                 ; 26 8b 7c 14
-    mov dx, word [es:si+012h]                 ; 26 8b 54 12
-    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
-    mov ax, word [es:si+008h]                 ; 26 8b 44 08
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    and ax, strict word 0003fh                ; 25 3f 00
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov cx, word [bp+014h]                    ; 8b 4e 14
-    and cx, 000c0h                            ; 81 e1 c0 00
-    sal cx, 002h                              ; c1 e1 02
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    shr ax, 008h                              ; c1 e8 08
-    or ax, cx                                 ; 09 c8
-    mov si, word [bp+012h]                    ; 8b 76 12
-    shr si, 008h                              ; c1 ee 08
-    mov cx, word [bp+016h]                    ; 8b 4e 16
-    xor ch, ch                                ; 30 ed
-    mov word [bp-00ah], cx                    ; 89 4e f6
-    test cx, cx                               ; 85 c9
-    jne short 042adh                          ; 75 03
-    jmp near 04213h                           ; e9 66 ff
-    cmp di, word [bp-010h]                    ; 3b 7e f0
-    jc near 04500h                            ; 0f 82 4c 02
-    cmp ax, dx                                ; 39 d0
-    jnc near 04500h                           ; 0f 83 46 02
-    cmp si, bx                                ; 39 de
-    jnc near 04500h                           ; 0f 83 40 02
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    shr dx, 008h                              ; c1 ea 08
-    cmp dx, strict byte 00004h                ; 83 fa 04
-    jne short 042ceh                          ; 75 03
-    jmp near 04213h                           ; e9 45 ff
-    mov dx, word [bp+010h]                    ; 8b 56 10
-    shr dx, 004h                              ; c1 ea 04
-    mov cx, word [bp+006h]                    ; 8b 4e 06
-    add cx, dx                                ; 01 d1
-    mov word [bp-016h], cx                    ; 89 4e ea
-    mov dx, word [bp+010h]                    ; 8b 56 10
-    and dx, strict byte 0000fh                ; 83 e2 0f
-    mov word [bp-01ch], dx                    ; 89 56 e4
-    xor dl, dl                                ; 30 d2
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 1d 5b
-    xor bx, bx                                ; 31 db
-    add ax, si                                ; 01 f0
-    adc dx, bx                                ; 11 da
-    mov bx, di                                ; 89 fb
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 10 5b
-    mov bx, ax                                ; 89 c3
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    dec ax                                    ; 48
-    xor cx, cx                                ; 31 c9
-    add ax, bx                                ; 01 d8
-    adc dx, cx                                ; 11 ca
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    xor bl, bl                                ; 30 db
-    mov cx, word [bp-00ah]                    ; 8b 4e f6
-    or cx, bx                                 ; 09 d9
-    mov word [bp+016h], cx                    ; 89 4e 16
-    mov si, ax                                ; 89 c6
-    mov di, dx                                ; 89 d7
-    shr di, 1                                 ; d1 ef
-    rcr si, 1                                 ; d1 de
-    shr di, 1                                 ; d1 ef
-    rcr si, 1                                 ; d1 de
-    mov word [bp-01eh], di                    ; 89 7e e2
-    mov di, ax                                ; 89 c7
-    and di, strict byte 00003h                ; 83 e7 03
-    xor bh, bh                                ; 30 ff
-    add ax, word [bp-00ah]                    ; 03 46 f6
-    adc dx, bx                                ; 11 da
-    add ax, strict word 0ffffh                ; 05 ff ff
-    adc dx, strict byte 0ffffh                ; 83 d2 ff
-    mov word [bp-022h], ax                    ; 89 46 de
-    mov word [bp-020h], dx                    ; 89 56 e0
-    shr word [bp-020h], 1                     ; d1 6e e0
-    rcr word [bp-022h], 1                     ; d1 5e de
-    shr word [bp-020h], 1                     ; d1 6e e0
-    rcr word [bp-022h], 1                     ; d1 5e de
-    mov cx, strict word 0000ch                ; b9 0c 00
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 09e5ah                               ; e8 0a 5b
-    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    add ax, si                                ; 01 f0
-    mov dx, word [bp-012h]                    ; 8b 56 ee
-    adc dx, word [bp-01eh]                    ; 13 56 e2
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-02ch], ax                    ; 89 46 d4
-    mov word [bp-02ah], dx                    ; 89 56 d6
-    mov ax, word [bp-022h]                    ; 8b 46 de
-    sub ax, si                                ; 29 f0
-    inc ax                                    ; 40
-    xchg ah, al                               ; 86 c4
-    mov word [bp-027h], ax                    ; 89 46 d9
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    les bx, [bp-00eh]                         ; c4 5e f2
-    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
-    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
-    mov ax, di                                ; 89 f8
-    sal ax, 009h                              ; c1 e0 09
-    mov word [es:bx+01eh], ax                 ; 26 89 47 1e
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    xor dh, dh                                ; 30 f6
-    and dl, 003h                              ; 80 e2 03
-    mov bx, strict word 00004h                ; bb 04 00
-    sub bx, dx                                ; 29 d3
-    mov dx, bx                                ; 89 da
-    sub dx, di                                ; 29 fa
-    sal dx, 009h                              ; c1 e2 09
-    and dh, 007h                              ; 80 e6 07
-    mov bx, word [bp-00eh]                    ; 8b 5e f2
-    mov word [es:bx+020h], dx                 ; 26 89 57 20
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
-    add bx, dx                                ; 01 d3
-    movzx dx, byte [es:bx+022h]               ; 26 0f b6 57 22
-    add dx, dx                                ; 01 d2
-    mov word [bp-01ah], dx                    ; 89 56 e6
-    push word [bp-016h]                       ; ff 76 ea
-    push word [bp-01ch]                       ; ff 76 e4
-    push strict byte 00001h                   ; 6a 01
-    mov si, word [bp-00ah]                    ; 8b 76 f6
-    xor di, di                                ; 31 ff
-    mov cx, strict word 00009h                ; b9 09 00
-    sal si, 1                                 ; d1 e6
-    rcl di, 1                                 ; d1 d7
-    loop 043d0h                               ; e2 fa
-    push di                                   ; 57
-    push si                                   ; 56
-    push ax                                   ; 50
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-02eh]                         ; 8d 5e d2
-    mov dx, strict word 0000ch                ; ba 0c 00
-    mov si, word [bp-01ah]                    ; 8b 76 e6
-    call word [word si+0006ah]                ; ff 94 6a 00
-    mov dx, ax                                ; 89 c2
-    les bx, [bp-00eh]                         ; c4 5e f2
-    db  066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
-    test al, al                               ; 84 c0
-    je near 04213h                            ; 0f 84 13 fe
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 26 d5
-    movzx ax, dl                              ; 0f b6 c2
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0034ch                               ; 68 4c 03
-    push 0038eh                               ; 68 8e 03
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 51 d5
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 002h                               ; 80 cc 02
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 0450bh                           ; e9 d5 00
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov di, word [es:si+014h]                 ; 26 8b 7c 14
-    mov dx, word [es:si+012h]                 ; 26 8b 54 12
-    dec dx                                    ; 4a
-    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
-    dec bx                                    ; 4b
-    mov byte [bp+016h], 000h                  ; c6 46 16 00
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    xor al, al                                ; 30 c0
-    mov cx, word [bp+014h]                    ; 8b 4e 14
-    xor ch, ch                                ; 30 ed
-    mov word [bp-01ah], cx                    ; 89 4e e6
-    mov cx, dx                                ; 89 d1
-    xor ch, dh                                ; 30 f5
-    sal cx, 008h                              ; c1 e1 08
-    mov word [bp-018h], cx                    ; 89 4e e8
-    mov cx, word [bp-01ah]                    ; 8b 4e e6
-    or cx, word [bp-018h]                     ; 0b 4e e8
-    mov word [bp+014h], cx                    ; 89 4e 14
-    shr dx, 002h                              ; c1 ea 02
-    xor dh, dh                                ; 30 f6
-    and dl, 0c0h                              ; 80 e2 c0
-    and di, strict byte 0003fh                ; 83 e7 3f
-    or dx, di                                 ; 09 fa
-    xor cl, cl                                ; 30 c9
-    or cx, dx                                 ; 09 d1
-    mov word [bp+014h], cx                    ; 89 4e 14
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    xor dh, dh                                ; 30 f6
-    sal bx, 008h                              ; c1 e3 08
-    or dx, bx                                 ; 09 da
-    mov word [bp+012h], dx                    ; 89 56 12
-    xor dl, dl                                ; 30 d2
-    or dl, 002h                               ; 80 ca 02
-    mov word [bp+012h], dx                    ; 89 56 12
-    mov dl, byte [es:si+001h]                 ; 26 8a 54 01
-    mov word [bp+010h], ax                    ; 89 46 10
-    cmp dl, 003h                              ; 80 fa 03
-    je short 044bah                           ; 74 1a
-    cmp dl, 002h                              ; 80 fa 02
-    je short 044b6h                           ; 74 11
-    cmp dl, 001h                              ; 80 fa 01
-    jne short 044beh                          ; 75 14
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    xor al, al                                ; 30 c0
-    or AL, strict byte 002h                   ; 0c 02
-    mov word [bp+010h], ax                    ; 89 46 10
-    jmp short 044beh                          ; eb 08
-    or AL, strict byte 004h                   ; 0c 04
-    jmp short 044b1h                          ; eb f7
-    or AL, strict byte 005h                   ; 0c 05
-    jmp short 044b1h                          ; eb f3
-    mov es, [bp-008h]                         ; 8e 46 f8
-    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
-    jnc near 04213h                           ; 0f 83 49 fd
-    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
-    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    jmp near 04213h                           ; e9 3c fd
-    or bh, 003h                               ; 80 cf 03
-    mov word [bp+016h], bx                    ; 89 5e 16
-    jmp near 04217h                           ; e9 37 fd
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 46 d4
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0034ch                               ; 68 4c 03
-    push 003afh                               ; 68 af 03
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 75 d4
-    add sp, strict byte 00008h                ; 83 c4 08
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    shr bx, 008h                              ; c1 eb 08
-    xor bh, bh                                ; 30 ff
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 42 d1
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 04226h                           ; e9 03 fd
-    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c1h, 04ah, 03dh
-    db  048h, 029h, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 03dh, 048h, 0c1h
-    db  04ah, 0c1h, 04ah, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 053h, 046h, 03dh
-    db  048h, 0c1h, 04ah, 05ch, 046h, 06fh, 046h, 01eh, 046h, 06fh, 046h, 09dh, 047h, 057h, 048h, 06fh
-    db  046h, 07eh, 048h, 07ah, 04ah, 082h, 04ah, 0c1h, 04ah
-_int13_cdrom:                                ; 0xf457c LB 0x562
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00028h                ; 83 ec 28
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 df d0
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov si, 00122h                            ; be 22 01
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 bd d0
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    xor ah, ah                                ; 30 e4
-    cmp ax, 000e0h                            ; 3d e0 00
-    jc short 045b0h                           ; 72 05
-    cmp ax, 000f0h                            ; 3d f0 00
-    jc short 045ceh                           ; 72 1e
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 003dfh                               ; 68 df 03
-    push 003ebh                               ; 68 eb 03
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 aa d3
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04a9eh                           ; e9 d0 04
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    xor ah, ah                                ; 30 e4
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
-    mov byte [bp-008h], dl                    ; 88 56 f8
-    cmp dl, 010h                              ; 80 fa 10
-    jc short 045f7h                           ; 72 10
-    push ax                                   ; 50
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 003dfh                               ; 68 df 03
-    push 00416h                               ; 68 16 04
-    jmp short 045c3h                          ; eb cc
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe near 04ac1h                          ; 0f 87 bd 04
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 04523h                            ; bf 23 45
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+04540h]               ; 2e 8b 85 40 45
-    mov bx, word [bp+018h]                    ; 8b 5e 18
-    xor bh, bh                                ; 30 ff
-    jmp ax                                    ; ff e0
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor ah, ah                                ; 30 e4
-    or ah, 003h                               ; 80 cc 03
-    jmp near 04aa6h                           ; e9 7d 04
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 1e d0
-    mov cl, al                                ; 88 c1
-    movzx ax, cl                              ; 0f b6 c1
-    sal ax, 008h                              ; c1 e0 08
-    or bx, ax                                 ; 09 c3
-    mov word [bp+018h], bx                    ; 89 5e 18
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 14 d0
-    test cl, cl                               ; 84 c9
-    je near 04841h                            ; 0f 84 f1 01
-    jmp near 04abah                           ; e9 67 04
-    or bh, 002h                               ; 80 cf 02
-    mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 04aa9h                           ; e9 4d 04
-    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
-    or bh, 030h                               ; 80 cf 30
-    mov word [bp+018h], bx                    ; 89 5e 18
-    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
-    jmp near 04841h                           ; e9 d2 01
-    mov bx, word [bp+00ch]                    ; 8b 5e 0c
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov word [bp-014h], bx                    ; 89 5e ec
-    mov [bp-012h], es                         ; 8c 46 ee
-    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov word [bp-01ch], ax                    ; 89 46 e4
-    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
-    or di, ax                                 ; 09 c7
-    je short 046b7h                           ; 74 18
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 003dfh                               ; 68 df 03
-    push 00448h                               ; 68 48 04
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 c1 d2
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 04a9eh                           ; e9 e7 03
-    les bx, [bp-014h]                         ; c4 5e ec
-    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov di, bx                                ; 89 df
-    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    shr ax, 008h                              ; c1 e8 08
-    mov word [bp-016h], ax                    ; 89 46 ea
-    cmp ax, strict word 00044h                ; 3d 44 00
-    je near 0483dh                            ; 0f 84 66 01
-    cmp ax, strict word 00047h                ; 3d 47 00
-    je near 0483dh                            ; 0f 84 5f 01
-    mov cx, strict word 0000ch                ; b9 0c 00
-    xor bx, bx                                ; 31 db
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-02ch]                         ; 8d 46 d4
-    call 09e5ah                               ; e8 6f 57
-    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    mov dx, di                                ; 89 fa
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-02ah], ax                    ; 89 46 d6
-    mov word [bp-028h], dx                    ; 89 56 d8
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    xchg ah, al                               ; 86 c4
-    mov word [bp-025h], ax                    ; 89 46 db
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov word [es:si+00eh], ax                 ; 26 89 44 0e
-    mov word [es:si+010h], 00800h             ; 26 c7 44 10 00 08
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    add bx, si                                ; 01 f3
-    movzx di, byte [es:bx+022h]               ; 26 0f b6 7f 22
-    add di, di                                ; 01 ff
-    push word [bp-01ch]                       ; ff 76 e4
-    push word [bp-020h]                       ; ff 76 e0
-    push strict byte 00001h                   ; 6a 01
-    xor bx, bx                                ; 31 db
-    mov cx, strict word 0000bh                ; b9 0b 00
-    sal ax, 1                                 ; d1 e0
-    rcl bx, 1                                 ; d1 d3
-    loop 04735h                               ; e2 fa
-    push bx                                   ; 53
-    push ax                                   ; 50
-    push strict byte 00000h                   ; 6a 00
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-02ch]                         ; 8d 5e d4
-    mov dx, strict word 0000ch                ; ba 0c 00
-    call word [word di+0006ah]                ; ff 95 6a 00
-    mov dx, ax                                ; 89 c2
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
-    mov di, word [es:si+01ch]                 ; 26 8b 7c 1c
-    mov cx, strict word 0000bh                ; b9 0b 00
-    shr di, 1                                 ; d1 ef
-    rcr ax, 1                                 ; d1 d8
-    loop 0475fh                               ; e2 fa
-    les bx, [bp-014h]                         ; c4 5e ec
-    mov word [es:bx+002h], ax                 ; 26 89 47 02
-    test dl, dl                               ; 84 d2
-    je near 0483dh                            ; 0f 84 cb 00
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 b4 d1
-    movzx ax, dl                              ; 0f b6 c2
-    push ax                                   ; 50
-    push word [bp-016h]                       ; ff 76 ea
-    push 003dfh                               ; 68 df 03
-    push 00471h                               ; 68 71 04
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e3 d1
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor ah, ah                                ; 30 e4
-    or ah, 00ch                               ; 80 cc 0c
-    jmp near 04aa6h                           ; e9 09 03
-    cmp bx, strict byte 00002h                ; 83 fb 02
-    jnbe near 04a9eh                          ; 0f 87 fa 02
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov di, si                                ; 89 f7
-    add di, ax                                ; 01 c7
-    mov al, byte [es:di+025h]                 ; 26 8a 45 25
-    cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 0482eh                           ; 74 73
-    cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 047fbh                           ; 74 3b
-    test bx, bx                               ; 85 db
-    jne near 0483dh                           ; 0f 85 77 00
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 047dch                          ; 75 12
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor ah, ah                                ; 30 e4
-    or ah, 0b4h                               ; 80 cc b4
-    mov word [bp+018h], ax                    ; 89 46 18
-    xor al, al                                ; 30 c0
-    or AL, strict byte 001h                   ; 0c 01
-    jmp near 04aa6h                           ; e9 ca 02
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    add si, dx                                ; 01 d6
-    mov byte [es:si+025h], al                 ; 26 88 44 25
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor al, al                                ; 30 c0
-    or AL, strict byte 001h                   ; 0c 01
-    mov word [bp+018h], ax                    ; 89 46 18
-    jmp near 0483dh                           ; e9 42 00
-    test al, al                               ; 84 c0
-    jne short 0480bh                          ; 75 0c
-    or bh, 0b0h                               ; 80 cf b0
-    mov word [bp+018h], bx                    ; 89 5e 18
-    mov byte [bp+018h], al                    ; 88 46 18
-    jmp near 04aa9h                           ; e9 9e 02
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    add si, dx                                ; 01 d6
-    mov byte [es:si+025h], al                 ; 26 88 44 25
-    test al, al                               ; 84 c0
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor al, al                                ; 30 c0
-    or ax, dx                                 ; 09 d0
-    jmp short 047f5h                          ; eb c7
-    test al, al                               ; 84 c0
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    mov dx, word [bp+018h]                    ; 8b 56 18
-    mov dl, al                                ; 88 c2
-    mov word [bp+018h], dx                    ; 89 56 18
-    mov byte [bp+019h], 000h                  ; c6 46 19 00
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 12 ce
-    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    add si, ax                                ; 01 c6
-    mov al, byte [es:si+025h]                 ; 26 8a 44 25
-    test al, al                               ; 84 c0
-    je short 04871h                           ; 74 06
-    or bh, 0b1h                               ; 80 cf b1
-    jmp near 04656h                           ; e9 e5 fd
-    je short 0483dh                           ; 74 ca
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor ah, ah                                ; 30 e4
-    or ah, 0b1h                               ; 80 cc b1
-    jmp near 04aa6h                           ; e9 28 02
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    mov cx, word [bp+006h]                    ; 8b 4e 06
-    mov bx, dx                                ; 89 d3
-    mov word [bp-00ah], cx                    ; 89 4e f6
-    mov es, cx                                ; 8e c1
-    mov di, dx                                ; 89 d7
-    mov ax, word [es:di]                      ; 26 8b 05
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    cmp ax, strict word 0001ah                ; 3d 1a 00
-    jc near 04a9eh                            ; 0f 82 04 02
-    jc short 048ebh                           ; 72 4f
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov di, si                                ; 89 f7
-    add di, ax                                ; 01 c7
-    mov ax, word [es:di+028h]                 ; 26 8b 45 28
-    mov es, cx                                ; 8e c1
-    mov di, dx                                ; 89 d7
-    db  066h, 026h, 0c7h, 005h, 01ah, 000h, 074h, 000h
-    ; mov dword [es:di], strict dword 00074001ah ; 66 26 c7 05 1a 00 74 00
-    db  066h, 026h, 0c7h, 045h, 004h, 0ffh, 0ffh, 0ffh, 0ffh
-    ; mov dword [es:di+004h], strict dword 0ffffffffh ; 66 26 c7 45 04 ff ff ff ff
-    db  066h, 026h, 0c7h, 045h, 008h, 0ffh, 0ffh, 0ffh, 0ffh
-    ; mov dword [es:di+008h], strict dword 0ffffffffh ; 66 26 c7 45 08 ff ff ff ff
-    db  066h, 026h, 0c7h, 045h, 00ch, 0ffh, 0ffh, 0ffh, 0ffh
-    ; mov dword [es:di+00ch], strict dword 0ffffffffh ; 66 26 c7 45 0c ff ff ff ff
-    mov word [es:di+018h], ax                 ; 26 89 45 18
-    db  066h, 026h, 0c7h, 045h, 010h, 0ffh, 0ffh, 0ffh, 0ffh
-    ; mov dword [es:di+010h], strict dword 0ffffffffh ; 66 26 c7 45 10 ff ff ff ff
-    db  066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh
-    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
-    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
-    jc near 049c2h                            ; 0f 82 cf 00
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
-    mov word [es:bx+01ah], 00356h             ; 26 c7 47 1a 56 03
-    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
-    mov ax, cx                                ; 89 c8
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    movzx di, al                              ; 0f b6 f8
-    imul di, di, strict byte 00006h           ; 6b ff 06
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    add di, si                                ; 01 f7
-    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov dx, word [es:di+00208h]               ; 26 8b 95 08 02
-    mov al, byte [es:di+00205h]               ; 26 8a 85 05 02
-    mov byte [bp-006h], al                    ; 88 46 fa
-    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
-    mov di, si                                ; 89 f7
-    add di, cx                                ; 01 cf
-    mov al, byte [es:di+026h]                 ; 26 8a 45 26
-    cmp AL, strict byte 001h                  ; 3c 01
-    db  00fh, 094h, 0c0h
-    ; sete al                                   ; 0f 94 c0
-    xor ah, ah                                ; 30 e4
-    or AL, strict byte 070h                   ; 0c 70
-    mov di, ax                                ; 89 c7
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    mov word [es:si+00234h], ax               ; 26 89 84 34 02
-    mov word [es:si+00236h], dx               ; 26 89 94 36 02
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cwd                                       ; 99
-    mov cx, strict word 00002h                ; b9 02 00
-    idiv cx                                   ; f7 f9
-    or dl, 00eh                               ; 80 ca 0e
-    mov ax, dx                                ; 89 d0
-    sal ax, 004h                              ; c1 e0 04
-    mov byte [es:si+00238h], al               ; 26 88 84 38 02
-    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
-    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
-    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
-    mov word [es:si+0023eh], di               ; 26 89 bc 3e 02
-    mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00
-    mov byte [es:si+00242h], 011h             ; 26 c6 84 42 02 11
-    xor cl, cl                                ; 30 c9
-    xor ch, ch                                ; 30 ed
-    jmp short 049a5h                          ; eb 05
-    cmp ch, 00fh                              ; 80 fd 0f
-    jnc short 049b8h                          ; 73 13
-    movzx dx, ch                              ; 0f b6 d5
-    add dx, 00356h                            ; 81 c2 56 03
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 9e cc
-    add cl, al                                ; 00 c1
-    db  0feh, 0c5h
-    ; inc ch                                    ; fe c5
-    jmp short 049a0h                          ; eb e8
-    neg cl                                    ; f6 d9
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
-    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
-    jc near 0483dh                            ; 0f 82 73 fe
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    add si, ax                                ; 01 c6
-    mov al, byte [es:si+00204h]               ; 26 8a 84 04 02
-    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
-    db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
-    ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00
-    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
-    test al, al                               ; 84 c0
-    jne short 04a0bh                          ; 75 09
-    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
-    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
-    ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
-    db  066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h
-    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
-    test al, al                               ; 84 c0
-    jne short 04a37h                          ; 75 13
-    mov word [es:bx+030h], dx                 ; 26 89 57 30
-    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
-    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    and AL, strict byte 001h                  ; 24 01
-    xor ah, ah                                ; 30 e4
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:bx+038h], ax                 ; 26 89 47 38
-    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
-    mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00
-    xor al, al                                ; 30 c0
-    mov AH, strict byte 01eh                  ; b4 1e
-    jmp short 04a5fh                          ; eb 05
-    cmp ah, 040h                              ; 80 fc 40
-    jnc short 04a6eh                          ; 73 0f
-    movzx si, ah                              ; 0f b6 f4
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    add si, bx                                ; 01 de
-    add al, byte [es:si]                      ; 26 02 04
-    db  0feh, 0c4h
-    ; inc ah                                    ; fe c4
-    jmp short 04a5ah                          ; eb ec
-    neg al                                    ; f6 d8
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:bx+041h], al                 ; 26 88 47 41
-    jmp near 0483dh                           ; e9 c3 fd
-    or bh, 006h                               ; 80 cf 06
-    mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 04abah                          ; eb 38
-    cmp bx, strict byte 00006h                ; 83 fb 06
-    je near 0483dh                            ; 0f 84 b4 fd
-    cmp bx, strict byte 00001h                ; 83 fb 01
-    jc short 04a9eh                           ; 72 10
-    jbe near 0483dh                           ; 0f 86 ab fd
-    cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 04a9eh                           ; 72 07
-    cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe near 0483dh                           ; 0f 86 9f fd
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+018h], ax                    ; 89 46 18
-    mov bx, word [bp+018h]                    ; 8b 5e 18
-    shr bx, 008h                              ; c1 eb 08
-    xor bh, bh                                ; 30 ff
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 a4 cb
-    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
-    jmp near 04850h                           ; e9 8f fd
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 65 ce
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 003dfh                               ; 68 df 03
-    push 00333h                               ; 68 33 03
-    push strict byte 00004h                   ; 6a 04
-    jmp near 046aeh                           ; e9 d0 fb
-print_boot_device_:                          ; 0xf4ade LB 0x4b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    test al, al                               ; 84 c0
-    je short 04aebh                           ; 74 05
-    mov dx, strict word 00002h                ; ba 02 00
-    jmp short 04b05h                          ; eb 1a
-    test dl, dl                               ; 84 d2
-    je short 04af4h                           ; 74 05
-    mov dx, strict word 00003h                ; ba 03 00
-    jmp short 04b05h                          ; eb 11
-    test bl, 080h                             ; f6 c3 80
-    jne short 04afdh                          ; 75 04
-    xor dh, dh                                ; 30 f6
-    jmp short 04b05h                          ; eb 08
-    test bl, 080h                             ; f6 c3 80
-    je short 04b23h                           ; 74 21
-    mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 21 ce
-    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00dc6h                            ; 81 c2 c6 0d
-    push dx                                   ; 52
-    push 00494h                               ; 68 94 04
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 52 ce
-    add sp, strict byte 00006h                ; 83 c4 06
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-print_boot_failure_:                         ; 0xf4b29 LB 0x93
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    mov dh, cl                                ; 88 ce
-    mov ah, bl                                ; 88 dc
-    and ah, 07fh                              ; 80 e4 7f
-    movzx si, ah                              ; 0f b6 f4
-    test al, al                               ; 84 c0
-    je short 04b56h                           ; 74 1b
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 eb cd
-    push 00ddah                               ; 68 da 0d
-    push 004a8h                               ; 68 a8 04
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 21 ce
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 04b9ah                          ; eb 44
-    test dl, dl                               ; 84 d2
-    je short 04b6ah                           ; 74 10
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 cc cd
-    push 00de4h                               ; 68 e4 0d
-    jmp short 04b49h                          ; eb df
-    test bl, 080h                             ; f6 c3 80
-    je short 04b80h                           ; 74 11
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 b7 cd
-    push si                                   ; 56
-    push 00dd0h                               ; 68 d0 0d
-    jmp short 04b8fh                          ; eb 0f
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 a6 cd
-    push si                                   ; 56
-    push 00dc6h                               ; 68 c6 0d
-    push 004bdh                               ; 68 bd 04
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 db cd
-    add sp, strict byte 00008h                ; 83 c4 08
-    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04bb4h                          ; 75 14
-    test dh, dh                               ; 84 f6
-    jne short 04ba9h                          ; 75 05
-    push 004d5h                               ; 68 d5 04
-    jmp short 04bach                          ; eb 03
-    push 004ffh                               ; 68 ff 04
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 c1 cd
-    add sp, strict byte 00004h                ; 83 c4 04
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-print_cdromboot_failure_:                    ; 0xf4bbc LB 0x27
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    mov dx, ax                                ; 89 c2
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 62 cd
-    push dx                                   ; 52
-    push 00534h                               ; 68 34 05
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 9a cd
-    add sp, strict byte 00006h                ; 83 c4 06
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int19_function:                             ; 0xf4be3 LB 0x256
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000eh                ; 83 ec 0e
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 78 ca
-    mov bx, ax                                ; 89 c3
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    mov ax, strict word 0003dh                ; b8 3d 00
-    call 016ach                               ; e8 a9 ca
-    movzx si, al                              ; 0f b6 f0
-    mov ax, strict word 00038h                ; b8 38 00
-    call 016ach                               ; e8 a0 ca
-    and AL, strict byte 0f0h                  ; 24 f0
-    xor ah, ah                                ; 30 e4
-    sal ax, 004h                              ; c1 e0 04
-    or si, ax                                 ; 09 c6
-    mov ax, strict word 0003ch                ; b8 3c 00
-    call 016ach                               ; e8 91 ca
-    and AL, strict byte 00fh                  ; 24 0f
-    xor ah, ah                                ; 30 e4
-    sal ax, 00ch                              ; c1 e0 0c
-    or si, ax                                 ; 09 c6
-    mov dx, 0037dh                            ; ba 7d 03
-    mov ax, bx                                ; 89 d8
-    call 01650h                               ; e8 24 ca
-    test al, al                               ; 84 c0
-    je short 04c3bh                           ; 74 0b
-    mov dx, 0037dh                            ; ba 7d 03
-    mov ax, bx                                ; 89 d8
-    call 01650h                               ; e8 18 ca
-    movzx si, al                              ; 0f b6 f0
-    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04c51h                          ; 75 10
-    mov ax, strict word 0003ch                ; b8 3c 00
-    call 016ach                               ; e8 65 ca
-    and AL, strict byte 0f0h                  ; 24 f0
-    xor ah, ah                                ; 30 e4
-    sar ax, 004h                              ; c1 f8 04
-    call 07c5eh                               ; e8 0d 30
-    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
-    jne short 04c5ah                          ; 75 03
-    shr si, 004h                              ; c1 ee 04
-    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
-    jne short 04c63h                          ; 75 03
-    shr si, 008h                              ; c1 ee 08
-    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
-    jne short 04c6ch                          ; 75 03
-    shr si, 00ch                              ; c1 ee 0c
-    cmp si, strict byte 00010h                ; 83 fe 10
-    jnc short 04c75h                          ; 73 04
-    mov byte [bp-008h], 001h                  ; c6 46 f8 01
-    xor al, al                                ; 30 c0
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 a6 cc
-    push si                                   ; 56
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    push ax                                   ; 50
-    push 00554h                               ; 68 54 05
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 d9 cc
-    add sp, strict byte 00008h                ; 83 c4 08
-    and si, strict byte 0000fh                ; 83 e6 0f
-    cmp si, strict byte 00002h                ; 83 fe 02
-    jc short 04cb2h                           ; 72 0e
-    jbe short 04cc1h                          ; 76 1b
-    cmp si, strict byte 00004h                ; 83 fe 04
-    je short 04cdfh                           ; 74 34
-    cmp si, strict byte 00003h                ; 83 fe 03
-    je short 04cd5h                           ; 74 25
-    jmp short 04d0ch                          ; eb 5a
-    cmp si, strict byte 00001h                ; 83 fe 01
-    jne short 04d0ch                          ; 75 55
-    xor al, al                                ; 30 c0
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    jmp short 04d24h                          ; eb 63
-    mov dx, 0037ch                            ; ba 7c 03
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 01650h                               ; e8 86 c9
-    add AL, strict byte 080h                  ; 04 80
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
-    jmp short 04d24h                          ; eb 4f
-    mov byte [bp-006h], 000h                  ; c6 46 fa 00
-    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
-    jmp short 04ce9h                          ; eb 0a
-    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 04d24h                           ; 74 3b
-    call 03d32h                               ; e8 46 f0
-    mov bx, ax                                ; 89 c3
-    test AL, strict byte 0ffh                 ; a8 ff
-    je short 04d13h                           ; 74 21
-    call 04bbch                               ; e8 c7 fe
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    mov cx, strict word 00001h                ; b9 01 00
-    call 04b29h                               ; e8 1d fe
-    xor ax, ax                                ; 31 c0
-    xor dx, dx                                ; 31 d2
-    jmp near 04e32h                           ; e9 1f 01
-    mov dx, 00372h                            ; ba 72 03
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 0166ch                               ; e8 50 c9
-    mov di, ax                                ; 89 c7
-    shr bx, 008h                              ; c1 eb 08
-    mov byte [bp-006h], bl                    ; 88 5e fa
-    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
-    jne near 04da0h                           ; 0f 85 74 00
-    xor si, si                                ; 31 f6
-    mov ax, 0e200h                            ; b8 00 e2
-    mov es, ax                                ; 8e c0
-    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 04cf5h                          ; 75 bb
-    mov cx, ax                                ; 89 c1
-    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
-    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
-    jne short 04cf5h                          ; 75 ad
-    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
-    jne short 04cf5h                          ; 75 a6
-    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
-    mov dx, word [es:di]                      ; 26 8b 15
-    mov ax, word [es:di+002h]                 ; 26 8b 45 02
-    cmp ax, 06568h                            ; 3d 68 65
-    jne short 04d7eh                          ; 75 1f
-    cmp dx, 07445h                            ; 81 fa 45 74
-    jne short 04d7eh                          ; 75 19
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 04adeh                               ; e8 6a fd
-    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
-    mov word [bp-010h], cx                    ; 89 4e f0
-    jmp short 04d9ah                          ; eb 1c
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 04adeh                               ; e8 51 fd
-    sti                                       ; fb
-    mov word [bp-010h], cx                    ; 89 4e f0
-    mov es, cx                                ; 8e c1
-    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
-    mov word [bp-012h], ax                    ; 89 46 ee
-    call far [bp-012h]                        ; ff 5e ee
-    jmp near 04cf5h                           ; e9 55 ff
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 04dcch                          ; 75 26
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 04dcch                          ; 75 20
-    mov di, 007c0h                            ; bf c0 07
-    mov es, di                                ; 8e c7
-    mov dl, byte [bp-006h]                    ; 8a 56 fa
-    mov ax, 00201h                            ; b8 01 02
-    mov DH, strict byte 000h                  ; b6 00
-    mov cx, strict word 00001h                ; b9 01 00
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    int 013h                                  ; cd 13
-    mov ax, strict word 00000h                ; b8 00 00
-    sbb ax, strict byte 00000h                ; 83 d8 00
-    test ax, ax                               ; 85 c0
-    jne near 04cf5h                           ; 0f 85 29 ff
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    db  00fh, 094h, 0c1h
-    ; sete cl                                   ; 0f 94 c1
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 04ddbh                           ; 74 02
-    mov CL, strict byte 001h                  ; b1 01
-    xor dx, dx                                ; 31 d2
-    mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 8a c8
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 00002h                ; ba 02 00
-    mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 80 c8
-    cmp bx, ax                                ; 39 c3
-    je short 04e01h                           ; 74 11
-    test cl, cl                               ; 84 c9
-    jne short 04e17h                          ; 75 23
-    mov dx, 001feh                            ; ba fe 01
-    mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 70 c8
-    cmp ax, 0aa55h                            ; 3d 55 aa
-    je short 04e17h                           ; 74 16
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    xor cx, cx                                ; 31 c9
-    jmp near 04d09h                           ; e9 f2 fe
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 04adeh                               ; e8 b8 fc
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    xor dx, dx                                ; 31 d2
-    xor ax, ax                                ; 31 c0
-    add ax, di                                ; 01 f8
-    adc dx, bx                                ; 11 da
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-keyboard_panic_:                             ; 0xf4e39 LB 0x13
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push ax                                   ; 50
-    push 00574h                               ; 68 74 05
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 2d cb
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_keyboard_init:                              ; 0xf4e4c LB 0x26a
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 04e6fh                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04e6fh                          ; 76 08
-    xor al, al                                ; 30 c0
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04e58h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04e78h                          ; 75 05
-    xor ax, ax                                ; 31 c0
-    call 04e39h                               ; e8 c1 ff
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 04e92h                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04e92h                          ; 76 08
-    mov AL, strict byte 001h                  ; b0 01
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04e7bh                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04e9ch                          ; 75 06
-    mov ax, strict word 00001h                ; b8 01 00
-    call 04e39h                               ; e8 9d ff
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, strict word 00055h                ; 3d 55 00
-    je short 04eadh                           ; 74 06
-    mov ax, 003dfh                            ; b8 df 03
-    call 04e39h                               ; e8 8c ff
-    mov AL, strict byte 0abh                  ; b0 ab
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 04ecdh                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04ecdh                          ; 76 08
-    mov AL, strict byte 010h                  ; b0 10
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04eb6h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04ed7h                          ; 75 06
-    mov ax, strict word 0000ah                ; b8 0a 00
-    call 04e39h                               ; e8 62 ff
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 04ef1h                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04ef1h                          ; 76 08
-    mov AL, strict byte 011h                  ; b0 11
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04edah                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04efbh                          ; 75 06
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 04e39h                               ; e8 3e ff
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test ax, ax                               ; 85 c0
-    je short 04f0bh                           ; 74 06
-    mov ax, 003e0h                            ; b8 e0 03
-    call 04e39h                               ; e8 2e ff
-    mov AL, strict byte 0ffh                  ; b0 ff
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 04f2bh                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04f2bh                          ; 76 08
-    mov AL, strict byte 020h                  ; b0 20
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04f14h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04f35h                          ; 75 06
-    mov ax, strict word 00014h                ; b8 14 00
-    call 04e39h                               ; e8 04 ff
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 04f4fh                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04f4fh                          ; 76 08
-    mov AL, strict byte 021h                  ; b0 21
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04f38h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04f59h                          ; 75 06
-    mov ax, strict word 00015h                ; b8 15 00
-    call 04e39h                               ; e8 e0 fe
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000fah                            ; 3d fa 00
-    je short 04f6ah                           ; 74 06
-    mov ax, 003e1h                            ; b8 e1 03
-    call 04e39h                               ; e8 cf fe
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 04f7ch                          ; 75 08
-    mov AL, strict byte 031h                  ; b0 31
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04f6ah                          ; eb ee
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000aah                            ; 3d aa 00
-    je short 04f95h                           ; 74 0e
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000aah                            ; 3d aa 00
-    je short 04f95h                           ; 74 06
-    mov ax, 003e2h                            ; b8 e2 03
-    call 04e39h                               ; e8 a4 fe
-    mov AL, strict byte 0f5h                  ; b0 f5
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 04fb5h                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04fb5h                          ; 76 08
-    mov AL, strict byte 040h                  ; b0 40
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04f9eh                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04fbfh                          ; 75 06
-    mov ax, strict word 00028h                ; b8 28 00
-    call 04e39h                               ; e8 7a fe
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 04fd9h                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 04fd9h                          ; 76 08
-    mov AL, strict byte 041h                  ; b0 41
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04fc2h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 04fe3h                          ; 75 06
-    mov ax, strict word 00029h                ; b8 29 00
-    call 04e39h                               ; e8 56 fe
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000fah                            ; 3d fa 00
-    je short 04ff4h                           ; 74 06
-    mov ax, 003e3h                            ; b8 e3 03
-    call 04e39h                               ; e8 45 fe
-    mov AL, strict byte 060h                  ; b0 60
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 05014h                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 05014h                          ; 76 08
-    mov AL, strict byte 050h                  ; b0 50
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 04ffdh                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 0501eh                          ; 75 06
-    mov ax, strict word 00032h                ; b8 32 00
-    call 04e39h                               ; e8 1b fe
-    mov AL, strict byte 065h                  ; b0 65
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 0503eh                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 0503eh                          ; 76 08
-    mov AL, strict byte 060h                  ; b0 60
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 05027h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 05048h                          ; 75 06
-    mov ax, strict word 0003ch                ; b8 3c 00
-    call 04e39h                               ; e8 f1 fd
-    mov AL, strict byte 0f4h                  ; b0 f4
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 05068h                           ; 74 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 05068h                          ; 76 08
-    mov AL, strict byte 070h                  ; b0 70
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 05051h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 05072h                          ; 75 06
-    mov ax, strict word 00046h                ; b8 46 00
-    call 04e39h                               ; e8 c7 fd
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 0508ch                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 0508ch                          ; 76 08
-    mov AL, strict byte 071h                  ; b0 71
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 05075h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jne short 05096h                          ; 75 06
-    mov ax, strict word 00046h                ; b8 46 00
-    call 04e39h                               ; e8 a3 fd
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000fah                            ; 3d fa 00
-    je short 050a7h                           ; 74 06
-    mov ax, 003e4h                            ; b8 e4 03
-    call 04e39h                               ; e8 92 fd
-    mov AL, strict byte 0a8h                  ; b0 a8
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    xor ax, ax                                ; 31 c0
-    call 0648dh                               ; e8 db 13
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-enqueue_key_:                                ; 0xf50b6 LB 0x93
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bl, dl                                ; 88 d3
-    mov dx, strict word 0001ah                ; ba 1a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 a0 c5
-    mov di, ax                                ; 89 c7
-    mov dx, strict word 0001ch                ; ba 1c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 95 c5
-    mov si, ax                                ; 89 c6
-    lea cx, [si+002h]                         ; 8d 4c 02
-    cmp cx, strict byte 0003eh                ; 83 f9 3e
-    jc short 050e4h                           ; 72 03
-    mov cx, strict word 0001eh                ; b9 1e 00
-    cmp cx, di                                ; 39 f9
-    jne short 050ech                          ; 75 04
-    xor ax, ax                                ; 31 c0
-    jmp short 05111h                          ; eb 25
-    xor bh, bh                                ; 30 ff
-    mov dx, si                                ; 89 f2
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 68 c5
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    lea dx, [si+001h]                         ; 8d 54 01
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 5b c5
-    mov bx, cx                                ; 89 cb
-    mov dx, strict word 0001ch                ; ba 1c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 6c c5
-    mov ax, strict word 00001h                ; b8 01 00
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    db  0c6h, 0c5h, 0bah
-    ; mov ch, 0bah                              ; c6 c5 ba
-    mov ax, 0aab6h                            ; b8 b6 aa
-    popfw                                     ; 9d
-    push bx                                   ; 53
-    inc si                                    ; 46
-    inc bp                                    ; 45
-    cmp bh, byte [bx+si]                      ; 3a 38
-    sub bl, byte [ss:di]                      ; 36 2a 1d
-    dec si                                    ; 4e
-    push sp                                   ; 54
-    cmp dx, word [bp+si-01eh]                 ; 3b 52 e2
-    push cx                                   ; 51
-    loop 05182h                               ; e2 51
-    les dx, [bp+si-048h]                      ; c4 52 b8
-    push cx                                   ; 51
-    inc dx                                    ; 42
-    push bx                                   ; 53
-    mov AL, strict byte 053h                  ; b0 53
-    xor AL, strict byte 054h                  ; 34 54
-    jnle short 0518fh                         ; 7f 52
-    loop 05190h                               ; e2 51
-    loop 05192h                               ; e2 51
-    add dx, word [bp+di-02ch]                 ; 03 53 d4
-    push cx                                   ; 51
-    xchg cx, ax                               ; 91
-    push bx                                   ; 53
-    db  015h
-    push sp                                   ; 54
-_int09_function:                             ; 0xf5149 LB 0x451
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push di                                   ; 57
-    sub sp, strict byte 0000eh                ; 83 ec 0e
-    mov al, byte [bp+014h]                    ; 8a 46 14
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    test al, al                               ; 84 c0
-    jne short 05173h                          ; 75 19
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 cc c7
-    push 00587h                               ; 68 87 05
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 05 c8
-    add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 05235h                           ; e9 c2 00
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 d4 c4
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov dx, 00096h                            ; ba 96 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c5 c4
-    mov byte [bp-004h], al                    ; 88 46 fc
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 b6 c4
-    mov byte [bp-010h], al                    ; 88 46 f0
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 00010h                ; b9 10 00
-    mov di, 0511ah                            ; bf 1a 51
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+05129h]               ; 2e 8b 85 29 51
-    jmp ax                                    ; ff e0
-    xor byte [bp-006h], 040h                  ; 80 76 fa 40
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 95 c4
-    or byte [bp-008h], 040h                   ; 80 4e f8 40
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    jmp near 05428h                           ; e9 54 02
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    and AL, strict byte 0bfh                  ; 24 bf
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    jmp near 05428h                           ; e9 46 02
-    test byte [bp-00ch], 002h                 ; f6 46 f4 02
-    jne near 05217h                           ; 0f 85 2d 00
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    and AL, strict byte 07fh                  ; 24 7f
-    cmp AL, strict byte 02ah                  ; 3c 2a
-    db  00fh, 094h, 0c0h
-    ; sete al                                   ; 0f 94 c0
-    movzx dx, al                              ; 0f b6 d0
-    inc dx                                    ; 42
-    test byte [bp-00ah], 080h                 ; f6 46 f6 80
-    je short 05207h                           ; 74 09
-    mov al, dl                                ; 88 d0
-    not al                                    ; f6 d0
-    and byte [bp-006h], al                    ; 20 46 fa
-    jmp short 0520ah                          ; eb 03
-    or byte [bp-006h], dl                     ; 08 56 fa
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 47 c4
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    and AL, strict byte 07fh                  ; 24 7f
-    cmp AL, strict byte 01dh                  ; 3c 1d
-    je short 05224h                           ; 74 04
-    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
-    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    mov dx, 00096h                            ; ba 96 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 29 c4
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop di                                    ; 5f
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    test byte [bp-004h], 001h                 ; f6 46 fc 01
-    jne short 05217h                          ; 75 d6
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    or AL, strict byte 004h                   ; 0c 04
-    mov byte [bp-006h], al                    ; 88 46 fa
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 09 c4
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    test AL, strict byte 002h                 ; a8 02
-    je short 05269h                           ; 74 0d
-    or AL, strict byte 004h                   ; 0c 04
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00096h                            ; ba 96 00
-    jmp short 05277h                          ; eb 0e
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    or AL, strict byte 001h                   ; 0c 01
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e1 c3
-    jmp short 05217h                          ; eb 98
-    test byte [bp-004h], 001h                 ; f6 46 fc 01
-    jne short 05217h                          ; 75 92
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    and AL, strict byte 0fbh                  ; 24 fb
-    mov byte [bp-006h], al                    ; 88 46 fa
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c5 c3
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    test AL, strict byte 002h                 ; a8 02
-    je short 052adh                           ; 74 0d
-    and AL, strict byte 0fbh                  ; 24 fb
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00096h                            ; ba 96 00
-    jmp short 052bbh                          ; eb 0e
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    and AL, strict byte 0feh                  ; 24 fe
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9d c3
-    jmp near 05217h                           ; e9 53 ff
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    or AL, strict byte 008h                   ; 0c 08
-    mov byte [bp-006h], al                    ; 88 46 fa
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 86 c3
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    test AL, strict byte 002h                 ; a8 02
-    je short 052ech                           ; 74 0d
-    or AL, strict byte 008h                   ; 0c 08
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00096h                            ; ba 96 00
-    jmp short 052fah                          ; eb 0e
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    or AL, strict byte 002h                   ; 0c 02
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 5e c3
-    jmp near 05217h                           ; e9 14 ff
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    and AL, strict byte 0f7h                  ; 24 f7
-    mov byte [bp-006h], al                    ; 88 46 fa
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 47 c3
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    test AL, strict byte 002h                 ; a8 02
-    je short 0532bh                           ; 74 0d
-    and AL, strict byte 0f7h                  ; 24 f7
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 00096h                            ; ba 96 00
-    jmp short 05339h                          ; eb 0e
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    and AL, strict byte 0fdh                  ; 24 fd
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 1f c3
-    jmp near 05217h                           ; e9 d5 fe
-    test byte [bp-004h], 003h                 ; f6 46 fc 03
-    jne short 05364h                          ; 75 1c
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    or AL, strict byte 020h                   ; 0c 20
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 02 c3
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    xor AL, strict byte 020h                  ; 34 20
-    jmp near 05403h                           ; e9 9f 00
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    or AL, strict byte 008h                   ; 0c 08
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e6 c2
-    mov AL, strict byte 0aeh                  ; b0 ae
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    call 0e034h                               ; e8 b3 8c
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c6 c2
-    test AL, strict byte 008h                 ; a8 08
-    jne short 05381h                          ; 75 f3
-    jmp near 05217h                           ; e9 86 fe
-    test byte [bp-004h], 003h                 ; f6 46 fc 03
-    jne near 05217h                           ; 0f 85 7e fe
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    and AL, strict byte 0dfh                  ; 24 df
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 b1 c2
-    jmp near 05217h                           ; e9 67 fe
-    test byte [bp-004h], 002h                 ; f6 46 fc 02
-    je short 053eah                           ; 74 34
-    mov dx, strict word 0001ah                ; ba 1a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 ad c2
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0001ch                ; ba 1c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 b0 c2
-    mov bx, 00080h                            ; bb 80 00
-    mov dx, strict word 00071h                ; ba 71 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 88 c2
-    mov AL, strict byte 0aeh                  ; b0 ae
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    push bp                                   ; 55
-    int 01bh                                  ; cd 1b
-    pop bp                                    ; 5d
-    xor dx, dx                                ; 31 d2
-    xor ax, ax                                ; 31 c0
-    call 050b6h                               ; e8 cf fc
-    jmp near 05217h                           ; e9 2d fe
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    or AL, strict byte 010h                   ; 0c 10
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 60 c2
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    xor AL, strict byte 010h                  ; 34 10
-    mov byte [bp-006h], al                    ; 88 46 fa
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 4c c2
-    jmp near 05217h                           ; e9 02 fe
-    test byte [bp-004h], 002h                 ; f6 46 fc 02
-    jne near 05217h                           ; 0f 85 fa fd
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
-    and AL, strict byte 0efh                  ; 24 ef
-    mov byte [bp-008h], al                    ; 88 46 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 2d c2
-    jmp near 05217h                           ; e9 e3 fd
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    and AL, strict byte 00ch                  ; 24 0c
-    cmp AL, strict byte 00ch                  ; 3c 0c
-    jne short 0544eh                          ; 75 11
-    mov bx, 01234h                            ; bb 34 12
-    mov dx, strict word 00072h                ; ba 72 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 31 c2
-    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    test byte [bp-008h], 008h                 ; f6 46 f8 08
-    je short 05462h                           ; 74 0e
-    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    mov dx, strict word 00018h                ; ba 18 00
-    jmp near 0522fh                           ; e9 cd fd
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    test AL, strict byte 080h                 ; a8 80
-    je short 054a0h                           ; 74 37
-    cmp AL, strict byte 0fah                  ; 3c fa
-    jne short 0547dh                          ; 75 10
-    mov dx, 00097h                            ; ba 97 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 da c1
-    mov dl, al                                ; 88 c2
-    or dl, 010h                               ; 80 ca 10
-    jmp short 05491h                          ; eb 14
-    cmp AL, strict byte 0feh                  ; 3c fe
-    jne near 05217h                           ; 0f 85 94 fd
-    mov dx, 00097h                            ; ba 97 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c4 c1
-    mov dl, al                                ; 88 c2
-    or dl, 020h                               ; 80 ca 20
-    movzx bx, dl                              ; 0f b6 da
-    mov dx, 00097h                            ; ba 97 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c1 c1
-    jmp near 05217h                           ; e9 77 fd
-    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
-    jbe short 054c4h                          ; 76 1e
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 80 c4
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    push 005a1h                               ; 68 a1 05
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 b4 c4
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 05235h                           ; e9 71 fd
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    test AL, strict byte 008h                 ; a8 08
-    je short 054ddh                           ; 74 12
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
-    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
-    jmp near 0556bh                           ; e9 8e 00
-    test AL, strict byte 004h                 ; a8 04
-    je short 054f3h                           ; 74 12
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
-    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
-    jmp near 0556bh                           ; e9 78 00
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    and AL, strict byte 002h                  ; 24 02
-    test al, al                               ; 84 c0
-    jbe short 05511h                          ; 76 15
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    cmp AL, strict byte 047h                  ; 3c 47
-    jc short 05511h                           ; 72 0e
-    cmp AL, strict byte 053h                  ; 3c 53
-    jnbe short 05511h                         ; 77 0a
-    mov DL, strict byte 0e0h                  ; b2 e0
-    movzx bx, al                              ; 0f b6 d8
-    imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    jmp short 05567h                          ; eb 56
-    test byte [bp-006h], 003h                 ; f6 46 fa 03
-    je short 05545h                           ; 74 2e
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    test dx, ax                               ; 85 c2
-    je short 05535h                           ; 74 0a
-    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
-    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
-    jmp short 0553dh                          ; eb 08
-    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
-    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    jmp short 05571h                          ; eb 2c
-    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    test dx, ax                               ; 85 c2
-    je short 05563h                           ; 74 0a
-    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
-    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
-    jmp short 0556bh                          ; eb 08
-    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
-    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 05591h                          ; 75 1a
-    test dl, dl                               ; 84 d2
-    jne short 05591h                          ; 75 16
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 ab c3
-    push 005d8h                               ; 68 d8 05
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e4 c3
-    add sp, strict byte 00004h                ; 83 c4 04
-    xor dh, dh                                ; 30 f6
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    jmp near 053e4h                           ; e9 4a fe
-dequeue_key_:                                ; 0xf559a LB 0x94
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov di, ax                                ; 89 c7
-    mov word [bp-006h], dx                    ; 89 56 fa
-    mov si, bx                                ; 89 de
-    mov word [bp-008h], cx                    ; 89 4e f8
-    mov dx, strict word 0001ah                ; ba 1a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 b8 c0
-    mov bx, ax                                ; 89 c3
-    mov dx, strict word 0001ch                ; ba 1c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 ad c0
-    cmp bx, ax                                ; 39 c3
-    je short 05600h                           ; 74 3d
-    mov dx, bx                                ; 89 da
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 85 c0
-    mov cl, al                                ; 88 c1
-    lea dx, [bx+001h]                         ; 8d 57 01
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 7a c0
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov byte [es:si], cl                      ; 26 88 0c
-    mov es, [bp-006h]                         ; 8e 46 fa
-    mov byte [es:di], al                      ; 26 88 05
-    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 055fbh                           ; 74 13
-    inc bx                                    ; 43
-    inc bx                                    ; 43
-    cmp bx, strict byte 0003eh                ; 83 fb 3e
-    jc short 055f2h                           ; 72 03
-    mov bx, strict word 0001eh                ; bb 1e 00
-    mov dx, strict word 0001ah                ; ba 1a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 7f c0
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 05602h                          ; eb 02
-    xor ax, ax                                ; 31 c0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00002h                               ; c2 02 00
-    mov byte [01292h], AL                     ; a2 92 12
-    adc word [bx+si], dx                      ; 11 10
-    or cl, byte [bx+di]                       ; 0a 09
-    add ax, 00102h                            ; 05 02 01
-    add ah, cl                                ; 00 cc
-    pop ax                                    ; 58
-    loop 05670h                               ; e2 56
-    sub word [bx+075h], dx                    ; 29 57 75
-    push di                                   ; 57
-    test word [bx-051h], dx                   ; 85 57 af
-    push di                                   ; 57
-    mov ax, 02957h                            ; b8 57 29
-    pop ax                                    ; 58
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    xchg word [bx+si-03fh], bx                ; 87 58 c1
-    pop ax                                    ; 58
-    db  00fh
-    pop cx                                    ; 59
-_int16_function:                             ; 0xf562e LB 0x2e7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 12 c0
-    mov cl, al                                ; 88 c1
-    mov bh, al                                ; 88 c7
-    mov dx, 00097h                            ; ba 97 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 05 c0
-    mov bl, al                                ; 88 c3
-    movzx dx, cl                              ; 0f b6 d1
-    sar dx, 004h                              ; c1 fa 04
-    and dl, 007h                              ; 80 e2 07
-    and AL, strict byte 007h                  ; 24 07
-    xor ah, ah                                ; 30 e4
-    xor al, dl                                ; 30 d0
-    test ax, ax                               ; 85 c0
-    je short 056c0h                           ; 74 60
-    cli                                       ; fa
-    mov AL, strict byte 0edh                  ; b0 ed
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 05679h                          ; 75 08
-    mov AL, strict byte 021h                  ; b0 21
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 05667h                          ; eb ee
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000fah                            ; 3d fa 00
-    jne short 056bfh                          ; 75 3b
-    and bl, 0c8h                              ; 80 e3 c8
-    movzx ax, bh                              ; 0f b6 c7
-    sar ax, 004h                              ; c1 f8 04
-    and ax, strict word 00007h                ; 25 07 00
-    movzx cx, bl                              ; 0f b6 cb
-    or cx, ax                                 ; 09 c1
-    mov bl, cl                                ; 88 cb
-    mov al, cl                                ; 88 c8
-    and AL, strict byte 007h                  ; 24 07
-    out DX, AL                                ; ee
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 056aeh                          ; 75 08
-    mov AL, strict byte 021h                  ; b0 21
-    mov dx, 00080h                            ; ba 80 00
-    out DX, AL                                ; ee
-    jmp short 0569ch                          ; eb ee
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    xor bh, bh                                ; 30 ff
-    mov dx, 00097h                            ; ba 97 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9f bf
-    sti                                       ; fb
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, 000a2h                            ; 3d a2 00
-    jnbe near 058cch                          ; 0f 87 ff 01
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 0560bh                            ; bf 0b 56
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+05616h]               ; 2e 8b 85 16 56
-    jmp ax                                    ; ff e0
-    push strict byte 00001h                   ; 6a 01
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-008h]                         ; 8d 5e f8
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0559ah                               ; e8 a9 fe
-    test ax, ax                               ; 85 c0
-    jne short 05700h                          ; 75 0b
-    push 0060fh                               ; 68 0f 06
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 75 c2
-    add sp, strict byte 00004h                ; 83 c4 04
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 0570ch                           ; 74 06
-    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 05712h                           ; 74 06
-    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 05716h                          ; 75 04
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    or dx, ax                                 ; 09 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 0590fh                           ; e9 e6 01
-    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
-    push strict byte 00000h                   ; 6a 00
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-008h]                         ; 8d 5e f8
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0559ah                               ; e8 5d fe
-    test ax, ax                               ; 85 c0
-    jne short 05748h                          ; 75 07
-    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
-    jmp near 0590fh                           ; e9 c7 01
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 05754h                           ; 74 06
-    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 0575ah                           ; 74 06
-    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 0575eh                          ; 75 04
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    or dx, ax                                 ; 09 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
-    jmp near 0590fh                           ; e9 9a 01
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 d2 be
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    mov dl, al                                ; 88 c2
-    jmp short 05723h                          ; eb 9e
-    mov al, byte [bp+010h]                    ; 8a 46 10
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    shr ax, 008h                              ; c1 e8 08
-    xor ah, ah                                ; 30 e4
-    call 050b6h                               ; e8 20 f9
-    test ax, ax                               ; 85 c0
-    jne short 057a7h                          ; 75 0d
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 001h                   ; 0c 01
-    mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 0590fh                           ; e9 68 01
-    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
-    jmp near 0590fh                           ; e9 60 01
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor al, al                                ; 30 c0
-    or AL, strict byte 030h                   ; 0c 30
-    jmp short 057a1h                          ; eb e9
-    mov byte [bp-004h], 002h                  ; c6 46 fc 02
-    xor cx, cx                                ; 31 c9
-    cli                                       ; fa
-    mov AL, strict byte 0f2h                  ; b0 f2
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 057dfh                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 057dfh                          ; 76 08
-    mov dx, 00080h                            ; ba 80 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    jmp short 057c8h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jbe short 05823h                          ; 76 40
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp ax, 000fah                            ; 3d fa 00
-    jne short 05823h                          ; 75 35
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 05808h                          ; 75 0d
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 05808h                          ; 76 08
-    mov dx, 00080h                            ; ba 80 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    jmp short 057f1h                          ; eb e9
-    test bx, bx                               ; 85 db
-    jbe short 0581ah                          ; 76 0e
-    shr cx, 008h                              ; c1 e9 08
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    sal ax, 008h                              ; c1 e0 08
-    or cx, ax                                 ; 09 c1
-    dec byte [bp-004h]                        ; fe 4e fc
-    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jnbe short 057eeh                         ; 77 cb
-    mov word [bp+00ch], cx                    ; 89 4e 0c
-    jmp near 0590fh                           ; e9 e6 00
-    push strict byte 00001h                   ; 6a 01
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-008h]                         ; 8d 5e f8
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0559ah                               ; e8 62 fd
-    test ax, ax                               ; 85 c0
-    jne short 05847h                          ; 75 0b
-    push 0060fh                               ; 68 0f 06
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 2e c1
-    add sp, strict byte 00004h                ; 83 c4 04
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je near 05716h                            ; 0f 84 c7 fe
-    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je near 05712h                            ; 0f 84 bb fe
-    jmp near 05716h                           ; e9 bc fe
-    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
-    push strict byte 00000h                   ; 6a 00
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-008h]                         ; 8d 5e f8
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 0559ah                               ; e8 2c fd
-    test ax, ax                               ; 85 c0
-    je near 05741h                            ; 0f 84 cd fe
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je near 0575eh                            ; 0f 84 e2 fe
-    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je near 0575ah                            ; 0f 84 d6 fe
-    jmp near 0575eh                           ; e9 d7 fe
-    mov dx, strict word 00017h                ; ba 17 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c0 bd
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    mov dl, al                                ; 88 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    mov dx, strict word 00018h                ; ba 18 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 af bd
-    mov bh, al                                ; 88 c7
-    and bh, 073h                              ; 80 e7 73
-    mov dx, 00096h                            ; ba 96 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 a1 bd
-    and AL, strict byte 00ch                  ; 24 0c
-    or bh, al                                 ; 08 c7
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    xor dh, dh                                ; 30 f6
-    movzx ax, bh                              ; 0f b6 c7
-    sal ax, 008h                              ; c1 e0 08
-    jmp near 05721h                           ; e9 60 fe
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    or ah, 080h                               ; 80 cc 80
-    jmp near 057a1h                           ; e9 d5 fe
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 5a c0
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 00633h                               ; 68 33 06
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 8c c0
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 3d c0
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    push ax                                   ; 50
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    push ax                                   ; 50
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    push ax                                   ; 50
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    push ax                                   ; 50
-    push 0065bh                               ; 68 5b 06
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 66 c0
-    add sp, strict byte 0000ch                ; 83 c4 0c
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop di                                    ; 5f
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_geom_lba_:                               ; 0xf5915 LB 0xe5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    enter 00008h, 000h                        ; c8 08 00 00
-    mov di, ax                                ; 89 c7
-    mov es, dx                                ; 8e c2
-    mov dword [bp-008h], strict dword 0007e0000h ; 66 c7 46 f8 00 00 7e 00
-    mov word [bp-002h], 000ffh                ; c7 46 fe ff 00
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    mov cx, word [bp+00eh]                    ; 8b 4e 0e
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    mov si, strict word 00020h                ; be 20 00
-    call 09e4ah                               ; e8 0a 45
-    test ax, ax                               ; 85 c0
-    jne short 05950h                          ; 75 0c
-    test bx, bx                               ; 85 db
-    jne short 05950h                          ; 75 08
-    test cx, cx                               ; 85 c9
-    jne short 05950h                          ; 75 04
-    test dx, dx                               ; 85 d2
-    je short 05957h                           ; 74 07
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov si, bx                                ; 89 de
-    jmp short 0595dh                          ; eb 06
-    mov bx, word [bp+00ch]                    ; 8b 5e 0c
-    mov si, word [bp+00eh]                    ; 8b 76 0e
-    mov word [bp-004h], bx                    ; 89 5e fc
-    xor bx, bx                                ; 31 db
-    jmp short 05969h                          ; eb 05
-    cmp bx, strict byte 00004h                ; 83 fb 04
-    jnl short 0598ch                          ; 7d 23
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    cmp si, ax                                ; 39 c6
-    jc short 0597ah                           ; 72 0a
-    jne short 05983h                          ; 75 11
-    mov ax, word [bp-004h]                    ; 8b 46 fc
-    cmp ax, word [bp-008h]                    ; 3b 46 f8
-    jnbe short 05983h                         ; 77 09
-    mov ax, word [bp-002h]                    ; 8b 46 fe
-    inc ax                                    ; 40
-    shr ax, 1                                 ; d1 e8
-    mov word [bp-002h], ax                    ; 89 46 fe
-    shr word [bp-006h], 1                     ; d1 6e fa
-    rcr word [bp-008h], 1                     ; d1 5e f8
-    inc bx                                    ; 43
-    jmp short 05964h                          ; eb d8
-    mov ax, word [bp-002h]                    ; 8b 46 fe
-    xor dx, dx                                ; 31 d2
-    mov bx, strict word 0003fh                ; bb 3f 00
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 70 44
-    mov bx, ax                                ; 89 c3
-    mov cx, dx                                ; 89 d1
-    mov ax, word [bp-004h]                    ; 8b 46 fc
-    mov dx, si                                ; 89 f2
-    call 09dd0h                               ; e8 2b 44
-    mov word [es:di+002h], ax                 ; 26 89 45 02
-    cmp ax, 00400h                            ; 3d 00 04
-    jbe short 059b4h                          ; 76 06
-    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
-    mov ax, word [bp-002h]                    ; 8b 46 fe
-    mov word [es:di], ax                      ; 26 89 05
-    mov word [es:di+004h], strict word 0003fh ; 26 c7 45 04 3f 00
-    leave                                     ; c9
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    retn 00008h                               ; c2 08 00
-    test byte [bp+si-056h], bl                ; 84 5a aa
-    pop dx                                    ; 5a
-    xlatb                                     ; d7
-    pop dx                                    ; 5a
-    xlatb                                     ; d7
-    pop dx                                    ; 5a
-    xlatb                                     ; d7
-    pop dx                                    ; 5a
-    mov ax, 0e65ch                            ; b8 5c e6
-    pop bp                                    ; 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    rcr word [si-03dh], 1                     ; d1 5c c3
-    pop bp                                    ; 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    retn                                      ; c3
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    pop bp                                    ; 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    inc di                                    ; 47
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    pop bp                                    ; 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    retn                                      ; c3
-    pop bp                                    ; 5d
-    jnbe short 05a51h                         ; 77 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    out strict byte 05dh, AL                  ; e6 5d
-    out strict byte 05dh, AL                  ; e6 5d
-_int13_harddisk:                             ; 0xf59fa LB 0x44a
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    sub sp, strict byte 00010h                ; 83 ec 10
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 63 bc
-    mov si, 00122h                            ; be 22 01
-    mov word [bp-004h], ax                    ; 89 46 fc
-    xor bx, bx                                ; 31 db
-    mov dx, 0008eh                            ; ba 8e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 44 bc
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    xor ah, ah                                ; 30 e4
-    cmp ax, 00080h                            ; 3d 80 00
-    jc short 05a29h                           ; 72 05
-    cmp ax, 00090h                            ; 3d 90 00
-    jc short 05a47h                           ; 72 1e
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 0068dh                               ; 68 8d 06
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 31 bf
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 05e01h                           ; e9 ba 03
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    xor ah, ah                                ; 30 e4
-    mov es, [bp-004h]                         ; 8e 46 fc
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
-    mov byte [bp-002h], dl                    ; 88 56 fe
-    cmp dl, 010h                              ; 80 fa 10
-    jc short 05a70h                           ; 72 10
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 006b8h                               ; 68 b8 06
-    jmp short 05a3ch                          ; eb cc
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    shr bx, 008h                              ; c1 eb 08
-    cmp bx, strict byte 00018h                ; 83 fb 18
-    jnbe near 05de6h                          ; 0f 87 69 03
-    add bx, bx                                ; 01 db
-    jmp word [cs:bx+059c8h]                   ; 2e ff a7 c8 59
-    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jnc near 05a93h                           ; 0f 83 07 00
-    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    call 01d7ch                               ; e8 e9 c2
-    mov byte [bp+017h], 000h                  ; c6 46 17 00
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 bc bb
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9d bb
-    mov cl, al                                ; 88 c1
-    mov dx, word [bp+016h]                    ; 8b 56 16
-    xor dh, dh                                ; 30 f6
-    movzx ax, cl                              ; 0f b6 c1
-    sal ax, 008h                              ; c1 e0 08
-    or dx, ax                                 ; 09 c2
-    mov word [bp+016h], dx                    ; 89 56 16
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 8e bb
-    test cl, cl                               ; 84 c9
-    je short 05a97h                           ; 74 c3
-    jmp near 05e1dh                           ; e9 46 03
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov di, word [bp+014h]                    ; 8b 7e 14
-    shr di, 008h                              ; c1 ef 08
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor ah, ah                                ; 30 e4
-    sal ax, 002h                              ; c1 e0 02
-    xor al, al                                ; 30 c0
-    and ah, 003h                              ; 80 e4 03
-    or di, ax                                 ; 09 c7
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    and ax, strict word 0003fh                ; 25 3f 00
-    mov word [bp-006h], ax                    ; 89 46 fa
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    shr ax, 008h                              ; c1 e8 08
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    cmp ax, 00080h                            ; 3d 80 00
-    jnbe short 05b12h                         ; 77 04
-    test ax, ax                               ; 85 c0
-    jne short 05b35h                          ; 75 23
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 14 be
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 006eah                               ; 68 ea 06
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 43 be
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05e01h                           ; e9 cc 02
-    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-004h]                         ; 8e 46 fc
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    mov ax, word [es:bx+02ch]                 ; 26 8b 47 2c
-    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
-    mov dx, word [es:bx+02eh]                 ; 26 8b 57 2e
-    mov word [bp-00ah], dx                    ; 89 56 f6
-    cmp di, ax                                ; 39 c7
-    jnc short 05b62h                          ; 73 0c
-    cmp cx, word [bp-008h]                    ; 3b 4e f8
-    jbe short 05b62h                          ; 76 07
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    cmp ax, dx                                ; 39 d0
-    jbe short 05b90h                          ; 76 2e
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 c4 bd
-    push dword [bp-008h]                      ; 66 ff 76 f8
-    push di                                   ; 57
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 00712h                               ; 68 12 07
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e8 bd
-    add sp, strict byte 00010h                ; 83 c4 10
-    jmp near 05e01h                           ; e9 71 02
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, strict word 00004h                ; 3d 04 00
-    jne short 05b9eh                          ; 75 03
-    jmp near 05a93h                           ; e9 f5 fe
-    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, [bp-004h]                         ; 8e 46 fc
-    add bx, si                                ; 01 f3
-    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
-    jne short 05bbfh                          ; 75 0f
-    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
-    cmp ax, word [bp-00ah]                    ; 3b 46 f6
-    jne short 05bbfh                          ; 75 06
-    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jc short 05befh                           ; 72 30
-    mov ax, di                                ; 89 f8
-    xor dx, dx                                ; 31 d2
-    mov bx, cx                                ; 89 cb
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 3f 42
-    xor bx, bx                                ; 31 db
-    add ax, word [bp-008h]                    ; 03 46 f8
-    adc dx, bx                                ; 11 da
-    mov bx, word [bp-00ah]                    ; 8b 5e f6
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 30 42
-    xor bx, bx                                ; 31 db
-    add ax, word [bp-006h]                    ; 03 46 fa
-    adc dx, bx                                ; 11 da
-    add ax, strict word 0ffffh                ; 05 ff ff
-    mov word [bp-010h], ax                    ; 89 46 f0
-    adc dx, strict byte 0ffffh                ; 83 d2 ff
-    mov word [bp-00eh], dx                    ; 89 56 f2
-    mov word [bp-006h], bx                    ; 89 5e fa
-    mov es, [bp-004h]                         ; 8e 46 fc
-    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
-    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
-    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov word [es:si], ax                      ; 26 89 04
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    mov word [es:si+002h], ax                 ; 26 89 44 02
-    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
-    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov word [es:si+00ah], dx                 ; 26 89 54 0a
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    mov word [es:si+00eh], ax                 ; 26 89 44 0e
-    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
-    mov word [es:si+012h], di                 ; 26 89 7c 12
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    mov word [es:si+014h], ax                 ; 26 89 44 14
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    mov word [es:si+016h], ax                 ; 26 89 44 16
-    mov al, byte [bp-002h]                    ; 8a 46 fe
-    mov byte [es:si+00ch], al                 ; 26 88 44 0c
-    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    movzx ax, byte [es:bx+022h]               ; 26 0f b6 47 22
-    mov bx, ax                                ; 89 c3
-    sal bx, 002h                              ; c1 e3 02
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    add ax, ax                                ; 01 c0
-    add bx, ax                                ; 01 c3
-    push ES                                   ; 06
-    push si                                   ; 56
-    call word [word bx+0007eh]                ; ff 97 7e 00
-    mov dx, ax                                ; 89 c2
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor al, al                                ; 30 c0
-    mov es, [bp-004h]                         ; 8e 46 fc
-    mov bx, word [es:si+018h]                 ; 26 8b 5c 18
-    or bx, ax                                 ; 09 c3
-    mov word [bp+016h], bx                    ; 89 5e 16
-    test dl, dl                               ; 84 d2
-    je near 05a93h                            ; 0f 84 0a fe
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 9d bc
-    movzx ax, dl                              ; 0f b6 c2
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 00759h                               ; 68 59 07
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 c8 bc
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 00ch                               ; 80 cc 0c
-    jmp near 05e09h                           ; e9 51 01
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 6e bc
-    push 0077ah                               ; 68 7a 07
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 a7 bc
-    add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 05a93h                           ; e9 c2 fd
-    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-004h]                         ; 8e 46 fc
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    mov di, word [es:bx+02ch]                 ; 26 8b 7f 2c
-    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
-    mov ax, word [es:bx+02eh]                 ; 26 8b 47 2e
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    movzx ax, byte [es:si+001e2h]             ; 26 0f b6 84 e2 01
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov byte [bp+016h], 000h                  ; c6 46 16 00
-    mov dx, word [bp+014h]                    ; 8b 56 14
-    xor dh, dh                                ; 30 f6
-    dec di                                    ; 4f
-    mov ax, di                                ; 89 f8
-    xor ah, ah                                ; 30 e4
-    sal ax, 008h                              ; c1 e0 08
-    or dx, ax                                 ; 09 c2
-    mov word [bp+014h], dx                    ; 89 56 14
-    shr di, 002h                              ; c1 ef 02
-    and di, 000c0h                            ; 81 e7 c0 00
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    xor ah, ah                                ; 30 e4
-    and AL, strict byte 03fh                  ; 24 3f
-    or di, ax                                 ; 09 c7
-    mov ax, dx                                ; 89 d0
-    xor al, dl                                ; 30 d0
-    or ax, di                                 ; 09 f8
-    mov word [bp+014h], ax                    ; 89 46 14
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    xor dh, dh                                ; 30 f6
-    mov ax, cx                                ; 89 c8
-    sal ax, 008h                              ; c1 e0 08
-    sub ax, 00100h                            ; 2d 00 01
-    or dx, ax                                 ; 09 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    mov ax, dx                                ; 89 d0
-    xor al, dl                                ; 30 d0
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    or dx, ax                                 ; 09 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05a93h                           ; e9 4c fd
-    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-004h]                         ; 8e 46 fc
-    add si, ax                                ; 01 c6
-    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
-    add dx, strict byte 00007h                ; 83 c2 07
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 040h                  ; 3c 40
-    jne short 05d6ch                          ; 75 03
-    jmp near 05a93h                           ; e9 27 fd
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 0aah                               ; 80 cc aa
-    jmp near 05e09h                           ; e9 92 00
-    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-004h]                         ; 8e 46 fc
-    add si, ax                                ; 01 c6
-    mov di, word [es:si+032h]                 ; 26 8b 7c 32
-    mov ax, word [es:si+030h]                 ; 26 8b 44 30
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov ax, word [es:si+034h]                 ; 26 8b 44 34
-    mov word [bp-006h], ax                    ; 89 46 fa
-    mov ax, di                                ; 89 f8
-    xor dx, dx                                ; 31 d2
-    mov bx, word [bp-008h]                    ; 8b 5e f8
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 68 40
-    mov bx, word [bp-006h]                    ; 8b 5e fa
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 60 40
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov word [bp-00eh], dx                    ; 89 56 f2
-    mov word [bp+014h], dx                    ; 89 56 14
-    mov word [bp+012h], ax                    ; 89 46 12
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 003h                               ; 80 cc 03
-    mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 05a97h                           ; e9 d4 fc
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 63 bb
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 00794h                               ; 68 94 07
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 92 bb
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05a93h                           ; e9 ad fc
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 40 bb
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 0067eh                               ; 68 7e 06
-    push 007c7h                               ; 68 c7 07
-    jmp near 05b2ah                           ; e9 29 fd
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    shr bx, 008h                              ; c1 eb 08
-    xor bh, bh                                ; 30 ff
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 41 b8
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 05aa6h                           ; e9 82 fc
-    loop 05e84h                               ; e2 5e
-    cli                                       ; fa
-    pop si                                    ; 5e
-    cli                                       ; fa
-    pop si                                    ; 5e
-    cli                                       ; fa
-    pop si                                    ; 5e
-    into                                      ; ce
-    bound cx, [bx+060h]                       ; 62 4f 60
-    cli                                       ; fa
-    pop si                                    ; 5e
-    push bp                                   ; 55
-    pushaw                                    ; 60
-    into                                      ; ce
-    bound bx, [di]                            ; 62 1d
-    arpl [di], bx                             ; 63 1d
-    arpl [di], bx                             ; 63 1d
-    arpl [di], bx                             ; 63 1d
-    arpl bp, sp                               ; 63 e5
-    bound bx, [di]                            ; 62 1d
-    arpl [di], bx                             ; 63 1d
-    db  063h
-_int13_harddisk_ext:                         ; 0xf5e44 LB 0x4f4
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    sub sp, strict byte 00026h                ; 83 ec 26
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 19 b8
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0d b8
-    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
-    mov word [bp-006h], ax                    ; 89 46 fa
-    xor bx, bx                                ; 31 db
-    mov dx, 0008eh                            ; ba 8e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 ec b7
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    xor ah, ah                                ; 30 e4
-    cmp ax, 00080h                            ; 3d 80 00
-    jc short 05e81h                           ; 72 05
-    cmp ax, 00090h                            ; 3d 90 00
-    jc short 05e9fh                           ; 72 1e
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 007f5h                               ; 68 f5 07
-    push 0068dh                               ; 68 8d 06
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 d9 ba
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 062fbh                           ; e9 5c 04
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    xor ah, ah                                ; 30 e4
-    les bx, [bp-008h]                         ; c4 5e f8
-    add bx, ax                                ; 01 c3
-    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
-    mov byte [bp-004h], dl                    ; 88 56 fc
-    cmp dl, 010h                              ; 80 fa 10
-    jc short 05ec6h                           ; 72 10
-    push ax                                   ; 50
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 007f5h                               ; 68 f5 07
-    push 006b8h                               ; 68 b8 06
-    jmp short 05e94h                          ; eb ce
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    shr bx, 008h                              ; c1 eb 08
-    sub bx, strict byte 00041h                ; 83 eb 41
-    cmp bx, strict byte 0000fh                ; 83 fb 0f
-    jnbe near 0631dh                          ; 0f 87 47 04
-    add bx, bx                                ; 01 db
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    jmp word [cs:bx+05e24h]                   ; 2e ff a7 24 5e
-    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 030h                               ; 80 cc 30
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 062d2h                           ; e9 d8 03
-    mov di, word [bp+00ah]                    ; 8b 7e 0a
-    mov es, [bp+004h]                         ; 8e 46 04
-    mov word [bp-01ch], di                    ; 89 7e e4
-    mov [bp-01ah], es                         ; 8c 46 e6
-    mov ax, word [es:di+002h]                 ; 26 8b 45 02
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov ax, word [es:di+006h]                 ; 26 8b 45 06
-    mov word [bp-016h], ax                    ; 89 46 ea
-    mov ax, word [es:di+004h]                 ; 26 8b 45 04
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
-    mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
-    xor ax, ax                                ; 31 c0
-    xor bx, bx                                ; 31 db
-    mov si, strict word 00020h                ; be 20 00
-    call 09e3ah                               ; e8 0d 3f
-    mov word [bp-00eh], bx                    ; 89 5e f2
-    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
-    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
-    or dx, bx                                 ; 09 da
-    or cx, di                                 ; 09 f9
-    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    les di, [bp-008h]                         ; c4 7e f8
-    add di, bx                                ; 01 df
-    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
-    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
-    jnbe short 05f74h                         ; 77 22
-    jne short 05f97h                          ; 75 43
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
-    jnbe short 05f74h                         ; 77 17
-    mov si, word [bp-00eh]                    ; 8b 76 f2
-    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
-    jne short 05f97h                          ; 75 31
-    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
-    jnbe short 05f74h                         ; 77 08
-    jne short 05f97h                          ; 75 29
-    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
-    jc short 05f97h                           ; 72 23
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 b2 b9
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 007f5h                               ; 68 f5 07
-    push 00808h                               ; 68 08 08
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e1 b9
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 062fbh                           ; e9 64 03
-    mov di, word [bp+016h]                    ; 8b 7e 16
-    shr di, 008h                              ; c1 ef 08
-    cmp di, strict byte 00044h                ; 83 ff 44
-    je near 062ceh                            ; 0f 84 2a 03
-    cmp di, strict byte 00047h                ; 83 ff 47
-    je near 062ceh                            ; 0f 84 23 03
-    les si, [bp-008h]                         ; c4 76 f8
-    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
-    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
-    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
-    mov word [es:si+006h], ax                 ; 26 89 44 06
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    mov word [es:si+004h], ax                 ; 26 89 44 04
-    mov word [es:si+002h], cx                 ; 26 89 4c 02
-    mov word [es:si], dx                      ; 26 89 14
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov word [es:si+00ah], ax                 ; 26 89 44 0a
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov word [es:si+00eh], ax                 ; 26 89 44 0e
-    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
-    mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    mov byte [es:si+00ch], al                 ; 26 88 44 0c
-    mov dx, di                                ; 89 fa
-    add dx, di                                ; 01 fa
-    movzx ax, bl                              ; 0f b6 c3
-    mov bx, ax                                ; 89 c3
-    sal bx, 002h                              ; c1 e3 02
-    add bx, dx                                ; 01 d3
-    push ES                                   ; 06
-    push si                                   ; 56
-    call word [word bx-00002h]                ; ff 97 fe ff
-    mov dx, ax                                ; 89 c2
-    mov es, [bp-006h]                         ; 8e 46 fa
-    mov bx, si                                ; 89 f3
-    mov ax, word [es:bx+018h]                 ; 26 8b 47 18
-    mov word [bp-012h], ax                    ; 89 46 ee
-    les bx, [bp-01ch]                         ; c4 5e e4
-    mov word [es:bx+002h], ax                 ; 26 89 47 02
-    test dl, dl                               ; 84 d2
-    je near 062ceh                            ; 0f 84 a8 02
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 00 b9
-    movzx ax, dl                              ; 0f b6 c2
-    push ax                                   ; 50
-    push di                                   ; 57
-    push 007f5h                               ; 68 f5 07
-    push 00759h                               ; 68 59 07
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 31 b9
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 00ch                               ; 80 cc 0c
-    jmp near 06303h                           ; e9 b4 02
-    or ah, 0b2h                               ; 80 cc b2
-    jmp near 06303h                           ; e9 ae 02
-    mov bx, word [bp+00ah]                    ; 8b 5e 0a
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov di, bx                                ; 89 df
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    mov es, ax                                ; 8e c0
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov word [bp-010h], ax                    ; 89 46 f0
-    cmp ax, strict word 0001ah                ; 3d 1a 00
-    jc near 062fbh                            ; 0f 82 89 02
-    jc near 06111h                            ; 0f 82 9b 00
-    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-008h]                         ; c4 5e f8
-    add bx, ax                                ; 01 c3
-    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
-    mov word [bp-026h], ax                    ; 89 46 da
-    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
-    mov word [bp-020h], ax                    ; 89 46 e0
-    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
-    mov word [bp-024h], ax                    ; 89 46 dc
-    mov ax, word [es:bx+03ch]                 ; 26 8b 47 3c
-    mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
-    mov word [bp-00eh], dx                    ; 89 56 f2
-    mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
-    mov dx, word [es:bx+036h]                 ; 26 8b 57 36
-    mov bx, word [es:bx+028h]                 ; 26 8b 5f 28
-    mov word [bp-022h], bx                    ; 89 5e de
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov bx, di                                ; 89 fb
-    db  066h, 026h, 0c7h, 007h, 01ah, 000h, 002h, 000h
-    ; mov dword [es:bx], strict dword 00002001ah ; 66 26 c7 07 1a 00 02 00
-    mov bx, word [bp-026h]                    ; 8b 5e da
-    mov si, di                                ; 89 fe
-    mov word [es:si+004h], bx                 ; 26 89 5c 04
-    mov bx, si                                ; 89 f3
-    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
-    mov bx, word [bp-020h]                    ; 8b 5e e0
-    mov word [es:si+008h], bx                 ; 26 89 5c 08
-    mov bx, si                                ; 89 f3
-    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
-    mov bx, word [bp-024h]                    ; 8b 5e dc
-    mov word [es:si+00ch], bx                 ; 26 89 5c 0c
-    mov bx, si                                ; 89 f3
-    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    mov word [es:si+018h], bx                 ; 26 89 5c 18
-    mov bx, si                                ; 89 f3
-    mov word [es:bx+010h], dx                 ; 26 89 57 10
-    mov word [es:bx+012h], cx                 ; 26 89 4f 12
-    mov bx, word [bp-00eh]                    ; 8b 5e f2
-    mov si, strict word 00020h                ; be 20 00
-    call 09e4ah                               ; e8 43 3d
-    mov bx, di                                ; 89 fb
-    mov word [es:bx+014h], dx                 ; 26 89 57 14
-    mov word [es:bx+016h], cx                 ; 26 89 4f 16
-    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
-    jc near 06216h                            ; 0f 82 fd 00
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [es:di+01ch], ax                 ; 26 89 45 1c
-    mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
-    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
-    mov ax, cx                                ; 89 c8
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    movzx bx, al                              ; 0f b6 d8
-    imul bx, bx, strict byte 00006h           ; 6b db 06
-    mov es, [bp-006h]                         ; 8e 46 fa
-    add bx, word [bp-008h]                    ; 03 5e f8
-    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov dx, word [es:bx+00208h]               ; 26 8b 97 08 02
-    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
-    mov byte [bp-002h], al                    ; 88 46 fe
-    imul bx, cx, strict byte 0001ch           ; 6b d9 1c
-    add bx, word [bp-008h]                    ; 03 5e f8
-    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
-    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
-    test al, al                               ; 84 c0
-    jne short 06170h                          ; 75 04
-    xor bx, bx                                ; 31 db
-    jmp short 06173h                          ; eb 03
-    mov bx, strict word 00008h                ; bb 08 00
-    or bl, 010h                               ; 80 cb 10
-    cmp ah, 001h                              ; 80 fc 01
-    db  00fh, 094h, 0c4h
-    ; sete ah                                   ; 0f 94 c4
-    movzx cx, ah                              ; 0f b6 cc
-    or bx, cx                                 ; 09 cb
-    cmp AL, strict byte 001h                  ; 3c 01
-    db  00fh, 094h, 0c4h
-    ; sete ah                                   ; 0f 94 c4
-    movzx cx, ah                              ; 0f b6 cc
-    or bx, cx                                 ; 09 cb
-    cmp AL, strict byte 003h                  ; 3c 03
-    jne short 06194h                          ; 75 05
-    mov ax, strict word 00003h                ; b8 03 00
-    jmp short 06196h                          ; eb 02
-    xor ax, ax                                ; 31 c0
-    or bx, ax                                 ; 09 c3
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    les si, [bp-008h]                         ; c4 76 f8
-    mov word [es:si+00234h], ax               ; 26 89 84 34 02
-    mov word [es:si+00236h], dx               ; 26 89 94 36 02
-    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
-    cwd                                       ; 99
-    mov cx, strict word 00002h                ; b9 02 00
-    idiv cx                                   ; f7 f9
-    or dl, 00eh                               ; 80 ca 0e
-    mov ax, dx                                ; 89 d0
-    sal ax, 004h                              ; c1 e0 04
-    mov byte [es:si+00238h], al               ; 26 88 84 38 02
-    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
-    mov al, byte [bp-002h]                    ; 8a 46 fe
-    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
-    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
-    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
-    mov word [es:si+0023eh], bx               ; 26 89 9c 3e 02
-    mov bx, si                                ; 89 f3
-    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
-    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
-    xor bl, bl                                ; 30 db
-    xor bh, bh                                ; 30 ff
-    jmp short 061f9h                          ; eb 05
-    cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 0620ch                          ; 73 13
-    movzx dx, bh                              ; 0f b6 d7
-    add dx, 00356h                            ; 81 c2 56 03
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01650h                               ; e8 4a b4
-    add bl, al                                ; 00 c3
-    db  0feh, 0c7h
-    ; inc bh                                    ; fe c7
-    jmp short 061f4h                          ; eb e8
-    neg bl                                    ; f6 db
-    les si, [bp-008h]                         ; c4 76 f8
-    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
-    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
-    jc near 062ceh                            ; 0f 82 b0 00
-    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    xor ah, ah                                ; 30 e4
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    les bx, [bp-008h]                         ; c4 5e f8
-    add bx, ax                                ; 01 c3
-    mov al, byte [es:bx+00204h]               ; 26 8a 87 04 02
-    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:di], strict word 00042h      ; 26 c7 05 42 00
-    db  066h, 026h, 0c7h, 045h, 01eh, 0ddh, 0beh, 024h, 000h
-    ; mov dword [es:di+01eh], strict dword 00024beddh ; 66 26 c7 45 1e dd be 24 00
-    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
-    test al, al                               ; 84 c0
-    jne short 0625fh                          ; 75 09
-    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
-    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    db  066h, 026h, 0c7h, 045h, 028h, 041h, 054h, 041h, 020h
-    ; mov dword [es:di+028h], strict dword 020415441h ; 66 26 c7 45 28 41 54 41 20
-    db  066h, 026h, 0c7h, 045h, 02ch, 020h, 020h, 020h, 020h
-    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
-    test al, al                               ; 84 c0
-    jne short 0628bh                          ; 75 13
-    mov word [es:di+030h], dx                 ; 26 89 55 30
-    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
-    ; mov dword [es:di+032h], strict dword 000000000h ; 66 26 c7 45 32 00 00 00 00
-    mov word [es:di+036h], strict word 00000h ; 26 c7 45 36 00 00
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    and AL, strict byte 001h                  ; 24 01
-    xor ah, ah                                ; 30 e4
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:di+038h], ax                 ; 26 89 45 38
-    db  066h, 026h, 0c7h, 045h, 03ah, 000h, 000h, 000h, 000h
-    ; mov dword [es:di+03ah], strict dword 000000000h ; 66 26 c7 45 3a 00 00 00 00
-    mov word [es:di+03eh], strict word 00000h ; 26 c7 45 3e 00 00
-    xor bl, bl                                ; 30 db
-    mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 062b3h                          ; eb 05
-    cmp bh, 040h                              ; 80 ff 40
-    jnc short 062c5h                          ; 73 12
-    movzx dx, bh                              ; 0f b6 d7
-    add dx, word [bp+00ah]                    ; 03 56 0a
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01650h                               ; e8 91 b3
-    add bl, al                                ; 00 c3
-    db  0feh, 0c7h
-    ; inc bh                                    ; fe c7
-    jmp short 062aeh                          ; eb e9
-    neg bl                                    ; f6 db
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+041h], bl                 ; 26 88 5d 41
-    mov byte [bp+017h], 000h                  ; c6 46 17 00
-    xor bx, bx                                ; 31 db
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 81 b3
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    cmp ax, strict word 00006h                ; 3d 06 00
-    je short 062ceh                           ; 74 e4
-    cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 062fbh                           ; 72 0c
-    jbe short 062ceh                          ; 76 dd
-    cmp ax, strict word 00003h                ; 3d 03 00
-    jc short 062fbh                           ; 72 05
-    cmp ax, strict word 00004h                ; 3d 04 00
-    jbe short 062ceh                          ; 76 d3
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov bx, word [bp+016h]                    ; 8b 5e 16
-    shr bx, 008h                              ; c1 eb 08
-    xor bh, bh                                ; 30 ff
-    mov dx, strict word 00074h                ; ba 74 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 47 b3
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 062e1h                          ; eb c4
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 09 b6
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    shr ax, 008h                              ; c1 e8 08
-    push ax                                   ; 50
-    push 007f5h                               ; 68 f5 07
-    push 007c7h                               ; 68 c7 07
-    jmp near 05f8ch                           ; e9 54 fc
-_int14_function:                             ; 0xf6338 LB 0x155
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    sti                                       ; fb
-    mov dx, word [bp+00eh]                    ; 8b 56 0e
-    add dx, dx                                ; 01 d2
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 24 b3
-    mov si, ax                                ; 89 c6
-    mov bx, ax                                ; 89 c3
-    mov dx, word [bp+00eh]                    ; 8b 56 0e
-    add dx, strict byte 0007ch                ; 83 c2 7c
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 f8 b2
-    mov cl, al                                ; 88 c1
-    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
-    jnc near 06483h                           ; 0f 83 21 01
-    test si, si                               ; 85 f6
-    jbe near 06483h                           ; 0f 86 1b 01
-    mov al, byte [bp+013h]                    ; 8a 46 13
-    cmp AL, strict byte 001h                  ; 3c 01
-    jc short 06380h                           ; 72 11
-    jbe short 063d4h                          ; 76 63
-    cmp AL, strict byte 003h                  ; 3c 03
-    je near 0646ch                            ; 0f 84 f5 00
-    cmp AL, strict byte 002h                  ; 3c 02
-    je near 06422h                            ; 0f 84 a5 00
-    jmp near 0647dh                           ; e9 fd 00
-    test al, al                               ; 84 c0
-    jne near 0647dh                           ; 0f 85 f7 00
-    lea dx, [bx+003h]                         ; 8d 57 03
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    or AL, strict byte 080h                   ; 0c 80
-    out DX, AL                                ; ee
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    and AL, strict byte 0e0h                  ; 24 e0
-    movzx cx, al                              ; 0f b6 c8
-    sar cx, 005h                              ; c1 f9 05
-    mov ax, 00600h                            ; b8 00 06
-    sar ax, CL                                ; d3 f8
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    shr ax, 008h                              ; c1 e8 08
-    lea dx, [bx+001h]                         ; 8d 57 01
-    out DX, AL                                ; ee
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    and AL, strict byte 01fh                  ; 24 1f
-    lea dx, [bx+003h]                         ; 8d 57 03
-    out DX, AL                                ; ee
-    lea dx, [bx+005h]                         ; 8d 57 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+013h], al                    ; 88 46 13
-    lea dx, [bx+006h]                         ; 8d 57 06
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 0645eh                           ; e9 97 00
-    mov AL, strict byte 017h                  ; b0 17
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    lea dx, [bx+001h]                         ; 8d 57 01
-    mov AL, strict byte 004h                  ; b0 04
-    out DX, AL                                ; ee
-    jmp short 063a9h                          ; eb d5
-    mov dx, strict word 0006ch                ; ba 6c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 8f b2
-    mov si, ax                                ; 89 c6
-    lea dx, [bx+005h]                         ; 8d 57 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and ax, strict word 00060h                ; 25 60 00
-    cmp ax, strict word 00060h                ; 3d 60 00
-    je short 06404h                           ; 74 17
-    test cl, cl                               ; 84 c9
-    je short 06404h                           ; 74 13
-    mov dx, strict word 0006ch                ; ba 6c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 72 b2
-    cmp ax, si                                ; 39 f0
-    je short 063dfh                           ; 74 e1
-    mov si, ax                                ; 89 c6
-    db  0feh, 0c9h
-    ; dec cl                                    ; fe c9
-    jmp short 063dfh                          ; eb db
-    test cl, cl                               ; 84 c9
-    je short 0640eh                           ; 74 06
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    lea dx, [bx+005h]                         ; 8d 57 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+013h], al                    ; 88 46 13
-    test cl, cl                               ; 84 c9
-    jne short 0645eh                          ; 75 43
-    or AL, strict byte 080h                   ; 0c 80
-    mov byte [bp+013h], al                    ; 88 46 13
-    jmp short 0645eh                          ; eb 3c
-    mov dx, strict word 0006ch                ; ba 6c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 41 b2
-    mov si, ax                                ; 89 c6
-    lea dx, [bx+005h]                         ; 8d 57 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 0644eh                          ; 75 17
-    test cl, cl                               ; 84 c9
-    je short 0644eh                           ; 74 13
-    mov dx, strict word 0006ch                ; ba 6c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 28 b2
-    cmp ax, si                                ; 39 f0
-    je short 0642dh                           ; 74 e5
-    mov si, ax                                ; 89 c6
-    db  0feh, 0c9h
-    ; dec cl                                    ; fe c9
-    jmp short 0642dh                          ; eb df
-    test cl, cl                               ; 84 c9
-    je short 06464h                           ; 74 12
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    mov dx, bx                                ; 89 da
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+012h], al                    ; 88 46 12
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 06487h                          ; eb 23
-    lea dx, [bx+005h]                         ; 8d 57 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    jmp short 0641dh                          ; eb b1
-    lea dx, [si+005h]                         ; 8d 54 05
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp+013h], al                    ; 88 46 13
-    lea dx, [si+006h]                         ; 8d 54 06
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    jmp short 0645bh                          ; eb de
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 06487h                          ; eb 04
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_enable_a20_:                             ; 0xf648d LB 0x2c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    mov bx, ax                                ; 89 c3
-    mov dx, 00092h                            ; ba 92 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov cl, al                                ; 88 c1
-    test bx, bx                               ; 85 db
-    je short 064a6h                           ; 74 05
-    or AL, strict byte 002h                   ; 0c 02
-    out DX, AL                                ; ee
-    jmp short 064a9h                          ; eb 03
-    and AL, strict byte 0fdh                  ; 24 fd
-    out DX, AL                                ; ee
-    test cl, 002h                             ; f6 c1 02
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_e820_range_:                             ; 0xf64b9 LB 0x8c
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov es, ax                                ; 8e c0
-    mov si, dx                                ; 89 d6
-    mov word [es:si], bx                      ; 26 89 1c
-    mov word [es:si+002h], cx                 ; 26 89 4c 02
-    movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
-    mov word [es:si+004h], ax                 ; 26 89 44 04
-    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
-    sub word [bp+006h], bx                    ; 29 5e 06
-    sbb word [bp+008h], cx                    ; 19 4e 08
-    mov al, byte [bp+00ah]                    ; 8a 46 0a
-    sub byte [bp+00ch], al                    ; 28 46 0c
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov ax, word [bp+008h]                    ; 8b 46 08
-    mov word [es:si+00ah], ax                 ; 26 89 44 0a
-    movzx ax, byte [bp+00ch]                  ; 0f b6 46 0c
-    mov word [es:si+00ch], ax                 ; 26 89 44 0c
-    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    mov word [es:si+010h], ax                 ; 26 89 44 10
-    mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn 0000ah                               ; c2 0a 00
-    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
-    db  000h, 0e4h, 069h, 084h, 065h, 097h, 065h, 02ch, 066h, 032h, 066h, 037h, 066h, 03ch, 066h, 0deh
-    db  066h, 07bh, 068h, 0a1h, 068h, 025h, 066h, 025h, 066h, 06eh, 069h, 096h, 069h, 0a9h, 069h, 0b8h
-    db  069h, 02ch, 066h, 0bfh, 069h
-_int15_function:                             ; 0xf6545 LB 0x4d1
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    shr ax, 008h                              ; c1 e8 08
-    cmp ax, 000ech                            ; 3d ec 00
-    jnbe near 069e4h                          ; 0f 87 8b 04
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 00012h                ; b9 12 00
-    mov di, 06510h                            ; bf 10 65
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov si, word [cs:di+06521h]               ; 2e 8b b5 21 65
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    mov cx, word [bp+018h]                    ; 8b 4e 18
-    and cl, 0feh                              ; 80 e1 fe
-    mov bx, word [bp+018h]                    ; 8b 5e 18
-    or bl, 001h                               ; 80 cb 01
-    mov dx, ax                                ; 89 c2
-    or dh, 086h                               ; 80 ce 86
-    jmp si                                    ; ff e6
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    cmp ax, 000c0h                            ; 3d c0 00
-    jne near 069e4h                           ; 0f 85 54 04
-    or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 0698dh                           ; e9 f6 03
-    mov dx, ax                                ; 89 c2
-    cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 065ach                           ; 72 0e
-    jbe short 065c0h                          ; 76 20
-    cmp ax, strict word 00003h                ; 3d 03 00
-    je short 065edh                           ; 74 48
-    cmp ax, strict word 00002h                ; 3d 02 00
-    je short 065d0h                           ; 74 26
-    jmp short 065fah                          ; eb 4e
-    test ax, ax                               ; 85 c0
-    jne short 065fah                          ; 75 4a
-    xor ax, ax                                ; 31 c0
-    call 0648dh                               ; e8 d8 fe
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp near 06625h                           ; e9 65 00
-    mov ax, strict word 00001h                ; b8 01 00
-    call 0648dh                               ; e8 c7 fe
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov byte [bp+013h], dh                    ; 88 76 13
-    jmp near 06625h                           ; e9 55 00
-    mov dx, 00092h                            ; ba 92 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    shr ax, 1                                 ; d1 e8
-    and ax, strict word 00001h                ; 25 01 00
-    mov dx, word [bp+012h]                    ; 8b 56 12
-    mov dl, al                                ; 88 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov byte [bp+013h], ah                    ; 88 66 13
-    jmp near 06625h                           ; e9 38 00
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov byte [bp+013h], ah                    ; 88 66 13
-    mov word [bp+00ch], ax                    ; 89 46 0c
-    jmp near 06625h                           ; e9 2b 00
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 2c b3
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    push 0082eh                               ; 68 2e 08
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 5f b3
-    add sp, strict byte 00006h                ; 83 c4 06
-    or byte [bp+018h], 001h                   ; 80 4e 18 01
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    or ah, 086h                               ; 80 cc 86
-    mov word [bp+012h], ax                    ; 89 46 12
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 066d8h                           ; e9 a6 00
-    mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 06625h                          ; eb ee
-    mov word [bp+018h], cx                    ; 89 4e 18
-    jmp short 06622h                          ; eb e6
-    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 066aeh                          ; 75 6c
-    mov dx, 000a0h                            ; ba a0 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 05 b0
-    test AL, strict byte 001h                 ; a8 01
-    jne near 06984h                           ; 0f 85 33 03
-    mov bx, strict word 00001h                ; bb 01 00
-    mov dx, 000a0h                            ; ba a0 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 01 b0
-    mov bx, word [bp+014h]                    ; 8b 5e 14
-    mov dx, 00098h                            ; ba 98 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 11 b0
-    mov bx, word [bp+00ch]                    ; 8b 5e 0c
-    mov dx, 0009ah                            ; ba 9a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 05 b0
-    mov bx, word [bp+00eh]                    ; 8b 5e 0e
-    mov dx, 0009ch                            ; ba 9c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 f9 af
-    mov bx, word [bp+010h]                    ; 8b 5e 10
-    mov dx, 0009eh                            ; ba 9e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 ed af
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov dx, 000a1h                            ; ba a1 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0feh                  ; 24 fe
-    out DX, AL                                ; ee
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 0c b0
-    or AL, strict byte 040h                   ; 0c 40
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 1e b0
-    jmp near 06625h                           ; e9 77 ff
-    cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 066cch                          ; 75 19
-    xor bx, bx                                ; 31 db
-    mov dx, 000a0h                            ; ba a0 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 a0 af
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 e4 af
-    and AL, strict byte 0bfh                  ; 24 bf
-    jmp short 066a2h                          ; eb d6
-    mov word [bp+018h], bx                    ; 89 5e 18
-    mov ax, dx                                ; 89 d0
-    xor ah, dh                                ; 30 f4
-    xor dl, dl                                ; 30 d2
-    dec ax                                    ; 48
-    or dx, ax                                 ; 09 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 06625h                           ; e9 47 ff
-    cli                                       ; fa
-    mov ax, strict word 00001h                ; b8 01 00
-    call 0648dh                               ; e8 a8 fd
-    mov di, ax                                ; 89 c7
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    sal ax, 004h                              ; c1 e0 04
-    mov cx, word [bp+006h]                    ; 8b 4e 06
-    add cx, ax                                ; 01 c1
-    mov dx, word [bp+014h]                    ; 8b 56 14
-    shr dx, 00ch                              ; c1 ea 0c
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    cmp cx, ax                                ; 39 c1
-    jnc short 06704h                          ; 73 05
-    db  0feh, 0c2h
-    ; inc dl                                    ; fe c2
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00008h                ; 83 c2 08
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, strict word 0002fh                ; bb 2f 00
-    call 0167ah                               ; e8 67 af
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0000ah                ; 83 c2 0a
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, cx                                ; 89 cb
-    call 0167ah                               ; e8 59 af
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0000ch                ; 83 c2 0c
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    call 0165eh                               ; e8 2d af
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0000dh                ; 83 c2 0d
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, 00093h                            ; bb 93 00
-    call 0165eh                               ; e8 1e af
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0000eh                ; 83 c2 0e
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 2c af
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00020h                ; 83 c2 20
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 1d af
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00022h                ; 83 c2 22
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 0f af
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00024h                ; 83 c2 24
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, strict word 0000fh                ; bb 0f 00
-    call 0165eh                               ; e8 e4 ae
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00025h                ; 83 c2 25
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, 0009bh                            ; bb 9b 00
-    call 0165eh                               ; e8 d5 ae
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00026h                ; 83 c2 26
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 e3 ae
-    mov ax, ss                                ; 8c d0
-    mov cx, ax                                ; 89 c1
-    sal cx, 004h                              ; c1 e1 04
-    shr ax, 00ch                              ; c1 e8 0c
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00028h                ; 83 c2 28
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 c7 ae
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0002ah                ; 83 c2 2a
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, cx                                ; 89 cb
-    call 0167ah                               ; e8 b9 ae
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0002ch                ; 83 c2 2c
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    call 0165eh                               ; e8 8d ae
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0002dh                ; 83 c2 2d
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, 00093h                            ; bb 93 00
-    call 0165eh                               ; e8 7e ae
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0002eh                ; 83 c2 2e
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 8c ae
-    mov si, word [bp+006h]                    ; 8b 76 06
-    mov es, [bp+014h]                         ; 8e 46 14
-    mov cx, word [bp+010h]                    ; 8b 4e 10
-    push DS                                   ; 1e
-    push eax                                  ; 66 50
-    db  066h, 033h, 0c0h
-    ; xor eax, eax                              ; 66 33 c0
-    mov ds, ax                                ; 8e d8
-    mov word [00467h], sp                     ; 89 26 67 04
-    mov [00469h], ss                          ; 8c 16 69 04
-    call 0680ah                               ; e8 00 00
-    pop di                                    ; 5f
-    add di, strict byte 0001bh                ; 83 c7 1b
-    push strict byte 00020h                   ; 6a 20
-    push di                                   ; 57
-    lgdt [es:si+008h]                         ; 26 0f 01 54 08
-    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
-    mov eax, cr0                              ; 0f 20 c0
-    or AL, strict byte 001h                   ; 0c 01
-    mov cr0, eax                              ; 0f 22 c0
-    retf                                      ; cb
-    mov ax, strict word 00028h                ; b8 28 00
-    mov ss, ax                                ; 8e d0
-    mov ax, strict word 00010h                ; b8 10 00
-    mov ds, ax                                ; 8e d8
-    mov ax, strict word 00018h                ; b8 18 00
-    mov es, ax                                ; 8e c0
-    db  033h, 0f6h
-    ; xor si, si                                ; 33 f6
-    db  033h, 0ffh
-    ; xor di, di                                ; 33 ff
-    cld                                       ; fc
-    rep movsw                                 ; f3 a5
-    call 0683eh                               ; e8 00 00
-    pop ax                                    ; 58
-    push 0f000h                               ; 68 00 f0
-    add ax, strict byte 00018h                ; 83 c0 18
-    push ax                                   ; 50
-    mov ax, strict word 00028h                ; b8 28 00
-    mov ds, ax                                ; 8e d8
-    mov es, ax                                ; 8e c0
-    mov eax, cr0                              ; 0f 20 c0
-    and AL, strict byte 0feh                  ; 24 fe
-    mov cr0, eax                              ; 0f 22 c0
-    retf                                      ; cb
-    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov es, ax                                ; 8e c0
-    lss sp, [00467h]                          ; 0f b2 26 67 04
-    pop eax                                   ; 66 58
-    pop DS                                    ; 1f
-    mov ax, di                                ; 89 f8
-    call 0648dh                               ; e8 1e fc
-    sti                                       ; fb
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    jmp near 06625h                           ; e9 aa fd
-    mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 2b ae
-    xor ah, ah                                ; 30 e4
-    mov dx, ax                                ; 89 c2
-    sal dx, 008h                              ; c1 e2 08
-    mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 1e ae
-    xor ah, ah                                ; 30 e4
-    or dx, ax                                 ; 09 c2
-    mov word [bp+012h], dx                    ; 89 56 12
-    cmp dx, strict byte 0ffc0h                ; 83 fa c0
-    jbe short 06874h                          ; 76 da
-    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
-    jmp short 06874h                          ; eb d3
-    cli                                       ; fa
-    mov ax, strict word 00001h                ; b8 01 00
-    call 0648dh                               ; e8 e5 fb
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 00038h                ; 83 c2 38
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 c3 ad
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0003ah                ; 83 c2 3a
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 b5 ad
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0003ch                ; 83 c2 3c
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, strict word 0000fh                ; bb 0f 00
-    call 0165eh                               ; e8 8a ad
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0003dh                ; 83 c2 3d
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov bx, 0009bh                            ; bb 9b 00
-    call 0165eh                               ; e8 7b ad
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, strict byte 0003eh                ; 83 c2 3e
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 89 ad
-    mov AL, strict byte 011h                  ; b0 11
-    mov dx, strict word 00020h                ; ba 20 00
-    out DX, AL                                ; ee
-    mov dx, 000a0h                            ; ba a0 00
-    out DX, AL                                ; ee
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    shr ax, 008h                              ; c1 e8 08
-    mov dx, strict word 00021h                ; ba 21 00
-    out DX, AL                                ; ee
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    mov dx, 000a1h                            ; ba a1 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 004h                  ; b0 04
-    mov dx, strict word 00021h                ; ba 21 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 002h                  ; b0 02
-    mov dx, 000a1h                            ; ba a1 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 001h                  ; b0 01
-    mov dx, strict word 00021h                ; ba 21 00
-    out DX, AL                                ; ee
-    mov dx, 000a1h                            ; ba a1 00
-    out DX, AL                                ; ee
-    mov AL, strict byte 0ffh                  ; b0 ff
-    mov dx, strict word 00021h                ; ba 21 00
-    out DX, AL                                ; ee
-    mov dx, 000a1h                            ; ba a1 00
-    out DX, AL                                ; ee
-    mov si, word [bp+006h]                    ; 8b 76 06
-    call 06932h                               ; e8 00 00
-    pop di                                    ; 5f
-    add di, strict byte 00018h                ; 83 c7 18
-    push strict byte 00038h                   ; 6a 38
-    push di                                   ; 57
-    lgdt [es:si+008h]                         ; 26 0f 01 54 08
-    lidt [es:si+010h]                         ; 26 0f 01 5c 10
-    mov ax, strict word 00001h                ; b8 01 00
-    lmsw ax                                   ; 0f 01 f0
-    retf                                      ; cb
-    mov ax, strict word 00028h                ; b8 28 00
-    mov ss, ax                                ; 8e d0
-    mov ax, strict word 00018h                ; b8 18 00
-    mov ds, ax                                ; 8e d8
-    mov ax, strict word 00020h                ; b8 20 00
-    mov es, ax                                ; 8e c0
-    lea ax, [bp+004h]                         ; 8d 46 04
-    db  08bh, 0e0h
-    ; mov sp, ax                                ; 8b e0
-    popaw                                     ; 61
-    add sp, strict byte 00006h                ; 83 c4 06
-    pop cx                                    ; 59
-    pop ax                                    ; 58
-    pop ax                                    ; 58
-    mov ax, strict word 00030h                ; b8 30 00
-    push ax                                   ; 50
-    push cx                                   ; 51
-    retf                                      ; cb
-    jmp near 06625h                           ; e9 b7 fc
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 b8 af
-    push 0086eh                               ; 68 6e 08
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 f1 af
-    add sp, strict byte 00004h                ; 83 c4 04
-    or byte [bp+018h], 001h                   ; 80 4e 18 01
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    or ah, 086h                               ; 80 cc 86
-    mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 06625h                           ; e9 8f fc
-    mov word [bp+018h], cx                    ; 89 4e 18
-    mov word [bp+012h], ax                    ; 89 46 12
-    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
-    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
-    jmp near 06625h                           ; e9 7c fc
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 ba ac
-    mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 06874h                           ; e9 bc fe
-    push 0089dh                               ; 68 9d 08
-    push strict byte 00008h                   ; 6a 08
-    jmp short 0697eh                          ; eb bf
-    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 069e4h                          ; 75 1f
-    mov word [bp+012h], ax                    ; 89 46 12
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 069ddh                           ; 72 0b
-    cmp ax, strict word 00003h                ; 3d 03 00
-    jnbe short 069ddh                         ; 77 06
-    mov word [bp+018h], cx                    ; 89 4e 18
-    jmp near 06625h                           ; e9 48 fc
-    or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06625h                           ; e9 41 fc
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 42 af
-    push word [bp+00ch]                       ; ff 76 0c
-    push word [bp+012h]                       ; ff 76 12
-    push 008b4h                               ; 68 b4 08
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 75 af
-    add sp, strict byte 00008h                ; 83 c4 08
-    jmp short 06984h                          ; eb 82
-    mov sp, 0de6bh                            ; bc 6b de
-    imul ax, word [bx+di], strict byte 0006ch ; 6b 01 6c
-    and bp, word [si+043h]                    ; 23 6c 43
-    insb                                      ; 6c
-    bound bp, [si-07ah]                       ; 62 6c 86
-    insb                                      ; 6c
-    stosb                                     ; aa
-    insb                                      ; 6c
-    jmp near 07f81h                           ; e9 6c 15
-    insw                                      ; 6d
-_int15_function32:                           ; 0xf6a16 LB 0x3c2
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    shr ax, 008h                              ; c1 e8 08
-    mov bx, word [bp+028h]                    ; 8b 5e 28
-    and bl, 0feh                              ; 80 e3 fe
-    mov dx, word [bp+020h]                    ; 8b 56 20
-    xor dh, dh                                ; 30 f6
-    cmp ax, 000e8h                            ; 3d e8 00
-    je near 06ae0h                            ; 0f 84 ab 00
-    cmp ax, 000d0h                            ; 3d d0 00
-    je short 06a7bh                           ; 74 41
-    cmp ax, 00086h                            ; 3d 86 00
-    jne near 06da8h                           ; 0f 85 67 03
-    sti                                       ; fb
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov dx, word [bp+018h]                    ; 8b 56 18
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
-    db  066h, 033h, 0d2h
-    ; xor edx, edx                              ; 66 33 d2
-    div ebx                                   ; 66 f7 f3
-    db  066h, 08bh, 0c8h
-    ; mov ecx, eax                              ; 66 8b c8
-    in AL, strict byte 061h                   ; e4 61
-    and AL, strict byte 010h                  ; 24 10
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    db  066h, 00bh, 0c9h
-    ; or ecx, ecx                               ; 66 0b c9
-    je near 06a78h                            ; 0f 84 0e 00
-    in AL, strict byte 061h                   ; e4 61
-    and AL, strict byte 010h                  ; 24 10
-    db  03ah, 0c4h
-    ; cmp al, ah                                ; 3a c4
-    je short 06a6ah                           ; 74 f8
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    dec ecx                                   ; 66 49
-    jne short 06a6ah                          ; 75 f2
-    jmp near 06dd2h                           ; e9 57 03
-    cmp dx, strict byte 0004fh                ; 83 fa 4f
-    jne near 06da8h                           ; 0f 85 26 03
-    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
-    jne near 06da8h                           ; 0f 85 1d 03
-    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
-    jne near 06da8h                           ; 0f 85 14 03
-    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
-    jne near 06da8h                           ; 0f 85 0b 03
-    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
-    jne near 06da8h                           ; 0f 85 02 03
-    mov ax, word [bp+00ah]                    ; 8b 46 0a
-    or ax, word [bp+008h]                     ; 0b 46 08
-    jne near 06da8h                           ; 0f 85 f8 02
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    or ax, word [bp+004h]                     ; 0b 46 04
-    jne near 06da8h                           ; 0f 85 ee 02
-    mov word [bp+028h], bx                    ; 89 5e 28
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    mov word [bp+008h], ax                    ; 89 46 08
-    mov ax, word [bp+016h]                    ; 8b 46 16
-    mov word [bp+00ah], ax                    ; 89 46 0a
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov word [bp+004h], ax                    ; 89 46 04
-    mov ax, word [bp+01eh]                    ; 8b 46 1e
-    mov word [bp+006h], ax                    ; 89 46 06
-    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
-    jmp near 06dd2h                           ; e9 f2 02
-    cmp dx, strict byte 00020h                ; 83 fa 20
-    je short 06aefh                           ; 74 0a
-    cmp dx, strict byte 00001h                ; 83 fa 01
-    je near 06d5ch                            ; 0f 84 70 02
-    jmp near 06da8h                           ; e9 b9 02
-    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
-    jne near 06da8h                           ; 0f 85 b0 02
-    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
-    jne near 06da8h                           ; 0f 85 a7 02
-    mov ax, strict word 00035h                ; b8 35 00
-    call 016ach                               ; e8 a5 ab
-    movzx bx, al                              ; 0f b6 d8
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00008h                ; b9 08 00
-    sal bx, 1                                 ; d1 e3
-    rcl dx, 1                                 ; d1 d2
-    loop 06b0fh                               ; e2 fa
-    mov ax, strict word 00034h                ; b8 34 00
-    call 016ach                               ; e8 91 ab
-    xor ah, ah                                ; 30 e4
-    mov dx, bx                                ; 89 da
-    or dx, ax                                 ; 09 c2
-    xor bx, bx                                ; 31 db
-    add bx, bx                                ; 01 db
-    adc dx, 00100h                            ; 81 d2 00 01
-    cmp dx, 00100h                            ; 81 fa 00 01
-    jc short 06b35h                           ; 72 06
-    jne short 06b62h                          ; 75 31
-    test bx, bx                               ; 85 db
-    jnbe short 06b62h                         ; 77 2d
-    mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 71 ab
-    movzx bx, al                              ; 0f b6 d8
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00008h                ; b9 08 00
-    sal bx, 1                                 ; d1 e3
-    rcl dx, 1                                 ; d1 d2
-    loop 06b43h                               ; e2 fa
-    mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 5d ab
-    xor ah, ah                                ; 30 e4
-    or bx, ax                                 ; 09 c3
-    mov cx, strict word 0000ah                ; b9 0a 00
-    sal bx, 1                                 ; d1 e3
-    rcl dx, 1                                 ; d1 d2
-    loop 06b56h                               ; e2 fa
-    add bx, strict byte 00000h                ; 83 c3 00
-    adc dx, strict byte 00010h                ; 83 d2 10
-    mov ax, strict word 00062h                ; b8 62 00
-    call 016ach                               ; e8 44 ab
-    xor ah, ah                                ; 30 e4
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    xor al, al                                ; 30 c0
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov cx, strict word 00008h                ; b9 08 00
-    sal word [bp-00ah], 1                     ; d1 66 f6
-    rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 06b75h                               ; e2 f8
-    mov ax, strict word 00061h                ; b8 61 00
-    call 016ach                               ; e8 29 ab
-    xor ah, ah                                ; 30 e4
-    or word [bp-00ah], ax                     ; 09 46 f6
-    mov ax, word [bp-00ah]                    ; 8b 46 f6
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    mov ax, strict word 00063h                ; b8 63 00
-    call 016ach                               ; e8 13 ab
-    mov byte [bp-004h], al                    ; 88 46 fc
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe near 06da8h                          ; 0f 87 ff 01
-    mov si, ax                                ; 89 c6
-    add si, ax                                ; 01 c6
-    mov ax, bx                                ; 89 d8
-    add ax, strict word 00000h                ; 05 00 00
-    mov cx, dx                                ; 89 d1
-    adc cx, strict byte 0ffffh                ; 83 d1 ff
-    jmp word [cs:si+06a02h]                   ; 2e ff a4 02 6a
-    push strict byte 00001h                   ; 6a 01
-    push dword 000000000h                     ; 66 6a 00
-    push strict byte 00009h                   ; 6a 09
-    push 0fc00h                               ; 68 00 fc
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    xor cx, cx                                ; 31 c9
-    call 064b9h                               ; e8 e6 f8
-    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
-    jmp near 06d46h                           ; e9 68 01
-    push strict byte 00002h                   ; 6a 02
-    push dword 000000000h                     ; 66 6a 00
-    push strict byte 0000ah                   ; 6a 0a
-    push strict byte 00000h                   ; 6a 00
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    mov bx, 0fc00h                            ; bb 00 fc
-    mov cx, strict word 00009h                ; b9 09 00
-    call 064b9h                               ; e8 c3 f8
-    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
-    jmp near 06d46h                           ; e9 45 01
-    push strict byte 00002h                   ; 6a 02
-    push dword 000000000h                     ; 66 6a 00
-    push strict byte 00010h                   ; 6a 10
-    push strict byte 00000h                   ; 6a 00
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    mov cx, strict word 0000fh                ; b9 0f 00
-    call 064b9h                               ; e8 a1 f8
-    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
-    jmp near 06d46h                           ; e9 23 01
-    push strict byte 00001h                   ; 6a 01
-    push dword 000000000h                     ; 66 6a 00
-    push cx                                   ; 51
-    push ax                                   ; 50
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    mov cx, strict word 00010h                ; b9 10 00
-    call 064b9h                               ; e8 81 f8
-    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
-    jmp near 06d46h                           ; e9 03 01
-    push strict byte 00003h                   ; 6a 03
-    push dword 000000000h                     ; 66 6a 00
-    push dx                                   ; 52
-    push bx                                   ; 53
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov si, word [bp+024h]                    ; 8b 76 24
-    mov bx, ax                                ; 89 c3
-    mov ax, si                                ; 89 f0
-    call 064b9h                               ; e8 62 f8
-    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
-    jmp near 06d46h                           ; e9 e4 00
-    push strict byte 00002h                   ; 6a 02
-    push dword 000000000h                     ; 66 6a 00
-    push 0fec0h                               ; 68 c0 fe
-    push 01000h                               ; 68 00 10
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    mov cx, 0fec0h                            ; b9 c0 fe
-    call 064b9h                               ; e8 3e f8
-    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
-    jmp near 06d46h                           ; e9 c0 00
-    push strict byte 00002h                   ; 6a 02
-    push dword 000000000h                     ; 66 6a 00
-    push 0fee0h                               ; 68 e0 fe
-    push 01000h                               ; 68 00 10
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    mov cx, 0fee0h                            ; b9 e0 fe
-    call 064b9h                               ; e8 1a f8
-    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
-    jmp near 06d46h                           ; e9 9c 00
-    push strict byte 00002h                   ; 6a 02
-    push dword 000000000h                     ; 66 6a 00
-    push dword 000000000h                     ; 66 6a 00
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    mov cx, strict word 0fffch                ; b9 fc ff
-    call 064b9h                               ; e8 f9 f7
-    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06ccdh                          ; 75 07
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    test ax, ax                               ; 85 c0
-    je short 06ce1h                           ; 74 14
-    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
-    jmp short 06d46h                          ; eb 6f
-    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
-    jmp short 06d46h                          ; eb 65
-    mov word [bp+014h], ax                    ; 89 46 14
-    mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06d46h                          ; eb 5d
-    push strict byte 00002h                   ; 6a 02
-    push dword 000000000h                     ; 66 6a 00
-    push dword 000000000h                     ; 66 6a 00
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    xor cx, cx                                ; 31 c9
-    call 064b9h                               ; e8 bb f7
-    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06d0bh                          ; 75 07
-    mov ax, word [bp-008h]                    ; 8b 46 f8
-    test ax, ax                               ; 85 c0
-    je short 06d0dh                           ; 74 02
-    jmp short 06ccdh                          ; eb c0
-    mov word [bp+014h], ax                    ; 89 46 14
-    mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06d46h                          ; eb 31
-    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06d21h                          ; 75 06
-    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    je short 06d46h                           ; 74 25
-    push strict byte 00001h                   ; 6a 01
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    push strict byte 00001h                   ; 6a 01
-    push dword [bp-00ah]                      ; 66 ff 76 f6
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+024h]                    ; 8b 46 24
-    xor bx, bx                                ; 31 db
-    xor cx, cx                                ; 31 c9
-    call 064b9h                               ; e8 7b f7
-    xor ax, ax                                ; 31 c0
-    mov word [bp+014h], ax                    ; 89 46 14
-    mov word [bp+016h], ax                    ; 89 46 16
-    mov dword [bp+020h], strict dword 0534d4150h ; 66 c7 46 20 50 41 4d 53
-    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
-    and byte [bp+028h], 0feh                  ; 80 66 28 fe
-    jmp short 06dd2h                          ; eb 76
-    mov word [bp+028h], bx                    ; 89 5e 28
-    mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 47 a9
-    movzx dx, al                              ; 0f b6 d0
-    sal dx, 008h                              ; c1 e2 08
-    mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 3b a9
-    xor ah, ah                                ; 30 e4
-    or dx, ax                                 ; 09 c2
-    mov word [bp+01ch], dx                    ; 89 56 1c
-    cmp dx, 03c00h                            ; 81 fa 00 3c
-    jbe short 06d83h                          ; 76 05
-    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
-    mov ax, strict word 00035h                ; b8 35 00
-    call 016ach                               ; e8 23 a9
-    xor ah, ah                                ; 30 e4
-    mov dx, ax                                ; 89 c2
-    sal dx, 008h                              ; c1 e2 08
-    mov ax, strict word 00034h                ; b8 34 00
-    call 016ach                               ; e8 16 a9
-    xor ah, ah                                ; 30 e4
-    or dx, ax                                 ; 09 c2
-    mov word [bp+018h], dx                    ; 89 56 18
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov word [bp+020h], ax                    ; 89 46 20
-    mov word [bp+014h], dx                    ; 89 56 14
-    jmp short 06dd2h                          ; eb 2a
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 7e ab
-    push word [bp+014h]                       ; ff 76 14
-    push word [bp+020h]                       ; ff 76 20
-    push 008b4h                               ; 68 b4 08
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 b1 ab
-    add sp, strict byte 00008h                ; 83 c4 08
-    or byte [bp+028h], 001h                   ; 80 4e 28 01
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    xor al, al                                ; 30 c0
-    or AL, strict byte 086h                   ; 0c 86
-    mov word [bp+020h], ax                    ; 89 46 20
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_inv_op_handler:                             ; 0xf6dd8 LB 0x195
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    les bx, [bp+018h]                         ; c4 5e 18
-    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
-    jne short 06deeh                          ; 75 06
-    inc word [bp+018h]                        ; ff 46 18
-    jmp near 06f66h                           ; e9 78 01
-    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
-    jne near 06f62h                           ; 0f 85 6b 01
-    mov si, 00800h                            ; be 00 08
-    xor ax, ax                                ; 31 c0
-    mov word [bp-006h], ax                    ; 89 46 fa
-    mov word [bp-008h], ax                    ; 89 46 f8
-    mov es, ax                                ; 8e c0
-    mov bx, word [es:si+02ch]                 ; 26 8b 5c 2c
-    sub bx, strict byte 00006h                ; 83 eb 06
-    mov dx, word [es:si+020h]                 ; 26 8b 54 20
-    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
-    mov es, dx                                ; 8e c2
-    mov word [es:bx], ax                      ; 26 89 07
-    mov es, [bp-006h]                         ; 8e 46 fa
-    mov ax, word [es:si+022h]                 ; 26 8b 44 22
-    mov es, dx                                ; 8e c2
-    mov word [es:bx+002h], ax                 ; 26 89 47 02
-    mov es, [bp-006h]                         ; 8e 46 fa
-    mov ax, word [es:si+018h]                 ; 26 8b 44 18
-    mov es, dx                                ; 8e c2
-    mov word [es:bx+004h], ax                 ; 26 89 47 04
-    mov es, [bp-006h]                         ; 8e 46 fa
-    movzx bx, byte [es:si+038h]               ; 26 0f b6 5c 38
-    mov di, word [es:si+036h]                 ; 26 8b 7c 36
-    mov ax, word [es:si+024h]                 ; 26 8b 44 24
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00004h                ; b9 04 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 06e47h                               ; e2 fa
-    cmp bx, dx                                ; 39 d3
-    jne short 06e55h                          ; 75 04
-    cmp di, ax                                ; 39 c7
-    je short 06e5ah                           ; 74 05
-    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
-    mov es, [bp-006h]                         ; 8e 46 fa
-    movzx di, byte [es:si+04ah]               ; 26 0f b6 7c 4a
-    mov bx, word [es:si+048h]                 ; 26 8b 5c 48
-    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00004h                ; b9 04 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 06e6fh                               ; e2 fa
-    cmp di, dx                                ; 39 d7
-    jne short 06e7dh                          ; 75 04
-    cmp bx, ax                                ; 39 c3
-    je short 06e81h                           ; 74 04
-    or byte [bp-008h], 002h                   ; 80 4e f8 02
-    push strict byte 00000h                   ; 6a 00
-    push 00800h                               ; 68 00 08
-    push strict byte 0001fh                   ; 6a 1f
-    db  08bh, 0dch
-    ; mov bx, sp                                ; 8b dc
-    lgdt [ss:bx]                              ; 36 0f 01 17
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov es, [bp-006h]                         ; 8e 46 fa
-    mov ax, word [es:si+03ah]                 ; 26 8b 44 3a
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov ax, word [es:si+036h]                 ; 26 8b 44 36
-    mov word [es:si+00ah], ax                 ; 26 89 44 0a
-    movzx dx, byte [es:si+039h]               ; 26 0f b6 54 39
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, byte [es:si+038h]               ; 26 0f b6 44 38
-    or dx, ax                                 ; 09 c2
-    mov word [es:si+00ch], dx                 ; 26 89 54 0c
-    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
-    mov ax, word [es:si+04ch]                 ; 26 8b 44 4c
-    mov word [es:si], ax                      ; 26 89 04
-    mov ax, word [es:si+048h]                 ; 26 8b 44 48
-    mov word [es:si+002h], ax                 ; 26 89 44 02
-    movzx dx, byte [es:si+04bh]               ; 26 0f b6 54 4b
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, byte [es:si+04ah]               ; 26 0f b6 44 4a
-    or dx, ax                                 ; 09 c2
-    mov word [es:si+004h], dx                 ; 26 89 54 04
-    movzx ax, byte [es:si+05ch]               ; 26 0f b6 44 5c
-    mov dx, word [es:si+05ah]                 ; 26 8b 54 5a
-    push ax                                   ; 50
-    push dx                                   ; 52
-    push word [es:si+05eh]                    ; 26 ff 74 5e
-    db  08bh, 0dch
-    ; mov bx, sp                                ; 8b dc
-    lidt [ss:bx]                              ; 36 0f 01 1f
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov cx, word [bp-008h]                    ; 8b 4e f8
-    mov ax, 00080h                            ; b8 80 00
-    mov ss, ax                                ; 8e d0
-    mov ax, word [ss:0001eh]                  ; 36 a1 1e 00
-    mov ds, ax                                ; 8e d8
-    mov ax, word [ss:00024h]                  ; 36 a1 24 00
-    mov es, ax                                ; 8e c0
-    smsw ax                                   ; 0f 01 e0
-    inc ax                                    ; 40
-    lmsw ax                                   ; 0f 01 f0
-    mov ax, strict word 00008h                ; b8 08 00
-    test cx, strict word 00001h               ; f7 c1 01 00
-    je near 06f1fh                            ; 0f 84 02 00
-    mov es, ax                                ; 8e c0
-    test cx, strict word 00002h               ; f7 c1 02 00
-    je near 06f47h                            ; 0f 84 20 00
-    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
-    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
-    mov bx, word [word ss:00002h]             ; 36 8b 1e 02 00
-    mov word [word ss:0000ah], bx             ; 36 89 1e 0a 00
-    mov bx, word [word ss:00004h]             ; 36 8b 1e 04 00
-    mov word [word ss:0000ch], bx             ; 36 89 1e 0c 00
-    mov ds, ax                                ; 8e d8
-    mov eax, cr0                              ; 0f 20 c0
-    dec ax                                    ; 48
-    mov cr0, eax                              ; 0f 22 c0
-    mov sp, strict word 00026h                ; bc 26 00
-    popaw                                     ; 61
-    mov sp, word [word ss:0002ch]             ; 36 8b 26 2c 00
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
-    iret                                      ; cf
-    jmp short 06f66h                          ; eb 04
-    sti                                       ; fb
-    hlt                                       ; f4
-    jmp short 06f63h                          ; eb fd
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-init_rtc_:                                   ; 0xf6f6d LB 0x28
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov dx, strict word 00026h                ; ba 26 00
-    mov ax, strict word 0000ah                ; b8 0a 00
-    call 016c9h                               ; e8 4f a7
-    mov dx, strict word 00002h                ; ba 02 00
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 46 a7
-    mov ax, strict word 0000ch                ; b8 0c 00
-    call 016ach                               ; e8 23 a7
-    mov ax, strict word 0000dh                ; b8 0d 00
-    call 016ach                               ; e8 1d a7
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-rtc_updating_:                               ; 0xf6f95 LB 0x21
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    mov dx, 061a8h                            ; ba a8 61
-    dec dx                                    ; 4a
-    je short 06fadh                           ; 74 0e
-    mov ax, strict word 0000ah                ; b8 0a 00
-    call 016ach                               ; e8 07 a7
-    test AL, strict byte 080h                 ; a8 80
-    jne short 06f9ch                          ; 75 f3
-    xor ax, ax                                ; 31 c0
-    jmp short 06fb0h                          ; eb 03
-    mov ax, strict word 00001h                ; b8 01 00
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int70_function:                             ; 0xf6fb6 LB 0xbe
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push ax                                   ; 50
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 eb a6
-    mov dl, al                                ; 88 c2
-    mov byte [bp-004h], al                    ; 88 46 fc
-    mov ax, strict word 0000ch                ; b8 0c 00
-    call 016ach                               ; e8 e0 a6
-    mov dh, al                                ; 88 c6
-    test dl, 060h                             ; f6 c2 60
-    je near 0705bh                            ; 0f 84 86 00
-    test AL, strict byte 020h                 ; a8 20
-    je short 06fddh                           ; 74 04
-    sti                                       ; fb
-    int 04ah                                  ; cd 4a
-    cli                                       ; fa
-    test dh, 040h                             ; f6 c6 40
-    je near 0705bh                            ; 0f 84 77 00
-    mov dx, 000a0h                            ; ba a0 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 63 a6
-    test al, al                               ; 84 c0
-    je short 0705bh                           ; 74 6a
-    mov dx, 0009ch                            ; ba 9c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01688h                               ; e8 8e a6
-    test dx, dx                               ; 85 d2
-    jne short 07047h                          ; 75 49
-    cmp ax, 003d1h                            ; 3d d1 03
-    jnc short 07047h                          ; 73 44
-    mov dx, 00098h                            ; ba 98 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 60 a6
-    mov si, ax                                ; 89 c6
-    mov dx, 0009ah                            ; ba 9a 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 55 a6
-    mov cx, ax                                ; 89 c1
-    xor bx, bx                                ; 31 db
-    mov dx, 000a0h                            ; ba a0 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 3a a6
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    and AL, strict byte 037h                  ; 24 37
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 97 a6
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 01650h                               ; e8 17 a6
-    or AL, strict byte 080h                   ; 0c 80
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, cx                                ; 89 ca
-    mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 19 a6
-    jmp short 0705bh                          ; eb 14
-    mov bx, ax                                ; 89 c3
-    add bx, 0fc2fh                            ; 81 c3 2f fc
-    mov cx, dx                                ; 89 d1
-    adc cx, strict byte 0ffffh                ; 83 d1 ff
-    mov dx, 0009ch                            ; ba 9c 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0169ah                               ; e8 3f a6
-    call 0e030h                               ; e8 d2 6f
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    mov si, word [bx+si-04ch]                 ; 8b 70 b4
-    jo short 07042h                           ; 70 d9
-    jo short 07076h                           ; 70 0b
-    jno short 070c7h                          ; 71 5a
-    jno short 07001h                          ; 71 92
-    jno short 07046h                          ; 71 d5
-    jno short 0709fh                          ; 71 2c
-    db  072h
-_int1a_function:                             ; 0xf7074 LB 0x1c8
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    sti                                       ; fb
-    mov al, byte [bp+013h]                    ; 8a 46 13
-    cmp AL, strict byte 007h                  ; 3c 07
-    jnbe near 070b0h                          ; 0f 87 2f 00
-    movzx bx, al                              ; 0f b6 d8
-    add bx, bx                                ; 01 db
-    jmp word [cs:bx+07064h]                   ; 2e ff a7 64 70
-    cli                                       ; fa
-    mov bx, 0046eh                            ; bb 6e 04
-    xor ax, ax                                ; 31 c0
-    mov es, ax                                ; 8e c0
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov word [bp+010h], ax                    ; 89 46 10
-    mov bx, 0046ch                            ; bb 6c 04
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov word [bp+00eh], ax                    ; 89 46 0e
-    mov bx, 00470h                            ; bb 70 04
-    mov al, byte [es:bx]                      ; 26 8a 07
-    mov byte [bp+012h], al                    ; 88 46 12
-    mov byte [es:bx], 000h                    ; 26 c6 07 00
-    sti                                       ; fb
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    cli                                       ; fa
-    mov bx, 0046eh                            ; bb 6e 04
-    xor ax, ax                                ; 31 c0
-    mov es, ax                                ; 8e c0
-    mov ax, word [bp+010h]                    ; 8b 46 10
-    mov word [es:bx], ax                      ; 26 89 07
-    mov bx, 0046ch                            ; bb 6c 04
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    mov word [es:bx], ax                      ; 26 89 07
-    mov bx, 00470h                            ; bb 70 04
-    mov byte [es:bx], 000h                    ; 26 c6 07 00
-    sti                                       ; fb
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 070b0h                          ; eb d7
-    call 06f95h                               ; e8 b9 fe
-    test ax, ax                               ; 85 c0
-    je short 070e2h                           ; 74 02
-    jmp short 070b0h                          ; eb ce
-    xor ax, ax                                ; 31 c0
-    call 016ach                               ; e8 c5 a5
-    mov byte [bp+00fh], al                    ; 88 46 0f
-    mov ax, strict word 00002h                ; b8 02 00
-    call 016ach                               ; e8 bc a5
-    mov byte [bp+010h], al                    ; 88 46 10
-    mov ax, strict word 00004h                ; b8 04 00
-    call 016ach                               ; e8 b3 a5
-    mov bl, al                                ; 88 c3
-    mov byte [bp+011h], al                    ; 88 46 11
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 a8 a5
-    and AL, strict byte 001h                  ; 24 01
-    mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp short 07150h                          ; eb 45
-    call 06f95h                               ; e8 87 fe
-    test ax, ax                               ; 85 c0
-    je short 07115h                           ; 74 03
-    call 06f6dh                               ; e8 58 fe
-    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
-    xor ax, ax                                ; 31 c0
-    call 016c9h                               ; e8 ab a5
-    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
-    mov ax, strict word 00002h                ; b8 02 00
-    call 016c9h                               ; e8 a1 a5
-    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
-    mov ax, strict word 00004h                ; b8 04 00
-    call 016c9h                               ; e8 97 a5
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 74 a5
-    mov bl, al                                ; 88 c3
-    and bl, 060h                              ; 80 e3 60
-    or bl, 002h                               ; 80 cb 02
-    mov al, byte [bp+00eh]                    ; 8a 46 0e
-    and AL, strict byte 001h                  ; 24 01
-    or bl, al                                 ; 08 c3
-    movzx dx, bl                              ; 0f b6 d3
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 79 a5
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    mov byte [bp+012h], bl                    ; 88 5e 12
-    jmp near 070b0h                           ; e9 56 ff
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    call 06f95h                               ; e8 34 fe
-    test ax, ax                               ; 85 c0
-    je short 07168h                           ; 74 03
-    jmp near 070b0h                           ; e9 48 ff
-    mov ax, strict word 00009h                ; b8 09 00
-    call 016ach                               ; e8 3e a5
-    mov byte [bp+010h], al                    ; 88 46 10
-    mov ax, strict word 00008h                ; b8 08 00
-    call 016ach                               ; e8 35 a5
-    mov byte [bp+00fh], al                    ; 88 46 0f
-    mov ax, strict word 00007h                ; b8 07 00
-    call 016ach                               ; e8 2c a5
-    mov byte [bp+00eh], al                    ; 88 46 0e
-    mov ax, strict word 00032h                ; b8 32 00
-    call 016ach                               ; e8 23 a5
-    mov byte [bp+011h], al                    ; 88 46 11
-    mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 070b0h                           ; e9 1e ff
-    call 06f95h                               ; e8 00 fe
-    test ax, ax                               ; 85 c0
-    je short 0719fh                           ; 74 06
-    call 06f6dh                               ; e8 d1 fd
-    jmp near 070b0h                           ; e9 11 ff
-    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
-    mov ax, strict word 00009h                ; b8 09 00
-    call 016c9h                               ; e8 20 a5
-    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
-    mov ax, strict word 00008h                ; b8 08 00
-    call 016c9h                               ; e8 16 a5
-    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
-    mov ax, strict word 00007h                ; b8 07 00
-    call 016c9h                               ; e8 0c a5
-    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
-    mov ax, strict word 00032h                ; b8 32 00
-    call 016c9h                               ; e8 02 a5
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 df a4
-    mov bl, al                                ; 88 c3
-    and bl, 07fh                              ; 80 e3 7f
-    jmp near 07147h                           ; e9 72 ff
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 d1 a4
-    mov bl, al                                ; 88 c3
-    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
-    test AL, strict byte 020h                 ; a8 20
-    je short 071e9h                           ; 74 03
-    jmp near 070b0h                           ; e9 c7 fe
-    call 06f95h                               ; e8 a9 fd
-    test ax, ax                               ; 85 c0
-    je short 071f3h                           ; 74 03
-    call 06f6dh                               ; e8 7a fd
-    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
-    mov ax, strict word 00001h                ; b8 01 00
-    call 016c9h                               ; e8 cc a4
-    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
-    mov ax, strict word 00003h                ; b8 03 00
-    call 016c9h                               ; e8 c2 a4
-    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
-    mov ax, strict word 00005h                ; b8 05 00
-    call 016c9h                               ; e8 b8 a4
-    mov dx, 000a1h                            ; ba a1 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 0feh                  ; 24 fe
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    and AL, strict byte 05fh                  ; 24 5f
-    or AL, strict byte 020h                   ; 0c 20
-    movzx dx, al                              ; 0f b6 d0
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 a0 a4
-    jmp near 070b0h                           ; e9 84 fe
-    mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 7a a4
-    mov bl, al                                ; 88 c3
-    and AL, strict byte 057h                  ; 24 57
-    movzx dx, al                              ; 0f b6 d0
-    jmp near 0714ah                           ; e9 0e ff
-send_to_mouse_ctrl_:                         ; 0xf723c LB 0x34
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bl, al                                ; 88 c3
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 0725bh                           ; 74 0e
-    push 008eeh                               ; 68 ee 08
-    push 01168h                               ; 68 68 11
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 1a a7
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov AL, strict byte 0d4h                  ; b0 d4
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    xor al, bl                                ; 30 d8
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-get_mouse_data_:                             ; 0xf7270 LB 0x5c
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push ax                                   ; 50
-    mov bx, ax                                ; 89 c3
-    mov es, dx                                ; 8e c2
-    mov cx, 02710h                            ; b9 10 27
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and ax, strict word 00021h                ; 25 21 00
-    cmp ax, strict word 00021h                ; 3d 21 00
-    je short 072b2h                           ; 74 27
-    test cx, cx                               ; 85 c9
-    je short 072b2h                           ; 74 23
-    mov dx, strict word 00061h                ; ba 61 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 010h                  ; 24 10
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov dx, strict word 00061h                ; ba 61 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dx, ax                                ; 89 c2
-    xor dh, ah                                ; 30 e6
-    and dl, 010h                              ; 80 e2 10
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    cmp dx, ax                                ; 39 c2
-    je short 0729ah                           ; 74 eb
-    dec cx                                    ; 49
-    jmp short 0727dh                          ; eb cb
-    test cx, cx                               ; 85 c9
-    jne short 072bah                          ; 75 04
-    mov AL, strict byte 001h                  ; b0 01
-    jmp short 072c5h                          ; eb 0b
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [es:bx], al                      ; 26 88 07
-    xor al, al                                ; 30 c0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-set_kbd_command_byte_:                       ; 0xf72cc LB 0x32
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bl, al                                ; 88 c3
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 002h                 ; a8 02
-    je short 072ebh                           ; 74 0e
-    push 008f8h                               ; 68 f8 08
-    push 01168h                               ; 68 68 11
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 8a a6
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov AL, strict byte 060h                  ; b0 60
-    mov dx, strict word 00064h                ; ba 64 00
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    mov dx, strict word 00060h                ; ba 60 00
-    out DX, AL                                ; ee
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int74_function:                             ; 0xf72fe LB 0xca
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    sub sp, strict byte 00008h                ; 83 ec 08
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 5f a3
-    mov cx, ax                                ; 89 c1
-    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
-    mov dx, strict word 00064h                ; ba 64 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    and AL, strict byte 021h                  ; 24 21
-    cmp AL, strict byte 021h                  ; 3c 21
-    jne near 073b4h                           ; 0f 85 92 00
-    mov dx, strict word 00060h                ; ba 60 00
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov bl, al                                ; 88 c3
-    mov dx, strict word 00026h                ; ba 26 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 1e a3
-    mov byte [bp-006h], al                    ; 88 46 fa
-    mov dx, strict word 00027h                ; ba 27 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 13 a3
-    mov byte [bp-008h], al                    ; 88 46 f8
-    test AL, strict byte 080h                 ; a8 80
-    je short 073b4h                           ; 74 70
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    and AL, strict byte 007h                  ; 24 07
-    mov byte [bp-002h], al                    ; 88 46 fe
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    and AL, strict byte 007h                  ; 24 07
-    mov byte [bp-004h], al                    ; 88 46 fc
-    xor bh, bh                                ; 30 ff
-    movzx dx, al                              ; 0f b6 d0
-    add dx, strict byte 00028h                ; 83 c2 28
-    mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 fd a2
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    cmp al, byte [bp-002h]                    ; 3a 46 fe
-    jc short 073a5h                           ; 72 3c
-    mov dx, strict word 00028h                ; ba 28 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 df a2
-    xor ah, ah                                ; 30 e4
-    mov word [bp+00ch], ax                    ; 89 46 0c
-    mov dx, strict word 00029h                ; ba 29 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 d2 a2
-    xor ah, ah                                ; 30 e4
-    mov word [bp+00ah], ax                    ; 89 46 0a
-    mov dx, strict word 0002ah                ; ba 2a 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 c5 a2
-    xor ah, ah                                ; 30 e4
-    mov word [bp+008h], ax                    ; 89 46 08
-    xor al, al                                ; 30 c0
-    mov word [bp+006h], ax                    ; 89 46 06
-    mov byte [bp-006h], ah                    ; 88 66 fa
-    test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 073a8h                           ; 74 0a
-    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
-    jmp short 073a8h                          ; eb 03
-    inc byte [bp-006h]                        ; fe 46 fa
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    mov dx, strict word 00026h                ; ba 26 00
-    mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 aa a2
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    or AL, strict byte 074h                   ; 0c 74
-    db  082h, 074h, 005h, 075h
-    ; xor byte [si+005h], 075h                  ; 82 74 05 75
-    xchg si, ax                               ; 96
-    jne short 073c5h                          ; 75 04
-    jbe short 0741bh                          ; 76 58
-    je short 073f1h                           ; 74 2c
-    jbe short 073b8h                          ; 76 f1
-    db  076h
-_int15_function_mouse:                       ; 0xf73c8 LB 0x38b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 94 a2
-    mov cx, ax                                ; 89 c1
-    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
-    jbe short 073ebh                          ; 76 0b
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp near 0774dh                           ; e9 62 03
-    mov ax, strict word 00065h                ; b8 65 00
-    call 072cch                               ; e8 db fe
-    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
-    mov byte [bp+013h], 000h                  ; c6 46 13 00
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    cmp AL, strict byte 007h                  ; 3c 07
-    jnbe near 07734h                          ; 0f 87 32 03
-    movzx si, al                              ; 0f b6 f0
-    add si, si                                ; 01 f6
-    jmp word [cs:si+073b8h]                   ; 2e ff a4 b8 73
-    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
-    jnbe near 0773fh                          ; 0f 87 2b 03
-    mov dx, strict word 00027h                ; ba 27 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 34 a2
-    test AL, strict byte 080h                 ; a8 80
-    jne short 0742bh                          ; 75 0b
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 005h                  ; c6 46 13 05
-    jmp near 07747h                           ; e9 1c 03
-    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
-    db  00fh, 094h, 0c0h
-    ; sete al                                   ; 0f 94 c0
-    add AL, strict byte 0f4h                  ; 04 f4
-    xor ah, ah                                ; 30 e4
-    call 0723ch                               ; e8 03 fe
-    test al, al                               ; 84 c0
-    jne near 076cdh                           ; 0f 85 8e 02
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 29 fe
-    test al, al                               ; 84 c0
-    je near 07747h                            ; 0f 84 fa 02
-    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    jne near 076cdh                           ; 0f 85 78 02
-    jmp near 07747h                           ; e9 ef 02
-    mov al, byte [bp+00dh]                    ; 8a 46 0d
-    cmp AL, strict byte 001h                  ; 3c 01
-    jc short 07463h                           ; 72 04
-    cmp AL, strict byte 008h                  ; 3c 08
-    jbe short 07466h                          ; 76 03
-    jmp near 075f9h                           ; e9 93 01
-    mov dx, strict word 00027h                ; ba 27 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 e2 a1
-    mov ah, byte [bp+00dh]                    ; 8a 66 0d
-    db  0feh, 0cch
-    ; dec ah                                    ; fe cc
-    and AL, strict byte 0f8h                  ; 24 f8
-    or al, ah                                 ; 08 e0
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00027h                ; ba 27 00
-    mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 dc a1
-    mov dx, strict word 00026h                ; ba 26 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 c6 a1
-    and AL, strict byte 0f8h                  ; 24 f8
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00026h                ; ba 26 00
-    mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 c7 a1
-    mov ax, 000ffh                            ; b8 ff 00
-    call 0723ch                               ; e8 9f fd
-    test al, al                               ; 84 c0
-    jne near 076cdh                           ; 0f 85 2a 02
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-004h]                         ; 8d 46 fc
-    call 07270h                               ; e8 c5 fd
-    mov cl, al                                ; 88 c1
-    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
-    jne short 074beh                          ; 75 0b
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 004h                  ; c6 46 13 04
-    jmp near 07747h                           ; e9 89 02
-    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
-    je short 074d4h                           ; 74 10
-    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
-    push ax                                   ; 50
-    push 00903h                               ; 68 03 09
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 a1 a4
-    add sp, strict byte 00006h                ; 83 c4 06
-    test cl, cl                               ; 84 c9
-    jne near 076cdh                           ; 0f 85 f3 01
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 8e fd
-    test al, al                               ; 84 c0
-    jne near 076cdh                           ; 0f 85 e5 01
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07270h                               ; e8 80 fd
-    test al, al                               ; 84 c0
-    jne near 076cdh                           ; 0f 85 d7 01
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov byte [bp+00ch], al                    ; 88 46 0c
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov byte [bp+00dh], al                    ; 88 46 0d
-    jmp near 07747h                           ; e9 42 02
-    mov al, byte [bp+00dh]                    ; 8a 46 0d
-    cmp AL, strict byte 003h                  ; 3c 03
-    jc short 0751ch                           ; 72 10
-    jbe short 0753ah                          ; 76 2c
-    cmp AL, strict byte 006h                  ; 3c 06
-    je short 0754ch                           ; 74 3a
-    cmp AL, strict byte 005h                  ; 3c 05
-    je short 07546h                           ; 74 30
-    cmp AL, strict byte 004h                  ; 3c 04
-    je short 07540h                           ; 74 26
-    jmp short 07552h                          ; eb 36
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 07534h                           ; 74 14
-    cmp AL, strict byte 001h                  ; 3c 01
-    je short 0752eh                           ; 74 0a
-    test al, al                               ; 84 c0
-    jne short 07552h                          ; 75 2a
-    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
-    jmp short 07556h                          ; eb 28
-    mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 07556h                          ; eb 22
-    mov byte [bp-008h], 028h                  ; c6 46 f8 28
-    jmp short 07556h                          ; eb 1c
-    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
-    jmp short 07556h                          ; eb 16
-    mov byte [bp-008h], 050h                  ; c6 46 f8 50
-    jmp short 07556h                          ; eb 10
-    mov byte [bp-008h], 064h                  ; c6 46 f8 64
-    jmp short 07556h                          ; eb 0a
-    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
-    jmp short 07556h                          ; eb 04
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jbe short 0758bh                          ; 76 2f
-    mov ax, 000f3h                            ; b8 f3 00
-    call 0723ch                               ; e8 da fc
-    test al, al                               ; 84 c0
-    jne short 07580h                          ; 75 1a
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07270h                               ; e8 02 fd
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 0723ch                               ; e8 c7 fc
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07270h                               ; e8 f3 fc
-    jmp near 07747h                           ; e9 c7 01
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07747h                           ; e9 bc 01
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 07747h                           ; e9 b1 01
-    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
-    jnc short 075f9h                          ; 73 5d
-    mov ax, 000e8h                            ; b8 e8 00
-    call 0723ch                               ; e8 9a fc
-    test al, al                               ; 84 c0
-    jne short 075eeh                          ; 75 48
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 c2 fc
-    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 075c4h                           ; 74 10
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 0092eh                               ; 68 2e 09
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 b1 a3
-    add sp, strict byte 00006h                ; 83 c4 06
-    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
-    call 0723ch                               ; e8 71 fc
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 9d fc
-    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je near 07747h                            ; 0f 84 6c 01
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 0092eh                               ; 68 2e 09
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 8a a3
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 07747h                           ; e9 59 01
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07747h                           ; e9 4e 01
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 07747h                           ; e9 43 01
-    mov ax, 000f2h                            ; b8 f2 00
-    call 0723ch                               ; e8 32 fc
-    test al, al                               ; 84 c0
-    jne short 07621h                          ; 75 13
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 5a fc
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07270h                               ; e8 52 fc
-    jmp near 074fch                           ; e9 db fe
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07747h                           ; e9 1b 01
-    mov al, byte [bp+00dh]                    ; 8a 46 0d
-    test al, al                               ; 84 c0
-    jbe short 0763ah                          ; 76 07
-    cmp AL, strict byte 002h                  ; 3c 02
-    jbe short 076a3h                          ; 76 6c
-    jmp near 076d7h                           ; e9 9d 00
-    mov ax, 000e9h                            ; b8 e9 00
-    call 0723ch                               ; e8 fc fb
-    test al, al                               ; 84 c0
-    jne near 076cdh                           ; 0f 85 87 00
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 22 fc
-    mov cl, al                                ; 88 c1
-    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 07666h                           ; 74 10
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 0092eh                               ; 68 2e 09
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 0f a3
-    add sp, strict byte 00006h                ; 83 c4 06
-    test cl, cl                               ; 84 c9
-    jne short 076cdh                          ; 75 63
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 fe fb
-    test al, al                               ; 84 c0
-    jne short 076cdh                          ; 75 57
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07270h                               ; e8 f2 fb
-    test al, al                               ; 84 c0
-    jne short 076cdh                          ; 75 4b
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-004h]                         ; 8d 46 fc
-    call 07270h                               ; e8 e6 fb
-    test al, al                               ; 84 c0
-    jne short 076cdh                          ; 75 3f
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov byte [bp+00ch], al                    ; 88 46 0c
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov byte [bp+010h], al                    ; 88 46 10
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp near 07747h                           ; e9 a4 00
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 076ach                          ; 75 05
-    mov ax, 000e6h                            ; b8 e6 00
-    jmp short 076afh                          ; eb 03
-    mov ax, 000e7h                            ; b8 e7 00
-    call 0723ch                               ; e8 8a fb
-    mov cl, al                                ; 88 c1
-    test cl, cl                               ; 84 c9
-    jne short 076c7h                          ; 75 0f
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07270h                               ; e8 b0 fb
-    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    db  00fh, 095h, 0c1h
-    ; setne cl                                  ; 0f 95 c1
-    test cl, cl                               ; 84 c9
-    je near 07747h                            ; 0f 84 7a 00
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 07747h                          ; eb 70
-    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
-    push ax                                   ; 50
-    push 0095ah                               ; 68 5a 09
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 8e a2
-    add sp, strict byte 00006h                ; 83 c4 06
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp short 07747h                          ; eb 56
-    mov si, word [bp+00ch]                    ; 8b 76 0c
-    mov bx, si                                ; 89 f3
-    mov dx, strict word 00022h                ; ba 22 00
-    mov ax, cx                                ; 89 c8
-    call 0167ah                               ; e8 7c 9f
-    mov bx, word [bp+014h]                    ; 8b 5e 14
-    mov dx, strict word 00024h                ; ba 24 00
-    mov ax, cx                                ; 89 c8
-    call 0167ah                               ; e8 71 9f
-    mov dx, strict word 00027h                ; ba 27 00
-    mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 3f 9f
-    mov ah, al                                ; 88 c4
-    test si, si                               ; 85 f6
-    jne short 07725h                          ; 75 0e
-    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
-    jne short 07725h                          ; 75 08
-    test AL, strict byte 080h                 ; a8 80
-    je short 07727h                           ; 74 06
-    and AL, strict byte 07fh                  ; 24 7f
-    jmp short 07727h                          ; eb 02
-    or AL, strict byte 080h                   ; 0c 80
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00027h                ; ba 27 00
-    mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 2c 9f
-    jmp short 07747h                          ; eb 13
-    push 00974h                               ; 68 74 09
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 36 a2
-    add sp, strict byte 00004h                ; 83 c4 04
-    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
-    mov byte [bp+013h], 001h                  ; c6 46 13 01
-    mov ax, strict word 00047h                ; b8 47 00
-    call 072cch                               ; e8 7f fb
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_int17_function:                             ; 0xf7753 LB 0xb3
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push ax                                   ; 50
-    sti                                       ; fb
-    mov dx, word [bp+00eh]                    ; 8b 56 0e
-    add dx, dx                                ; 01 d2
-    add dx, strict byte 00008h                ; 83 c2 08
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 05 9f
-    mov bx, ax                                ; 89 c3
-    mov si, ax                                ; 89 c6
-    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
-    jnc near 077fch                           ; 0f 83 89 00
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    cmp ax, strict word 00003h                ; 3d 03 00
-    jnc near 077fch                           ; 0f 83 7f 00
-    test bx, bx                               ; 85 db
-    jbe near 077fch                           ; 0f 86 79 00
-    mov dx, ax                                ; 89 c2
-    add dx, strict byte 00078h                ; 83 c2 78
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c2 9e
-    movzx cx, al                              ; 0f b6 c8
-    sal cx, 008h                              ; c1 e1 08
-    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
-    jne short 077c7h                          ; 75 2d
-    mov al, byte [bp+012h]                    ; 8a 46 12
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    lea dx, [bx+002h]                         ; 8d 57 02
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-004h], ax                    ; 89 46 fc
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    or AL, strict byte 001h                   ; 0c 01
-    out DX, AL                                ; ee
-    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
-    and AL, strict byte 0feh                  ; 24 fe
-    out DX, AL                                ; ee
-    lea dx, [si+001h]                         ; 8d 54 01
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 040h                 ; a8 40
-    je short 077c7h                           ; 74 07
-    test cx, cx                               ; 85 c9
-    je short 077c7h                           ; 74 03
-    dec cx                                    ; 49
-    jmp short 077b6h                          ; eb ef
-    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
-    jne short 077e3h                          ; 75 16
-    lea dx, [si+002h]                         ; 8d 54 02
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov word [bp-004h], ax                    ; 89 46 fc
-    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
-    and AL, strict byte 0fbh                  ; 24 fb
-    out DX, AL                                ; ee
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    or AL, strict byte 004h                   ; 0c 04
-    out DX, AL                                ; ee
-    lea dx, [si+001h]                         ; 8d 54 01
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    xor AL, strict byte 048h                  ; 34 48
-    mov byte [bp+013h], al                    ; 88 46 13
-    test cx, cx                               ; 85 c9
-    jne short 077f6h                          ; 75 04
-    or byte [bp+013h], 001h                   ; 80 4e 13 01
-    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 07800h                          ; eb 04
-    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-wait_:                                       ; 0xf7806 LB 0xb2
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ah                ; 83 ec 0a
-    mov si, ax                                ; 89 c6
-    mov byte [bp-00ch], dl                    ; 88 56 f4
-    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
-    pushfw                                    ; 9c
-    pop ax                                    ; 58
-    mov word [bp-010h], ax                    ; 89 46 f0
-    sti                                       ; fb
-    xor cx, cx                                ; 31 c9
-    mov dx, 0046ch                            ; ba 6c 04
-    xor ax, ax                                ; 31 c0
-    call 01688h                               ; e8 5f 9e
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov bx, dx                                ; 89 d3
-    hlt                                       ; f4
-    mov dx, 0046ch                            ; ba 6c 04
-    xor ax, ax                                ; 31 c0
-    call 01688h                               ; e8 51 9e
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov di, dx                                ; 89 d7
-    cmp dx, bx                                ; 39 da
-    jnbe short 07847h                         ; 77 07
-    jne short 0784eh                          ; 75 0c
-    cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jbe short 0784eh                          ; 76 07
-    sub ax, word [bp-00eh]                    ; 2b 46 f2
-    sbb dx, bx                                ; 19 da
-    jmp short 07859h                          ; eb 0b
-    cmp dx, bx                                ; 39 da
-    jc short 07859h                           ; 72 07
-    jne short 0785dh                          ; 75 09
-    cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jnc short 0785dh                          ; 73 04
-    sub si, ax                                ; 29 c6
-    sbb cx, dx                                ; 19 d1
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov bx, di                                ; 89 fb
-    mov ax, 00100h                            ; b8 00 01
-    int 016h                                  ; cd 16
-    je near 07873h                            ; 0f 84 05 00
-    mov AL, strict byte 001h                  ; b0 01
-    jmp near 07875h                           ; e9 02 00
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    test al, al                               ; 84 c0
-    je short 0789dh                           ; 74 24
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    int 016h                                  ; cd 16
-    xchg ah, al                               ; 86 c4
-    mov dl, al                                ; 88 c2
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    movzx ax, dl                              ; 0f b6 c2
-    push ax                                   ; 50
-    push 00996h                               ; 68 96 09
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e2 a0
-    add sp, strict byte 00006h                ; 83 c4 06
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 0789dh                           ; 74 04
-    mov al, dl                                ; 88 d0
-    jmp short 078afh                          ; eb 12
-    test cx, cx                               ; 85 c9
-    jnle short 0782eh                         ; 7f 8d
-    jne short 078a7h                          ; 75 04
-    test si, si                               ; 85 f6
-    jnbe short 0782eh                         ; 77 87
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    push ax                                   ; 50
-    popfw                                     ; 9d
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-read_logo_byte_:                             ; 0xf78b8 LB 0x16
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov dx, 003b8h                            ; ba b8 03
-    out DX, ax                                ; ef
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-read_logo_word_:                             ; 0xf78ce LB 0x14
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push dx                                   ; 52
-    xor ah, ah                                ; 30 e4
-    or ah, 001h                               ; 80 cc 01
-    mov dx, 003b8h                            ; ba b8 03
-    out DX, ax                                ; ef
-    in ax, DX                                 ; ed
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop dx                                    ; 5a
-    pop bp                                    ; 5d
-    retn                                      ; c3
-print_detected_harddisks_:                   ; 0xf78e2 LB 0x130
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 77 9d
-    mov si, ax                                ; 89 c6
-    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    xor cl, cl                                ; 30 c9
-    xor ch, ch                                ; 30 ed
-    mov dx, 00304h                            ; ba 04 03
-    call 01650h                               ; e8 4b 9d
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    xor bl, bl                                ; 30 db
-    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
-    jnc near 079e4h                           ; 0f 83 d3 00
-    movzx dx, bl                              ; 0f b6 d3
-    add dx, 00305h                            ; 81 c2 05 03
-    mov ax, si                                ; 89 f0
-    call 01650h                               ; e8 33 9d
-    mov bh, al                                ; 88 c7
-    cmp AL, strict byte 00ch                  ; 3c 0c
-    jc short 07947h                           ; 72 24
-    test cl, cl                               ; 84 c9
-    jne short 07934h                          ; 75 0d
-    push 009a7h                               ; 68 a7 09
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 43 a0
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov CL, strict byte 001h                  ; b1 01
-    movzx ax, bl                              ; 0f b6 c3
-    inc ax                                    ; 40
-    push ax                                   ; 50
-    push 009bch                               ; 68 bc 09
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 31 a0
-    add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 079dfh                           ; e9 98 00
-    cmp AL, strict byte 008h                  ; 3c 08
-    jc short 0795eh                           ; 72 13
-    test ch, ch                               ; 84 ed
-    jne short 0795ch                          ; 75 0d
-    push 009cfh                               ; 68 cf 09
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 1b a0
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov CH, strict byte 001h                  ; b5 01
-    jmp short 07934h                          ; eb d6
-    cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 07979h                          ; 73 17
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07979h                          ; 75 11
-    push 009e4h                               ; 68 e4 09
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 02 a0
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 0798fh                          ; eb 16
-    cmp bh, 004h                              ; 80 ff 04
-    jc short 0798fh                           ; 72 11
-    test cl, cl                               ; 84 c9
-    jne short 0798fh                          ; 75 0d
-    push 009f6h                               ; 68 f6 09
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 e8 9f
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov CL, strict byte 001h                  ; b1 01
-    movzx ax, bl                              ; 0f b6 c3
-    inc ax                                    ; 40
-    push ax                                   ; 50
-    push 00a0ah                               ; 68 0a 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 d6 9f
-    add sp, strict byte 00006h                ; 83 c4 06
-    cmp bh, 004h                              ; 80 ff 04
-    jc short 079a7h                           ; 72 03
-    sub bh, 004h                              ; 80 ef 04
-    movzx ax, bh                              ; 0f b6 c7
-    cwd                                       ; 99
-    db  02bh, 0c2h
-    ; sub ax, dx                                ; 2b c2
-    sar ax, 1                                 ; d1 f8
-    test ax, ax                               ; 85 c0
-    je short 079b8h                           ; 74 05
-    push 00a14h                               ; 68 14 0a
-    jmp short 079bbh                          ; eb 03
-    push 00a1fh                               ; 68 1f 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 b2 9f
-    add sp, strict byte 00004h                ; 83 c4 04
-    movzx ax, bh                              ; 0f b6 c7
-    mov di, strict word 00002h                ; bf 02 00
-    cwd                                       ; 99
-    idiv di                                   ; f7 ff
-    test dx, dx                               ; 85 d2
-    je short 079d5h                           ; 74 05
-    push 00a28h                               ; 68 28 0a
-    jmp short 079d8h                          ; eb 03
-    push 00a2eh                               ; 68 2e 0a
-    push di                                   ; 57
-    call 01972h                               ; e8 96 9f
-    add sp, strict byte 00004h                ; 83 c4 04
-    db  0feh, 0c3h
-    ; inc bl                                    ; fe c3
-    jmp near 0790ah                           ; e9 26 ff
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 079fdh                          ; 75 13
-    test cl, cl                               ; 84 c9
-    jne short 079fdh                          ; 75 0f
-    test ch, ch                               ; 84 ed
-    jne short 079fdh                          ; 75 0b
-    push 00a35h                               ; 68 35 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 78 9f
-    add sp, strict byte 00004h                ; 83 c4 04
-    push 00a49h                               ; 68 49 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 6d 9f
-    add sp, strict byte 00004h                ; 83 c4 04
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-get_boot_drive_:                             ; 0xf7a12 LB 0x28
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov bl, al                                ; 88 c3
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 4a 9c
-    mov dx, 00304h                            ; ba 04 03
-    call 01650h                               ; e8 28 9c
-    sub bl, 002h                              ; 80 eb 02
-    cmp bl, al                                ; 38 c3
-    jc short 07a31h                           ; 72 02
-    mov BL, strict byte 0ffh                  ; b3 ff
-    mov al, bl                                ; 88 d8
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-show_logo_:                                  ; 0xf7a3a LB 0x224
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ch                ; 83 ec 0c
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 1e 9c
-    mov si, ax                                ; 89 c6
-    xor cl, cl                                ; 30 c9
-    xor dx, dx                                ; 31 d2
-    mov AL, strict byte 034h                  ; b0 34
-    out strict byte 043h, AL                  ; e6 43
-    mov AL, strict byte 0d3h                  ; b0 d3
-    out strict byte 040h, AL                  ; e6 40
-    mov AL, strict byte 048h                  ; b0 48
-    out strict byte 040h, AL                  ; e6 40
-    movzx ax, dl                              ; 0f b6 c2
-    call 078ceh                               ; e8 68 fe
-    cmp ax, 066bbh                            ; 3d bb 66
-    jne near 07b3eh                           ; 0f 85 d1 00
-    push SS                                   ; 16
-    pop ES                                    ; 07
-    lea di, [bp-016h]                         ; 8d 7e ea
-    mov ax, 04f03h                            ; b8 03 4f
-    int 010h                                  ; cd 10
-    mov word [es:di], bx                      ; 26 89 1d
-    cmp ax, strict word 0004fh                ; 3d 4f 00
-    jne near 07b3eh                           ; 0f 85 bd 00
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 004h                  ; 04 04
-    xor ah, ah                                ; 30 e4
-    call 078b8h                               ; e8 2e fe
-    mov ch, al                                ; 88 c5
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 005h                  ; 04 05
-    xor ah, ah                                ; 30 e4
-    call 078b8h                               ; e8 20 fe
-    mov dh, al                                ; 88 c6
-    mov byte [bp-010h], al                    ; 88 46 f0
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 002h                  ; 04 02
-    xor ah, ah                                ; 30 e4
-    call 078ceh                               ; e8 28 fe
-    mov bx, ax                                ; 89 c3
-    mov word [bp-014h], ax                    ; 89 46 ec
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 006h                  ; 04 06
-    xor ah, ah                                ; 30 e4
-    call 078b8h                               ; e8 04 fe
-    mov byte [bp-012h], al                    ; 88 46 ee
-    test ch, ch                               ; 84 ed
-    jne short 07ac5h                          ; 75 0a
-    test dh, dh                               ; 84 f6
-    jne short 07ac5h                          ; 75 06
-    test bx, bx                               ; 85 db
-    je near 07b3eh                            ; 0f 84 79 00
-    mov bx, 00142h                            ; bb 42 01
-    mov ax, 04f02h                            ; b8 02 4f
-    int 010h                                  ; cd 10
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07af6h                           ; 74 23
-    xor bx, bx                                ; 31 db
-    jmp short 07addh                          ; eb 06
-    inc bx                                    ; 43
-    cmp bx, strict byte 00010h                ; 83 fb 10
-    jnbe short 07afdh                         ; 77 20
-    mov ax, bx                                ; 89 d8
-    or ah, 002h                               ; 80 cc 02
-    mov dx, 003b8h                            ; ba b8 03
-    out DX, ax                                ; ef
-    xor dx, dx                                ; 31 d2
-    mov ax, strict word 00001h                ; b8 01 00
-    call 07806h                               ; e8 18 fd
-    cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07ad7h                          ; 75 e5
-    mov CL, strict byte 001h                  ; b1 01
-    jmp short 07afdh                          ; eb 07
-    mov ax, 00210h                            ; b8 10 02
-    mov dx, 003b8h                            ; ba b8 03
-    out DX, ax                                ; ef
-    test cl, cl                               ; 84 c9
-    jne short 07b13h                          ; 75 12
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    shr ax, 004h                              ; c1 e8 04
-    mov dx, strict word 00001h                ; ba 01 00
-    call 07806h                               ; e8 f9 fc
-    cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07b13h                          ; 75 02
-    mov CL, strict byte 001h                  ; b1 01
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 07b3eh                           ; 74 25
-    test cl, cl                               ; 84 c9
-    jne short 07b3eh                          ; 75 21
-    mov bx, strict word 00010h                ; bb 10 00
-    jmp short 07b27h                          ; eb 05
-    dec bx                                    ; 4b
-    test bx, bx                               ; 85 db
-    jbe short 07b3eh                          ; 76 17
-    mov ax, bx                                ; 89 d8
-    or ah, 002h                               ; 80 cc 02
-    mov dx, 003b8h                            ; ba b8 03
-    out DX, ax                                ; ef
-    xor dx, dx                                ; 31 d2
-    mov ax, strict word 00001h                ; b8 01 00
-    call 07806h                               ; e8 ce fc
-    cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07b22h                          ; 75 e6
-    mov CL, strict byte 001h                  ; b1 01
-    xor bx, bx                                ; 31 db
-    mov dx, 0037dh                            ; ba 7d 03
-    mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 16 9b
-    mov AL, strict byte 003h                  ; b0 03
-    mov AH, strict byte 000h                  ; b4 00
-    int 010h                                  ; cd 10
-    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    je near 07c3fh                            ; 0f 84 e9 00
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07b8ch                          ; 75 30
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 07b8ch                          ; 75 2a
-    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
-    jne short 07b8ch                          ; 75 24
-    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
-    jne short 07b79h                          ; 75 0b
-    push 00a4bh                               ; 68 4b 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 fc 9d
-    add sp, strict byte 00004h                ; 83 c4 04
-    test cl, cl                               ; 84 c9
-    jne short 07b8ch                          ; 75 0f
-    mov dx, strict word 00001h                ; ba 01 00
-    mov ax, 000c0h                            ; b8 c0 00
-    call 07806h                               ; e8 80 fc
-    cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07b8ch                          ; 75 02
-    mov CL, strict byte 001h                  ; b1 01
-    test cl, cl                               ; 84 c9
-    je near 07c3fh                            ; 0f 84 ad 00
-    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    mov ax, 00100h                            ; b8 00 01
-    mov cx, 01000h                            ; b9 00 10
-    int 010h                                  ; cd 10
-    mov ax, 00700h                            ; b8 00 07
-    mov BH, strict byte 007h                  ; b7 07
-    db  033h, 0c9h
-    ; xor cx, cx                                ; 33 c9
-    mov dx, 0184fh                            ; ba 4f 18
-    int 010h                                  ; cd 10
-    mov ax, 00200h                            ; b8 00 02
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    db  033h, 0d2h
-    ; xor dx, dx                                ; 33 d2
-    int 010h                                  ; cd 10
-    push 00a6dh                               ; 68 6d 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 b7 9d
-    add sp, strict byte 00004h                ; 83 c4 04
-    call 078e2h                               ; e8 21 fd
-    push 00ab1h                               ; 68 b1 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 a9 9d
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov dx, strict word 00001h                ; ba 01 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 07806h                               ; e8 31 fc
-    mov bl, al                                ; 88 c3
-    test al, al                               ; 84 c0
-    je short 07bcch                           ; 74 f1
-    cmp AL, strict byte 030h                  ; 3c 30
-    je short 07c2dh                           ; 74 4e
-    cmp bl, 002h                              ; 80 fb 02
-    jc short 07c06h                           ; 72 22
-    cmp bl, 009h                              ; 80 fb 09
-    jnbe short 07c06h                         ; 77 1d
-    movzx ax, bl                              ; 0f b6 c3
-    call 07a12h                               ; e8 23 fe
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 07bf5h                          ; 75 02
-    jmp short 07bcch                          ; eb d7
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, 0037ch                            ; ba 7c 03
-    mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 5e 9a
-    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
-    jmp short 07c2dh                          ; eb 27
-    cmp bl, 02eh                              ; 80 fb 2e
-    je short 07c1bh                           ; 74 10
-    cmp bl, 026h                              ; 80 fb 26
-    je short 07c21h                           ; 74 11
-    cmp bl, 021h                              ; 80 fb 21
-    jne short 07c27h                          ; 75 12
-    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07c2dh                          ; eb 12
-    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
-    jmp short 07c2dh                          ; eb 0c
-    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
-    jmp short 07c2dh                          ; eb 06
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07bcch                           ; 74 9f
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    mov dx, 0037dh                            ; ba 7d 03
-    mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 25 9a
-    mov AL, strict byte 003h                  ; b0 03
-    mov AH, strict byte 000h                  ; b4 00
-    int 010h                                  ; cd 10
-    mov AL, strict byte 034h                  ; b0 34
-    out strict byte 043h, AL                  ; e6 43
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    out strict byte 040h, AL                  ; e6 40
-    out strict byte 040h, AL                  ; e6 40
-    pushad                                    ; 66 60
-    push DS                                   ; 1e
-    mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 6e 71
-    pop DS                                    ; 1f
-    popad                                     ; 66 61
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-delay_boot_:                                 ; 0xf7c5e LB 0x67
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push dx                                   ; 52
-    mov dx, ax                                ; 89 c2
-    test ax, ax                               ; 85 c0
-    je short 07cbeh                           ; 74 55
-    mov AL, strict byte 034h                  ; b0 34
-    out strict byte 043h, AL                  ; e6 43
-    mov AL, strict byte 0d3h                  ; b0 d3
-    out strict byte 040h, AL                  ; e6 40
-    mov AL, strict byte 048h                  ; b0 48
-    out strict byte 040h, AL                  ; e6 40
-    push dx                                   ; 52
-    push 00afbh                               ; 68 fb 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 f4 9c
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, dx                                ; 89 d3
-    test bx, bx                               ; 85 db
-    jbe short 07c9eh                          ; 76 17
-    push bx                                   ; 53
-    push 00b19h                               ; 68 19 0b
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 e2 9c
-    add sp, strict byte 00006h                ; 83 c4 06
-    xor dx, dx                                ; 31 d2
-    mov ax, strict word 00040h                ; b8 40 00
-    call 07806h                               ; e8 6b fb
-    dec bx                                    ; 4b
-    jmp short 07c83h                          ; eb e5
-    push 00a49h                               ; 68 49 0a
-    push strict byte 00002h                   ; 6a 02
-    call 01972h                               ; e8 cc 9c
-    add sp, strict byte 00004h                ; 83 c4 04
-    mov AL, strict byte 034h                  ; b0 34
-    out strict byte 043h, AL                  ; e6 43
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    out strict byte 040h, AL                  ; e6 40
-    out strict byte 040h, AL                  ; e6 40
-    pushad                                    ; 66 60
-    push DS                                   ; 1e
-    mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 04 71
-    pop DS                                    ; 1f
-    popad                                     ; 66 61
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop dx                                    ; 5a
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-scsi_cmd_data_in_:                           ; 0xf7cc5 LB 0xd5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov si, ax                                ; 89 c6
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov word [bp-008h], cx                    ; 89 4e f8
-    mov bx, word [bp+00ah]                    ; 8b 5e 0a
-    mov dx, si                                ; 89 f2
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 07cdbh                          ; 75 f7
-    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
-    jne short 07ceeh                          ; 75 04
-    xor ax, ax                                ; 31 c0
-    jmp short 07cf2h                          ; eb 04
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    mov di, ax                                ; 89 c7
-    mov ax, bx                                ; 89 d8
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    mov cx, strict word 0000ch                ; b9 0c 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 07cfch                               ; e2 fa
-    mov cx, ax                                ; 89 c1
-    and cx, 000f0h                            ; 81 e1 f0 00
-    or cx, di                                 ; 09 f9
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    mov cx, strict word 00008h                ; b9 08 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 07d21h                               ; e2 fa
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    xor cx, cx                                ; 31 c9
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp cx, ax                                ; 39 c1
-    jnc short 07d42h                          ; 73 0e
-    les di, [bp-00ah]                         ; c4 7e f6
-    add di, cx                                ; 01 cf
-    mov al, byte [es:di]                      ; 26 8a 05
-    mov dx, si                                ; 89 f2
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    jmp short 07d2ch                          ; eb ea
-    mov dx, si                                ; 89 f2
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 07d42h                          ; 75 f7
-    test AL, strict byte 002h                 ; a8 02
-    je short 07d5dh                           ; 74 0e
-    lea dx, [si+003h]                         ; 8d 54 03
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov di, strict word 00004h                ; bf 04 00
-    jmp short 07d8fh                          ; eb 32
-    lea dx, [si+001h]                         ; 8d 54 01
-    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07d6ch                          ; 75 06
-    cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07d86h                          ; 76 1a
-    mov cx, 08000h                            ; b9 00 80
-    les di, [bp+006h]                         ; c4 7e 06
-    rep insb                                  ; f3 6c
-    add bx, 08000h                            ; 81 c3 00 80
-    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
-    mov ax, es                                ; 8c c0
-    add ax, 00800h                            ; 05 00 08
-    mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07d5dh                          ; eb d7
-    mov cx, bx                                ; 89 d9
-    les di, [bp+006h]                         ; c4 7e 06
-    rep insb                                  ; f3 6c
-    xor di, di                                ; 31 ff
-    mov ax, di                                ; 89 f8
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 0000ah                               ; c2 0a 00
-scsi_cmd_data_out_:                          ; 0xf7d9a LB 0xd5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov di, ax                                ; 89 c7
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov word [bp-00ah], bx                    ; 89 5e f6
-    mov word [bp-008h], cx                    ; 89 4e f8
-    mov bx, word [bp+00ah]                    ; 8b 5e 0a
-    mov dx, di                                ; 89 fa
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 07db0h                          ; 75 f7
-    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
-    jne short 07dc3h                          ; 75 04
-    xor ax, ax                                ; 31 c0
-    jmp short 07dc7h                          ; eb 04
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    mov si, ax                                ; 89 c6
-    mov ax, bx                                ; 89 d8
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    mov cx, strict word 0000ch                ; b9 0c 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 07dd1h                               ; e2 fa
-    mov cx, ax                                ; 89 c1
-    and cx, 000f0h                            ; 81 e1 f0 00
-    or cx, si                                 ; 09 f1
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 001h                  ; b0 01
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    out DX, AL                                ; ee
-    mov al, bl                                ; 88 d8
-    out DX, AL                                ; ee
-    mov ax, bx                                ; 89 d8
-    mov dx, word [bp+00ch]                    ; 8b 56 0c
-    mov cx, strict word 00008h                ; b9 08 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 07df6h                               ; e2 fa
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    xor cx, cx                                ; 31 c9
-    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
-    cmp cx, ax                                ; 39 c1
-    jnc short 07e17h                          ; 73 0e
-    les si, [bp-00ah]                         ; c4 76 f6
-    add si, cx                                ; 01 ce
-    mov al, byte [es:si]                      ; 26 8a 04
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    jmp short 07e01h                          ; eb ea
-    lea dx, [di+001h]                         ; 8d 55 01
-    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07e26h                          ; 75 06
-    cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07e41h                          ; 76 1b
-    mov cx, 08000h                            ; b9 00 80
-    les si, [bp+006h]                         ; c4 76 06
-    db  0f3h, 026h, 06eh
-    ; rep es outsb                              ; f3 26 6e
-    add bx, 08000h                            ; 81 c3 00 80
-    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
-    mov ax, es                                ; 8c c0
-    add ax, 00800h                            ; 05 00 08
-    mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07e17h                          ; eb d6
-    mov cx, bx                                ; 89 d9
-    les si, [bp+006h]                         ; c4 76 06
-    db  0f3h, 026h, 06eh
-    ; rep es outsb                              ; f3 26 6e
-    mov dx, di                                ; 89 fa
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 07e49h                          ; 75 f7
-    test AL, strict byte 002h                 ; a8 02
-    je short 07e64h                           ; 74 0e
-    lea dx, [di+003h]                         ; 8d 55 03
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov ax, strict word 00004h                ; b8 04 00
-    jmp short 07e66h                          ; eb 02
-    xor ax, ax                                ; 31 c0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 0000ah                               ; c2 0a 00
-@scsi_read_sectors:                          ; 0xf7e6f LB 0xdb
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00016h                ; 83 ec 16
-    mov si, word [bp+004h]                    ; 8b 76 04
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
-    sub AL, strict byte 008h                  ; 2c 08
-    mov byte [bp-006h], al                    ; 88 46 fa
-    cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 07e9dh                          ; 76 13
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    push ax                                   ; 50
-    push 00b1eh                               ; 68 1e 0b
-    push 00b30h                               ; 68 30 0b
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 d8 9a
-    add sp, strict byte 00008h                ; 83 c4 08
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
-    mov word [bp-01ah], 00088h                ; c7 46 e6 88 00
-    mov ax, word [es:si+006h]                 ; 26 8b 44 06
-    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    xchg ah, al                               ; 86 c4
-    xchg bh, bl                               ; 86 df
-    xchg ch, cl                               ; 86 cd
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    xchg bx, cx                               ; 87 cb
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov word [bp-014h], bx                    ; 89 5e ec
-    mov word [bp-016h], cx                    ; 89 4e ea
-    mov word [bp-018h], dx                    ; 89 56 e8
-    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    mov ax, di                                ; 89 f8
-    xor dx, dx                                ; 31 d2
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov word [bp-00eh], dx                    ; 89 56 f2
-    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    sal ax, 002h                              ; c1 e0 02
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
-    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
-    mov word [bp-00ah], di                    ; 89 7e f6
-    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    mov cx, strict word 00009h                ; b9 09 00
-    sal word [bp-00ah], 1                     ; d1 66 f6
-    rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 07f06h                               ; e2 f8
-    push dword [bp-00ah]                      ; 66 ff 76 f6
-    db  066h, 026h, 0ffh, 074h, 008h
-    ; push dword [es:si+008h]                   ; 66 26 ff 74 08
-    push strict byte 00010h                   ; 6a 10
-    xor dh, dh                                ; 30 f6
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07cc5h                               ; e8 a2 fd
-    mov ah, al                                ; 88 c4
-    test al, al                               ; 84 c0
-    jne short 07f3eh                          ; 75 15
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov word [es:si+018h], di                 ; 26 89 7c 18
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov word [es:si+01ah], dx                 ; 26 89 54 1a
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    mov word [es:si+01ch], dx                 ; 26 89 54 1c
-    movzx ax, ah                              ; 0f b6 c4
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-@scsi_write_sectors:                         ; 0xf7f4a LB 0xdb
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00016h                ; 83 ec 16
-    mov si, word [bp+004h]                    ; 8b 76 04
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
-    sub AL, strict byte 008h                  ; 2c 08
-    mov byte [bp-006h], al                    ; 88 46 fa
-    cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 07f78h                          ; 76 13
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    push ax                                   ; 50
-    push 00b4fh                               ; 68 4f 0b
-    push 00b30h                               ; 68 30 0b
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 fd 99
-    add sp, strict byte 00008h                ; 83 c4 08
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
-    mov word [bp-01ah], 0008ah                ; c7 46 e6 8a 00
-    mov ax, word [es:si+006h]                 ; 26 8b 44 06
-    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    xchg ah, al                               ; 86 c4
-    xchg bh, bl                               ; 86 df
-    xchg ch, cl                               ; 86 cd
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    xchg bx, cx                               ; 87 cb
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov word [bp-014h], bx                    ; 89 5e ec
-    mov word [bp-016h], cx                    ; 89 4e ea
-    mov word [bp-018h], dx                    ; 89 56 e8
-    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    mov ax, di                                ; 89 f8
-    xor dx, dx                                ; 31 d2
-    xchg ah, al                               ; 86 c4
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov word [bp-00eh], dx                    ; 89 56 f2
-    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    sal ax, 002h                              ; c1 e0 02
-    mov bx, si                                ; 89 f3
-    add bx, ax                                ; 01 c3
-    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
-    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
-    mov word [bp-00ah], di                    ; 89 7e f6
-    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    mov cx, strict word 00009h                ; b9 09 00
-    sal word [bp-00ah], 1                     ; d1 66 f6
-    rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 07fe1h                               ; e2 f8
-    push dword [bp-00ah]                      ; 66 ff 76 f6
-    db  066h, 026h, 0ffh, 074h, 008h
-    ; push dword [es:si+008h]                   ; 66 26 ff 74 08
-    push strict byte 00010h                   ; 6a 10
-    xor dh, dh                                ; 30 f6
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07d9ah                               ; e8 9c fd
-    mov ah, al                                ; 88 c4
-    test al, al                               ; 84 c0
-    jne short 08019h                          ; 75 15
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov word [es:si+018h], di                 ; 26 89 7c 18
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    mov word [es:si+01ah], dx                 ; 26 89 54 1a
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    mov word [es:si+01ch], dx                 ; 26 89 54 1c
-    movzx ax, ah                              ; 0f b6 c4
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-scsi_cmd_packet_:                            ; 0xf8025 LB 0x166
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ch                ; 83 ec 0c
-    mov di, ax                                ; 89 c7
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov word [bp-00ch], bx                    ; 89 5e f4
-    mov word [bp-00ah], cx                    ; 89 4e f6
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 2b 96
-    mov si, 00122h                            ; be 22 01
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 0806ch                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 d9 98
-    push 00b62h                               ; 68 62 0b
-    push 00b72h                               ; 68 72 0b
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 0f 99
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov dx, strict word 00001h                ; ba 01 00
-    jmp near 08180h                           ; e9 14 01
-    sub di, strict byte 00008h                ; 83 ef 08
-    sal di, 002h                              ; c1 e7 02
-    sub byte [bp-006h], 002h                  ; 80 6e fa 02
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    add di, si                                ; 01 f7
-    mov bx, word [es:di+0021ch]               ; 26 8b 9d 1c 02
-    mov al, byte [es:di+0021eh]               ; 26 8a 85 1e 02
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov dx, bx                                ; 89 da
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 08088h                          ; 75 f7
-    xor ax, ax                                ; 31 c0
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    add dx, word [bp+004h]                    ; 03 56 04
-    adc ax, word [bp+008h]                    ; 13 46 08
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
-    xor di, di                                ; 31 ff
-    add cx, dx                                ; 01 d1
-    mov word [bp-010h], cx                    ; 89 4e f0
-    adc di, ax                                ; 11 c7
-    mov ax, cx                                ; 89 c8
-    mov dx, di                                ; 89 fa
-    mov cx, strict word 0000ch                ; b9 0c 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 080b3h                               ; e2 fa
-    and ax, 000f0h                            ; 25 f0 00
-    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
-    or cx, ax                                 ; 09 c1
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    mov al, cl                                ; 88 c8
-    out DX, AL                                ; ee
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    out DX, AL                                ; ee
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov dx, di                                ; 89 fa
-    mov cx, strict word 00008h                ; b9 08 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 080dah                               ; e2 fa
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    xor cx, cx                                ; 31 c9
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    cmp cx, ax                                ; 39 c1
-    jnc short 080fbh                          ; 73 0e
-    les di, [bp-00ch]                         ; c4 7e f4
-    add di, cx                                ; 01 cf
-    mov al, byte [es:di]                      ; 26 8a 05
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    inc cx                                    ; 41
-    jmp short 080e5h                          ; eb ea
-    mov dx, bx                                ; 89 da
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    test AL, strict byte 001h                 ; a8 01
-    jne short 080fbh                          ; 75 f7
-    test AL, strict byte 002h                 ; a8 02
-    je short 08116h                           ; 74 0e
-    lea dx, [bx+003h]                         ; 8d 57 03
-    xor al, al                                ; 30 c0
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov dx, strict word 00003h                ; ba 03 00
-    jmp short 08180h                          ; eb 6a
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    test ax, ax                               ; 85 c0
-    je short 08125h                           ; 74 08
-    lea dx, [bx+001h]                         ; 8d 57 01
-    mov cx, ax                                ; 89 c1
-    in AL, DX                                 ; ec
-    loop 08122h                               ; e2 fd
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    mov word [es:si+01ah], ax                 ; 26 89 44 1a
-    mov ax, word [bp+008h]                    ; 8b 46 08
-    mov word [es:si+01ch], ax                 ; 26 89 44 1c
-    lea ax, [bx+001h]                         ; 8d 47 01
-    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 08146h                          ; 75 07
-    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
-    jbe short 08163h                          ; 76 1d
-    mov dx, ax                                ; 89 c2
-    mov cx, 08000h                            ; b9 00 80
-    les di, [bp+00ch]                         ; c4 7e 0c
-    rep insb                                  ; f3 6c
-    add word [bp+006h], 08000h                ; 81 46 06 00 80
-    adc word [bp+008h], strict byte 0ffffh    ; 83 56 08 ff
-    mov ax, es                                ; 8c c0
-    add ax, 00800h                            ; 05 00 08
-    mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 08136h                          ; eb d3
-    mov dx, ax                                ; 89 c2
-    mov cx, word [bp+006h]                    ; 8b 4e 06
-    les di, [bp+00ch]                         ; c4 7e 0c
-    rep insb                                  ; f3 6c
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
-    je short 0817eh                           ; 74 07
-    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
-    in AL, DX                                 ; ec
-    loop 0817bh                               ; e2 fd
-    xor dx, dx                                ; 31 d2
-    mov ax, dx                                ; 89 d0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 0000ch                               ; c2 0c 00
-scsi_enumerate_attached_devices_:            ; 0xf818b LB 0x482
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, 0023ch                            ; 81 ec 3c 02
-    push ax                                   ; 50
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 cb 94
-    mov di, 00122h                            ; bf 22 01
-    mov word [bp-02eh], ax                    ; 89 46 d2
-    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
-    jmp near 0858fh                           ; e9 e0 03
-    cmp AL, strict byte 004h                  ; 3c 04
-    jnc near 08603h                           ; 0f 83 4e 04
-    mov cx, strict word 00010h                ; b9 10 00
-    xor bx, bx                                ; 31 db
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-046h]                         ; 8d 46 ba
-    call 09e5ah                               ; e8 98 1c
-    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
-    mov byte [bp-045h], 010h                  ; c6 46 bb 10
-    mov byte [bp-039h], 020h                  ; c6 46 c7 20
-    push dword 000000020h                     ; 66 6a 20
-    lea dx, [bp-00246h]                       ; 8d 96 ba fd
-    push SS                                   ; 16
-    push dx                                   ; 52
-    push strict byte 00010h                   ; 6a 10
-    movzx dx, byte [bp-01eh]                  ; 0f b6 56 e2
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-046h]                         ; 8d 5e ba
-    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07cc5h                               ; e8 dc fa
-    test al, al                               ; 84 c0
-    je short 081fbh                           ; 74 0e
-    push 00b92h                               ; 68 92 0b
-    push 00bcbh                               ; 68 cb 0b
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 7a 97
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
-    mov bx, word [bp-00242h]                  ; 8b 9e be fd
-    mov cx, word [bp-00244h]                  ; 8b 8e bc fd
-    mov dx, word [bp-00246h]                  ; 8b 96 ba fd
-    xchg ah, al                               ; 86 c4
-    xchg bh, bl                               ; 86 df
-    xchg ch, cl                               ; 86 cd
-    xchg dh, dl                               ; 86 d6
-    xchg dx, ax                               ; 92
-    xchg bx, cx                               ; 87 cb
-    add dx, strict byte 00001h                ; 83 c2 01
-    mov word [bp-016h], dx                    ; 89 56 ea
-    adc cx, strict byte 00000h                ; 83 d1 00
-    mov word [bp-012h], cx                    ; 89 4e ee
-    adc bx, strict byte 00000h                ; 83 d3 00
-    mov word [bp-030h], bx                    ; 89 5e d0
-    adc ax, strict word 00000h                ; 15 00 00
-    mov word [bp-010h], ax                    ; 89 46 f0
-    movzx ax, byte [bp-0023eh]                ; 0f b6 86 c2 fd
-    sal ax, 008h                              ; c1 e0 08
-    movzx si, byte [bp-0023dh]                ; 0f b6 b6 c3 fd
-    xor bx, bx                                ; 31 db
-    or si, ax                                 ; 09 c6
-    movzx ax, byte [bp-0023ch]                ; 0f b6 86 c4 fd
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00008h                ; b9 08 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 08249h                               ; e2 fa
-    or bx, ax                                 ; 09 c3
-    or dx, si                                 ; 09 f2
-    movzx ax, byte [bp-0023bh]                ; 0f b6 86 c5 fd
-    or bx, ax                                 ; 09 c3
-    mov word [bp-024h], bx                    ; 89 5e dc
-    test dx, dx                               ; 85 d2
-    jne short 08267h                          ; 75 06
-    cmp bx, 00200h                            ; 81 fb 00 02
-    je short 08287h                           ; 74 20
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 bf 96
-    push dx                                   ; 52
-    push word [bp-024h]                       ; ff 76 dc
-    push word [bp-01eh]                       ; ff 76 e2
-    push 00beah                               ; 68 ea 0b
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 f1 96
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 08586h                           ; e9 ff 02
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0829ah                           ; 72 0c
-    jbe short 082a2h                          ; 76 12
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 082aah                           ; 74 16
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 082a6h                           ; 74 0e
-    jmp short 082f3h                          ; eb 59
-    test al, al                               ; 84 c0
-    jne short 082f3h                          ; 75 55
-    mov BL, strict byte 090h                  ; b3 90
-    jmp short 082ach                          ; eb 0a
-    mov BL, strict byte 098h                  ; b3 98
-    jmp short 082ach                          ; eb 06
-    mov BL, strict byte 0a0h                  ; b3 a0
-    jmp short 082ach                          ; eb 02
-    mov BL, strict byte 0a8h                  ; b3 a8
-    mov al, bl                                ; 88 d8
-    add AL, strict byte 007h                  ; 04 07
-    movzx cx, al                              ; 0f b6 c8
-    mov ax, cx                                ; 89 c8
-    call 016ach                               ; e8 f4 93
-    test al, al                               ; 84 c0
-    je short 082f3h                           ; 74 37
-    mov al, bl                                ; 88 d8
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 e7 93
-    movzx dx, al                              ; 0f b6 d0
-    sal dx, 008h                              ; c1 e2 08
-    movzx ax, bl                              ; 0f b6 c3
-    call 016ach                               ; e8 db 93
-    xor ah, ah                                ; 30 e4
-    add ax, dx                                ; 01 d0
-    cwd                                       ; 99
-    mov si, ax                                ; 89 c6
-    mov al, bl                                ; 88 d8
-    add AL, strict byte 002h                  ; 04 02
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 cb 93
-    xor ah, ah                                ; 30 e4
-    mov word [bp-034h], ax                    ; 89 46 cc
-    mov ax, cx                                ; 89 c8
-    call 016ach                               ; e8 c1 93
-    xor ah, ah                                ; 30 e4
-    mov word [bp-032h], ax                    ; 89 46 ce
-    jmp near 083dch                           ; e9 e9 00
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov bx, word [bp-030h]                    ; 8b 5e d0
-    mov cx, word [bp-012h]                    ; 8b 4e ee
-    mov dx, word [bp-016h]                    ; 8b 56 ea
-    mov si, strict word 0000ch                ; be 0c 00
-    call 09e4ah                               ; e8 45 1b
-    mov word [bp-018h], ax                    ; 89 46 e8
-    mov word [bp-014h], bx                    ; 89 5e ec
-    mov word [bp-036h], cx                    ; 89 4e ca
-    mov word [bp-020h], dx                    ; 89 56 e0
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    test ax, ax                               ; 85 c0
-    jnbe short 0832eh                         ; 77 16
-    jne near 083a1h                           ; 0f 85 85 00
-    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
-    jnbe short 0832eh                         ; 77 0c
-    jne near 083a1h                           ; 0f 85 7b 00
-    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
-    jnbe short 0832eh                         ; 77 02
-    jne short 083a1h                          ; 75 73
-    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
-    mov bx, word [bp-030h]                    ; 8b 5e d0
-    mov cx, word [bp-012h]                    ; 8b 4e ee
-    mov dx, word [bp-016h]                    ; 8b 56 ea
-    mov si, strict word 00006h                ; be 06 00
-    call 09e4ah                               ; e8 05 1b
-    mov si, word [bp-020h]                    ; 8b 76 e0
-    add si, dx                                ; 01 d6
-    mov word [bp-02ah], si                    ; 89 76 d6
-    mov dx, word [bp-036h]                    ; 8b 56 ca
-    adc dx, cx                                ; 11 ca
-    mov word [bp-028h], dx                    ; 89 56 d8
-    mov dx, word [bp-014h]                    ; 8b 56 ec
-    adc dx, bx                                ; 11 da
-    mov word [bp-01ch], dx                    ; 89 56 e4
-    mov dx, word [bp-018h]                    ; 8b 56 e8
-    adc dx, ax                                ; 11 c2
-    mov word [bp-026h], dx                    ; 89 56 da
-    mov ax, dx                                ; 89 d0
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
-    mov cx, word [bp-028h]                    ; 8b 4e d8
-    mov dx, si                                ; 89 f2
-    mov si, strict word 00008h                ; be 08 00
-    call 09e4ah                               ; e8 d5 1a
-    mov word [bp-022h], bx                    ; 89 5e de
-    mov word [bp-02ch], cx                    ; 89 4e d4
-    mov word [bp-01ah], dx                    ; 89 56 e6
-    mov ax, word [bp-026h]                    ; 8b 46 da
-    mov bx, word [bp-01ch]                    ; 8b 5e e4
-    mov cx, word [bp-028h]                    ; 8b 4e d8
-    mov dx, word [bp-02ah]                    ; 8b 56 d6
-    mov si, strict word 00010h                ; be 10 00
-    call 09e4ah                               ; e8 ba 1a
-    mov si, word [bp-01ah]                    ; 8b 76 e6
-    add si, dx                                ; 01 d6
-    mov dx, word [bp-02ch]                    ; 8b 56 d4
-    adc dx, cx                                ; 11 ca
-    mov ax, word [bp-022h]                    ; 8b 46 de
-    adc ax, bx                                ; 11 d8
-    jmp short 083dch                          ; eb 3b
-    test ax, ax                               ; 85 c0
-    jnbe short 083b7h                         ; 77 12
-    jne short 083c1h                          ; 75 1a
-    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
-    jnbe short 083b7h                         ; 77 0a
-    jne short 083c1h                          ; 75 12
-    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
-    jnbe short 083b7h                         ; 77 02
-    jne short 083c1h                          ; 75 0a
-    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
-    jmp short 083d8h                          ; eb 17
-    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
-    mov bx, word [bp-030h]                    ; 8b 5e d0
-    mov cx, word [bp-012h]                    ; 8b 4e ee
-    mov dx, word [bp-016h]                    ; 8b 56 ea
-    mov si, strict word 0000bh                ; be 0b 00
-    call 09e4ah                               ; e8 72 1a
-    mov si, dx                                ; 89 d6
-    mov dx, cx                                ; 89 ca
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    add AL, strict byte 008h                  ; 04 08
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    sal ax, 002h                              ; c1 e0 02
-    mov es, [bp-02eh]                         ; 8e 46 d2
-    mov bx, di                                ; 89 fb
-    add bx, ax                                ; 01 c3
-    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
-    mov al, byte [bp-01eh]                    ; 8a 46 e2
-    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov bx, di                                ; 89 fb
-    add bx, ax                                ; 01 c3
-    db  066h, 026h, 0c7h, 047h, 022h, 004h, 0ffh, 000h, 000h
-    ; mov dword [es:bx+022h], strict dword 00000ff04h ; 66 26 c7 47 22 04 ff 00 00
-    mov ax, word [bp-024h]                    ; 8b 46 dc
-    mov word [es:bx+028h], ax                 ; 26 89 47 28
-    mov byte [es:bx+027h], 001h               ; 26 c6 47 27 01
-    mov ax, word [bp-034h]                    ; 8b 46 cc
-    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
-    mov ax, word [bp-032h]                    ; 8b 46 ce
-    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
-    mov ax, word [bp-034h]                    ; 8b 46 cc
-    mov word [es:bx+030h], ax                 ; 26 89 47 30
-    mov ax, word [bp-032h]                    ; 8b 46 ce
-    mov word [es:bx+034h], ax                 ; 26 89 47 34
-    test dx, dx                               ; 85 d2
-    jne short 08449h                          ; 75 06
-    cmp si, 00400h                            ; 81 fe 00 04
-    jbe short 08457h                          ; 76 0e
-    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
-    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
-    jmp short 0845fh                          ; eb 08
-    mov word [es:bx+02ch], si                 ; 26 89 77 2c
-    mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 c7 94
-    push word [bp-010h]                       ; ff 76 f0
-    push word [bp-030h]                       ; ff 76 d0
-    push word [bp-012h]                       ; ff 76 ee
-    push word [bp-016h]                       ; ff 76 ea
-    push dword [bp-034h]                      ; 66 ff 76 cc
-    push dx                                   ; 52
-    push si                                   ; 56
-    push word [bp-01eh]                       ; ff 76 e2
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    push 00c18h                               ; 68 18 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e6 94
-    add sp, strict byte 00018h                ; 83 c4 18
-    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
-    imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, [bp-02eh]                         ; 8e 46 d2
-    add bx, di                                ; 01 fb
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov word [es:bx+03ch], ax                 ; 26 89 47 3c
-    mov ax, word [bp-030h]                    ; 8b 46 d0
-    mov word [es:bx+03ah], ax                 ; 26 89 47 3a
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    mov word [es:bx+038h], ax                 ; 26 89 47 38
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov word [es:bx+036h], ax                 ; 26 89 47 36
-    mov al, byte [es:di+001e2h]               ; 26 8a 85 e2 01
-    mov ah, byte [bp-00ch]                    ; 8a 66 f4
-    add ah, 008h                              ; 80 c4 08
-    movzx bx, al                              ; 0f b6 d8
-    add bx, di                                ; 01 fb
-    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov byte [es:di+001e2h], al               ; 26 88 85 e2 01
-    mov dx, strict word 00075h                ; ba 75 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 74 91
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00075h                ; ba 75 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 74 91
-    inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 0857bh                           ; e9 8b 00
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 36 94
-    push word [bp-01eh]                       ; ff 76 e2
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    push ax                                   ; 50
-    push 00c46h                               ; 68 46 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 67 94
-    add sp, strict byte 00008h                ; 83 c4 08
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    add AL, strict byte 008h                  ; 04 08
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    mov dx, ax                                ; 89 c2
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    sal ax, 002h                              ; c1 e0 02
-    mov es, [bp-02eh]                         ; 8e 46 d2
-    mov bx, di                                ; 89 fb
-    add bx, ax                                ; 01 c3
-    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
-    mov al, byte [bp-01eh]                    ; 8a 46 e2
-    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov bx, di                                ; 89 fb
-    add bx, ax                                ; 01 c3
-    mov word [es:bx+022h], 00504h             ; 26 c7 47 22 04 05
-    mov byte [es:bx+024h], dl                 ; 26 88 57 24
-    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
-    mov al, byte [es:di+001f3h]               ; 26 8a 85 f3 01
-    mov ah, byte [bp-00ch]                    ; 8a 66 f4
-    add ah, 008h                              ; 80 c4 08
-    movzx bx, al                              ; 0f b6 d8
-    add bx, di                                ; 01 fb
-    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov byte [es:di+001f3h], al               ; 26 88 85 f3 01
-    inc byte [bp-00ch]                        ; fe 46 f4
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
-    mov es, [bp-02eh]                         ; 8e 46 d2
-    mov byte [es:di+0022ch], al               ; 26 88 85 2c 02
-    inc word [bp-01eh]                        ; ff 46 e2
-    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
-    jnl short 08603h                          ; 7d 74
-    mov byte [bp-046h], 012h                  ; c6 46 ba 12
-    xor al, al                                ; 30 c0
-    mov byte [bp-045h], al                    ; 88 46 bb
-    mov byte [bp-044h], al                    ; 88 46 bc
-    mov byte [bp-043h], al                    ; 88 46 bd
-    mov byte [bp-042h], 005h                  ; c6 46 be 05
-    mov byte [bp-041h], al                    ; 88 46 bf
-    push dword 000000005h                     ; 66 6a 05
-    lea dx, [bp-00246h]                       ; 8d 96 ba fd
-    push SS                                   ; 16
-    push dx                                   ; 52
-    push strict byte 00006h                   ; 6a 06
-    movzx dx, byte [bp-01eh]                  ; 0f b6 56 e2
-    mov cx, ss                                ; 8c d1
-    lea bx, [bp-046h]                         ; 8d 5e ba
-    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07cc5h                               ; e8 05 f7
-    test al, al                               ; 84 c0
-    je short 085d2h                           ; 74 0e
-    push 00b92h                               ; 68 92 0b
-    push 00bb2h                               ; 68 b2 0b
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 a3 93
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov es, [bp-02eh]                         ; 8e 46 d2
-    mov al, byte [es:di+0022ch]               ; 26 8a 85 2c 02
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 085edh                          ; 75 09
-    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
-    je near 081afh                            ; 0f 84 c2 fb
-    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 0857bh                          ; 75 87
-    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
-    and AL, strict byte 01fh                  ; 24 1f
-    cmp AL, strict byte 005h                  ; 3c 05
-    je near 084f0h                            ; 0f 84 f0 fe
-    jmp near 0857bh                           ; e9 78 ff
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_scsi_init:                                  ; 0xf860d LB 0x66
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 53 90
-    mov bx, 00122h                            ; bb 22 01
-    mov es, ax                                ; 8e c0
-    mov byte [es:bx+0022ch], 000h             ; 26 c6 87 2c 02 00
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, 00432h                            ; ba 32 04
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp AL, strict byte 055h                  ; 3c 55
-    jne short 0863dh                          ; 75 0c
-    xor al, al                                ; 30 c0
-    mov dx, 00433h                            ; ba 33 04
-    out DX, AL                                ; ee
-    mov ax, 00430h                            ; b8 30 04
-    call 0818bh                               ; e8 4e fb
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, 00436h                            ; ba 36 04
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08656h                          ; 75 0c
-    xor al, al                                ; 30 c0
-    mov dx, 00437h                            ; ba 37 04
-    out DX, AL                                ; ee
-    mov ax, 00434h                            ; b8 34 04
-    call 0818bh                               ; e8 35 fb
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, 0043ah                            ; ba 3a 04
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp AL, strict byte 055h                  ; 3c 55
-    jne short 0866fh                          ; 75 0c
-    xor al, al                                ; 30 c0
-    mov dx, 0043bh                            ; ba 3b 04
-    out DX, AL                                ; ee
-    mov ax, 00438h                            ; b8 38 04
-    call 0818bh                               ; e8 1c fb
-    mov sp, bp                                ; 89 ec
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf8673 LB 0x1b
-    push si                                   ; 56
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov si, bx                                ; 89 de
-    and ax, bx                                ; 21 d8
-    and dx, cx                                ; 21 ca
-    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
-    jcxz 08689h                               ; e3 06
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 08683h                               ; e2 fa
-    pop bp                                    ; 5d
-    pop si                                    ; 5e
-    retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf868e LB 0x1e
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, ax                                ; 89 c3
-    mov ax, dx                                ; 89 d0
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00004h                ; b9 04 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 0869ch                               ; e2 fa
-    xor cx, cx                                ; 31 c9
-    add ax, bx                                ; 01 d8
-    adc dx, cx                                ; 11 ca
-    pop bp                                    ; 5d
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf86ac LB 0x14b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    mov si, ax                                ; 89 c6
-    mov cx, dx                                ; 89 d1
-    mov al, bl                                ; 88 d8
-    mov es, dx                                ; 8e c2
-    mov ah, byte [es:si+00262h]               ; 26 8a a4 62 02
-    mov byte [bp-008h], ah                    ; 88 66 f8
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    cmp ah, 0ffh                              ; 80 fc ff
-    je near 087efh                            ; 0f 84 20 01
-    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
-    xor di, di                                ; 31 ff
-    or di, 00080h                             ; 81 cf 80 00
-    xor ah, ah                                ; 30 e4
-    or di, ax                                 ; 09 c7
-    mov word [es:si], di                      ; 26 89 3c
-    mov word [es:si+002h], dx                 ; 26 89 54 02
-    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
-    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
-    lea ax, [si+00080h]                       ; 8d 84 80 00
-    mov dx, cx                                ; 89 ca
-    call 0868eh                               ; e8 96 ff
-    mov es, cx                                ; 8e c1
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov word [es:si+00ah], dx                 ; 26 89 54 0a
-    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
-    sal di, 007h                              ; c1 e7 07
-    lea ax, [di+00118h]                       ; 8d 85 18 01
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea si, [bx+004h]                         ; 8d 77 04
-    mov dx, si                                ; 89 f2
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    or AL, strict byte 011h                   ; 0c 11
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [di+00138h]                       ; 8d 85 38 01
-    cwd                                       ; 99
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, strict word 00001h                ; b8 01 00
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    sal ax, 007h                              ; c1 e0 07
-    add ax, 00110h                            ; 05 10 01
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea dx, [bx+004h]                         ; 8d 57 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    test dh, 040h                             ; f6 c6 40
-    jne short 08785h                          ; 75 04
-    test AL, strict byte 001h                 ; a8 01
-    je short 08789h                           ; 74 04
-    mov AL, strict byte 001h                  ; b0 01
-    jmp short 0878bh                          ; eb 02
-    xor al, al                                ; 30 c0
-    test al, al                               ; 84 c0
-    je short 08759h                           ; 74 ca
-    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
-    sal di, 007h                              ; c1 e7 07
-    lea ax, [di+00110h]                       ; 8d 85 10 01
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea si, [bx+004h]                         ; 8d 77 04
-    mov dx, si                                ; 89 f2
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    or AL, strict byte 001h                   ; 0c 01
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [di+00118h]                       ; 8d 85 18 01
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov dx, si                                ; 89 f2
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    and AL, strict byte 0feh                  ; 24 fe
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf87f7 LB 0x262
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ch                ; 83 ec 0c
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov byte [bp-008h], bl                    ; 88 5e f8
-    xor di, di                                ; 31 ff
-    mov es, dx                                ; 8e c2
-    mov bx, ax                                ; 89 c3
-    mov ax, word [es:bx+00232h]               ; 26 8b 87 32 02
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    mov word [bp-00eh], di                    ; 89 7e f2
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
-    mov word [bp-012h], ax                    ; 89 46 ee
-    mov ax, word [es:bx+010h]                 ; 26 8b 47 10
-    mov word [bp-010h], ax                    ; 89 46 f0
-    mov cx, strict word 00040h                ; b9 40 00
-    xor bx, bx                                ; 31 db
-    mov ax, 00080h                            ; b8 80 00
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09e5ah                               ; e8 25 16
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov byte [es:di+00082h], al               ; 26 88 85 82 00
-    mov byte [es:di+00083h], 000h             ; 26 c6 85 83 00 00
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov ax, word [es:bx]                      ; 26 8b 07
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+00084h], al               ; 26 88 85 84 00
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00008h                ; be 08 00
-    call 09e4ah                               ; e8 d1 15
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00010h                ; be 10 00
-    call 09e4ah                               ; e8 ab 15
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
-    mov byte [es:di+00087h], 040h             ; 26 c6 85 87 00 40
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00018h                ; be 18 00
-    call 09e4ah                               ; e8 7f 15
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00020h                ; be 20 00
-    call 09e4ah                               ; e8 59 15
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
-    mov dx, word [es:si]                      ; 26 8b 14
-    mov si, strict word 00028h                ; be 28 00
-    call 09e4ah                               ; e8 33 15
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
-    mov byte [es:di+0008bh], 000h             ; 26 c6 85 8b 00 00
-    mov al, byte [bp-012h]                    ; 8a 46 ee
-    mov byte [es:di+0008ch], al               ; 26 88 85 8c 00
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [es:di+0008dh], al               ; 26 88 85 8d 00
-    mov word [es:di+00276h], strict word 00010h ; 26 c7 85 76 02 10 00
-    mov ax, word [bp-012h]                    ; 8b 46 ee
-    xor dx, dx                                ; 31 d2
-    mov bx, word [bp-010h]                    ; 8b 5e f0
-    xor cx, cx                                ; 31 c9
-    call 09e09h                               ; e8 bd 14
-    push dx                                   ; 52
-    push ax                                   ; 50
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    mov bx, word [es:bx+008h]                 ; 26 8b 5f 08
-    mov si, word [bp-014h]                    ; 8b 76 ec
-    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
-    mov ax, 0026ah                            ; b8 6a 02
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09d1ah                               ; e8 b2 13
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
-    add ax, strict word 0ffffh                ; 05 ff ff
-    mov dx, word [es:di+00280h]               ; 26 8b 95 80 02
-    adc dx, strict byte 0ffffh                ; 83 d2 ff
-    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
-    sal bx, 004h                              ; c1 e3 04
-    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
-    mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
-    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
-    sal bx, 004h                              ; c1 e3 04
-    mov ax, word [es:di+0027ah]               ; 26 8b 85 7a 02
-    mov dx, word [es:di+0027ch]               ; 26 8b 95 7c 02
-    mov word [es:bx+00100h], ax               ; 26 89 87 00 01
-    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
-    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
-    mov es, [bp-016h]                         ; 8e 46 ea
-    mov bx, si                                ; 89 f3
-    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
-    test ax, ax                               ; 85 c0
-    je short 089f6h                           ; 74 39
-    dec ax                                    ; 48
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
-    sal bx, 004h                              ; c1 e3 04
-    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
-    mov word [es:bx+0010eh], di               ; 26 89 bf 0e 01
-    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
-    sal bx, 004h                              ; c1 e3 04
-    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
-    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
-    mov word [es:bx+00100h], dx               ; 26 89 97 00 01
-    mov word [es:bx+00102h], ax               ; 26 89 87 02 01
-    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08a03h                          ; 75 06
-    mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08a1ah                          ; eb 17
-    cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08a16h                          ; 75 0f
-    or byte [bp-008h], 020h                   ; 80 4e f8 20
-    les bx, [bp-00eh]                         ; c4 5e f2
-    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
-    jmp short 08a1ah                          ; eb 04
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    or byte [bp-008h], 005h                   ; 80 4e f8 05
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 086ach                               ; e8 81 fc
-    mov cx, word [bp-00ch]                    ; 8b 4e f4
-    mov bx, word [bp-00eh]                    ; 8b 5e f2
-    add bx, 00240h                            ; 81 c3 40 02
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    add ax, 0026ah                            ; 05 6a 02
-    mov dx, cx                                ; 89 ca
-    call 09d93h                               ; e8 53 13
-    mov es, cx                                ; 8e c1
-    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
-    test al, al                               ; 84 c0
-    je short 08a4fh                           ; 74 05
-    mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08a51h                          ; eb 02
-    xor ah, ah                                ; 30 e4
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8a59 LB 0x17f
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov di, ax                                ; 89 c7
-    mov word [bp-00ch], dx                    ; 89 56 f4
-    mov es, dx                                ; 8e c2
-    mov si, word [es:di+00260h]               ; 26 8b b5 60 02
-    mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 08bcfh                            ; 0f 84 52 01
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    sal ax, 007h                              ; c1 e0 07
-    add ax, 00118h                            ; 05 18 01
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea bx, [si+004h]                         ; 8d 5c 04
-    mov dx, bx                                ; 89 da
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    and AL, strict byte 0eeh                  ; 24 ee
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    sal ax, 007h                              ; c1 e0 07
-    add ax, 00118h                            ; 05 18 01
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea dx, [si+004h]                         ; 8d 54 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    test ax, 0c011h                           ; a9 11 c0
-    je short 08addh                           ; 74 04
-    mov AL, strict byte 001h                  ; b0 01
-    jmp short 08adfh                          ; eb 02
-    xor al, al                                ; 30 c0
-    cmp AL, strict byte 001h                  ; 3c 01
-    je short 08ab1h                           ; 74 ce
-    mov cx, strict word 00020h                ; b9 20 00
-    xor bx, bx                                ; 31 db
-    mov ax, di                                ; 89 f8
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 09e5ah                               ; e8 6a 13
-    lea ax, [di+00080h]                       ; 8d 85 80 00
-    mov cx, strict word 00040h                ; b9 40 00
-    xor bx, bx                                ; 31 db
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 09e5ah                               ; e8 5b 13
-    lea ax, [di+00200h]                       ; 8d 85 00 02
-    mov cx, strict word 00060h                ; b9 60 00
-    xor bx, bx                                ; 31 db
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 09e5ah                               ; e8 4c 13
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    sal ax, 007h                              ; c1 e0 07
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    add ax, 00108h                            ; 05 08 01
-    cwd                                       ; 99
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea bx, [si+004h]                         ; 8d 5c 04
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    add ax, 0010ch                            ; 05 0c 01
-    cwd                                       ; 99
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    db  0feh, 0c4h
-    ; inc ah                                    ; fe c4
-    cwd                                       ; 99
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    add ax, 00104h                            ; 05 04 01
-    cwd                                       ; 99
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    add ax, 00114h                            ; 05 14 01
-    cwd                                       ; 99
-    mov cx, dx                                ; 89 d1
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov byte [es:di+00262h], 0ffh             ; 26 c6 85 62 02 ff
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ahci_port_init_:                             ; 0xf8bd8 LB 0x24a
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov si, ax                                ; 89 c6
-    mov word [bp-00ah], dx                    ; 89 56 f6
-    mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08a59h                               ; e8 6d fe
-    movzx ax, bl                              ; 0f b6 c3
-    sal ax, 007h                              ; c1 e0 07
-    add ax, 00118h                            ; 05 18 01
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    add bx, strict byte 00004h                ; 83 c3 04
-    mov dx, bx                                ; 89 da
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    and AL, strict byte 0eeh                  ; 24 ee
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    sal ax, 007h                              ; c1 e0 07
-    add ax, 00118h                            ; 05 18 01
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea dx, [bx+004h]                         ; 8d 57 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    test ax, 0c011h                           ; a9 11 c0
-    je short 08c5bh                           ; 74 04
-    mov AL, strict byte 001h                  ; b0 01
-    jmp short 08c5dh                          ; eb 02
-    xor al, al                                ; 30 c0
-    cmp AL, strict byte 001h                  ; 3c 01
-    je short 08c27h                           ; 74 c6
-    mov cx, strict word 00020h                ; b9 20 00
-    xor bx, bx                                ; 31 db
-    mov ax, si                                ; 89 f0
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09e5ah                               ; e8 ec 11
-    lea ax, [si+00080h]                       ; 8d 84 80 00
-    mov cx, strict word 00040h                ; b9 40 00
-    xor bx, bx                                ; 31 db
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09e5ah                               ; e8 dd 11
-    lea di, [si+00200h]                       ; 8d bc 00 02
-    mov cx, strict word 00060h                ; b9 60 00
-    xor bx, bx                                ; 31 db
-    mov ax, di                                ; 89 f8
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09e5ah                               ; e8 cc 11
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    sal bx, 007h                              ; c1 e3 07
-    lea ax, [bx+00108h]                       ; 8d 87 08 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov cx, word [es:si+00260h]               ; 26 8b 8c 60 02
-    mov word [bp-00ch], cx                    ; 89 4e f4
-    mov cx, dx                                ; 89 d1
-    mov dx, word [bp-00ch]                    ; 8b 56 f4
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, di                                ; 89 f8
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0868eh                               ; e8 d3 f9
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    add di, strict byte 00004h                ; 83 c7 04
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [bx+0010ch]                       ; 8d 87 0c 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [bx+00100h]                       ; 8d 87 00 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, si                                ; 89 f0
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0868eh                               ; e8 67 f9
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    add di, strict byte 00004h                ; 83 c7 04
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [bx+00104h]                       ; 8d 87 04 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [bx+00114h]                       ; 8d 87 14 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [bx+00110h]                       ; 8d 87 10 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, di                                ; 89 fa
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    mov ax, strict word 0ffffh                ; b8 ff ff
-    mov cx, ax                                ; 89 c1
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea ax, [bx+00130h]                       ; 8d 87 30 01
-    cwd                                       ; 99
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    mov ax, strict word 0ffffh                ; b8 ff ff
-    mov cx, ax                                ; 89 c1
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov byte [es:si+00262h], al               ; 26 88 84 62 02
-    mov byte [es:si+00263h], 000h             ; 26 c6 84 63 02 00
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf8e22 LB 0xa6
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    les di, [bp+004h]                         ; c4 7e 04
-    movzx di, byte [es:di+00ch]               ; 26 0f b6 7d 0c
-    sub di, strict byte 0000ch                ; 83 ef 0c
-    cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 08e47h                          ; 76 0f
-    push di                                   ; 57
-    push 00c62h                               ; 68 62 0c
-    push 00c74h                               ; 68 74 0c
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 2e 8b
-    add sp, strict byte 00008h                ; 83 c4 08
-    xor bx, bx                                ; 31 db
-    les si, [bp+004h]                         ; c4 76 04
-    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
-    shr eax, 010h                             ; 66 c1 e8 10
-    mov es, dx                                ; 8e c2
-    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
-    mov es, [bp+006h]                         ; 8e 46 06
-    add di, si                                ; 01 f7
-    movzx bx, byte [es:di+0022dh]             ; 26 0f b6 9d 2d 02
-    mov di, si                                ; 89 f7
-    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
-    xor ax, ax                                ; 31 c0
-    call 08bd8h                               ; e8 65 fd
-    mov bx, strict word 00025h                ; bb 25 00
-    mov ax, si                                ; 89 f0
-    mov dx, word [bp+006h]                    ; 8b 56 06
-    call 087f7h                               ; e8 79 f9
-    mov word [bp-006h], ax                    ; 89 46 fa
-    mov es, [bp+006h]                         ; 8e 46 06
-    mov bx, si                                ; 89 f3
-    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
-    mov word [es:bx+018h], ax                 ; 26 89 47 18
-    mov cx, ax                                ; 89 c1
-    sal cx, 009h                              ; c1 e1 09
-    shr cx, 1                                 ; d1 e9
-    mov di, word [es:di+008h]                 ; 26 8b 7d 08
-    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
-    mov si, di                                ; 89 fe
-    mov dx, ax                                ; 89 c2
-    mov es, ax                                ; 8e c0
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsw                                 ; f3 a5
-    pop DS                                    ; 1f
-    xor bx, bx                                ; 31 db
-    les di, [bp+004h]                         ; c4 7e 04
-    mov es, [es:di+00232h]                    ; 26 8e 85 32 02
-    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
-    sal eax, 010h                             ; 66 c1 e0 10
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf8ec8 LB 0x84
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    mov si, word [bp+004h]                    ; 8b 76 04
-    mov cx, word [bp+006h]                    ; 8b 4e 06
-    mov es, cx                                ; 8e c1
-    movzx dx, byte [es:si+00ch]               ; 26 0f b6 54 0c
-    sub dx, strict byte 0000ch                ; 83 ea 0c
-    cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 08ef1h                          ; 76 0f
-    push dx                                   ; 52
-    push 00c93h                               ; 68 93 0c
-    push 00c74h                               ; 68 74 0c
-    push strict byte 00007h                   ; 6a 07
-    call 01972h                               ; e8 84 8a
-    add sp, strict byte 00008h                ; 83 c4 08
-    xor bx, bx                                ; 31 db
-    mov es, cx                                ; 8e c1
-    mov di, word [es:si+00232h]               ; 26 8b bc 32 02
-    shr eax, 010h                             ; 66 c1 e8 10
-    mov es, di                                ; 8e c7
-    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
-    mov es, cx                                ; 8e c1
-    mov bx, si                                ; 89 f3
-    add bx, dx                                ; 01 d3
-    movzx bx, byte [es:bx+0022dh]             ; 26 0f b6 9f 2d 02
-    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
-    xor ax, ax                                ; 31 c0
-    call 08bd8h                               ; e8 bd fc
-    mov bx, strict word 00035h                ; bb 35 00
-    mov ax, si                                ; 89 f0
-    mov dx, cx                                ; 89 ca
-    call 087f7h                               ; e8 d2 f8
-    mov dx, ax                                ; 89 c2
-    mov es, cx                                ; 8e c1
-    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
-    mov word [es:si+018h], ax                 ; 26 89 44 18
-    xor bx, bx                                ; 31 db
-    mov es, [es:si+00232h]                    ; 26 8e 84 32 02
-    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
-    sal eax, 010h                             ; 66 c1 e0 10
-    mov ax, dx                                ; 89 d0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf8f4c LB 0x183
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000eh                ; 83 ec 0e
-    push ax                                   ; 50
-    mov byte [bp-006h], dl                    ; 88 56 fa
-    mov word [bp-012h], bx                    ; 89 5e ee
-    mov word [bp-010h], cx                    ; 89 4e f0
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 05 87
-    mov si, 00122h                            ; be 22 01
-    mov word [bp-008h], ax                    ; 89 46 f8
-    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 08f92h                          ; 75 1f
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 b3 89
-    push 00ca6h                               ; 68 a6 0c
-    push 00cb6h                               ; 68 b6 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 e9 89
-    add sp, strict byte 00006h                ; 83 c4 06
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp near 090c6h                           ; e9 34 01
-    test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 08f8ch                          ; 75 f4
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    mov dx, word [bp+008h]                    ; 8b 56 08
-    mov cx, strict word 00008h                ; b9 08 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 08fa1h                               ; e2 fa
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov word [es:si], ax                      ; 26 89 04
-    mov word [es:si+002h], dx                 ; 26 89 54 02
-    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
-    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
-    mov ax, word [bp+00ch]                    ; 8b 46 0c
-    mov word [es:si+008h], ax                 ; 26 89 44 08
-    mov ax, word [bp+00eh]                    ; 8b 46 0e
-    mov word [es:si+00ah], ax                 ; 26 89 44 0a
-    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
-    mov ax, word [bp+006h]                    ; 8b 46 06
-    mov dx, word [bp+008h]                    ; 8b 56 08
-    xor cx, cx                                ; 31 c9
-    call 09dd0h                               ; e8 f9 0d
-    mov word [es:si+00eh], ax                 ; 26 89 44 0e
-    xor di, di                                ; 31 ff
-    mov ax, word [es:si+00232h]               ; 26 8b 84 32 02
-    mov word [bp-00ah], ax                    ; 89 46 f6
-    mov word [bp-00eh], di                    ; 89 7e f2
-    mov word [bp-00ch], ax                    ; 89 46 f4
-    sub word [bp-014h], strict byte 0000ch    ; 83 6e ec 0c
-    shr eax, 010h                             ; 66 c1 e8 10
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:di+00268h], ax               ; 26 89 85 68 02
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov bx, word [bp-014h]                    ; 8b 5e ec
-    add bx, si                                ; 01 f3
-    movzx bx, byte [es:bx+0022dh]             ; 26 0f b6 9f 2d 02
-    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
-    xor ax, ax                                ; 31 c0
-    call 08bd8h                               ; e8 c5 fb
-    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    push ax                                   ; 50
-    mov bx, word [bp-012h]                    ; 8b 5e ee
-    mov cx, word [bp-010h]                    ; 8b 4e f0
-    mov ax, 000c0h                            ; b8 c0 00
-    mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09e67h                               ; e8 40 0e
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov word [es:si+018h], di                 ; 26 89 7c 18
-    mov word [es:si+01ah], di                 ; 26 89 7c 1a
-    mov word [es:si+01ch], di                 ; 26 89 7c 1c
-    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
-    test ax, ax                               ; 85 c0
-    je short 09065h                           ; 74 27
-    dec ax                                    ; 48
-    mov es, [bp-00ah]                         ; 8e 46 f6
-    mov word [es:di+0010ch], ax               ; 26 89 85 0c 01
-    mov word [es:di+0010eh], di               ; 26 89 bd 0e 01
-    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
-    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
-    mov word [es:di+00100h], dx               ; 26 89 95 00 01
-    mov word [es:di+00102h], ax               ; 26 89 85 02 01
-    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
-    mov bx, 000a0h                            ; bb a0 00
-    mov ax, si                                ; 89 f0
-    mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 087f7h                               ; e8 87 f7
-    les bx, [bp-00eh]                         ; c4 5e f2
-    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
-    mov dx, word [es:bx+006h]                 ; 26 8b 57 06
-    mov es, [bp-008h]                         ; 8e 46 f8
-    mov word [es:si+01ah], ax                 ; 26 89 44 1a
-    mov word [es:si+01ch], dx                 ; 26 89 54 1c
-    mov bx, word [es:si+01ah]                 ; 26 8b 5c 1a
-    mov cx, dx                                ; 89 d1
-    shr cx, 1                                 ; d1 e9
-    rcr bx, 1                                 ; d1 db
-    mov di, word [es:si+008h]                 ; 26 8b 7c 08
-    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
-    mov cx, bx                                ; 89 d9
-    mov si, di                                ; 89 fe
-    mov dx, ax                                ; 89 c2
-    mov es, ax                                ; 8e c0
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsw                                 ; f3 a5
-    pop DS                                    ; 1f
-    les bx, [bp-00eh]                         ; c4 5e f2
-    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
-    sal eax, 010h                             ; 66 c1 e0 10
-    mov es, [bp-00ch]                         ; 8e 46 f4
-    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
-    or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 090c4h                          ; 75 05
-    mov ax, strict word 00004h                ; b8 04 00
-    jmp short 090c6h                          ; eb 02
-    xor ax, ax                                ; 31 c0
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf90cf LB 0x4b1
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, 00224h                            ; 81 ec 24 02
-    mov si, ax                                ; 89 c6
-    mov word [bp-012h], dx                    ; 89 56 ee
-    mov byte [bp-00ah], bl                    ; 88 5e f6
-    movzx di, bl                              ; 0f b6 fb
-    mov bx, di                                ; 89 fb
-    call 08bd8h                               ; e8 ef fa
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 7a 85
-    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    sal di, 007h                              ; c1 e7 07
-    mov word [bp-024h], di                    ; 89 7e dc
-    lea ax, [di+0012ch]                       ; 8d 85 2c 01
-    cwd                                       ; 99
-    mov bx, ax                                ; 89 c3
-    mov di, dx                                ; 89 d7
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    mov cx, di                                ; 89 f9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    mov ax, strict word 00001h                ; b8 01 00
-    xor cx, cx                                ; 31 c9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    mov ax, bx                                ; 89 d8
-    mov cx, di                                ; 89 f9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, word [bp-024h]                    ; 8b 46 dc
-    add ax, 00128h                            ; 05 28 01
-    cwd                                       ; 99
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    push strict byte 00000h                   ; 6a 00
-    mov bx, strict word 0000fh                ; bb 0f 00
-    xor cx, cx                                ; 31 c9
-    call 08673h                               ; e8 d7 f4
-    test ax, ax                               ; 85 c0
-    je near 09578h                            ; 0f 84 d6 03
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    sal ax, 007h                              ; c1 e0 07
-    mov word [bp-018h], ax                    ; 89 46 e8
-    add ax, 00128h                            ; 05 28 01
-    cwd                                       ; 99
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    mov di, ax                                ; 89 c7
-    mov word [bp-022h], dx                    ; 89 56 de
-    push strict byte 00000h                   ; 6a 00
-    mov bx, strict word 0000fh                ; bb 0f 00
-    xor cx, cx                                ; 31 c9
-    call 08673h                               ; e8 8b f4
-    cmp ax, strict word 00001h                ; 3d 01 00
-    je short 091a2h                           ; 74 b5
-    push strict byte 00000h                   ; 6a 00
-    mov bx, strict word 0000fh                ; bb 0f 00
-    xor cx, cx                                ; 31 c9
-    mov ax, di                                ; 89 f8
-    mov dx, word [bp-022h]                    ; 8b 56 de
-    call 08673h                               ; e8 77 f4
-    cmp ax, strict word 00003h                ; 3d 03 00
-    jne near 09578h                           ; 0f 85 75 03
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    add ax, 00130h                            ; 05 30 01
-    cwd                                       ; 99
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    mov ax, strict word 0ffffh                ; b8 ff ff
-    mov cx, ax                                ; 89 c1
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    les bx, [bp-010h]                         ; c4 5e f0
-    mov al, byte [es:bx+00231h]               ; 26 8a 87 31 02
-    mov byte [bp-008h], al                    ; 88 46 f8
-    cmp AL, strict byte 004h                  ; 3c 04
-    jnc near 09578h                           ; 0f 83 2f 03
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    add ax, 00118h                            ; 05 18 01
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    xor cx, cx                                ; 31 c9
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    add bx, strict byte 00004h                ; 83 c3 04
-    mov dx, bx                                ; 89 da
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    or AL, strict byte 010h                   ; 0c 10
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, word [bp-018h]                    ; 8b 46 e8
-    add ax, 00124h                            ; 05 24 01
-    cwd                                       ; 99
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov es, [bp-012h]                         ; 8e 46 ee
-    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
-    add dx, strict byte 00004h                ; 83 c2 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    mov di, ax                                ; 89 c7
-    mov ax, dx                                ; 89 d0
-    mov cl, byte [bp-008h]                    ; 8a 4e f8
-    add cl, 00ch                              ; 80 c1 0c
-    test dx, dx                               ; 85 d2
-    jne near 094ceh                           ; 0f 85 0d 02
-    cmp di, 00101h                            ; 81 ff 01 01
-    jne near 094ceh                           ; 0f 85 05 02
-    les bx, [bp-010h]                         ; c4 5e f0
-    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00
-    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
-    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
-    mov word [es:bx+008h], dx                 ; 26 89 57 08
-    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h
-    ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02
-    mov bx, 000ech                            ; bb ec 00
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov dx, es                                ; 8c c2
-    call 087f7h                               ; e8 fa f4
-    mov byte [bp-00ch], cl                    ; 88 4e f4
-    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    mov dx, word [bp-00228h]                  ; 8b 96 d8 fd
-    mov word [bp-020h], dx                    ; 89 56 e0
-    mov dx, word [bp-00224h]                  ; 8b 96 dc fd
-    mov word [bp-01ch], dx                    ; 89 56 e4
-    mov dx, word [bp-0021eh]                  ; 8b 96 e2 fd
-    mov word [bp-01eh], dx                    ; 89 56 e2
-    mov dx, word [bp-001b2h]                  ; 8b 96 4e fe
-    mov word [bp-01ah], dx                    ; 89 56 e6
-    mov di, word [bp-001b0h]                  ; 8b be 50 fe
-    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
-    cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 09356h                          ; 75 1e
-    cmp dx, strict byte 0ffffh                ; 83 fa ff
-    jne short 09356h                          ; 75 19
-    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
-    mov word [bp-014h], dx                    ; 89 56 ec
-    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
-    mov word [bp-016h], dx                    ; 89 56 ea
-    mov di, word [bp-00160h]                  ; 8b be a0 fe
-    mov dx, word [bp-00162h]                  ; 8b 96 9e fe
-    mov word [bp-01ah], dx                    ; 89 56 e6
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    add bx, word [bp-010h]                    ; 03 5e f0
-    mov ah, byte [bp-00ah]                    ; 8a 66 f6
-    mov byte [es:bx+0022dh], ah               ; 26 88 a7 2d 02
-    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
-    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
-    mov si, word [bp-010h]                    ; 8b 76 f0
-    add si, dx                                ; 01 d6
-    mov word [es:si+022h], 0ff05h             ; 26 c7 44 22 05 ff
-    mov byte [es:si+024h], al                 ; 26 88 44 24
-    mov byte [es:si+025h], 000h               ; 26 c6 44 25 00
-    mov word [es:si+028h], 00200h             ; 26 c7 44 28 00 02
-    mov byte [es:si+027h], 001h               ; 26 c6 44 27 01
-    mov ax, word [bp-014h]                    ; 8b 46 ec
-    mov word [es:si+03ch], ax                 ; 26 89 44 3c
-    mov ax, word [bp-016h]                    ; 8b 46 ea
-    mov word [es:si+03ah], ax                 ; 26 89 44 3a
-    mov word [es:si+038h], di                 ; 26 89 7c 38
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
-    mov word [es:si+036h], ax                 ; 26 89 44 36
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
-    mov word [es:si+030h], ax                 ; 26 89 44 30
-    mov ax, word [bp-020h]                    ; 8b 46 e0
-    mov word [es:si+032h], ax                 ; 26 89 44 32
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
-    mov word [es:si+034h], ax                 ; 26 89 44 34
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    cmp AL, strict byte 001h                  ; 3c 01
-    jc short 093cfh                           ; 72 0c
-    jbe short 093d7h                          ; 76 12
-    cmp AL, strict byte 003h                  ; 3c 03
-    je short 093dfh                           ; 74 16
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 093dbh                           ; 74 0e
-    jmp short 09428h                          ; eb 59
-    test al, al                               ; 84 c0
-    jne short 09428h                          ; 75 55
-    mov DL, strict byte 040h                  ; b2 40
-    jmp short 093e1h                          ; eb 0a
-    mov DL, strict byte 048h                  ; b2 48
-    jmp short 093e1h                          ; eb 06
-    mov DL, strict byte 050h                  ; b2 50
-    jmp short 093e1h                          ; eb 02
-    mov DL, strict byte 058h                  ; b2 58
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 007h                  ; 04 07
-    movzx bx, al                              ; 0f b6 d8
-    mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 bf 82
-    test al, al                               ; 84 c0
-    je short 09428h                           ; 74 37
-    mov al, dl                                ; 88 d0
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 b2 82
-    xor ah, ah                                ; 30 e4
-    mov si, ax                                ; 89 c6
-    sal si, 008h                              ; c1 e6 08
-    movzx ax, dl                              ; 0f b6 c2
-    call 016ach                               ; e8 a5 82
-    xor ah, ah                                ; 30 e4
-    add ax, si                                ; 01 f0
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov al, dl                                ; 88 d0
-    add AL, strict byte 002h                  ; 04 02
-    xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 95 82
-    xor ah, ah                                ; 30 e4
-    mov word [bp-02ah], ax                    ; 89 46 d6
-    mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 8b 82
-    xor ah, ah                                ; 30 e4
-    mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 09438h                          ; eb 10
-    push dword [bp-016h]                      ; 66 ff 76 ea
-    push di                                   ; 57
-    push word [bp-01ah]                       ; ff 76 e6
-    mov dx, ss                                ; 8c d2
-    lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05915h                               ; e8 dd c4
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 ee 84
-    push dword [bp-016h]                      ; 66 ff 76 ea
-    push di                                   ; 57
-    push word [bp-01ah]                       ; ff 76 e6
-    mov ax, word [bp-026h]                    ; 8b 46 da
-    push ax                                   ; 50
-    mov ax, word [bp-02ah]                    ; 8b 46 d6
-    push ax                                   ; 50
-    mov ax, word [bp-028h]                    ; 8b 46 d8
-    push ax                                   ; 50
-    push word [bp-01eh]                       ; ff 76 e2
-    push word [bp-01ch]                       ; ff 76 e4
-    push word [bp-020h]                       ; ff 76 e0
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    push ax                                   ; 50
-    push 00cd6h                               ; 68 d6 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 00 85
-    add sp, strict byte 0001ch                ; 83 c4 1c
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov di, word [bp-010h]                    ; 8b 7e f0
-    add di, ax                                ; 01 c7
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    lea di, [di+02ah]                         ; 8d 7d 2a
-    push DS                                   ; 1e
-    push SS                                   ; 16
-    pop DS                                    ; 1f
-    lea si, [bp-02ah]                         ; 8d 76 d6
-    movsw                                     ; a5
-    movsw                                     ; a5
-    movsw                                     ; a5
-    pop DS                                    ; 1f
-    mov bx, word [bp-010h]                    ; 8b 5e f0
-    mov al, byte [es:bx+001e2h]               ; 26 8a 87 e2 01
-    mov ah, byte [bp-008h]                    ; 8a 66 f8
-    add ah, 00ch                              ; 80 c4 0c
-    movzx bx, al                              ; 0f b6 d8
-    add bx, word [bp-010h]                    ; 03 5e f0
-    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov bx, word [bp-010h]                    ; 8b 5e f0
-    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
-    mov dx, strict word 00075h                ; ba 75 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 93 81
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, strict word 00075h                ; ba 75 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 93 81
-    jmp near 0956ah                           ; e9 9c 00
-    cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne near 0956ah                           ; 0f 85 94 00
-    cmp di, 00101h                            ; 81 ff 01 01
-    jne near 0956ah                           ; 0f 85 8c 00
-    les bx, [bp-010h]                         ; c4 5e f0
-    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00
-    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
-    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
-    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
-    mov word [es:bx+008h], dx                 ; 26 89 57 08
-    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h
-    ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02
-    mov bx, 000a1h                            ; bb a1 00
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov dx, es                                ; 8c c2
-    call 087f7h                               ; e8 e5 f2
-    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    db  00fh, 095h, 0c0h
-    ; setne al                                  ; 0f 95 c0
-    xor ah, ah                                ; 30 e4
-    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
-    mov es, [bp-00eh]                         ; 8e 46 f2
-    add bx, word [bp-010h]                    ; 03 5e f0
-    mov ah, byte [bp-00ah]                    ; 8a 66 f6
-    mov byte [es:bx+0022dh], ah               ; 26 88 a7 2d 02
-    movzx si, cl                              ; 0f b6 f1
-    imul si, si, strict byte 0001ch           ; 6b f6 1c
-    add si, word [bp-010h]                    ; 03 76 f0
-    mov word [es:si+022h], 00505h             ; 26 c7 44 22 05 05
-    mov byte [es:si+024h], al                 ; 26 88 44 24
-    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
-    mov bx, word [bp-010h]                    ; 8b 5e f0
-    mov al, byte [es:bx+001f3h]               ; 26 8a 87 f3 01
-    mov ah, byte [bp-008h]                    ; 8a 66 f8
-    add ah, 00ch                              ; 80 c4 0c
-    movzx bx, al                              ; 0f b6 d8
-    add bx, word [bp-010h]                    ; 03 5e f0
-    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov bx, word [bp-010h]                    ; 8b 5e f0
-    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
-    inc byte [bp-008h]                        ; fe 46 f8
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    les bx, [bp-010h]                         ; c4 5e f0
-    mov byte [es:bx+00231h], al               ; 26 88 87 31 02
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf9580 LB 0x43
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    mov dx, 00413h                            ; ba 13 04
-    xor ax, ax                                ; 31 c0
-    call 0166ch                               ; e8 dc 80
-    test ax, ax                               ; 85 c0
-    je short 095b9h                           ; 74 25
-    dec ax                                    ; 48
-    mov bx, ax                                ; 89 c3
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 0000ah                ; b9 0a 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 0959ch                               ; e2 fa
-    mov si, ax                                ; 89 c6
-    mov di, dx                                ; 89 d7
-    mov cx, strict word 00004h                ; b9 04 00
-    shr di, 1                                 ; d1 ef
-    rcr si, 1                                 ; d1 de
-    loop 095a9h                               ; e2 fa
-    mov dx, 00413h                            ; ba 13 04
-    xor ax, ax                                ; 31 c0
-    call 0167ah                               ; e8 c3 80
-    mov ax, si                                ; 89 f0
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-ahci_hba_init_:                              ; 0xf95c3 LB 0x166
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov si, ax                                ; 89 c6
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 93 80
-    mov bx, 00122h                            ; bb 22 01
-    mov di, ax                                ; 89 c7
-    mov ax, strict word 00010h                ; b8 10 00
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea dx, [si+004h]                         ; 8d 54 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    call 09580h                               ; e8 83 ff
-    mov word [bp-010h], ax                    ; 89 46 f0
-    test ax, ax                               ; 85 c0
-    je near 09708h                            ; 0f 84 02 01
-    mov ax, word [bp-010h]                    ; 8b 46 f0
-    mov es, di                                ; 8e c7
-    mov word [es:bx+00232h], ax               ; 26 89 87 32 02
-    mov byte [es:bx+00231h], 000h             ; 26 c6 87 31 02 00
-    xor bx, bx                                ; 31 db
-    mov es, ax                                ; 8e c0
-    mov byte [es:bx+00262h], 0ffh             ; 26 c6 87 62 02 ff
-    mov word [es:bx+00260h], si               ; 26 89 b7 60 02
-    db  066h, 026h, 0c7h, 087h, 064h, 002h, 000h, 0c0h, 00ch, 000h
-    ; mov dword [es:bx+00264h], strict dword 0000cc000h ; 66 26 c7 87 64 02 00 c0 0c 00
-    mov ax, strict word 00004h                ; b8 04 00
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea bx, [si+004h]                         ; 8d 5c 04
-    mov dx, bx                                ; 89 da
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    or AL, strict byte 001h                   ; 0c 01
-    mov cx, dx                                ; 89 d1
-    mov dx, bx                                ; 89 da
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov ax, strict word 00004h                ; b8 04 00
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea bx, [si+004h]                         ; 8d 5c 04
-    mov dx, bx                                ; 89 da
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    test AL, strict byte 001h                 ; a8 01
-    jne short 0965ch                          ; 75 de
-    xor ax, ax                                ; 31 c0
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    mov dx, bx                                ; 89 da
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    push strict byte 00000h                   ; 6a 00
-    mov bx, strict word 0001fh                ; bb 1f 00
-    xor cx, cx                                ; 31 c9
-    call 08673h                               ; e8 d1 ef
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 096cdh                          ; eb 20
-    xor al, al                                ; 30 c0
-    test al, al                               ; 84 c0
-    je short 096c4h                           ; 74 11
-    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    xor ax, ax                                ; 31 c0
-    mov dx, word [bp-010h]                    ; 8b 56 f0
-    call 090cfh                               ; e8 10 fa
-    dec byte [bp-00eh]                        ; fe 4e f2
-    je short 09706h                           ; 74 42
-    inc byte [bp-00ch]                        ; fe 46 f4
-    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 09706h                          ; 73 39
-    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
-    mov bx, strict word 00001h                ; bb 01 00
-    xor di, di                                ; 31 ff
-    jcxz 096deh                               ; e3 06
-    sal bx, 1                                 ; d1 e3
-    rcl di, 1                                 ; d1 d7
-    loop 096d8h                               ; e2 fa
-    mov ax, strict word 0000ch                ; b8 0c 00
-    xor cx, cx                                ; 31 c9
-    mov dx, si                                ; 89 f2
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    lea dx, [si+004h]                         ; 8d 54 04
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    test dx, di                               ; 85 fa
-    jne short 09702h                          ; 75 04
-    test ax, bx                               ; 85 d8
-    je short 096adh                           ; 74 ab
-    mov AL, strict byte 001h                  ; b0 01
-    jmp short 096afh                          ; eb a9
-    xor ax, ax                                ; 31 c0
-    lea sp, [bp-00ah]                         ; 8d 66 f6
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0f8h, 097h, 0d6h, 097h, 0dch, 097h, 0e2h, 097h, 0e8h
-    db  097h, 0eeh, 097h, 0f4h, 097h, 0f8h, 097h
-_ahci_init:                                  ; 0xf9729 LB 0xfe
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    mov ax, 00601h                            ; b8 01 06
-    mov dx, strict word 00001h                ; ba 01 00
-    call 09c47h                               ; e8 0d 05
-    mov dx, ax                                ; 89 c2
-    cmp ax, strict word 0ffffh                ; 3d ff ff
-    je near 09820h                            ; 0f 84 dd 00
-    xor al, al                                ; 30 c0
-    shr ax, 008h                              ; c1 e8 08
-    mov byte [bp-00ah], al                    ; 88 46 f6
-    mov byte [bp-008h], dl                    ; 88 56 f8
-    xor dh, dh                                ; 30 f6
-    xor ah, ah                                ; 30 e4
-    mov bx, strict word 00034h                ; bb 34 00
-    call 09c72h                               ; e8 1a 05
-    mov cl, al                                ; 88 c1
-    test cl, cl                               ; 84 c9
-    je short 09781h                           ; 74 23
-    movzx bx, cl                              ; 0f b6 d9
-    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
-    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
-    mov dx, di                                ; 89 fa
-    mov ax, si                                ; 89 f0
-    call 09c72h                               ; e8 02 05
-    cmp AL, strict byte 012h                  ; 3c 12
-    je short 09781h                           ; 74 0d
-    mov al, cl                                ; 88 c8
-    db  0feh, 0c0h
-    ; inc al                                    ; fe c0
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, di                                ; 89 fa
-    mov ax, si                                ; 89 f0
-    jmp short 09755h                          ; eb d4
-    test cl, cl                               ; 84 c9
-    je near 09820h                            ; 0f 84 99 00
-    add cl, 002h                              ; 80 c1 02
-    movzx bx, cl                              ; 0f b6 d9
-    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
-    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
-    mov dx, di                                ; 89 fa
-    mov ax, si                                ; 89 f0
-    call 09c72h                               ; e8 d6 04
-    cmp AL, strict byte 010h                  ; 3c 10
-    jne near 09820h                           ; 0f 85 7e 00
-    mov byte [bp-006h], 000h                  ; c6 46 fa 00
-    mov al, cl                                ; 88 c8
-    add AL, strict byte 002h                  ; 04 02
-    movzx bx, al                              ; 0f b6 d8
-    mov dx, di                                ; 89 fa
-    mov ax, si                                ; 89 f0
-    call 09c96h                               ; e8 e2 04
-    mov dx, ax                                ; 89 c2
-    and ax, strict word 0000fh                ; 25 0f 00
-    sub ax, strict word 00004h                ; 2d 04 00
-    cmp ax, strict word 0000bh                ; 3d 0b 00
-    jnbe short 097f8h                         ; 77 37
-    push CS                                   ; 0e
-    pop ES                                    ; 07
-    mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09712h                            ; bf 12 97
-    repne scasb                               ; f2 ae
-    sal cx, 1                                 ; d1 e1
-    mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-068e7h]               ; 2e 8b 85 19 97
-    jmp ax                                    ; ff e0
-    mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 097f8h                          ; eb 1c
-    mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 097f8h                          ; eb 16
-    mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 097f8h                          ; eb 10
-    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 097f8h                          ; eb 0a
-    mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 097f8h                          ; eb 04
-    mov byte [bp-006h], 024h                  ; c6 46 fa 24
-    mov si, dx                                ; 89 d6
-    shr si, 004h                              ; c1 ee 04
-    sal si, 002h                              ; c1 e6 02
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    test al, al                               ; 84 c0
-    je short 09820h                           ; 74 19
-    movzx bx, al                              ; 0f b6 d8
-    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
-    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 09cb8h                               ; e8 a3 04
-    test AL, strict byte 001h                 ; a8 01
-    je short 09820h                           ; 74 07
-    and AL, strict byte 0f0h                  ; 24 f0
-    add ax, si                                ; 01 f0
-    call 095c3h                               ; e8 a3 fd
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-apm_out_str_:                                ; 0xf9827 LB 0x39
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    mov bx, ax                                ; 89 c3
-    cmp byte [bx], 000h                       ; 80 3f 00
-    je short 0983ch                           ; 74 0a
-    mov al, byte [bx]                         ; 8a 07
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    mov al, byte [bx]                         ; 8a 07
-    db  00ah, 0c0h
-    ; or al, al                                 ; 0a c0
-    jne short 09834h                          ; 75 f8
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    sbb word [bx+si-066b1h], strict byte 0ff95h ; 83 98 4f 99 95
-    cbw                                       ; 98
-    mov AL, strict byte 098h                  ; b0 98
-    dec di                                    ; 4f
-    cwd                                       ; 99
-    fistp dword [bx+si-066b1h]                ; db 98 4f 99
-    loopne 097eah                             ; e0 98
-    and AL, strict byte 099h                  ; 24 99
-    and AL, strict byte 099h                  ; 24 99
-    and AL, strict byte 099h                  ; 24 99
-    pop DS                                    ; 1f
-    cwd                                       ; 99
-    and AL, strict byte 099h                  ; 24 99
-    and AL, strict byte 099h                  ; 24 99
-    db  018h
-    cwd                                       ; 99
-_apm_function:                               ; 0xf9860 LB 0xf5
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe near 09924h                          ; 0f 87 b0 00
-    mov bx, ax                                ; 89 c3
-    add bx, ax                                ; 01 c3
-    mov dx, word [bp+018h]                    ; 8b 56 18
-    or dl, 001h                               ; 80 ca 01
-    jmp word [cs:bx-067beh]                   ; 2e ff a7 42 98
-    mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
-    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
-    jmp near 0994fh                           ; e9 ba 00
-    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 09ed4h                ; c7 46 0c d4 9e
-    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
-    mov ax, strict word 0fff0h                ; b8 f0 ff
-    mov word [bp+006h], ax                    ; 89 46 06
-    mov word [bp+004h], ax                    ; 89 46 04
-    jmp near 0994fh                           ; e9 9f 00
-    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [bp+010h], ax                    ; 89 46 10
-    mov word [bp+00eh], ax                    ; 89 46 0e
-    mov ax, strict word 0fff0h                ; b8 f0 ff
-    mov word [bp+006h], ax                    ; 89 46 06
-    mov word [bp+004h], ax                    ; 89 46 04
-    xor bx, bx                                ; 31 db
-    sal ebx, 010h                             ; 66 c1 e3 10
-    mov si, ax                                ; 89 c6
-    sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 0994fh                           ; e9 74 00
-    sti                                       ; fb
-    hlt                                       ; f4
-    jmp near 0994fh                           ; e9 6f 00
-    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09905h                           ; 74 1f
-    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 098fdh                           ; 74 11
-    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 0990dh                          ; 75 1b
-    mov dx, 08900h                            ; ba 00 89
-    mov ax, 00d10h                            ; b8 10 0d
-    call 09827h                               ; e8 2c ff
-    jmp short 0994fh                          ; eb 52
-    mov dx, 08900h                            ; ba 00 89
-    mov ax, 00d18h                            ; b8 18 0d
-    jmp short 098f8h                          ; eb f3
-    mov dx, 08900h                            ; ba 00 89
-    mov ax, 00d20h                            ; b8 20 0d
-    jmp short 098f8h                          ; eb eb
-    or ah, 00ah                               ; 80 cc 0a
-    mov word [bp+012h], ax                    ; 89 46 12
-    mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 0994fh                          ; eb 37
-    mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 0994fh                          ; eb 30
-    or ah, 080h                               ; 80 cc 80
-    jmp short 09910h                          ; eb ec
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 02 80
-    push word [bp+00ch]                       ; ff 76 0c
-    push word [bp+012h]                       ; ff 76 12
-    push 00d29h                               ; 68 29 0d
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 35 80
-    add sp, strict byte 00008h                ; 83 c4 08
-    mov ax, word [bp+012h]                    ; 8b 46 12
-    xor ah, ah                                ; 30 e4
-    or ah, 00ch                               ; 80 cc 0c
-    mov word [bp+012h], ax                    ; 89 46 12
-    or byte [bp+018h], 001h                   ; 80 4e 18 01
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci16_select_reg_:                           ; 0xf9955 LB 0x24
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    and dl, 0fch                              ; 80 e2 fc
-    mov bx, dx                                ; 89 d3
-    mov dx, 00cf8h                            ; ba f8 0c
-    movzx eax, ax                             ; 66 0f b7 c0
-    sal eax, 008h                             ; 66 c1 e0 08
-    or eax, strict dword 080000000h           ; 66 0d 00 00 00 80
-    db  08ah, 0c3h
-    ; mov al, bl                                ; 8a c3
-    out DX, eax                               ; 66 ef
-    lea sp, [bp-002h]                         ; 8d 66 fe
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci16_find_device_:                          ; 0xf9979 LB 0xf7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 0000ch                ; 83 ec 0c
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov si, bx                                ; 89 de
-    mov di, cx                                ; 89 cf
-    test cx, cx                               ; 85 c9
-    xor bx, bx                                ; 31 db
-    mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    test bl, 007h                             ; f6 c3 07
-    jne short 099c1h                          ; 75 2d
-    mov dx, strict word 0000eh                ; ba 0e 00
-    mov ax, bx                                ; 89 d8
-    call 09955h                               ; e8 b9 ff
-    mov dx, 00cfeh                            ; ba fe 0c
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    mov byte [bp-006h], al                    ; 88 46 fa
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 099afh                          ; 75 06
-    add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09a42h                           ; e9 93 00
-    test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 099bch                           ; 74 07
-    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
-    jmp short 099c1h                          ; eb 05
-    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    and AL, strict byte 007h                  ; 24 07
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 099e9h                          ; 75 1f
-    mov ax, bx                                ; 89 d8
-    shr ax, 008h                              ; c1 e8 08
-    test ax, ax                               ; 85 c0
-    jne short 099e9h                          ; 75 16
-    mov dx, strict word 0001ah                ; ba 1a 00
-    mov ax, bx                                ; 89 d8
-    call 09955h                               ; e8 7a ff
-    mov dx, 00cfeh                            ; ba fe 0c
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 099e9h                          ; 76 03
-    mov byte [bp-008h], al                    ; 88 46 f8
-    test di, di                               ; 85 ff
-    je short 099f2h                           ; 74 05
-    mov dx, strict word 00008h                ; ba 08 00
-    jmp short 099f4h                          ; eb 02
-    xor dx, dx                                ; 31 d2
-    mov ax, bx                                ; 89 d8
-    call 09955h                               ; e8 5c ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov word [bp-00ch], dx                    ; 89 56 f4
-    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
-    test di, di                               ; 85 ff
-    je short 09a23h                           ; 74 0f
-    mov cx, strict word 00008h                ; b9 08 00
-    shr dx, 1                                 ; d1 ea
-    rcr ax, 1                                 ; d1 d8
-    loop 09a17h                               ; e2 fa
-    mov word [bp-00eh], ax                    ; 89 46 f2
-    mov word [bp-00ch], dx                    ; 89 56 f4
-    mov ax, word [bp-00ch]                    ; 8b 46 f4
-    cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jne short 09a33h                          ; 75 08
-    mov ax, word [bp-00eh]                    ; 8b 46 f2
-    cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09a39h                           ; 74 06
-    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    je short 09a3fh                           ; 74 06
-    dec si                                    ; 4e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09a51h                           ; 74 12
-    add bx, word [bp-00ah]                    ; 03 5e f6
-    mov dx, bx                                ; 89 da
-    shr dx, 008h                              ; c1 ea 08
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    cmp dx, ax                                ; 39 c2
-    jbe near 0998fh                           ; 0f 86 3e ff
-    cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09a5ah                          ; 75 04
-    mov ax, bx                                ; 89 d8
-    jmp short 09a5dh                          ; eb 03
-    mov ax, strict word 0ffffh                ; b8 ff ff
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    push dx                                   ; 52
-    wait                                      ; 9b
-    insb                                      ; 6c
-    wait                                      ; 9b
-    jnle short 09a05h                         ; 7f 9b
-    xchg sp, ax                               ; 94
-    wait                                      ; 9b
-    cmpsw                                     ; a7
-    wait                                      ; 9b
-    db  0bah
-    wait                                      ; 9b
-_pci16_function:                             ; 0xf9a70 LB 0x1d7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    and word [bp+020h], 000ffh                ; 81 66 20 ff 00
-    and word [bp+02ch], strict byte 0fffeh    ; 83 66 2c fe
-    mov bx, word [bp+020h]                    ; 8b 5e 20
-    xor bh, bh                                ; 30 ff
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    xor ah, ah                                ; 30 e4
-    cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09aa9h                           ; 72 1a
-    jbe short 09b01h                          ; 76 70
-    cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je near 09bceh                            ; 0f 84 36 01
-    cmp bx, strict byte 00008h                ; 83 fb 08
-    jc near 09c13h                            ; 0f 82 74 01
-    cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe near 09b26h                           ; 0f 86 80 00
-    jmp near 09c13h                           ; e9 6a 01
-    cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09ad1h                           ; 74 23
-    cmp bx, strict byte 00001h                ; 83 fb 01
-    jne near 09c13h                           ; 0f 85 5e 01
-    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
-    mov word [bp+014h], 00210h                ; c7 46 14 10 02
-    mov word [bp+01ch], strict word 00000h    ; c7 46 1c 00 00
-    mov word [bp+018h], 04350h                ; c7 46 18 50 43
-    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09c40h                           ; e9 6f 01
-    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09addh                          ; 75 06
-    or ah, 083h                               ; 80 cc 83
-    jmp near 09c39h                           ; e9 5c 01
-    mov bx, word [bp+008h]                    ; 8b 5e 08
-    mov dx, word [bp+01ch]                    ; 8b 56 1c
-    mov ax, word [bp+018h]                    ; 8b 46 18
-    xor cx, cx                                ; 31 c9
-    call 09979h                               ; e8 8e fe
-    cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09afbh                          ; 75 0b
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    xor ah, ah                                ; 30 e4
-    or ah, 086h                               ; 80 cc 86
-    jmp near 09c39h                           ; e9 3e 01
-    mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09c40h                           ; e9 3f 01
-    mov bx, word [bp+008h]                    ; 8b 5e 08
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov dx, word [bp+01eh]                    ; 8b 56 1e
-    mov cx, strict word 00001h                ; b9 01 00
-    call 09979h                               ; e8 69 fe
-    cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09b20h                          ; 75 0b
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    xor ah, ah                                ; 30 e4
-    or ah, 086h                               ; 80 cc 86
-    jmp near 09c39h                           ; e9 19 01
-    mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09c40h                           ; e9 1a 01
-    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09b33h                           ; 72 06
-    or ah, 087h                               ; 80 cc 87
-    jmp near 09c39h                           ; e9 06 01
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09955h                               ; e8 19 fe
-    mov bx, word [bp+020h]                    ; 8b 5e 20
-    xor bh, bh                                ; 30 ff
-    sub bx, strict byte 00008h                ; 83 eb 08
-    cmp bx, strict byte 00005h                ; 83 fb 05
-    jnbe near 09c40h                          ; 0f 87 f5 00
-    add bx, bx                                ; 01 db
-    jmp word [cs:bx-0659ch]                   ; 2e ff a7 64 9a
-    mov bx, word [bp+01ch]                    ; 8b 5e 1c
-    xor bl, bl                                ; 30 db
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    and dx, strict byte 00003h                ; 83 e2 03
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    or bx, ax                                 ; 09 c3
-    mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp near 09c40h                           ; e9 d4 00
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    xor dh, dh                                ; 30 f6
-    and dl, 002h                              ; 80 e2 02
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    in ax, DX                                 ; ed
-    mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp near 09c40h                           ; e9 c1 00
-    mov dx, 00cfch                            ; ba fc 0c
-    in eax, DX                                ; 66 ed
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    shr eax, 010h                             ; 66 c1 e8 10
-    xchg dx, ax                               ; 92
-    mov word [bp+01ch], ax                    ; 89 46 1c
-    mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp near 09c40h                           ; e9 ac 00
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    xor dh, dh                                ; 30 f6
-    and dl, 003h                              ; 80 e2 03
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    out DX, AL                                ; ee
-    jmp near 09c40h                           ; e9 99 00
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov dx, word [bp+004h]                    ; 8b 56 04
-    xor dh, dh                                ; 30 f6
-    and dl, 002h                              ; 80 e2 02
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    out DX, ax                                ; ef
-    jmp near 09c40h                           ; e9 86 00
-    mov ax, word [bp+01ch]                    ; 8b 46 1c
-    mov cx, word [bp+01eh]                    ; 8b 4e 1e
-    mov dx, 00cfch                            ; ba fc 0c
-    xchg cx, ax                               ; 91
-    sal eax, 010h                             ; 66 c1 e0 10
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    out DX, eax                               ; 66 ef
-    jmp short 09c40h                          ; eb 72
-    mov bx, word [bp+004h]                    ; 8b 5e 04
-    mov es, [bp+026h]                         ; 8e 46 26
-    mov word [bp-008h], bx                    ; 89 5e f8
-    mov [bp-006h], es                         ; 8c 46 fa
-    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
-    cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09bf4h                          ; 76 11
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    xor ah, ah                                ; 30 e4
-    or ah, 089h                               ; 80 cc 89
-    mov word [bp+020h], ax                    ; 89 46 20
-    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09c08h                          ; eb 14
-    les di, [es:bx+002h]                      ; 26 c4 7f 02
-    mov si, 0f2c0h                            ; be c0 f2
-    mov dx, ds                                ; 8c da
-    push DS                                   ; 1e
-    mov ds, dx                                ; 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
-    mov ax, word [0f4a0h]                     ; a1 a0 f4
-    les bx, [bp-008h]                         ; c4 5e f8
-    mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09c40h                          ; eb 2d
-    mov bx, 00da0h                            ; bb a0 0d
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01931h                               ; e8 13 7d
-    mov ax, word [bp+014h]                    ; 8b 46 14
-    push ax                                   ; 50
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    push ax                                   ; 50
-    push 00d5ch                               ; 68 5c 0d
-    push strict byte 00004h                   ; 6a 04
-    call 01972h                               ; e8 44 7d
-    add sp, strict byte 00008h                ; 83 c4 08
-    mov ax, word [bp+020h]                    ; 8b 46 20
-    xor ah, ah                                ; 30 e4
-    or ah, 081h                               ; 80 cc 81
-    mov word [bp+020h], ax                    ; 89 46 20
-    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9c47 LB 0x2b
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push si                                   ; 56
-    mov cx, dx                                ; 89 d1
-    xor si, si                                ; 31 f6
-    mov dx, ax                                ; 89 c2
-    mov ax, 0b103h                            ; b8 03 b1
-    sal ecx, 010h                             ; 66 c1 e1 10
-    db  08bh, 0cah
-    ; mov cx, dx                                ; 8b ca
-    int 01ah                                  ; cd 1a
-    cmp ah, 000h                              ; 80 fc 00
-    je near 09c68h                            ; 0f 84 03 00
-    mov bx, strict word 0ffffh                ; bb ff ff
-    mov ax, bx                                ; 89 d8
-    lea sp, [bp-006h]                         ; 8d 66 fa
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9c72 LB 0x24
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push di                                   ; 57
-    movzx di, bl                              ; 0f b6 fb
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 008h                              ; c1 e3 08
-    movzx ax, dl                              ; 0f b6 c2
-    or bx, ax                                 ; 09 c3
-    mov ax, 0b108h                            ; b8 08 b1
-    int 01ah                                  ; cd 1a
-    movzx ax, cl                              ; 0f b6 c1
-    xor dx, dx                                ; 31 d2
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9c96 LB 0x22
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push di                                   ; 57
-    movzx di, bl                              ; 0f b6 fb
-    xor ah, ah                                ; 30 e4
-    sal ax, 008h                              ; c1 e0 08
-    movzx bx, dl                              ; 0f b6 da
-    or bx, ax                                 ; 09 c3
-    mov ax, 0b109h                            ; b8 09 b1
-    int 01ah                                  ; cd 1a
-    mov ax, cx                                ; 89 c8
-    xor dx, dx                                ; 31 d2
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9cb8 LB 0x27
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push di                                   ; 57
-    movzx di, bl                              ; 0f b6 fb
-    movzx bx, al                              ; 0f b6 d8
-    sal bx, 008h                              ; c1 e3 08
-    movzx ax, dl                              ; 0f b6 c2
-    or bx, ax                                 ; 09 c3
-    mov ax, 0b10ah                            ; b8 0a b1
-    int 01ah                                  ; cd 1a
-    db  08bh, 0c1h
-    ; mov ax, cx                                ; 8b c1
-    shr ecx, 010h                             ; 66 c1 e9 10
-    mov dx, cx                                ; 89 ca
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-vds_is_present_:                             ; 0xf9cdf LB 0x1d
-    push bx                                   ; 53
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, strict word 0007bh                ; bb 7b 00
-    mov ax, strict word 00040h                ; b8 40 00
-    mov es, ax                                ; 8e c0
-    test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09cf7h                           ; 74 06
-    mov ax, strict word 00001h                ; b8 01 00
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-    xor ax, ax                                ; 31 c0
-    pop bp                                    ; 5d
-    pop bx                                    ; 5b
-    retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9cfc LB 0x1e
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    mov bx, ax                                ; 89 c3
-    mov ax, dx                                ; 89 d0
-    xor dx, dx                                ; 31 d2
-    mov cx, strict word 00004h                ; b9 04 00
-    sal ax, 1                                 ; d1 e0
-    rcl dx, 1                                 ; d1 d2
-    loop 09d0ah                               ; e2 fa
-    xor cx, cx                                ; 31 c9
-    add ax, bx                                ; 01 d8
-    adc dx, cx                                ; 11 ca
-    pop bp                                    ; 5d
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9d1a LB 0x79
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push si                                   ; 56
-    push di                                   ; 57
-    mov di, ax                                ; 89 c7
-    mov si, dx                                ; 89 d6
-    mov ax, bx                                ; 89 d8
-    mov dx, cx                                ; 89 ca
-    mov bx, word [bp+004h]                    ; 8b 5e 04
-    mov es, si                                ; 8e c6
-    mov word [es:di], bx                      ; 26 89 1d
-    mov bx, word [bp+006h]                    ; 8b 5e 06
-    mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09cfch                               ; e8 c3 ff
-    mov es, si                                ; 8e c6
-    mov word [es:di+004h], ax                 ; 26 89 45 04
-    mov word [es:di+006h], dx                 ; 26 89 55 06
-    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
-    call 09cdfh                               ; e8 93 ff
-    test ax, ax                               ; 85 c0
-    je short 09d63h                           ; 74 13
-    mov es, si                                ; 8e c6
-    mov ax, 08105h                            ; b8 05 81
-    mov dx, strict word 00000h                ; ba 00 00
-    int 04bh                                  ; cd 4b
-    jc near 09d60h                            ; 0f 82 02 00
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    cbw                                       ; 98
-    jmp short 09d8ah                          ; eb 27
-    mov es, si                                ; 8e c6
-    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
-    mov dx, word [es:di+004h]                 ; 26 8b 55 04
-    mov ax, word [es:di+006h]                 ; 26 8b 45 06
-    mov word [es:di+010h], dx                 ; 26 89 55 10
-    mov word [es:di+012h], ax                 ; 26 89 45 12
-    mov ax, word [bp+004h]                    ; 8b 46 04
-    mov word [es:di+014h], ax                 ; 26 89 45 14
-    mov ax, bx                                ; 89 d8
-    mov word [es:di+016h], bx                 ; 26 89 5d 16
-    xor ax, bx                                ; 31 d8
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bp                                    ; 5d
-    retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xf9d93 LB 0x3d
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push di                                   ; 57
-    mov bx, ax                                ; 89 c3
-    call 09cdfh                               ; e8 42 ff
-    test ax, ax                               ; 85 c0
-    je short 09db4h                           ; 74 13
-    mov di, bx                                ; 89 df
-    mov es, dx                                ; 8e c2
-    mov ax, 08106h                            ; b8 06 81
-    mov dx, strict word 00000h                ; ba 00 00
-    int 04bh                                  ; cd 4b
-    jc near 09db3h                            ; 0f 82 02 00
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    cbw                                       ; 98
-    mov es, dx                                ; 8e c2
-    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
-    lea sp, [bp-004h]                         ; 8d 66 fc
-    pop di                                    ; 5f
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-    times 0xd db 0
-__U4D:                                       ; 0xf9dd0 LB 0x39
-    pushfw                                    ; 9c
-    push eax                                  ; 66 50
-    push edx                                  ; 66 52
-    push ecx                                  ; 66 51
-    rol eax, 010h                             ; 66 c1 c0 10
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    ror eax, 010h                             ; 66 c1 c8 10
-    db  066h, 033h, 0d2h
-    ; xor edx, edx                              ; 66 33 d2
-    shr ecx, 010h                             ; 66 c1 e9 10
-    db  08bh, 0cbh
-    ; mov cx, bx                                ; 8b cb
-    div ecx                                   ; 66 f7 f1
-    db  08bh, 0dah
-    ; mov bx, dx                                ; 8b da
-    pop ecx                                   ; 66 59
-    shr edx, 010h                             ; 66 c1 ea 10
-    db  08bh, 0cah
-    ; mov cx, dx                                ; 8b ca
-    pop edx                                   ; 66 5a
-    ror eax, 010h                             ; 66 c1 c8 10
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    add sp, strict byte 00002h                ; 83 c4 02
-    pop ax                                    ; 58
-    rol eax, 010h                             ; 66 c1 c0 10
-    popfw                                     ; 9d
-    retn                                      ; c3
-__U4M:                                       ; 0xf9e09 LB 0x31
-    pushfw                                    ; 9c
-    push eax                                  ; 66 50
-    push edx                                  ; 66 52
-    push ecx                                  ; 66 51
-    rol eax, 010h                             ; 66 c1 c0 10
-    db  08bh, 0c2h
-    ; mov ax, dx                                ; 8b c2
-    ror eax, 010h                             ; 66 c1 c8 10
-    db  066h, 033h, 0d2h
-    ; xor edx, edx                              ; 66 33 d2
-    shr ecx, 010h                             ; 66 c1 e9 10
-    db  08bh, 0cbh
-    ; mov cx, bx                                ; 8b cb
-    mul ecx                                   ; 66 f7 e1
-    pop ecx                                   ; 66 59
-    pop edx                                   ; 66 5a
-    ror eax, 010h                             ; 66 c1 c8 10
-    db  08bh, 0d0h
-    ; mov dx, ax                                ; 8b d0
-    add sp, strict byte 00002h                ; 83 c4 02
-    pop ax                                    ; 58
-    rol eax, 010h                             ; 66 c1 c0 10
-    popfw                                     ; 9d
-    retn                                      ; c3
-__U8LS:                                      ; 0xf9e3a LB 0x10
-    test si, si                               ; 85 f6
-    je short 09e49h                           ; 74 0b
-    sal dx, 1                                 ; d1 e2
-    rcl cx, 1                                 ; d1 d1
-    rcl bx, 1                                 ; d1 d3
-    rcl ax, 1                                 ; d1 d0
-    dec si                                    ; 4e
-    jne short 09e3eh                          ; 75 f5
-    retn                                      ; c3
-__U8RS:                                      ; 0xf9e4a LB 0x10
-    test si, si                               ; 85 f6
-    je short 09e59h                           ; 74 0b
-    shr ax, 1                                 ; d1 e8
-    rcr bx, 1                                 ; d1 db
-    rcr cx, 1                                 ; d1 d9
-    rcr dx, 1                                 ; d1 da
-    dec si                                    ; 4e
-    jne short 09e4eh                          ; 75 f5
-    retn                                      ; c3
-_fmemset_:                                   ; 0xf9e5a LB 0xd
-    push di                                   ; 57
-    mov es, dx                                ; 8e c2
-    db  08bh, 0f8h
-    ; mov di, ax                                ; 8b f8
-    xchg al, bl                               ; 86 d8
-    rep stosb                                 ; f3 aa
-    xchg al, bl                               ; 86 d8
-    pop di                                    ; 5f
-    retn                                      ; c3
-_fmemcpy_:                                   ; 0xf9e67 LB 0x33
-    push bp                                   ; 55
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    push di                                   ; 57
-    push DS                                   ; 1e
-    push si                                   ; 56
-    mov es, dx                                ; 8e c2
-    db  08bh, 0f8h
-    ; mov di, ax                                ; 8b f8
-    mov ds, cx                                ; 8e d9
-    db  08bh, 0f3h
-    ; mov si, bx                                ; 8b f3
-    mov cx, word [bp+004h]                    ; 8b 4e 04
-    rep movsb                                 ; f3 a4
-    pop si                                    ; 5e
-    pop DS                                    ; 1f
-    pop di                                    ; 5f
-    leave                                     ; c9
-    retn                                      ; c3
-    add byte [bx+si-04d62h], dh               ; 00 b0 9e b2
-    sahf                                      ; 9e
-    mov DH, strict byte 09eh                  ; b6 9e
-    mov DH, strict byte 09eh                  ; b6 9e
-    mov DH, strict byte 09eh                  ; b6 9e
-    mov ax, 0b89eh                            ; b8 9e b8
-    sahf                                      ; 9e
-    mov dx, 0be9eh                            ; ba 9e be
-    sahf                                      ; 9e
-    mov si, 0c09eh                            ; be 9e c0
-    sahf                                      ; 9e
-    lds bx, [bp-06139h]                       ; c5 9e c7 9e
-apm_worker:                                  ; 0xf9e9a LB 0x3a
-    sti                                       ; fb
-    push ax                                   ; 50
-    db  032h, 0e4h
-    ; xor ah, ah                                ; 32 e4
-    sub AL, strict byte 004h                  ; 2c 04
-    db  08bh, 0e8h
-    ; mov bp, ax                                ; 8b e8
-    sal bp, 1                                 ; d1 e5
-    cmp AL, strict byte 00dh                  ; 3c 0d
-    pop ax                                    ; 58
-    mov AH, strict byte 053h                  ; b4 53
-    jnc short 09ed0h                          ; 73 25
-    jmp word [cs:bp-06180h]                   ; 2e ff a6 80 9e
-    jmp short 09eceh                          ; eb 1c
-    sti                                       ; fb
-    hlt                                       ; f4
-    jmp short 09eceh                          ; eb 18
-    jmp short 09eceh                          ; eb 16
-    jmp short 09ed0h                          ; eb 16
-    mov AH, strict byte 080h                  ; b4 80
-    jmp short 09ed2h                          ; eb 14
-    jmp short 09ed0h                          ; eb 10
-    mov ax, 00102h                            ; b8 02 01
-    jmp short 09eceh                          ; eb 09
-    jmp short 09eceh                          ; eb 07
-    mov BL, strict byte 000h                  ; b3 00
-    mov cx, strict word 00000h                ; b9 00 00
-    jmp short 09eceh                          ; eb 00
-    clc                                       ; f8
-    retn                                      ; c3
-    mov AH, strict byte 009h                  ; b4 09
-    stc                                       ; f9
-    retn                                      ; c3
-apm_pm16_entry:                              ; 0xf9ed4 LB 0x11
-    mov AH, strict byte 002h                  ; b4 02
-    push DS                                   ; 1e
-    push bp                                   ; 55
-    push CS                                   ; 0e
-    pop bp                                    ; 5d
-    add bp, strict byte 00008h                ; 83 c5 08
-    mov ds, bp                                ; 8e dd
-    call 09e9ah                               ; e8 b8 ff
-    pop bp                                    ; 5d
-    pop DS                                    ; 1f
-    retf                                      ; cb
-
-  ; Padding 0x3b1b bytes at 0xf9ee5
-  times 15131 db 0
-
-section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
-bios32_service:                              ; 0xfda00 LB 0x26
-    pushfw                                    ; 9c
-    cmp bl, 000h                              ; 80 fb 00
-    jne short 0da22h                          ; 75 1c
-    cmp ax, 05024h                            ; 3d 24 50
-    inc bx                                    ; 43
-    dec cx                                    ; 49
-    mov AL, strict byte 080h                  ; b0 80
-    jne short 0da20h                          ; 75 11
-    mov bx, strict word 00000h                ; bb 00 00
-    db  00fh
-    add byte [bx+di-01000h], bh               ; 00 b9 00 f0
-    add byte [bx+si], al                      ; 00 00
-    mov dx, 0da26h                            ; ba 26 da
-    add byte [bx+si], al                      ; 00 00
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    popfw                                     ; 9d
-    retf                                      ; cb
-    mov AL, strict byte 081h                  ; b0 81
-    jmp short 0da20h                          ; eb fa
-pcibios32_entry:                             ; 0xfda26 LB 0x1a
-    pushfw                                    ; 9c
-    cld                                       ; fc
-    push ES                                   ; 06
-    pushaw                                    ; 60
-    call 0db78h                               ; e8 4b 01
-    add byte [bx+si], al                      ; 00 00
-    popaw                                     ; 61
-    pop ES                                    ; 07
-    popfw                                     ; 9d
-    retf                                      ; cb
-    times 0xd db 0
-apm_pm32_entry:                              ; 0xfda40 LB 0x21
-    push bp                                   ; 55
-    mov ebp, cs                               ; 66 8c cd
-    push ebp                                  ; 66 55
-    mov bp, 0da5fh                            ; bd 5f da
-    add byte [bx+si], al                      ; 00 00
-    push ebp                                  ; 66 55
-    push CS                                   ; 0e
-    pop bp                                    ; 5d
-    add bp, strict byte 00008h                ; 83 c5 08
-    push ebp                                  ; 66 55
-    mov bp, 09ed6h                            ; bd d6 9e
-    add byte [bx+si], al                      ; 00 00
-    push ebp                                  ; 66 55
-    mov AH, strict byte 003h                  ; b4 03
-    db  066h, 0cbh
-    ; retf                                      ; 66 cb
-    pop bp                                    ; 5d
-    retf                                      ; cb
-pci32_select_reg_:                           ; 0xfda61 LB 0x22
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    and dl, 0fch                              ; 80 e2 fc
-    mov bx, dx                                ; 89 d3
-    mov dx, 00cf8h                            ; ba f8 0c
-    add byte [bx+si], al                      ; 00 00
-    db  00fh, 0b7h, 0c0h
-    ; movzx ax, ax                              ; 0f b7 c0
-    sal ax, 008h                              ; c1 e0 08
-    or ax, strict word 00000h                 ; 0d 00 00
-    add byte [bx+si-03c76h], al               ; 00 80 8a c3
-    out DX, ax                                ; ef
-    lea sp, [di-004h]                         ; 8d 65 fc
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pci32_find_device_:                          ; 0xfda83 LB 0xf7
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push cx                                   ; 51
-    push si                                   ; 56
-    push di                                   ; 57
-    sub sp, strict byte 00014h                ; 83 ec 14
-    push ax                                   ; 50
-    mov cx, dx                                ; 89 d1
-    mov si, bx                                ; 89 de
-    test bx, bx                               ; 85 db
-    xor bx, bx                                ; 31 db
-    mov byte [di-010h], 000h                  ; c6 45 f0 00
-    test bl, 007h                             ; f6 c3 07
-    jne short 0dad4h                          ; 75 36
-    db  00fh, 0b7h, 0c3h
-    ; movzx ax, bx                              ; 0f b7 c3
-    mov dx, strict word 0000eh                ; ba 0e 00
-    add byte [bx+si], al                      ; 00 00
-    call 0da5fh                               ; e8 b6 ff
-    db  0ffh
-    db  0ffh
-    mov dx, 00cfeh                            ; ba fe 0c
-    add byte [bx+si], al                      ; 00 00
-    db  02bh, 0c0h
-    ; sub ax, ax                                ; 2b c0
-    in AL, DX                                 ; ec
-    mov byte [di-014h], al                    ; 88 45 ec
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 0dac2h                          ; 75 08
-    add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 0db4ah                           ; e9 8a 00
-    add byte [bx+si], al                      ; 00 00
-    test byte [di-014h], 080h                 ; f6 45 ec 80
-    je short 0dacfh                           ; 74 07
-    mov di, strict word 00001h                ; bf 01 00
-    add byte [bx+si], al                      ; 00 00
-    jmp short 0dad4h                          ; eb 05
-    mov di, strict word 00008h                ; bf 08 00
-    add byte [bx+si], al                      ; 00 00
-    mov al, byte [di-014h]                    ; 8a 45 ec
-    and AL, strict byte 007h                  ; 24 07
-    cmp AL, strict byte 001h                  ; 3c 01
-    jne short 0db03h                          ; 75 26
-    db  00fh, 0b7h, 0c3h
-    ; movzx ax, bx                              ; 0f b7 c3
-    mov dx, ax                                ; 89 c2
-    sar dx, 008h                              ; c1 fa 08
-    test dx, dx                               ; 85 d2
-    jne short 0db03h                          ; 75 1a
-    mov dx, strict word 0001ah                ; ba 1a 00
-    add byte [bx+si], al                      ; 00 00
-    call 0da5fh                               ; e8 6e ff
-    db  0ffh
-    db  0ffh
-    mov dx, 00cfeh                            ; ba fe 0c
-    add byte [bx+si], al                      ; 00 00
-    db  02bh, 0c0h
-    ; sub ax, ax                                ; 2b c0
-    in AL, DX                                 ; ec
-    cmp al, byte [di-010h]                    ; 3a 45 f0
-    jbe short 0db03h                          ; 76 03
-    mov byte [di-010h], al                    ; 88 45 f0
-    test si, si                               ; 85 f6
-    je short 0db0eh                           ; 74 07
-    mov ax, strict word 00008h                ; b8 08 00
-    add byte [bx+si], al                      ; 00 00
-    jmp short 0db10h                          ; eb 02
-    xor ax, ax                                ; 31 c0
-    db  00fh, 0b7h, 0d0h
-    ; movzx dx, ax                              ; 0f b7 d0
-    db  00fh, 0b7h, 0c3h
-    ; movzx ax, bx                              ; 0f b7 c3
-    call 0da5fh                               ; e8 46 ff
-    db  0ffh
-    db  0ffh
-    mov dx, 00cfch                            ; ba fc 0c
-    add byte [bx+si], al                      ; 00 00
-    in ax, DX                                 ; ed
-    mov word [di-018h], ax                    ; 89 45 e8
-    mov word [di-020h], strict word 00000h    ; c7 45 e0 00 00
-    add byte [bx+si], al                      ; 00 00
-    test si, si                               ; 85 f6
-    je short 0db35h                           ; 74 06
-    shr ax, 008h                              ; c1 e8 08
-    mov word [di-018h], ax                    ; 89 45 e8
-    mov ax, word [di-018h]                    ; 8b 45 e8
-    cmp ax, word [di-024h]                    ; 3b 45 dc
-    je short 0db43h                           ; 74 06
-    cmp word [di-020h], strict byte 00000h    ; 83 7d e0 00
-    je short 0db4ah                           ; 74 07
-    dec cx                                    ; 49
-    cmp ecx, strict byte 0ffffffffh           ; 66 83 f9 ff
-    je short 0db62h                           ; 74 18
-    add bx, di                                ; 01 fb
-    db  00fh, 0b7h, 0c3h
-    ; movzx ax, bx                              ; 0f b7 c3
-    sar ax, 008h                              ; c1 f8 08
-    mov word [di-01ch], ax                    ; 89 45 e4
-    movzx ax, byte [di-010h]                  ; 0f b6 45 f0
-    cmp ax, word [di-01ch]                    ; 3b 45 e4
-    jnl near 0da97h                           ; 0f 8d 37 ff
-    db  0ffh
-    jmp word [bp-07dh]                        ; ff 66 83
-    stc                                       ; f9
-    push word [di+005h]                       ; ff 75 05
-    db  00fh, 0b7h, 0c3h
-    ; movzx ax, bx                              ; 0f b7 c3
-    jmp short 0db72h                          ; eb 05
-    mov ax, strict word 0ffffh                ; b8 ff ff
-    add byte [bx+si], al                      ; 00 00
-    lea sp, [di-00ch]                         ; 8d 65 f4
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop cx                                    ; 59
-    pop bp                                    ; 5d
-    retn                                      ; c3
-_pci32_function:                             ; 0xfdb7a LB 0x251
-    push bp                                   ; 55
-    mov bp, sp                                ; 89 e5
-    push bx                                   ; 53
-    push si                                   ; 56
-    push di                                   ; 57
-    push ax                                   ; 50
-    push ax                                   ; 50
-    and dword [di+024h], strict dword 0658100ffh ; 66 81 65 24 ff 00 81 65
-    sub AL, strict byte 0feh                  ; 2c fe
-    inc word [bx+si]                          ; ff 00
-    add byte [bp+di+02445h], cl               ; 00 8b 45 24
-    xor ah, ah                                ; 30 e4
-    cmp eax, strict dword 029720003h          ; 66 3d 03 00 72 29
-    jbe near 0dc37h                           ; 0f 86 99 00
-    add byte [bx+si], al                      ; 00 00
-    cmp eax, strict dword 0840f000eh          ; 66 3d 0e 00 0f 84
-    test ax, strict word 00001h               ; a9 01 00
-    add byte [bp+03dh], ah                    ; 00 66 3d
-    or byte [bx+si], al                       ; 08 00
-    jc near 0ddb1h                            ; 0f 82 ff 01
-    add byte [bx+si], al                      ; 00 00
-    cmp eax, strict dword 0860f000dh          ; 66 3d 0d 00 0f 86
-    test AL, strict byte 000h                 ; a8 00
-    add byte [bx+si], al                      ; 00 00
-    jmp near 0ddb1h                           ; e9 f0 01
-    add byte [bx+si], al                      ; 00 00
-    cmp eax, strict dword 028740002h          ; 66 3d 02 00 74 28
-    cmp eax, strict dword 0850f0001h          ; 66 3d 01 00 0f 85
-    loopne 0dbd2h                             ; e0 01
-    add byte [bx+si], al                      ; 00 00
-    mov dword [di+024h], strict dword 0c7660001h ; 66 c7 45 24 01 00 66 c7
-    inc bp                                    ; 45
-    sbb byte [bx+si], dl                      ; 18 10
-    add dh, byte [bx+di]                      ; 02 31
-    sal byte [bp-077h], 045h                  ; c0 66 89 45
-    and bh, al                                ; 20 c7
-    inc bp                                    ; 45
-    sbb AL, strict byte 050h                  ; 1c 50
-    inc bx                                    ; 43
-    dec cx                                    ; 49
-    and cl, ch                                ; 20 e9
-    rol byte [bx+di], CL                      ; d2 01
-    add byte [bx+si], al                      ; 00 00
-    cmp dword [di+01ch], strict byte 0ffffffffh ; 66 83 7d 1c ff
-    jne short 0dc05h                          ; 75 0d
-    mov ax, word [di+024h]                    ; 8b 45 24
-    xor ah, ah                                ; 30 e4
-    or ah, 083h                               ; 80 cc 83
-    jmp near 0ddb9h                           ; e9 b6 01
-    add byte [bx+si], al                      ; 00 00
-    xor bx, bx                                ; 31 db
-    db  00fh, 0b7h, 055h, 00ch
-    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
-    db  00fh, 0b7h, 045h, 020h
-    ; movzx ax, [di+020h]                       ; 0f b7 45 20
-    sal ax, 010h                              ; c1 e0 10
-    db  00fh, 0b7h, 04dh, 01ch
-    ; movzx cx, [di+01ch]                       ; 0f b7 4d 1c
-    or ax, cx                                 ; 09 c8
-    call 0da81h                               ; e8 66 fe
-    db  0ffh
-    jmp word [bp+03dh]                        ; ff 66 3d
-    db  0ffh
-    push word [di+00dh]                       ; ff 75 0d
-    mov ax, word [di+024h]                    ; 8b 45 24
-    xor ah, ah                                ; 30 e4
-    or ah, 086h                               ; 80 cc 86
-    jmp near 0ddb9h                           ; e9 8b 01
-    add byte [bx+si], al                      ; 00 00
-    mov dword [di+018h], eax                  ; 66 89 45 18
-    jmp near 0ddc1h                           ; e9 8a 01
-    add byte [bx+si], al                      ; 00 00
-    db  00fh, 0b7h, 055h, 00ch
-    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
-    mov ax, word [di+020h]                    ; 8b 45 20
-    mov bx, strict word 00001h                ; bb 01 00
-    add byte [bx+si], al                      ; 00 00
-    call 0da81h                               ; e8 39 fe
-    db  0ffh
-    jmp word [bp+03dh]                        ; ff 66 3d
-    db  0ffh
-    push word [di+00dh]                       ; ff 75 0d
-    mov ax, word [di+024h]                    ; 8b 45 24
-    xor ah, ah                                ; 30 e4
-    or ah, 086h                               ; 80 cc 86
-    jmp near 0ddb9h                           ; e9 5e 01
-    add byte [bx+si], al                      ; 00 00
-    mov dword [di+018h], eax                  ; 66 89 45 18
-    jmp near 0ddc1h                           ; e9 5d 01
-    add byte [bx+si], al                      ; 00 00
-    cmp dword [di+008h], strict dword 00d720100h ; 66 81 7d 08 00 01 72 0d
-    mov ax, word [di+024h]                    ; 8b 45 24
-    xor ah, ah                                ; 30 e4
-    or ah, 087h                               ; 80 cc 87
-    jmp near 0ddb9h                           ; e9 40 01
-    add byte [bx+si], al                      ; 00 00
-    db  00fh, 0b7h, 055h, 008h
-    ; movzx dx, [di+008h]                       ; 0f b7 55 08
-    db  00fh, 0b7h, 045h, 018h
-    ; movzx ax, [di+018h]                       ; 0f b7 45 18
-    call 0da5fh                               ; e8 d9 fd
-    db  0ffh
-    dec word [bp+di+02445h]                   ; ff 8b 45 24
-    xor ah, ah                                ; 30 e4
-    cmp eax, strict dword 02172000ah          ; 66 3d 0a 00 72 21
-    jbe short 0dd04h                          ; 76 6f
-    cmp eax, strict dword 0840f000dh          ; 66 3d 0d 00 0f 84
-    test ax, strict word 00000h               ; a9 00 00
-    add byte [bp+03dh], ah                    ; 00 66 3d
-    or AL, strict byte 000h                   ; 0c 00
-    je near 0dd2ah                            ; 0f 84 83 00
-    add byte [bx+si], al                      ; 00 00
-    cmp eax, strict dword 06374000bh          ; 66 3d 0b 00 74 63
-    jmp near 0ddc1h                           ; e9 0f 01
-    add byte [bx+si], al                      ; 00 00
-    cmp eax, strict dword 02d740009h          ; 66 3d 09 00 74 2d
-    cmp eax, strict dword 0850f0008h          ; 66 3d 08 00 0f 85
-    inc word [bx+si]                          ; ff 00
-    add byte [bx+si], al                      ; 00 00
-    mov bx, word [di+020h]                    ; 8b 5d 20
-    xor bl, bl                                ; 30 db
-    mov ax, word [di+008h]                    ; 8b 45 08
-    xor ah, ah                                ; 30 e4
-    and AL, strict byte 003h                  ; 24 03
-    db  00fh, 0b7h, 0d0h
-    ; movzx dx, ax                              ; 0f b7 d0
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    add byte [bx+si], al                      ; 00 00
-    db  02bh, 0c0h
-    ; sub ax, ax                                ; 2b c0
-    in AL, DX                                 ; ec
-    or bx, ax                                 ; 09 c3
-    mov dword [di+020h], ebx                  ; 66 89 5d 20
-    jmp near 0ddc1h                           ; e9 dc 00
-    add byte [bx+si], al                      ; 00 00
-    mov ax, word [di+008h]                    ; 8b 45 08
-    xor ah, ah                                ; 30 e4
-    and AL, strict byte 002h                  ; 24 02
-    db  00fh, 0b7h, 0d0h
-    ; movzx dx, ax                              ; 0f b7 d0
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    add byte [bx+si], al                      ; 00 00
-    db  02bh, 0c0h
-    ; sub ax, ax                                ; 2b c0
-    in eax, DX                                ; 66 ed
-    mov dword [di+020h], eax                  ; 66 89 45 20
-    jmp near 0ddc1h                           ; e9 bf 00
-    add byte [bx+si], al                      ; 00 00
-    mov dx, 00cfch                            ; ba fc 0c
-    add byte [bx+si], al                      ; 00 00
-    in ax, DX                                 ; ed
-    mov word [di+020h], ax                    ; 89 45 20
-    jmp near 0ddc1h                           ; e9 b1 00
-    add byte [bx+si], al                      ; 00 00
-    mov ax, word [di+020h]                    ; 8b 45 20
-    mov dx, word [di+008h]                    ; 8b 55 08
-    xor dh, dh                                ; 30 f6
-    and dl, 003h                              ; 80 e2 03
-    db  00fh, 0b7h, 0d2h
-    ; movzx dx, dx                              ; 0f b7 d2
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    add byte [bx+si], al                      ; 00 00
-    out DX, AL                                ; ee
-    jmp near 0ddc1h                           ; e9 97 00
-    add byte [bx+si], al                      ; 00 00
-    db  00fh, 0b7h, 045h, 020h
-    ; movzx ax, [di+020h]                       ; 0f b7 45 20
-    mov dx, word [di+008h]                    ; 8b 55 08
-    xor dh, dh                                ; 30 f6
-    and dl, 002h                              ; 80 e2 02
-    db  00fh, 0b7h, 0d2h
-    ; movzx dx, dx                              ; 0f b7 d2
-    add dx, 00cfch                            ; 81 c2 fc 0c
-    add byte [bx+si], al                      ; 00 00
-    out DX, eax                               ; 66 ef
-    jmp near 0ddc1h                           ; e9 7b 00
-    add byte [bx+si], al                      ; 00 00
-    mov ax, word [di+020h]                    ; 8b 45 20
-    mov dx, 00cfch                            ; ba fc 0c
-    add byte [bx+si], al                      ; 00 00
-    out DX, ax                                ; ef
-    jmp short 0ddc3h                          ; eb 70
-    db  00fh, 0b7h, 045h, 008h
-    ; movzx ax, [di+008h]                       ; 0f b7 45 08
-    mov es, [di+028h]                         ; 8e 45 28
-    mov [di-010h], es                         ; 8c 45 f0
-    mov bx, ax                                ; 89 c3
-    mov edx, dword [di]                       ; 66 8b 15
-    mov AL, byte [000f4h]                     ; a0 f4 00
-    add byte [bp+026h], ah                    ; 00 66 26
-    cmp dx, word [bx+si]                      ; 3b 10
-    jbe short 0dd7eh                          ; 76 12
-    mov ax, word [di+024h]                    ; 8b 45 24
-    xor ah, ah                                ; 30 e4
-    or ah, 089h                               ; 80 cc 89
-    mov dword [di+024h], eax                  ; 66 89 45 24
-    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
-    jmp short 0dda4h                          ; eb 26
-    db  00fh, 0b7h, 0cah
-    ; movzx cx, dx                              ; 0f b7 ca
-    db  066h, 026h, 08bh, 050h, 006h
-    ; mov edx, dword [es:bx+si+006h]            ; 66 26 8b 50 06
-    mov word [di-014h], dx                    ; 89 55 ec
-    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
-    mov dx, ds                                ; 8c da
-    mov si, 0f2c0h                            ; be c0 f2
-    add byte [bx+si], al                      ; 00 00
-    mov es, [di-014h]                         ; 8e 45 ec
-    push DS                                   ; 1e
-    db  066h, 08eh, 0dah
-    ; mov ds, edx                               ; 66 8e da
-    rep movsb                                 ; f3 a4
-    pop DS                                    ; 1f
-    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
-    mov AL, byte [000f4h]                     ; a0 f4 00
-    add byte [bp-00fbbh], cl                  ; 00 8e 45 f0
-    db  066h, 026h, 089h, 003h
-    ; mov dword [es:bp+di], eax                 ; 66 26 89 03
-    jmp short 0ddc3h                          ; eb 10
-    mov ax, word [di+024h]                    ; 8b 45 24
-    xor ah, ah                                ; 30 e4
-    or ah, 081h                               ; 80 cc 81
-    mov dword [di+024h], eax                  ; 66 89 45 24
-    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
-    lea sp, [di-00ch]                         ; 8d 65 f4
-    pop di                                    ; 5f
-    pop si                                    ; 5e
-    pop bx                                    ; 5b
-    pop bp                                    ; 5d
-    retn                                      ; c3
-
-  ; Padding 0x1 bytes at 0xfddcb
-  times 1 db 0
-
-section BIOS32CONST progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
-
-section BIOS32CONST2 progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
-
-section BIOS32_DATA progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
-
-  ; Padding 0x234 bytes at 0xfddcc
-  times 564 db 0
-
-section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
-eoi_both_pics:                               ; 0xfe030 LB 0x4
-    mov AL, strict byte 020h                  ; b0 20
-    out strict byte 0a0h, AL                  ; e6 a0
-eoi_master_pic:                              ; 0xfe034 LB 0x5
-    mov AL, strict byte 020h                  ; b0 20
-    out strict byte 020h, AL                  ; e6 20
-    retn                                      ; c3
-set_int_vects:                               ; 0xfe039 LB 0xb
-    mov word [bx], ax                         ; 89 07
-    mov word [bx+002h], dx                    ; 89 57 02
-    add bx, strict byte 00004h                ; 83 c3 04
-    loop 0e039h                               ; e2 f6
-    retn                                      ; c3
-eoi_jmp_post:                                ; 0xfe044 LB 0x17
-    call 0e030h                               ; e8 e9 ff
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    jmp far [00467h]                          ; ff 2e 67 04
-    times 0xa db 0
-    db  'XM'
-post:                                        ; 0xfe05b LB 0x65
-    cli                                       ; fa
-    smsw ax                                   ; 0f 01 e0
-    test ax, strict word 00001h               ; a9 01 00
-    je short 0e06ah                           ; 74 06
-    mov AL, strict byte 001h                  ; b0 01
-    out strict byte 092h, AL                  ; e6 92
-    jmp short 0e068h                          ; eb fe
-    mov AL, strict byte 00fh                  ; b0 0f
-    out strict byte 070h, AL                  ; e6 70
-    in AL, strict byte 071h                   ; e4 71
-    xchg ah, al                               ; 86 c4
-    in AL, strict byte 064h                   ; e4 64
-    test AL, strict byte 004h                 ; a8 04
-    je short 0e089h                           ; 74 11
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    db  00ah, 0c0h
-    ; or al, al                                 ; 0a c0
-    jne short 0e089h                          ; 75 0b
-    push strict byte 00040h                   ; 6a 40
-    pop DS                                    ; 1f
-    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
-    jne short 0e064h                          ; 75 db
-    mov AL, strict byte 00fh                  ; b0 0f
-    out strict byte 070h, AL                  ; e6 70
-    mov AL, strict byte 000h                  ; b0 00
-    out strict byte 071h, AL                  ; e6 71
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    cmp AL, strict byte 009h                  ; 3c 09
-    je short 0e0a9h                           ; 74 12
-    cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 0e0a9h                           ; 74 0e
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    out strict byte 00dh, AL                  ; e6 0d
-    out strict byte 0dah, AL                  ; e6 da
-    mov AL, strict byte 0c0h                  ; b0 c0
-    out strict byte 0d6h, AL                  ; e6 d6
-    mov AL, strict byte 000h                  ; b0 00
-    out strict byte 0d4h, AL                  ; e6 d4
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    cmp AL, strict byte 000h                  ; 3c 00
-    je short 0e0c0h                           ; 74 11
-    cmp AL, strict byte 00dh                  ; 3c 0d
-    jnc short 0e0c0h                          ; 73 0d
-    cmp AL, strict byte 009h                  ; 3c 09
-    jne short 0e0bah                          ; 75 03
-    jmp near 0e366h                           ; e9 ac 02
-    cmp AL, strict byte 005h                  ; 3c 05
-    je short 0e044h                           ; 74 86
-    jmp short 0e0c0h                          ; eb 00
-normal_post:                                 ; 0xfe0c0 LB 0x203
-    mov ax, 07800h                            ; b8 00 78
-    db  08bh, 0e0h
-    ; mov sp, ax                                ; 8b e0
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov ss, ax                                ; 8e d0
-    mov es, ax                                ; 8e c0
-    db  033h, 0ffh
-    ; xor di, di                                ; 33 ff
-    cld                                       ; fc
-    mov cx, 00239h                            ; b9 39 02
-    rep stosw                                 ; f3 ab
-    inc di                                    ; 47
-    inc di                                    ; 47
-    mov cx, 005c6h                            ; b9 c6 05
-    rep stosw                                 ; f3 ab
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    add bx, 01000h                            ; 81 c3 00 10
-    cmp bx, 09000h                            ; 81 fb 00 90
-    jnc short 0e0f3h                          ; 73 0b
-    mov es, bx                                ; 8e c3
-    db  033h, 0ffh
-    ; xor di, di                                ; 33 ff
-    mov cx, 08000h                            ; b9 00 80
-    rep stosw                                 ; f3 ab
-    jmp short 0e0deh                          ; eb eb
-    mov es, bx                                ; 8e c3
-    db  033h, 0ffh
-    ; xor di, di                                ; 33 ff
-    mov cx, 07ff8h                            ; b9 f8 7f
-    rep stosw                                 ; f3 ab
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 01777h                               ; e8 73 36
-    call 0e8e0h                               ; e8 d9 07
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    mov ds, bx                                ; 8e db
-    mov cx, strict word 00060h                ; b9 60 00
-    mov ax, 0ff53h                            ; b8 53 ff
-    mov dx, 0f000h                            ; ba 00 f0
-    call 0e039h                               ; e8 22 ff
-    mov bx, 001a0h                            ; bb a0 01
-    mov cx, strict word 00010h                ; b9 10 00
-    call 0e039h                               ; e8 19 ff
-    mov ax, 0027fh                            ; b8 7f 02
-    mov word [00413h], ax                     ; a3 13 04
-    mov ax, 0e9d6h                            ; b8 d6 e9
-    mov word [00018h], ax                     ; a3 18 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0001ah], ax                     ; a3 1a 00
-    mov ax, 0f84dh                            ; b8 4d f8
-    mov word [00044h], ax                     ; a3 44 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00046h], ax                     ; a3 46 00
-    mov ax, 0f841h                            ; b8 41 f8
-    mov word [00048h], ax                     ; a3 48 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0004ah], ax                     ; a3 4a 00
-    mov ax, 0f859h                            ; b8 59 f8
-    mov word [00054h], ax                     ; a3 54 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00056h], ax                     ; a3 56 00
-    mov ax, 0efd4h                            ; b8 d4 ef
-    mov word [0005ch], ax                     ; a3 5c 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0005eh], ax                     ; a3 5e 00
-    mov ax, 0f0a4h                            ; b8 a4 f0
-    mov word [00060h], ax                     ; a3 60 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00062h], ax                     ; a3 62 00
-    mov ax, 0e6f2h                            ; b8 f2 e6
-    mov word [00064h], ax                     ; a3 64 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00066h], ax                     ; a3 66 00
-    mov ax, 0efedh                            ; b8 ed ef
-    mov word [00070h], ax                     ; a3 70 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00072h], ax                     ; a3 72 00
-    call 0e778h                               ; e8 ef 05
-    call 0f13ch                               ; e8 b0 0f
-    call 0f1c1h                               ; e8 32 10
-    mov ax, 0fe6eh                            ; b8 6e fe
-    mov word [00068h], ax                     ; a3 68 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0006ah], ax                     ; a3 6a 00
-    mov ax, 0fea5h                            ; b8 a5 fe
-    mov word [00020h], ax                     ; a3 20 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00022h], ax                     ; a3 22 00
-    mov AL, strict byte 034h                  ; b0 34
-    out strict byte 043h, AL                  ; e6 43
-    mov AL, strict byte 000h                  ; b0 00
-    out strict byte 040h, AL                  ; e6 40
-    out strict byte 040h, AL                  ; e6 40
-    mov ax, 0f065h                            ; b8 65 f0
-    mov word [00040h], ax                     ; a3 40 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00042h], ax                     ; a3 42 00
-    mov ax, 0e987h                            ; b8 87 e9
-    mov word [00024h], ax                     ; a3 24 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00026h], ax                     ; a3 26 00
-    mov ax, 0e82eh                            ; b8 2e e8
-    mov word [00058h], ax                     ; a3 58 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0005ah], ax                     ; a3 5a 00
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov byte [00417h], AL                     ; a2 17 04
-    mov byte [00418h], AL                     ; a2 18 04
-    mov byte [00419h], AL                     ; a2 19 04
-    mov byte [00471h], AL                     ; a2 71 04
-    mov byte [00497h], AL                     ; a2 97 04
-    mov AL, strict byte 010h                  ; b0 10
-    mov byte [00496h], AL                     ; a2 96 04
-    mov bx, strict word 0001eh                ; bb 1e 00
-    mov word [0041ah], bx                     ; 89 1e 1a 04
-    mov word [0041ch], bx                     ; 89 1e 1c 04
-    mov word [00480h], bx                     ; 89 1e 80 04
-    mov bx, strict word 0003eh                ; bb 3e 00
-    mov word [00482h], bx                     ; 89 1e 82 04
-    mov AL, strict byte 014h                  ; b0 14
-    out strict byte 070h, AL                  ; e6 70
-    in AL, strict byte 071h                   ; e4 71
-    mov byte [00410h], AL                     ; a2 10 04
-    push DS                                   ; 1e
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    mov ax, 0c000h                            ; b8 00 c0
-    mov dx, 0c800h                            ; ba 00 c8
-    call 01600h                               ; e8 e7 33
-    call 04e4ch                               ; e8 30 6c
-    pop DS                                    ; 1f
-    mov ax, 0ff53h                            ; b8 53 ff
-    mov word [0003ch], ax                     ; a3 3c 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0003eh], ax                     ; a3 3e 00
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    mov CL, strict byte 014h                  ; b1 14
-    mov dx, 00378h                            ; ba 78 03
-    call 0ecedh                               ; e8 b6 0a
-    mov dx, 00278h                            ; ba 78 02
-    call 0ecedh                               ; e8 b0 0a
-    sal bx, 00eh                              ; c1 e3 0e
-    mov ax, word [00410h]                     ; a1 10 04
-    and ax, 03fffh                            ; 25 ff 3f
-    db  00bh, 0c3h
-    ; or ax, bx                                 ; 0b c3
-    mov word [00410h], ax                     ; a3 10 04
-    mov ax, 0e746h                            ; b8 46 e7
-    mov word [0002ch], ax                     ; a3 2c 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0002eh], ax                     ; a3 2e 00
-    mov ax, 0e746h                            ; b8 46 e7
-    mov word [00030h], ax                     ; a3 30 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00032h], ax                     ; a3 32 00
-    mov ax, 0e739h                            ; b8 39 e7
-    mov word [00050h], ax                     ; a3 50 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00052h], ax                     ; a3 52 00
-    db  033h, 0dbh
-    ; xor bx, bx                                ; 33 db
-    mov CL, strict byte 00ah                  ; b1 0a
-    mov dx, 003f8h                            ; ba f8 03
-    call 0ed0bh                               ; e8 92 0a
-    mov dx, 002f8h                            ; ba f8 02
-    call 0ed0bh                               ; e8 8c 0a
-    mov dx, 003e8h                            ; ba e8 03
-    call 0ed0bh                               ; e8 86 0a
-    mov dx, 002e8h                            ; ba e8 02
-    call 0ed0bh                               ; e8 80 0a
-    sal bx, 009h                              ; c1 e3 09
-    mov ax, word [00410h]                     ; a1 10 04
-    and ax, 0f1ffh                            ; 25 ff f1
-    db  00bh, 0c3h
-    ; or ax, bx                                 ; 0b c3
-    mov word [00410h], ax                     ; a3 10 04
-    mov ax, 0ff53h                            ; b8 53 ff
-    mov word [00128h], ax                     ; a3 28 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0012ah], ax                     ; a3 2a 01
-    mov ax, 0fe8fh                            ; b8 8f fe
-    mov word [001c0h], ax                     ; a3 c0 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [001c2h], ax                     ; a3 c2 01
-    call 0edbfh                               ; e8 0b 0b
-    jmp short 0e31bh                          ; eb 65
-    times 0xb db 0
-    db  'XM'
-nmi:                                         ; 0xfe2c3 LB 0x7
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 01753h                               ; e8 8a 34
-    iret                                      ; cf
-int75_handler:                               ; 0xfe2ca LB 0x8
-    out strict byte 0f0h, AL                  ; e6 f0
-    call 0e030h                               ; e8 61 fd
-    int 002h                                  ; cd 02
-    iret                                      ; cf
-hard_drive_post:                             ; 0xfe2d2 LB 0x12c
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov byte [00474h], AL                     ; a2 74 04
-    mov byte [00477h], AL                     ; a2 77 04
-    mov byte [0048ch], AL                     ; a2 8c 04
-    mov byte [0048dh], AL                     ; a2 8d 04
-    mov byte [0048eh], AL                     ; a2 8e 04
-    mov AL, strict byte 0c0h                  ; b0 c0
-    mov byte [00476h], AL                     ; a2 76 04
-    mov ax, 0e3feh                            ; b8 fe e3
-    mov word [0004ch], ax                     ; a3 4c 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0004eh], ax                     ; a3 4e 00
-    mov ax, 0f8d7h                            ; b8 d7 f8
-    mov word [001d8h], ax                     ; a3 d8 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [001dah], ax                     ; a3 da 01
-    mov ax, strict word 0003dh                ; b8 3d 00
-    mov word [00104h], ax                     ; a3 04 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [00106h], ax                     ; a3 06 01
-    mov ax, strict word 0004dh                ; b8 4d 00
-    mov word [00118h], ax                     ; a3 18 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [0011ah], ax                     ; a3 1a 01
-    retn                                      ; c3
-    mov ax, 0f8a9h                            ; b8 a9 f8
-    mov word [001d0h], ax                     ; a3 d0 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [001d2h], ax                     ; a3 d2 01
-    mov ax, 0e2cah                            ; b8 ca e2
-    mov word [001d4h], ax                     ; a3 d4 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [001d6h], ax                     ; a3 d6 01
-    call 0e753h                               ; e8 1d 04
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 01cafh                               ; e8 73 39
-    call 0213ch                               ; e8 fd 3d
-    call 09729h                               ; e8 e7 b3
-    call 0860dh                               ; e8 c8 a2
-    call 0ed2fh                               ; e8 e7 09
-    call 0e2d2h                               ; e8 87 ff
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    mov ax, 0c800h                            ; b8 00 c8
-    mov dx, 0f000h                            ; ba 00 f0
-    call 01600h                               ; e8 a9 32
-    call 01797h                               ; e8 3d 34
-    call 03b30h                               ; e8 d3 57
-    sti                                       ; fb
-    int 019h                                  ; cd 19
-    sti                                       ; fb
-    hlt                                       ; f4
-    jmp short 0e361h                          ; eb fd
-    cli                                       ; fa
-    hlt                                       ; f4
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov ss, [word 00069h]                     ; 8e 16 69 00
-    mov sp, word [word 00067h]                ; 8b 26 67 00
-    in AL, strict byte 092h                   ; e4 92
-    and AL, strict byte 0fdh                  ; 24 fd
-    out strict byte 092h, AL                  ; e6 92
-    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    in AL, strict byte 080h                   ; e4 80
-    mov byte [bp+00fh], al                    ; 88 46 0f
-    db  03ah, 0e0h
-    ; cmp ah, al                                ; 3a e0
-    popaw                                     ; 61
-    sti                                       ; fb
-    retf 00002h                               ; ca 02 00
-    times 0x6d db 0
-    db  'XM'
-int13_handler:                               ; 0xfe3fe LB 0x3
-    jmp near 0ec5bh                           ; e9 5a 08
-rom_fdpt:                                    ; 0xfe401 LB 0x2f1
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h
-    db  04dh
-int19_handler:                               ; 0xfe6f2 LB 0x61
-    jmp near 0f0ach                           ; e9 b7 09
-    or word [bx+si], ax                       ; 09 00
-    cld                                       ; fc
-    add byte [bx+di], al                      ; 00 01
-    je short 0e73ch                           ; 74 40
-    times 0x2b db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    times 0xe db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    push DS                                   ; 1e
-    push ES                                   ; 06
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 06338h                               ; e8 f6 7b
-    popaw                                     ; 61
-    pop ES                                    ; 07
-    pop DS                                    ; 1f
-    iret                                      ; cf
-    push DS                                   ; 1e
-    push ES                                   ; 06
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 016e8h                               ; e8 99 2f
-    popaw                                     ; 61
-    pop ES                                    ; 07
-    pop DS                                    ; 1f
-    iret                                      ; cf
-init_pic:                                    ; 0xfe753 LB 0x25
-    mov AL, strict byte 011h                  ; b0 11
-    out strict byte 020h, AL                  ; e6 20
-    out strict byte 0a0h, AL                  ; e6 a0
-    mov AL, strict byte 008h                  ; b0 08
-    out strict byte 021h, AL                  ; e6 21
-    mov AL, strict byte 070h                  ; b0 70
-    out strict byte 0a1h, AL                  ; e6 a1
-    mov AL, strict byte 004h                  ; b0 04
-    out strict byte 021h, AL                  ; e6 21
-    mov AL, strict byte 002h                  ; b0 02
-    out strict byte 0a1h, AL                  ; e6 a1
-    mov AL, strict byte 001h                  ; b0 01
-    out strict byte 021h, AL                  ; e6 21
-    out strict byte 0a1h, AL                  ; e6 a1
-    mov AL, strict byte 0b8h                  ; b0 b8
-    out strict byte 021h, AL                  ; e6 21
-    mov AL, strict byte 08fh                  ; b0 8f
-    out strict byte 0a1h, AL                  ; e6 a1
-    retn                                      ; c3
-ebda_post:                                   ; 0xfe778 LB 0xec
-    mov ax, 0e746h                            ; b8 46 e7
-    mov word [00034h], ax                     ; a3 34 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00036h], ax                     ; a3 36 00
-    mov ax, 0e746h                            ; b8 46 e7
-    mov word [0003ch], ax                     ; a3 3c 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0003eh], ax                     ; a3 3e 00
-    mov ax, 0e746h                            ; b8 46 e7
-    mov word [001c8h], ax                     ; a3 c8 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [001cah], ax                     ; a3 ca 01
-    mov ax, 0e746h                            ; b8 46 e7
-    mov word [001dch], ax                     ; a3 dc 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [001deh], ax                     ; a3 de 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov ds, ax                                ; 8e d8
-    mov byte [word 00000h], 001h              ; c6 06 00 00 01
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
-    retn                                      ; c3
-    times 0x6f db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    sti                                       ; fb
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    cmp ah, 000h                              ; 80 fc 00
-    je short 0e846h                           ; 74 0f
-    cmp ah, 010h                              ; 80 fc 10
-    je short 0e846h                           ; 74 0a
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 0562eh                               ; e8 ec 6d
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    iret                                      ; cf
-    mov bx, strict word 00040h                ; bb 40 00
-    mov ds, bx                                ; 8e db
-    cli                                       ; fa
-    mov bx, word [word 0001ah]                ; 8b 1e 1a 00
-    cmp bx, word [word 0001ch]                ; 3b 1e 1c 00
-    jne short 0e85ah                          ; 75 04
-    sti                                       ; fb
-    nop                                       ; 90
-    jmp short 0e84bh                          ; eb f1
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 0562eh                               ; e8 ce 6d
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    iret                                      ; cf
-pmode_enter:                                 ; 0xfe864 LB 0x1b
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    lgdt [cs:0e892h]                          ; 2e 0f 01 16 92 e8
-    mov eax, cr0                              ; 0f 20 c0
-    or AL, strict byte 001h                   ; 0c 01
-    mov cr0, eax                              ; 0f 22 c0
-    jmp far 00020h:0e879h                     ; ea 79 e8 20 00
-    mov ax, strict word 00018h                ; b8 18 00
-    mov ds, ax                                ; 8e d8
-    retn                                      ; c3
-pmode_exit:                                  ; 0xfe87f LB 0x13
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov eax, cr0                              ; 0f 20 c0
-    and AL, strict byte 0feh                  ; 24 fe
-    mov cr0, eax                              ; 0f 22 c0
-    jmp far 0f000h:0e891h                     ; ea 91 e8 00 f0
-    retn                                      ; c3
-pmbios_gdt_desc:                             ; 0xfe892 LB 0x6
-    db  047h, 000h, 098h, 0e8h, 00fh, 000h
-pmbios_gdt:                                  ; 0xfe898 LB 0x48
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  0ffh, 0ffh, 000h, 000h, 000h, 09bh, 0cfh, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 0cfh, 000h
-    db  0ffh, 0ffh, 000h, 000h, 00fh, 09bh, 000h, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  0ffh, 0ffh, 000h, 004h, 000h, 093h, 000h, 000h
-pmode_setup:                                 ; 0xfe8e0 LB 0x37b
-    push eax                                  ; 66 50
-    push esi                                  ; 66 56
-    pushfw                                    ; 9c
-    cli                                       ; fa
-    call 0e864h                               ; e8 7b ff
-    mov eax, cr0                              ; 0f 20 c0
-    and eax, strict dword 09fffffffh          ; 66 25 ff ff ff 9f
-    mov cr0, eax                              ; 0f 22 c0
-    mov esi, strict dword 0fee000f0h          ; 66 be f0 00 e0 fe
-    mov eax, strict dword 00000010fh          ; 66 b8 0f 01 00 00
-    mov dword [esi], eax                      ; 67 66 89 06
-    mov esi, strict dword 0fee00350h          ; 66 be 50 03 e0 fe
-    mov eax, dword [esi]                      ; 67 66 8b 06
-    and eax, strict dword 0fffe00ffh          ; 66 25 ff 00 fe ff
-    or ah, 007h                               ; 80 cc 07
-    mov dword [esi], eax                      ; 67 66 89 06
-    mov esi, strict dword 0fee00360h          ; 66 be 60 03 e0 fe
-    mov eax, dword [esi]                      ; 67 66 8b 06
-    and eax, strict dword 0fffe00ffh          ; 66 25 ff 00 fe ff
-    or ah, 004h                               ; 80 cc 04
-    mov dword [esi], eax                      ; 67 66 89 06
-    call 0e87fh                               ; e8 49 ff
-    popfw                                     ; 9d
-    pop esi                                   ; 66 5e
-    pop eax                                   ; 66 58
-    retn                                      ; c3
-    times 0x49 db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    cli                                       ; fa
-    push ax                                   ; 50
-    mov AL, strict byte 0adh                  ; b0 ad
-    out strict byte 064h, AL                  ; e6 64
-    mov AL, strict byte 00bh                  ; b0 0b
-    out strict byte 020h, AL                  ; e6 20
-    in AL, strict byte 020h                   ; e4 20
-    and AL, strict byte 002h                  ; 24 02
-    je short 0e9d0h                           ; 74 39
-    in AL, strict byte 060h                   ; e4 60
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    cld                                       ; fc
-    mov AH, strict byte 04fh                  ; b4 4f
-    stc                                       ; f9
-    int 015h                                  ; cd 15
-    jnc short 0e9cah                          ; 73 27
-    sti                                       ; fb
-    cmp AL, strict byte 0e0h                  ; 3c e0
-    jne short 0e9b3h                          ; 75 0b
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    or byte [00496h], 002h                    ; 80 0e 96 04 02
-    jmp short 0e9cah                          ; eb 17
-    cmp AL, strict byte 0e1h                  ; 3c e1
-    jne short 0e9c2h                          ; 75 0b
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    or byte [00496h], 001h                    ; 80 0e 96 04 01
-    jmp short 0e9cah                          ; eb 08
-    push ES                                   ; 06
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 05149h                               ; e8 80 67
-    pop ES                                    ; 07
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    cli                                       ; fa
-    call 0e034h                               ; e8 64 f6
-    mov AL, strict byte 0aeh                  ; b0 ae
-    out strict byte 064h, AL                  ; e6 64
-    pop ax                                    ; 58
-    iret                                      ; cf
-    pushaw                                    ; 60
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 06dd8h                               ; e8 f9 83
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    popaw                                     ; 61
-    iret                                      ; cf
-    times 0x274 db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    jmp short 0ecb0h                          ; eb 55
-int13_relocated:                             ; 0xfec5b LB 0x55
-    cmp ah, 04ah                              ; 80 fc 4a
-    jc short 0ec71h                           ; 72 11
-    cmp ah, 04dh                              ; 80 fc 4d
-    jnbe short 0ec71h                         ; 77 0c
-    pushaw                                    ; 60
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    push 0ece9h                               ; 68 e9 ec
-    jmp near 03b74h                           ; e9 03 4f
-    push ES                                   ; 06
-    push ax                                   ; 50
-    push bx                                   ; 53
-    push cx                                   ; 51
-    push dx                                   ; 52
-    call 03b48h                               ; e8 cf 4e
-    cmp AL, strict byte 000h                  ; 3c 00
-    je short 0ecabh                           ; 74 2e
-    call 03b5eh                               ; e8 de 4e
-    pop dx                                    ; 5a
-    push dx                                   ; 52
-    db  03ah, 0c2h
-    ; cmp al, dl                                ; 3a c2
-    jne short 0ec97h                          ; 75 11
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    pop ES                                    ; 07
-    pushaw                                    ; 60
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    push 0ece9h                               ; 68 e9 ec
-    jmp near 04148h                           ; e9 b1 54
-    and dl, 0e0h                              ; 80 e2 e0
-    db  03ah, 0c2h
-    ; cmp al, dl                                ; 3a c2
-    jne short 0ecabh                          ; 75 0d
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    pop ES                                    ; 07
-    push ax                                   ; 50
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push bx                                   ; 53
-    db  0feh, 0cah
-    ; dec dl                                    ; fe ca
-    jmp short 0ecb4h                          ; eb 09
-    pop dx                                    ; 5a
-    pop cx                                    ; 59
-    pop bx                                    ; 5b
-    pop ax                                    ; 58
-    pop ES                                    ; 07
-int13_noeltorito:                            ; 0xfecb0 LB 0x4
-    push ax                                   ; 50
-    push cx                                   ; 51
-    push dx                                   ; 52
-    push bx                                   ; 53
-int13_legacy:                                ; 0xfecb4 LB 0x14
-    push dx                                   ; 52
-    push bp                                   ; 55
-    push si                                   ; 56
-    push di                                   ; 57
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    test dl, 080h                             ; f6 c2 80
-    jne short 0ecc8h                          ; 75 06
-    push 0ece9h                               ; 68 e9 ec
-    jmp near 03203h                           ; e9 3b 45
-int13_notfloppy:                             ; 0xfecc8 LB 0x14
-    cmp dl, 0e0h                              ; 80 fa e0
-    jc short 0ecdch                           ; 72 0f
-    shr ebx, 010h                             ; 66 c1 eb 10
-    push bx                                   ; 53
-    call 0457ch                               ; e8 a7 58
-    pop bx                                    ; 5b
-    sal ebx, 010h                             ; 66 c1 e3 10
-    jmp short 0ece9h                          ; eb 0d
-int13_disk:                                  ; 0xfecdc LB 0xd
-    cmp ah, 040h                              ; 80 fc 40
-    jnbe short 0ece6h                         ; 77 05
-    call 059fah                               ; e8 16 6d
-    jmp short 0ece9h                          ; eb 03
-    call 05e44h                               ; e8 5b 71
-int13_out:                                   ; 0xfece9 LB 0x4
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    popaw                                     ; 61
-    iret                                      ; cf
-detect_parport:                              ; 0xfeced LB 0x1e
-    push dx                                   ; 52
-    inc dx                                    ; 42
-    inc dx                                    ; 42
-    in AL, DX                                 ; ec
-    and AL, strict byte 0dfh                  ; 24 df
-    out DX, AL                                ; ee
-    pop dx                                    ; 5a
-    mov AL, strict byte 0aah                  ; b0 aa
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    cmp AL, strict byte 0aah                  ; 3c aa
-    jne short 0ed0ah                          ; 75 0d
-    push bx                                   ; 53
-    sal bx, 1                                 ; d1 e3
-    mov word [bx+00408h], dx                  ; 89 97 08 04
-    pop bx                                    ; 5b
-    mov byte [bx+00478h], cl                  ; 88 8f 78 04
-    inc bx                                    ; 43
-    retn                                      ; c3
-detect_serial:                               ; 0xfed0b LB 0x24
-    push dx                                   ; 52
-    inc dx                                    ; 42
-    mov AL, strict byte 002h                  ; b0 02
-    out DX, AL                                ; ee
-    in AL, DX                                 ; ec
-    cmp AL, strict byte 002h                  ; 3c 02
-    jne short 0ed2dh                          ; 75 18
-    inc dx                                    ; 42
-    in AL, DX                                 ; ec
-    cmp AL, strict byte 002h                  ; 3c 02
-    jne short 0ed2dh                          ; 75 12
-    dec dx                                    ; 4a
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    pop dx                                    ; 5a
-    push bx                                   ; 53
-    sal bx, 1                                 ; d1 e3
-    mov word [bx+00400h], dx                  ; 89 97 00 04
-    pop bx                                    ; 5b
-    mov byte [bx+0047ch], cl                  ; 88 8f 7c 04
-    inc bx                                    ; 43
-    retn                                      ; c3
-    pop dx                                    ; 5a
-    retn                                      ; c3
-floppy_post:                                 ; 0xfed2f LB 0x87
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov AL, strict byte 000h                  ; b0 00
-    mov byte [0043eh], AL                     ; a2 3e 04
-    mov byte [0043fh], AL                     ; a2 3f 04
-    mov byte [00440h], AL                     ; a2 40 04
-    mov byte [00441h], AL                     ; a2 41 04
-    mov byte [00442h], AL                     ; a2 42 04
-    mov byte [00443h], AL                     ; a2 43 04
-    mov byte [00444h], AL                     ; a2 44 04
-    mov byte [00445h], AL                     ; a2 45 04
-    mov byte [00446h], AL                     ; a2 46 04
-    mov byte [00447h], AL                     ; a2 47 04
-    mov byte [00448h], AL                     ; a2 48 04
-    mov byte [0048bh], AL                     ; a2 8b 04
-    mov AL, strict byte 010h                  ; b0 10
-    out strict byte 070h, AL                  ; e6 70
-    in AL, strict byte 071h                   ; e4 71
-    db  08ah, 0e0h
-    ; mov ah, al                                ; 8a e0
-    shr al, 004h                              ; c0 e8 04
-    je short 0ed6ah                           ; 74 04
-    mov BL, strict byte 007h                  ; b3 07
-    jmp short 0ed6ch                          ; eb 02
-    mov BL, strict byte 000h                  ; b3 00
-    db  08ah, 0c4h
-    ; mov al, ah                                ; 8a c4
-    and AL, strict byte 00fh                  ; 24 0f
-    je short 0ed75h                           ; 74 03
-    or bl, 070h                               ; 80 cb 70
-    mov byte [0048fh], bl                     ; 88 1e 8f 04
-    mov AL, strict byte 000h                  ; b0 00
-    mov byte [00490h], AL                     ; a2 90 04
-    mov byte [00491h], AL                     ; a2 91 04
-    mov byte [00492h], AL                     ; a2 92 04
-    mov byte [00493h], AL                     ; a2 93 04
-    mov byte [00494h], AL                     ; a2 94 04
-    mov byte [00495h], AL                     ; a2 95 04
-    mov AL, strict byte 002h                  ; b0 02
-    out strict byte 00ah, AL                  ; e6 0a
-    mov ax, 0efc7h                            ; b8 c7 ef
-    mov word [00078h], ax                     ; a3 78 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0007ah], ax                     ; a3 7a 00
-    mov ax, 0ec59h                            ; b8 59 ec
-    mov word [00100h], ax                     ; a3 00 01
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [00102h], ax                     ; a3 02 01
-    mov ax, 0ef57h                            ; b8 57 ef
-    mov word [00038h], ax                     ; a3 38 00
-    mov ax, 0f000h                            ; b8 00 f0
-    mov word [0003ah], ax                     ; a3 3a 00
-    retn                                      ; c3
-bcd_to_bin:                                  ; 0xfedb6 LB 0x9
-    sal ax, 004h                              ; c1 e0 04
-    shr al, 004h                              ; c0 e8 04
-    aad 00ah                                  ; d5 0a
-    retn                                      ; c3
-rtc_post:                                    ; 0xfedbf LB 0x198
-    db  066h, 033h, 0c0h
-    ; xor eax, eax                              ; 66 33 c0
-    mov AL, strict byte 000h                  ; b0 00
-    out strict byte 070h, AL                  ; e6 70
-    in AL, strict byte 071h                   ; e4 71
-    call 0edb6h                               ; e8 eb ff
-    mov edx, strict dword 00115cf2bh          ; 66 ba 2b cf 15 01
-    mul edx                                   ; 66 f7 e2
-    mov ebx, strict dword 0000f4240h          ; 66 bb 40 42 0f 00
-    db  066h, 033h, 0d2h
-    ; xor edx, edx                              ; 66 33 d2
-    div ebx                                   ; 66 f7 f3
-    db  066h, 08bh, 0c8h
-    ; mov ecx, eax                              ; 66 8b c8
-    db  066h, 033h, 0c0h
-    ; xor eax, eax                              ; 66 33 c0
-    mov AL, strict byte 002h                  ; b0 02
-    out strict byte 070h, AL                  ; e6 70
-    in AL, strict byte 071h                   ; e4 71
-    call 0edb6h                               ; e8 c7 ff
-    mov edx, strict dword 000a6af80h          ; 66 ba 80 af a6 00
-    mul edx                                   ; 66 f7 e2
-    mov ebx, strict dword 000002710h          ; 66 bb 10 27 00 00
-    db  066h, 033h, 0d2h
-    ; xor edx, edx                              ; 66 33 d2
-    div ebx                                   ; 66 f7 f3
-    db  066h, 003h, 0c8h
-    ; add ecx, eax                              ; 66 03 c8
-    db  066h, 033h, 0c0h
-    ; xor eax, eax                              ; 66 33 c0
-    mov AL, strict byte 004h                  ; b0 04
-    out strict byte 070h, AL                  ; e6 70
-    in AL, strict byte 071h                   ; e4 71
-    call 0edb6h                               ; e8 a3 ff
-    mov edx, strict dword 003e81d03h          ; 66 ba 03 1d e8 03
-    mul edx                                   ; 66 f7 e2
-    mov ebx, strict dword 0000003e8h          ; 66 bb e8 03 00 00
-    db  066h, 033h, 0d2h
-    ; xor edx, edx                              ; 66 33 d2
-    div ebx                                   ; 66 f7 f3
-    db  066h, 003h, 0c8h
-    ; add ecx, eax                              ; 66 03 c8
-    mov dword [0046ch], ecx                   ; 66 89 0e 6c 04
-    db  032h, 0c0h
-    ; xor al, al                                ; 32 c0
-    mov byte [00470h], AL                     ; a2 70 04
-    retn                                      ; c3
-    times 0x11f db 0
-    db  'XM'
-int0e_handler:                               ; 0xfef57 LB 0x70
-    push ax                                   ; 50
-    push dx                                   ; 52
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 0ef81h                           ; 74 1e
-    mov dx, 003f5h                            ; ba f5 03
-    mov AL, strict byte 008h                  ; b0 08
-    out DX, AL                                ; ee
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    jne short 0ef69h                          ; 75 f6
-    mov dx, 003f5h                            ; ba f5 03
-    in AL, DX                                 ; ec
-    mov dx, 003f4h                            ; ba f4 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0c0h                  ; 24 c0
-    cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 0ef73h                           ; 74 f2
-    push DS                                   ; 1e
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    call 0e034h                               ; e8 ab f0
-    or byte [0043eh], 080h                    ; 80 0e 3e 04 80
-    pop DS                                    ; 1f
-    pop dx                                    ; 5a
-    pop ax                                    ; 58
-    iret                                      ; cf
-    times 0x33 db 0
-    db  'XM'
-_diskette_param_table:                       ; 0xfefc7 LB 0xd
-    scasw                                     ; af
-    add ah, byte [di]                         ; 02 25
-    add dl, byte [bp+si]                      ; 02 12
-    db  01bh, 0ffh
-    ; sbb di, di                                ; 1b ff
-    insb                                      ; 6c
-    db  0f6h
-    invd                                      ; 0f 08
-    jmp short 0efd4h                          ; eb 00
-int17_handler:                               ; 0xfefd4 LB 0xd
-    push DS                                   ; 1e
-    push ES                                   ; 06
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 07753h                               ; e8 76 87
-    popaw                                     ; 61
-    pop ES                                    ; 07
-    pop DS                                    ; 1f
-    iret                                      ; cf
-_pmode_IDT:                                  ; 0xfefe1 LB 0x6
-    db  000h, 000h, 000h, 000h, 00fh, 000h
-_rmode_IDT:                                  ; 0xfefe7 LB 0x6
-    db  0ffh, 003h, 000h, 000h, 000h, 000h
-int1c_handler:                               ; 0xfefed LB 0x78
-    iret                                      ; cf
-    times 0x55 db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    iret                                      ; cf
-    times 0x1d db 0
-    db  'XM'
-int10_handler:                               ; 0xff065 LB 0x47
-    iret                                      ; cf
-    times 0x3c db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 01765h                               ; e8 bb 26
-    hlt                                       ; f4
-    iret                                      ; cf
-int19_relocated:                             ; 0xff0ac LB 0x90
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    mov ax, word [bp+002h]                    ; 8b 46 02
-    cmp ax, 0f000h                            ; 3d 00 f0
-    je short 0f0c3h                           ; 74 0d
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov ax, 01234h                            ; b8 34 12
-    mov word [001d8h], ax                     ; a3 d8 01
-    jmp near 0e05bh                           ; e9 98 ef
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    push bp                                   ; 55
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    mov ax, strict word 00001h                ; b8 01 00
-    push ax                                   ; 50
-    call 04be3h                               ; e8 13 5b
-    inc sp                                    ; 44
-    inc sp                                    ; 44
-    test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 28
-    mov ax, strict word 00002h                ; b8 02 00
-    push ax                                   ; 50
-    call 04be3h                               ; e8 06 5b
-    inc sp                                    ; 44
-    inc sp                                    ; 44
-    test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 1b
-    mov ax, strict word 00003h                ; b8 03 00
-    push strict byte 00003h                   ; 6a 03
-    call 04be3h                               ; e8 f8 5a
-    inc sp                                    ; 44
-    inc sp                                    ; 44
-    test ax, ax                               ; 85 c0
-    jne short 0f0feh                          ; 75 0d
-    mov ax, strict word 00004h                ; b8 04 00
-    push ax                                   ; 50
-    call 04be3h                               ; e8 eb 5a
-    inc sp                                    ; 44
-    inc sp                                    ; 44
-    test ax, ax                               ; 85 c0
-    je short 0f0a4h                           ; 74 a6
-    sal eax, 004h                             ; 66 c1 e0 04
-    mov word [bp+002h], ax                    ; 89 46 02
-    shr eax, 004h                             ; 66 c1 e8 04
-    and ax, 0f000h                            ; 25 00 f0
-    mov word [bp+004h], ax                    ; 89 46 04
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    mov ds, ax                                ; 8e d8
-    mov es, ax                                ; 8e c0
-    mov word [byte bp+000h], ax               ; 89 46 00
-    mov ax, 0aa55h                            ; b8 55 aa
-    pop bp                                    ; 5d
-    iret                                      ; cf
-    or cx, word [bp+si]                       ; 0b 0a
-    or word [bp+di], cx                       ; 09 0b
-    push eax                                  ; 66 50
-    mov eax, strict dword 000800000h          ; 66 b8 00 00 80 00
-    db  08bh, 0c3h
-    ; mov ax, bx                                ; 8b c3
-    sal eax, 008h                             ; 66 c1 e0 08
-    and dl, 0fch                              ; 80 e2 fc
-    db  00ah, 0c2h
-    ; or al, dl                                 ; 0a c2
-    mov dx, 00cf8h                            ; ba f8 0c
-    out DX, eax                               ; 66 ef
-    pop eax                                   ; 66 58
-    retn                                      ; c3
-pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
-    push bp                                   ; 55
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    mov eax, strict dword 0e0000000h          ; 66 b8 00 00 00 e0
-    push eax                                  ; 66 50
-    mov ax, 0d000h                            ; b8 00 d0
-    push ax                                   ; 50
-    mov ax, strict word 00010h                ; b8 10 00
-    push ax                                   ; 50
-    mov bx, strict word 00008h                ; bb 08 00
-pci_init_io_loop1:                           ; 0xff152 LB 0xe
-    mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 ca ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in ax, DX                                 ; ed
-    cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    je short 0f199h                           ; 74 39
-enable_iomem_space:                          ; 0xff160 LB 0x39
-    mov DL, strict byte 004h                  ; b2 04
-    call 0f121h                               ; e8 bc ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in AL, DX                                 ; ec
-    or AL, strict byte 007h                   ; 0c 07
-    out DX, AL                                ; ee
-    mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 b0 ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in eax, DX                                ; 66 ed
-    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
-    jne short 0f199h                          ; 75 1b
-    mov DL, strict byte 010h                  ; b2 10
-    call 0f121h                               ; e8 9e ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in ax, DX                                 ; ed
-    and ax, strict byte 0fffch                ; 83 e0 fc
-    db  08bh, 0c8h
-    ; mov cx, ax                                ; 8b c8
-    db  08bh, 0d1h
-    ; mov dx, cx                                ; 8b d1
-    add dx, strict byte 00014h                ; 83 c2 14
-    in ax, DX                                 ; ed
-    db  08bh, 0d1h
-    ; mov dx, cx                                ; 8b d1
-    add dx, strict byte 00018h                ; 83 c2 18
-    in eax, DX                                ; 66 ed
-next_pci_dev:                                ; 0xff199 LB 0xf
-    mov byte [bp-008h], 010h                  ; c6 46 f8 10
-    inc bx                                    ; 43
-    cmp bx, 00100h                            ; 81 fb 00 01
-    jne short 0f152h                          ; 75 ae
-    db  08bh, 0e5h
-    ; mov sp, bp                                ; 8b e5
-    pop bp                                    ; 5d
-    retn                                      ; c3
-pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
-    push ax                                   ; 50
-    push cx                                   ; 51
-    mov dx, 004d0h                            ; ba d0 04
-    test AL, strict byte 008h                 ; a8 08
-    je short 0f1b4h                           ; 74 03
-    inc dx                                    ; 42
-    and AL, strict byte 007h                  ; 24 07
-is_master_pic:                               ; 0xff1b4 LB 0xd
-    db  08ah, 0c8h
-    ; mov cl, al                                ; 8a c8
-    mov BL, strict byte 001h                  ; b3 01
-    sal bl, CL                                ; d2 e3
-    in AL, DX                                 ; ec
-    db  00ah, 0c3h
-    ; or al, bl                                 ; 0a c3
-    out DX, AL                                ; ee
-    pop cx                                    ; 59
-    pop ax                                    ; 58
-    retn                                      ; c3
-pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
-    push DS                                   ; 1e
-    push bp                                   ; 55
-    mov ax, 0f000h                            ; b8 00 f0
-    mov ds, ax                                ; 8e d8
-    mov dx, 004d0h                            ; ba d0 04
-    mov AL, strict byte 000h                  ; b0 00
-    out DX, AL                                ; ee
-    inc dx                                    ; 42
-    out DX, AL                                ; ee
-    mov si, 0f2a0h                            ; be a0 f2
-    mov bh, byte [si+008h]                    ; 8a 7c 08
-    mov bl, byte [si+009h]                    ; 8a 5c 09
-    mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 43 ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in eax, DX                                ; 66 ed
-    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
-    jne near 0f291h                           ; 0f 85 a6 00
-    mov dl, byte [si+022h]                    ; 8a 54 22
-    call 0f121h                               ; e8 30 ff
-    push bx                                   ; 53
-    mov dx, 00cfch                            ; ba fc 0c
-    mov ax, 08080h                            ; b8 80 80
-    out DX, ax                                ; ef
-    add dx, strict byte 00002h                ; 83 c2 02
-    out DX, ax                                ; ef
-    mov ax, word [si+006h]                    ; 8b 44 06
-    sub ax, strict byte 00020h                ; 83 e8 20
-    shr ax, 004h                              ; c1 e8 04
-    db  08bh, 0c8h
-    ; mov cx, ax                                ; 8b c8
-    add si, strict byte 00020h                ; 83 c6 20
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    mov ax, 0f11dh                            ; b8 1d f1
-    push ax                                   ; 50
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    push ax                                   ; 50
-pci_init_irq_loop1:                          ; 0xff214 LB 0x5
-    mov bh, byte [si]                         ; 8a 3c
-    mov bl, byte [si+001h]                    ; 8a 5c 01
-pci_init_irq_loop2:                          ; 0xff219 LB 0x15
-    mov DL, strict byte 000h                  ; b2 00
-    call 0f121h                               ; e8 03 ff
-    mov dx, 00cfch                            ; ba fc 0c
-    in ax, DX                                 ; ed
-    cmp ax, strict byte 0ffffh                ; 83 f8 ff
-    jne short 0f22eh                          ; 75 07
-    test bl, 007h                             ; f6 c3 07
-    je short 0f285h                           ; 74 59
-    jmp short 0f27bh                          ; eb 4d
-pci_test_int_pin:                            ; 0xff22e LB 0x3c
-    mov DL, strict byte 03ch                  ; b2 3c
-    call 0f121h                               ; e8 ee fe
-    mov dx, 00cfdh                            ; ba fd 0c
-    in AL, DX                                 ; ec
-    and AL, strict byte 007h                  ; 24 07
-    je short 0f27bh                           ; 74 40
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    mov DL, strict byte 003h                  ; b2 03
-    mul dl                                    ; f6 e2
-    add AL, strict byte 002h                  ; 04 02
-    db  032h, 0e4h
-    ; xor ah, ah                                ; 32 e4
-    db  08bh, 0d8h
-    ; mov bx, ax                                ; 8b d8
-    mov al, byte [bx+si]                      ; 8a 00
-    db  08ah, 0d0h
-    ; mov dl, al                                ; 8a d0
-    mov bx, word [byte bp+000h]               ; 8b 5e 00
-    call 0f121h                               ; e8 d0 fe
-    mov dx, 00cfch                            ; ba fc 0c
-    and AL, strict byte 003h                  ; 24 03
-    db  002h, 0d0h
-    ; add dl, al                                ; 02 d0
-    in AL, DX                                 ; ec
-    cmp AL, strict byte 080h                  ; 3c 80
-    jc short 0f26ah                           ; 72 0d
-    mov bx, word [bp-002h]                    ; 8b 5e fe
-    mov al, byte [bx]                         ; 8a 07
-    out DX, AL                                ; ee
-    inc bx                                    ; 43
-    mov word [bp-002h], bx                    ; 89 5e fe
-    call 0f1a8h                               ; e8 3e ff
-pirq_found:                                  ; 0xff26a LB 0x11
-    mov bh, byte [si]                         ; 8a 3c
-    mov bl, byte [si+001h]                    ; 8a 5c 01
-    add bl, byte [bp-003h]                    ; 02 5e fd
-    mov DL, strict byte 03ch                  ; b2 3c
-    call 0f121h                               ; e8 aa fe
-    mov dx, 00cfch                            ; ba fc 0c
-    out DX, AL                                ; ee
-next_pci_func:                               ; 0xff27b LB 0xa
-    inc byte [bp-003h]                        ; fe 46 fd
-    db  0feh, 0c3h
-    ; inc bl                                    ; fe c3
-    test bl, 007h                             ; f6 c3 07
-    jne short 0f219h                          ; 75 94
-next_pir_entry:                              ; 0xff285 LB 0xc
-    add si, strict byte 00010h                ; 83 c6 10
-    mov byte [bp-003h], 000h                  ; c6 46 fd 00
-    loop 0f214h                               ; e2 86
-    db  08bh, 0e5h
-    ; mov sp, bp                                ; 8b e5
-    pop bx                                    ; 5b
-pci_init_end:                                ; 0xff291 LB 0x2f
-    pop bp                                    ; 5d
-    pop DS                                    ; 1f
-    retn                                      ; c3
-    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
-    db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
-_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
-    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
-    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
-    db  000h, 018h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 002h, 000h
-    db  000h, 020h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 003h, 000h
-    db  000h, 028h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 004h, 000h
-    db  000h, 030h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 005h, 000h
-    db  000h, 038h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 006h, 000h
-    db  000h, 040h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 007h, 000h
-    db  000h, 048h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 008h, 000h
-    db  000h, 050h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 009h, 000h
-    db  000h, 058h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00ah, 000h
-    db  000h, 060h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00bh, 000h
-    db  000h, 068h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 00ch, 000h
-    db  000h, 070h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 00dh, 000h
-    db  000h, 078h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00eh, 000h
-    db  000h, 080h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00fh, 000h
-    db  000h, 088h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 010h, 000h
-    db  000h, 090h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 011h, 000h
-    db  000h, 098h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 012h, 000h
-    db  000h, 0a0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 013h, 000h
-    db  000h, 0a8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 014h, 000h
-    db  000h, 0b0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 015h, 000h
-    db  000h, 0b8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 016h, 000h
-    db  000h, 0c0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 017h, 000h
-    db  000h, 0c8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 018h, 000h
-    db  000h, 0d0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 019h, 000h
-    db  000h, 0d8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 01ah, 000h
-    db  000h, 0e0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 01bh, 000h
-    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
-    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
-_pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
-    loopne 0f4a3h                             ; e0 01
-    times 0x39d db 0
-    db  'XM'
-int12_handler:                               ; 0xff841 LB 0xc
-    sti                                       ; fb
-    push DS                                   ; 1e
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov ax, word [00013h]                     ; a1 13 00
-    pop DS                                    ; 1f
-    iret                                      ; cf
-int11_handler:                               ; 0xff84d LB 0xc
-    sti                                       ; fb
-    push DS                                   ; 1e
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov ax, word [00010h]                     ; a1 10 00
-    pop DS                                    ; 1f
-    iret                                      ; cf
-int15_handler:                               ; 0xff859 LB 0x2e
-    pushfw                                    ; 9c
-    push DS                                   ; 1e
-    push ES                                   ; 06
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    cmp ah, 086h                              ; 80 fc 86
-    je short 0f88ch                           ; 74 28
-    cmp ah, 0e8h                              ; 80 fc e8
-    je short 0f88ch                           ; 74 23
-    cmp ah, 0d0h                              ; 80 fc d0
-    je short 0f88ch                           ; 74 1e
-    pushaw                                    ; 60
-    cmp ah, 053h                              ; 80 fc 53
-    je short 0f882h                           ; 74 0e
-    cmp ah, 0c2h                              ; 80 fc c2
-    je short 0f887h                           ; 74 0e
-    call 06545h                               ; e8 c9 6c
-    popaw                                     ; 61
-    pop ES                                    ; 07
-    pop DS                                    ; 1f
-    popfw                                     ; 9d
-    jmp short 0f895h                          ; eb 13
-    call 09860h                               ; e8 db 9f
-    jmp short 0f87ch                          ; eb f5
-int15_handler_mouse:                         ; 0xff887 LB 0x5
-    call 073c8h                               ; e8 3e 7b
-    jmp short 0f87ch                          ; eb f0
-int15_handler32:                             ; 0xff88c LB 0x9
-    pushad                                    ; 66 60
-    call 06a16h                               ; e8 85 71
-    popad                                     ; 66 61
-    jmp short 0f87dh                          ; eb e8
-iret_modify_cf:                              ; 0xff895 LB 0x14
-    jc short 0f8a0h                           ; 72 09
-    push bp                                   ; 55
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    and byte [bp+006h], 0feh                  ; 80 66 06 fe
-    pop bp                                    ; 5d
-    iret                                      ; cf
-    push bp                                   ; 55
-    db  08bh, 0ech
-    ; mov bp, sp                                ; 8b ec
-    or byte [bp+006h], 001h                   ; 80 4e 06 01
-    pop bp                                    ; 5d
-    iret                                      ; cf
-int74_handler:                               ; 0xff8a9 LB 0x2e
-    sti                                       ; fb
-    pushaw                                    ; 60
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push strict byte 00000h                   ; 6a 00
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 072feh                               ; e8 41 7a
-    pop cx                                    ; 59
-    jcxz 0f8cch                               ; e3 0c
-    push strict byte 00000h                   ; 6a 00
-    pop DS                                    ; 1f
-    push word [0040eh]                        ; ff 36 0e 04
-    pop DS                                    ; 1f
-    call far [word 00022h]                    ; ff 1e 22 00
-    cli                                       ; fa
-    call 0e030h                               ; e8 60 e7
-    add sp, strict byte 00008h                ; 83 c4 08
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    popaw                                     ; 61
-    iret                                      ; cf
-int76_handler:                               ; 0xff8d7 LB 0x197
-    push ax                                   ; 50
-    push DS                                   ; 1e
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
-    call 0e030h                               ; e8 4a e7
-    pop DS                                    ; 1f
-    pop ax                                    ; 58
-    iret                                      ; cf
-    times 0x183 db 0
-    db  'XM'
-font8x8:                                     ; 0xffa6e LB 0x421
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
-    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
-    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
-    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
-    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
-    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
-    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
-    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
-    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
-    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
-    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
-    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
-    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
-    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
-    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
-    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
-    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
-    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
-    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
-    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
-    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
-    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
-    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
-    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
-    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
-    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
-    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
-    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
-    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
-    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
-    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
-    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
-    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
-    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
-    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
-    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
-    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
-    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
-    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
-    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
-    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
-    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
-    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
-    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
-    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
-    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
-    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
-    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
-    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
-    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
-    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
-    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
-    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
-    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
-    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
-    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
-    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
-    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
-    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
-    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
-    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
-    db  080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0f3h, 09bh, 066h
-    db  061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0e9h, 071h, 061h, 01fh, 007h
-    db  0cfh
-int70_handler:                               ; 0xffe8f LB 0x16
-    push ES                                   ; 06
-    push DS                                   ; 1e
-    pushaw                                    ; 60
-    push CS                                   ; 0e
-    pop DS                                    ; 1f
-    cld                                       ; fc
-    call 06fb6h                               ; e8 1e 71
-    popaw                                     ; 61
-    pop DS                                    ; 1f
-    pop ES                                    ; 07
-    iret                                      ; cf
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si+04dh], bl                 ; 00 58 4d
-int08_handler:                               ; 0xffea5 LB 0xae
-    sti                                       ; fb
-    push eax                                  ; 66 50
-    push DS                                   ; 1e
-    push dx                                   ; 52
-    mov ax, strict word 00040h                ; b8 40 00
-    mov ds, ax                                ; 8e d8
-    mov eax, dword [0006ch]                   ; 66 a1 6c 00
-    inc eax                                   ; 66 40
-    cmp eax, strict dword 0001800b0h          ; 66 3d b0 00 18 00
-    jc short 0fec4h                           ; 72 07
-    db  066h, 033h, 0c0h
-    ; xor eax, eax                              ; 66 33 c0
-    inc byte [word 00070h]                    ; fe 06 70 00
-    mov dword [0006ch], eax                   ; 66 a3 6c 00
-    mov AL, byte [00040h]                     ; a0 40 00
-    db  00ah, 0c0h
-    ; or al, al                                 ; 0a c0
-    je short 0feddh                           ; 74 0e
-    db  0feh, 0c8h
-    ; dec al                                    ; fe c8
-    mov byte [00040h], AL                     ; a2 40 00
-    jne short 0feddh                          ; 75 07
-    mov dx, 003f2h                            ; ba f2 03
-    in AL, DX                                 ; ec
-    and AL, strict byte 0cfh                  ; 24 cf
-    out DX, AL                                ; ee
-    int 01ch                                  ; cd 1c
-    cli                                       ; fa
-    call 0e034h                               ; e8 51 e1
-    pop dx                                    ; 5a
-    pop DS                                    ; 1f
-    pop eax                                   ; 66 58
-    iret                                      ; cf
-    times 0x9 db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    times 0xb db 0
-    pop ax                                    ; 58
-    dec bp                                    ; 4d
-    dec di                                    ; 4f
-    jc short 0ff64h                           ; 72 61
-    arpl [si+065h], bp                        ; 63 6c 65
-    and byte [bp+04dh], dl                    ; 20 56 4d
-    and byte [bp+069h], dl                    ; 20 56 69
-    jc short 0ff82h                           ; 72 74
-    jne short 0ff71h                          ; 75 61
-    insb                                      ; 6c
-    inc dx                                    ; 42
-    outsw                                     ; 6f
-    js short 0ff35h                           ; 78 20
-    inc dx                                    ; 42
-    dec cx                                    ; 49
-    dec di                                    ; 4f
-    push bx                                   ; 53
-    times 0x38 db 0
-    db  'XM'
-dummy_iret:                                  ; 0xfff53 LB 0x9d
-    iret                                      ; cf
-    iret                                      ; cf
-    mov ax, ax                                ; 89 c0
-    mov ax, ax                                ; 89 c0
-    mov ax, ax                                ; 89 c0
-    mov ax, ax                                ; 89 c0
-    mov ax, ax                                ; 89 c0
-    cld                                       ; fc
-    pop di                                    ; 5f
-    push bx                                   ; 53
-    dec bp                                    ; 4d
-    pop di                                    ; 5f
-    jnl short 0ff85h                          ; 7d 1f
-    add al, byte [di]                         ; 02 05
-    inc word [bx+si]                          ; ff 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    add byte [bx+si], al                      ; 00 00
-    pop di                                    ; 5f
-    inc sp                                    ; 44
-    dec bp                                    ; 4d
-    dec cx                                    ; 49
-    pop di                                    ; 5f
-    and ax, strict word 00000h                ; 25 00 00
-    add byte [bx+si], dl                      ; 00 10
-    push CS                                   ; 0e
-    add byte [bx+si], al                      ; 00 00
-    add byte [di], ah                         ; 00 25
-    times 0x6f db 0
-    db  'XM'
-cpu_reset:                                   ; 0xffff0 LB 0x10
-    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 094h
Index: unk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum	(revision 60421)
+++ 	(revision )
@@ -1,1 +1,0 @@
-f357841f6f32af6afa3ea9581f3f1b33 *VBoxPcBios.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 60422)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 60422)
@@ -0,0 +1,17418 @@
+; $Id$ 
+;; @file
+; Auto Generated source file. Do not edit.
+;
+
+;
+; Source file: post.c
+;
+;  BIOS POST routines. Used only during initialization.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: bios.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: print.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: ata.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: floppy.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: floppyt.c
+;
+;  $Id$
+;  Floppy drive tables.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: eltorito.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: boot.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: keyboard.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: disk.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: serial.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: system.c
+;
+;  
+;  Copyright (C) 2006-2016 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: invop.c
+;
+;  $Id$
+;  Real mode invalid opcode handler.
+;  
+;  
+;  
+;  Copyright (C) 2013-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: timepci.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: ps2mouse.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: parallel.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: logo.c
+;
+;  $Id$
+;  Stuff for drawing the BIOS logo.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: scsi.c
+;
+;  $Id$
+;  SCSI host adapter driver to boot from SCSI disks
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: ahci.c
+;
+;  $Id$
+;  AHCI host adapter driver to boot from SATA disks.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: apm.c
+;
+;  $Id$
+;  APM BIOS support. Implements APM version 1.2.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: pcibios.c
+;
+;  $Id$
+;  PCI BIOS support.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: pciutil.c
+;
+;  Utility routines for calling the PCI BIOS.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: vds.c
+;
+;  Utility routines for calling the Virtual DMA Services.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: support.asm
+;
+;  $Id$
+;  Compiler support routines.
+;  
+;  
+;  
+;  Copyright (C) 2012-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+
+;
+; Source file: pcibio32.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+;  --------------------------------------------------------------------
+
+;
+; Source file: apm_pm.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+;  --------------------------------------------------------------------
+;  
+;  Protected-mode APM implementation.
+;  
+
+;
+; Source file: orgs.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+;  
+
+;
+; Source file: pci32.c
+;
+;  $Id$
+;  32-bit PCI BIOS wrapper.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+
+
+
+section _DATA progbits vstart=0x0 align=1 ; size=0xb0 class=DATA group=DGROUP
+_fd_parm:                                    ; 0xf0000 LB 0x5b
+    db  0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 080h, 0dfh, 002h, 025h
+    db  002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 040h, 0dfh, 002h, 025h, 002h, 00fh, 01bh
+    db  0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 000h, 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h
+    db  00fh, 008h, 04fh, 080h, 0afh, 002h, 025h, 002h, 012h, 01bh, 0ffh, 06ch, 0f6h, 00fh, 008h, 04fh
+    db  000h, 0afh, 002h, 025h, 002h, 024h, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 0c0h, 0afh, 002h
+    db  025h, 002h, 0ffh, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 0ffh, 000h
+_fd_map:                                     ; 0xf005b LB 0xf
+    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
+_pktacc:                                     ; 0xf006a LB 0xc
+    db  000h, 000h, 000h, 000h, 000h, 000h, 040h, 02bh, 05ch, 081h, 0c2h, 090h
+_softrst:                                    ; 0xf0076 LB 0xc
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0c9h, 02dh, 008h, 03bh, 008h, 03bh
+_dskacc:                                     ; 0xf0082 LB 0x2e
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 02ah, 0e5h, 02ah, 000h, 000h, 000h, 000h
+    db  09ch, 07fh, 07ch, 080h, 094h, 08fh, 03ch, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
+
+section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
+    db   'NMI Handler called', 00ah, 000h
+    db   'INT18: BOOT FAILURE', 00ah, 000h
+    db   '%s', 00ah, 000h, 000h
+    db   'FATAL: ', 000h
+    db   'bios_printf: unknown %ll format', 00ah, 000h
+    db   'bios_printf: unknown format', 00ah, 000h
+    db   'ata-detect: Failed to detect ATA device', 00ah, 000h
+    db   'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h
+    db   'ata-detect: Failed to detect ATAPI device', 00ah, 000h
+    db   ' slave', 000h
+    db   'master', 000h
+    db   'ata%d %s: ', 000h
+    db   '%c', 000h
+    db   ' ATA-%d Hard-Disk (%lu MBytes)', 00ah, 000h
+    db   ' ATAPI-%d CD-ROM/DVD-ROM', 00ah, 000h
+    db   ' ATAPI-%d Device', 00ah, 000h
+    db   'ata%d %s: Unknown device', 00ah, 000h
+    db   'ata_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'set_diskette_current_cyl: drive > 1', 00ah, 000h
+    db   'int13_diskette_function', 000h
+    db   '%s: drive>1 || head>1 ...', 00ah, 000h
+    db   '%s: ctrl not ready', 00ah, 000h
+    db   '%s: write error', 00ah, 000h
+    db   '%s: bad floppy type', 00ah, 000h
+    db   '%s: unsupported AH=%02x', 00ah, 000h, 000h
+    db   'int13_eltorito', 000h
+    db   '%s: call with AX=%04x not implemented.', 00ah, 000h
+    db   '%s: unsupported AH=%02x', 00ah, 000h
+    db   'int13_cdemu', 000h
+    db   '%s: function %02x, emulation not active for DL= %02x', 00ah, 000h
+    db   '%s: function %02x, error %02x !', 00ah, 000h
+    db   '%s: function AH=%02x unsupported, returns fail', 00ah, 000h
+    db   'int13_cdrom', 000h
+    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
+    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
+    db   '%s: function %02x. Can', 027h, 't use 64bits lba', 00ah, 000h
+    db   '%s: function %02x, status %02x !', 00ah, 000h, 000h
+    db   'Booting from %s...', 00ah, 000h
+    db   'Boot from %s failed', 00ah, 000h
+    db   'Boot from %s %d failed', 00ah, 000h
+    db   'No bootable medium found! System halted.', 00ah, 000h
+    db   'Could not read from the boot medium! System halted.', 00ah, 000h
+    db   'CDROM boot failure code : %04x', 00ah, 000h
+    db   'Boot : bseqnr=%d, bootseq=%x', 00dh, 00ah, 000h, 000h
+    db   'Keyboard error:%u', 00ah, 000h
+    db   'KBD: int09 handler: AL=0', 00ah, 000h
+    db   'KBD: int09h_handler(): unknown scancode read: 0x%02x!', 00ah, 000h
+    db   'KBD: int09h_handler(): scancode & asciicode are zero?', 00ah, 000h
+    db   'KBD: int16h: out of keyboard input', 00ah, 000h
+    db   'KBD: unsupported int 16h function %02x', 00ah, 000h
+    db   'AX=%04x BX=%04x CX=%04x DX=%04x ', 00ah, 000h, 000h
+    db   'int13_harddisk', 000h
+    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
+    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
+    db   '%s: function %02x, count out of range!', 00ah, 000h
+    db   '%s: function %02x, disk %02x, parameters out of range %04x/%04x/%04x!', 00ah
+    db   000h
+    db   '%s: function %02x, error %02x !', 00ah, 000h
+    db   'format disk track called', 00ah, 000h
+    db   '%s: function %02xh unimplemented, returns success', 00ah, 000h
+    db   '%s: function %02xh unsupported, returns fail', 00ah, 000h
+    db   'int13_harddisk_ext', 000h
+    db   '%s: function %02x. LBA out of range', 00ah, 000h, 000h
+    db   'int15: Func 24h, subfunc %02xh, A20 gate control not supported', 00ah, 000h
+    db   '*** int 15h function AH=bf not yet supported!', 00ah, 000h
+    db   'EISA BIOS not present', 00ah, 000h
+    db   '*** int 15h function AX=%04x, BX=%04x not yet supported!', 00ah, 000h
+    db   'sendmouse', 000h
+    db   'setkbdcomm', 000h
+    db   'Mouse reset returned %02x (should be ack)', 00ah, 000h
+    db   'Mouse status returned %02x (should be ack)', 00ah, 000h
+    db   'INT 15h C2 AL=6, BH=%02x', 00ah, 000h
+    db   'INT 15h C2 default case entered', 00ah, 000h, 000h
+    db   'Key pressed: %x', 00ah, 000h
+    db   00ah, 00ah, '  AHCI controller:', 000h
+    db   00ah, '    %d) Hard disk', 000h
+    db   00ah, 00ah, '  SCSI controller:', 000h
+    db   '  IDE controller:', 000h
+    db   00ah, 00ah, 'AHCI controller:', 00ah, 000h
+    db   00ah, '    %d) ', 000h
+    db   'Secondary ', 000h
+    db   'Primary ', 000h
+    db   'Slave', 000h
+    db   'Master', 000h
+    db   'No hard disks found', 000h
+    db   00ah, 000h
+    db   'Press F12 to select boot device.', 00ah, 000h
+    db   00ah, 'VirtualBox temporary boot device selection', 00ah, 00ah, 'Detected H'
+    db   'ard disks:', 00ah, 00ah, 000h
+    db   00ah, 'Other boot devices:', 00ah, ' f) Floppy', 00ah, ' c) CD-ROM', 00ah
+    db   ' l) LAN', 00ah, 00ah, ' b) Continue booting', 00ah, 000h
+    db   'Delaying boot for %d seconds:', 000h
+    db   ' %d', 000h, 000h
+    db   'scsi_read_sectors', 000h
+    db   '%s: device_id out of range %d', 00ah, 000h
+    db   'scsi_write_sectors', 000h
+    db   'scsi_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'scsi_enumerate_attached_devices', 000h
+    db   '%s: SCSI_INQUIRY failed', 00ah, 000h
+    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
+    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
+    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
+    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
+    db   'ahci_read_sectors', 000h
+    db   '%s: device_id out of range %d', 00ah, 000h
+    db   'ahci_write_sectors', 000h
+    db   'ahci_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u 0x%llx sectors', 00ah, 000h
+    db   'Standby', 000h
+    db   'Suspend', 000h
+    db   'Shutdown', 000h
+    db   'APM: Unsupported function AX=%04X BX=%04X called', 00ah, 000h, 000h
+    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
+
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+    db  'VirtualBox 5.0.51', 000h
+_bios_prefix_string:                         ; 0xf0da0 LB 0x8
+    db  'BIOS: ', 000h, 000h
+_isotag:                                     ; 0xf0da8 LB 0x6
+    db  'CD001', 000h
+_eltorito:                                   ; 0xf0dae LB 0x18
+    db  'EL TORITO SPECIFICATION', 000h
+_drivetypes:                                 ; 0xf0dc6 LB 0x28
+    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
+    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
+    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
+    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
+    db  040h, 003h, 000h, 003h, 000h, 079h, 000h, 000h, 033h, 004h, 023h, 004h, 000h, 000h, 000h, 07ah
+    db  000h, 000h, 034h, 005h, 024h, 005h, 000h, 000h, 000h, 07bh, 000h, 000h, 035h, 006h, 025h, 006h
+    db  000h, 000h, 000h, 07ch, 000h, 000h, 036h, 007h, 05eh, 007h, 01eh, 007h, 000h, 07dh, 000h, 000h
+    db  037h, 008h, 026h, 008h, 000h, 000h, 000h, 07eh, 000h, 000h, 038h, 009h, 02ah, 009h, 000h, 000h
+    db  000h, 07fh, 000h, 000h, 039h, 00ah, 028h, 00ah, 000h, 000h, 000h, 080h, 000h, 000h, 030h, 00bh
+    db  029h, 00bh, 000h, 000h, 000h, 081h, 000h, 000h, 02dh, 00ch, 05fh, 00ch, 01fh, 00ch, 000h, 082h
+    db  000h, 000h, 03dh, 00dh, 02bh, 00dh, 000h, 000h, 000h, 083h, 000h, 000h, 008h, 00eh, 008h, 00eh
+    db  07fh, 00eh, 000h, 000h, 000h, 000h, 009h, 00fh, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  071h, 010h, 051h, 010h, 011h, 010h, 000h, 010h, 040h, 000h, 077h, 011h, 057h, 011h, 017h, 011h
+    db  000h, 011h, 040h, 000h, 065h, 012h, 045h, 012h, 005h, 012h, 000h, 012h, 040h, 000h, 072h, 013h
+    db  052h, 013h, 012h, 013h, 000h, 013h, 040h, 000h, 074h, 014h, 054h, 014h, 014h, 014h, 000h, 014h
+    db  040h, 000h, 079h, 015h, 059h, 015h, 019h, 015h, 000h, 015h, 040h, 000h, 075h, 016h, 055h, 016h
+    db  015h, 016h, 000h, 016h, 040h, 000h, 069h, 017h, 049h, 017h, 009h, 017h, 000h, 017h, 040h, 000h
+    db  06fh, 018h, 04fh, 018h, 00fh, 018h, 000h, 018h, 040h, 000h, 070h, 019h, 050h, 019h, 010h, 019h
+    db  000h, 019h, 040h, 000h, 05bh, 01ah, 07bh, 01ah, 01bh, 01ah, 000h, 000h, 000h, 000h, 05dh, 01bh
+    db  07dh, 01bh, 01dh, 01bh, 000h, 000h, 000h, 000h, 00dh, 01ch, 00dh, 01ch, 00ah, 01ch, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 061h, 01eh, 041h, 01eh
+    db  001h, 01eh, 000h, 01eh, 040h, 000h, 073h, 01fh, 053h, 01fh, 013h, 01fh, 000h, 01fh, 040h, 000h
+    db  064h, 020h, 044h, 020h, 004h, 020h, 000h, 020h, 040h, 000h, 066h, 021h, 046h, 021h, 006h, 021h
+    db  000h, 021h, 040h, 000h, 067h, 022h, 047h, 022h, 007h, 022h, 000h, 022h, 040h, 000h, 068h, 023h
+    db  048h, 023h, 008h, 023h, 000h, 023h, 040h, 000h, 06ah, 024h, 04ah, 024h, 00ah, 024h, 000h, 024h
+    db  040h, 000h, 06bh, 025h, 04bh, 025h, 00bh, 025h, 000h, 025h, 040h, 000h, 06ch, 026h, 04ch, 026h
+    db  00ch, 026h, 000h, 026h, 040h, 000h, 03bh, 027h, 03ah, 027h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  027h, 028h, 022h, 028h, 000h, 000h, 000h, 000h, 000h, 000h, 060h, 029h, 07eh, 029h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 02bh
+    db  07ch, 02bh, 01ch, 02bh, 000h, 000h, 000h, 000h, 07ah, 02ch, 05ah, 02ch, 01ah, 02ch, 000h, 02ch
+    db  040h, 000h, 078h, 02dh, 058h, 02dh, 018h, 02dh, 000h, 02dh, 040h, 000h, 063h, 02eh, 043h, 02eh
+    db  003h, 02eh, 000h, 02eh, 040h, 000h, 076h, 02fh, 056h, 02fh, 016h, 02fh, 000h, 02fh, 040h, 000h
+    db  062h, 030h, 042h, 030h, 002h, 030h, 000h, 030h, 040h, 000h, 06eh, 031h, 04eh, 031h, 00eh, 031h
+    db  000h, 031h, 040h, 000h, 06dh, 032h, 04dh, 032h, 00dh, 032h, 000h, 032h, 040h, 000h, 02ch, 033h
+    db  03ch, 033h, 000h, 000h, 000h, 000h, 000h, 000h, 02eh, 034h, 03eh, 034h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 02fh, 035h, 03fh, 035h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 037h, 02ah, 037h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 020h, 039h, 020h, 039h, 020h, 039h
+    db  020h, 039h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03bh
+    db  000h, 054h, 000h, 05eh, 000h, 068h, 000h, 000h, 000h, 03ch, 000h, 055h, 000h, 05fh, 000h, 069h
+    db  000h, 000h, 000h, 03dh, 000h, 056h, 000h, 060h, 000h, 06ah, 000h, 000h, 000h, 03eh, 000h, 057h
+    db  000h, 061h, 000h, 06bh, 000h, 000h, 000h, 03fh, 000h, 058h, 000h, 062h, 000h, 06ch, 000h, 000h
+    db  000h, 040h, 000h, 059h, 000h, 063h, 000h, 06dh, 000h, 000h, 000h, 041h, 000h, 05ah, 000h, 064h
+    db  000h, 06eh, 000h, 000h, 000h, 042h, 000h, 05bh, 000h, 065h, 000h, 06fh, 000h, 000h, 000h, 043h
+    db  000h, 05ch, 000h, 066h, 000h, 070h, 000h, 000h, 000h, 044h, 000h, 05dh, 000h, 067h, 000h, 071h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 047h, 037h, 047h, 000h, 077h, 000h, 000h, 020h, 000h
+    db  000h, 048h, 038h, 048h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 049h, 039h, 049h, 000h, 084h
+    db  000h, 000h, 020h, 000h, 02dh, 04ah, 02dh, 04ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04bh
+    db  034h, 04bh, 000h, 073h, 000h, 000h, 020h, 000h, 000h, 04ch, 035h, 04ch, 000h, 000h, 000h, 000h
+    db  020h, 000h, 000h, 04dh, 036h, 04dh, 000h, 074h, 000h, 000h, 020h, 000h, 02bh, 04eh, 02bh, 04eh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 04fh, 031h, 04fh, 000h, 075h, 000h, 000h, 020h, 000h
+    db  000h, 050h, 032h, 050h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 051h, 033h, 051h, 000h, 076h
+    db  000h, 000h, 020h, 000h, 000h, 052h, 030h, 052h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 053h
+    db  02eh, 053h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 056h, 07ch, 056h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
+    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
+_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
+    db  '%s: keyboard input buffer full', 00ah, 000h
+
+  ; Padding 0x478 bytes at 0xf1188
+  times 1144 db 0
+
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ac5 class=CODE group=AUTO
+rom_scan_:                                   ; 0xf1600 LB 0x50
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov cx, dx                                ; 89 d1
+    cmp bx, cx                                ; 39 cb
+    jnc short 01648h                          ; 73 38
+    xor si, si                                ; 31 f6
+    mov dx, bx                                ; 89 da
+    mov es, bx                                ; 8e c3
+    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
+    jne short 01642h                          ; 75 25
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov word [bp-00ah], strict word 00003h    ; c7 46 f6 03 00
+    call far [bp-00ah]                        ; ff 5e f6
+    cli                                       ; fa
+    mov es, bx                                ; 8e c3
+    mov al, byte [es:si+002h]                 ; 26 8a 44 02
+    add AL, strict byte 003h                  ; 04 03
+    and AL, strict byte 0fch                  ; 24 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    sal dx, 002h                              ; c1 e2 02
+    db  01bh, 0c2h
+    ; sbb ax, dx                                ; 1b c2
+    sar ax, 002h                              ; c1 f8 02
+    add bx, ax                                ; 01 c3
+    jmp short 0160ch                          ; eb ca
+    add bx, 00080h                            ; 81 c3 80 00
+    jmp short 0160ch                          ; eb c4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_byte_:                                  ; 0xf1650 LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx]                      ; 26 8a 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_byte_:                                 ; 0xf165e LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov byte [es:si], bl                      ; 26 88 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_word_:                                  ; 0xf166c LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_word_:                                 ; 0xf167a LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_dword_:                                 ; 0xf1688 LB 0x12
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_dword_:                                ; 0xf169a LB 0x12
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+inb_cmos_:                                   ; 0xf16ac LB 0x1b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov AH, strict byte 070h                  ; b4 70
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 016b8h                           ; 72 02
+    mov AH, strict byte 072h                  ; b4 72
+    mov dl, ah                                ; 88 e2
+    xor dh, dh                                ; 30 f6
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+outb_cmos_:                                  ; 0xf16c7 LB 0x1d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bl, dl                                ; 88 d3
+    mov AH, strict byte 070h                  ; b4 70
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 016d5h                           ; 72 02
+    mov AH, strict byte 072h                  ; b4 72
+    mov dl, ah                                ; 88 e2
+    xor dh, dh                                ; 30 f6
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_dummy_isr_function:                         ; 0xf16e4 LB 0x65
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push ax                                   ; 50
+    mov CL, strict byte 0ffh                  ; b1 ff
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-002h], al                    ; 88 46 fe
+    test al, al                               ; 84 c0
+    je short 01738h                           ; 74 3c
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    test al, al                               ; 84 c0
+    je short 01720h                           ; 74 15
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    mov al, cl                                ; 88 c8
+    or al, bl                                 ; 08 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    jmp short 0172fh                          ; eb 0f
+    mov dx, strict word 00021h                ; ba 21 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and bl, 0fbh                              ; 80 e3 fb
+    mov byte [bp-002h], bl                    ; 88 5e fe
+    or al, bl                                 ; 08 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    mov cl, byte [bp-002h]                    ; 8a 4e fe
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 0006bh                ; ba 6b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 19 ff
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_nmi_handler_msg:                            ; 0xf1749 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push 000b0h                               ; 68 b0 00
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 12 02
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int18_panic_msg:                            ; 0xf175b LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push 000c4h                               ; 68 c4 00
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 00 02
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_log_bios_start:                             ; 0xf176d LB 0x20
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 a8 01
+    push 00d8eh                               ; 68 8e 0d
+    push 000d9h                               ; 68 d9 00
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 e0 01
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_print_bios_banner:                          ; 0xf178d LB 0x2e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 d3 fe
+    mov cx, ax                                ; 89 c1
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 d4 fe
+    cmp cx, 01234h                            ; 81 f9 34 12
+    jne short 017b4h                          ; 75 08
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    jmp short 017b7h                          ; eb 03
+    call 07b63h                               ; e8 ac 63
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+send_:                                       ; 0xf17bb LB 0x3b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov bx, ax                                ; 89 c3
+    mov cl, dl                                ; 88 d1
+    test AL, strict byte 008h                 ; a8 08
+    je short 017ceh                           ; 74 06
+    mov al, dl                                ; 88 d0
+    mov dx, 00403h                            ; ba 03 04
+    out DX, AL                                ; ee
+    test bl, 004h                             ; f6 c3 04
+    je short 017d9h                           ; 74 06
+    mov al, cl                                ; 88 c8
+    mov dx, 00504h                            ; ba 04 05
+    out DX, AL                                ; ee
+    test bl, 002h                             ; f6 c3 02
+    je short 017efh                           ; 74 11
+    cmp cl, 00ah                              ; 80 f9 0a
+    jne short 017e9h                          ; 75 06
+    mov AL, strict byte 00dh                  ; b0 0d
+    mov AH, strict byte 00eh                  ; b4 0e
+    int 010h                                  ; cd 10
+    mov al, cl                                ; 88 c8
+    mov AH, strict byte 00eh                  ; b4 0e
+    int 010h                                  ; cd 10
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_int_:                                    ; 0xf17f6 LB 0x5f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov di, strict word 0000ah                ; bf 0a 00
+    mov ax, dx                                ; 89 d0
+    cwd                                       ; 99
+    idiv di                                   ; f7 ff
+    mov word [bp-006h], ax                    ; 89 46 fa
+    test ax, ax                               ; 85 c0
+    je short 0181bh                           ; 74 0a
+    dec bx                                    ; 4b
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 017f6h                               ; e8 dd ff
+    jmp short 01836h                          ; eb 1b
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jle short 0182ah                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 93 ff
+    jmp short 0181bh                          ; eb f1
+    test cx, cx                               ; 85 c9
+    je short 01836h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 85 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov BL, strict byte 00ah                  ; b3 0a
+    mul bl                                    ; f6 e3
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    sub bl, al                                ; 28 c3
+    add bl, 030h                              ; 80 c3 30
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 6d ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_uint_:                                   ; 0xf1855 LB 0x5e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov di, strict word 0000ah                ; bf 0a 00
+    div di                                    ; f7 f7
+    mov word [bp-006h], ax                    ; 89 46 fa
+    test ax, ax                               ; 85 c0
+    je short 0187bh                           ; 74 0a
+    dec bx                                    ; 4b
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 01855h                               ; e8 dc ff
+    jmp short 01896h                          ; eb 1b
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jle short 0188ah                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 33 ff
+    jmp short 0187bh                          ; eb f1
+    test cx, cx                               ; 85 c9
+    je short 01896h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 25 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    sub dl, al                                ; 28 c2
+    add dl, 030h                              ; 80 c2 30
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 0f ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_luint_:                                  ; 0xf18b3 LB 0x70
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov di, dx                                ; 89 d7
+    mov ax, bx                                ; 89 d8
+    mov dx, cx                                ; 89 ca
+    mov bx, strict word 0000ah                ; bb 0a 00
+    xor cx, cx                                ; 31 c9
+    call 09fb0h                               ; e8 e3 86
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov cx, dx                                ; 89 d1
+    mov dx, ax                                ; 89 c2
+    or dx, cx                                 ; 09 ca
+    je short 018e7h                           ; 74 0f
+    push word [bp+004h]                       ; ff 76 04
+    lea dx, [di-001h]                         ; 8d 55 ff
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 018b3h                               ; e8 ce ff
+    jmp short 01904h                          ; eb 1d
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 018f6h                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 c7 fe
+    jmp short 018e7h                          ; eb f1
+    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
+    je short 01904h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 b7 fe
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    sub dl, al                                ; 28 c2
+    add dl, 030h                              ; 80 c2 30
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 a1 fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+put_str_:                                    ; 0xf1923 LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    push si                                   ; 56
+    mov si, ax                                ; 89 c6
+    mov es, cx                                ; 8e c1
+    mov dl, byte [es:bx]                      ; 26 8a 17
+    test dl, dl                               ; 84 d2
+    je short 0193dh                           ; 74 0a
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017bbh                               ; e8 81 fe
+    inc bx                                    ; 43
+    jmp short 0192ah                          ; eb ed
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_str_near_:                               ; 0xf1944 LB 0x22
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov cx, ax                                ; 89 c1
+    mov bx, dx                                ; 89 d3
+    mov al, byte [bx]                         ; 8a 07
+    test al, al                               ; 84 c0
+    je short 0195fh                           ; 74 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 017bbh                               ; e8 5f fe
+    inc bx                                    ; 43
+    jmp short 0194dh                          ; eb ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+bios_printf_:                                ; 0xf1966 LB 0x339
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ch                ; 83 ec 1c
+    lea bx, [bp+008h]                         ; 8d 5e 08
+    mov word [bp-016h], bx                    ; 89 5e ea
+    mov [bp-014h], ss                         ; 8c 56 ec
+    xor cx, cx                                ; 31 c9
+    xor di, di                                ; 31 ff
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    and ax, strict word 00007h                ; 25 07 00
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jne short 01994h                          ; 75 0b
+    push 000deh                               ; 68 de 00
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 d5 ff
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov dl, byte [bx]                         ; 8a 17
+    test dl, dl                               ; 84 d2
+    je short 019f8h                           ; 74 5b
+    cmp dl, 025h                              ; 80 fa 25
+    jne short 019aah                          ; 75 08
+    mov cx, strict word 00001h                ; b9 01 00
+    xor di, di                                ; 31 ff
+    jmp near 01c7dh                           ; e9 d3 02
+    test cx, cx                               ; 85 c9
+    je short 019fbh                           ; 74 4d
+    cmp dl, 030h                              ; 80 fa 30
+    jc short 019c7h                           ; 72 14
+    cmp dl, 039h                              ; 80 fa 39
+    jnbe short 019c7h                         ; 77 0f
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    imul di, di, strict byte 0000ah           ; 6b ff 0a
+    sub ax, strict word 00030h                ; 2d 30 00
+    add di, ax                                ; 01 c7
+    jmp near 01c7dh                           ; e9 b6 02
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-010h], ax                    ; 89 46 f0
+    cmp dl, 078h                              ; 80 fa 78
+    je short 019e5h                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01a3fh                          ; 75 5a
+    test di, di                               ; 85 ff
+    jne short 019ech                          ; 75 03
+    mov di, strict word 00004h                ; bf 04 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 019feh                          ; 75 0d
+    mov word [bp-012h], strict word 00061h    ; c7 46 ee 61 00
+    jmp short 01a03h                          ; eb 0b
+    jmp near 01c83h                           ; e9 88 02
+    jmp near 01c75h                           ; e9 77 02
+    mov word [bp-012h], strict word 00041h    ; c7 46 ee 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    jl short 01a50h                           ; 7c 40
+    mov cx, ax                                ; 89 c1
+    sal cx, 002h                              ; c1 e1 02
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    shr ax, CL                                ; d3 e8
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01a2ah                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01a32h                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017bbh                               ; e8 81 fd
+    dec word [bp-00ch]                        ; ff 4e f4
+    jmp short 01a09h                          ; eb ca
+    cmp dl, 075h                              ; 80 fa 75
+    jne short 01a53h                          ; 75 0f
+    xor cx, cx                                ; 31 c9
+    mov bx, di                                ; 89 fb
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01855h                               ; e8 05 fe
+    jmp near 01c71h                           ; e9 1e 02
+    cmp dl, 06ch                              ; 80 fa 6c
+    jne short 01a60h                          ; 75 08
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    cmp dl, byte [bx+001h]                    ; 3a 57 01
+    je short 01a63h                           ; 74 03
+    jmp near 01b34h                           ; e9 d1 00
+    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov dl, byte [bx]                         ; 8a 17
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    cmp dl, 078h                              ; 80 fa 78
+    je short 01ab5h                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01b0fh                          ; 75 5a
+    test di, di                               ; 85 ff
+    jne short 01abch                          ; 75 03
+    mov di, strict word 00010h                ; bf 10 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01ac8h                          ; 75 07
+    mov word [bp-012h], strict word 00061h    ; c7 46 ee 61 00
+    jmp short 01acdh                          ; eb 05
+    mov word [bp-012h], strict word 00041h    ; c7 46 ee 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    jl short 01b31h                           ; 7c 57
+    sal ax, 002h                              ; c1 e0 02
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    xor ax, ax                                ; 31 c0
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov cx, word [bp-024h]                    ; 8b 4e dc
+    mov dx, word [bp-026h]                    ; 8b 56 da
+    mov si, word [bp-01eh]                    ; 8b 76 e2
+    call 0a02ah                               ; e8 2d 85
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01b11h                         ; 77 09
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01b19h                          ; eb 0a
+    jmp short 01b26h                          ; eb 15
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017bbh                               ; e8 9a fc
+    dec word [bp-00ch]                        ; ff 4e f4
+    jmp short 01ad3h                          ; eb ad
+    push 000e6h                               ; 68 e6 00
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 38 fe
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 01c71h                           ; e9 3d 01
+    lea bx, [di-001h]                         ; 8d 5d ff
+    cmp dl, 06ch                              ; 80 fa 6c
+    jne short 01b90h                          ; 75 54
+    inc word [bp+006h]                        ; ff 46 06
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov dl, byte [si]                         ; 8a 14
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les si, [bp-016h]                         ; c4 76 ea
+    mov ax, word [es:si-002h]                 ; 26 8b 44 fe
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    cmp dl, 064h                              ; 80 fa 64
+    jne short 01b89h                          ; 75 2c
+    test byte [bp-00dh], 080h                 ; f6 46 f3 80
+    je short 01b78h                           ; 74 15
+    push strict byte 00001h                   ; 6a 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov cx, word [bp-00eh]                    ; 8b 4e f2
+    neg cx                                    ; f7 d9
+    neg ax                                    ; f7 d8
+    sbb cx, strict byte 00000h                ; 83 d9 00
+    mov dx, bx                                ; 89 da
+    mov bx, ax                                ; 89 c3
+    jmp short 01b81h                          ; eb 09
+    push strict byte 00000h                   ; 6a 00
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov dx, di                                ; 89 fa
+    mov cx, ax                                ; 89 c1
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 018b3h                               ; e8 2c fd
+    jmp short 01b31h                          ; eb a8
+    cmp dl, 075h                              ; 80 fa 75
+    jne short 01b92h                          ; 75 04
+    jmp short 01b78h                          ; eb e8
+    jmp short 01bf8h                          ; eb 66
+    cmp dl, 078h                              ; 80 fa 78
+    je short 01b9ch                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01b31h                          ; 75 95
+    test di, di                               ; 85 ff
+    jne short 01ba3h                          ; 75 03
+    mov di, strict word 00008h                ; bf 08 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01bafh                          ; 75 07
+    mov word [bp-012h], strict word 00061h    ; c7 46 ee 61 00
+    jmp short 01bb4h                          ; eb 05
+    mov word [bp-012h], strict word 00041h    ; c7 46 ee 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
+    jl short 01c1ah                           ; 7c 5a
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov cx, word [bp-00ch]                    ; 8b 4e f4
+    sal cx, 002h                              ; c1 e1 02
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    jcxz 01bd4h                               ; e3 06
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 01bceh                               ; e2 fa
+    and ax, strict word 0000fh                ; 25 0f 00
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01be3h                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01bebh                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017bbh                               ; e8 c8 fb
+    dec word [bp-00ch]                        ; ff 4e f4
+    jmp short 01bbah                          ; eb c2
+    cmp dl, 064h                              ; 80 fa 64
+    jne short 01c1ch                          ; 75 1f
+    test byte [bp-00fh], 080h                 ; f6 46 f1 80
+    je short 01c0dh                           ; 74 0a
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    neg dx                                    ; f7 da
+    mov cx, strict word 00001h                ; b9 01 00
+    jmp short 01c14h                          ; eb 07
+    xor cx, cx                                ; 31 c9
+    mov bx, di                                ; 89 fb
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017f6h                               ; e8 dc fb
+    jmp short 01c71h                          ; eb 55
+    cmp dl, 073h                              ; 80 fa 73
+    jne short 01c2eh                          ; 75 0d
+    mov cx, ds                                ; 8c d9
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01923h                               ; e8 f7 fc
+    jmp short 01c71h                          ; eb 43
+    cmp dl, 053h                              ; 80 fa 53
+    jne short 01c54h                          ; 75 21
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bx, ax                                ; 89 c3
+    mov cx, word [bp-00eh]                    ; 8b 4e f2
+    jmp short 01c26h                          ; eb d2
+    cmp dl, 063h                              ; 80 fa 63
+    jne short 01c66h                          ; 75 0d
+    mov dl, byte [bp-010h]                    ; 8a 56 f0
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017bbh                               ; e8 57 fb
+    jmp short 01c71h                          ; eb 0b
+    push 00107h                               ; 68 07 01
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 f8 fc
+    add sp, strict byte 00004h                ; 83 c4 04
+    xor cx, cx                                ; 31 c9
+    jmp short 01c7dh                          ; eb 08
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017bbh                               ; e8 3e fb
+    inc word [bp+006h]                        ; ff 46 06
+    jmp near 01994h                           ; e9 11 fd
+    xor ax, ax                                ; 31 c0
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    je short 01c95h                           ; 74 04
+    cli                                       ; fa
+    hlt                                       ; f4
+    jmp short 01c92h                          ; eb fd
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_ata_init:                                   ; 0xf1c9f LB 0xe6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 c0 f9
+    mov si, 00122h                            ; be 22 01
+    mov dx, ax                                ; 89 c2
+    xor al, al                                ; 30 c0
+    jmp short 01cb9h                          ; eb 04
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc short 01ce2h                          ; 73 29
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    imul bx, bx, strict byte 00006h           ; 6b db 06
+    mov es, dx                                ; 8e c2
+    add bx, si                                ; 01 f3
+    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
+    mov word [es:bx+00206h], strict word 00000h ; 26 c7 87 06 02 00 00
+    mov word [es:bx+00208h], strict word 00000h ; 26 c7 87 08 02 00 00
+    mov byte [es:bx+00205h], 000h             ; 26 c6 87 05 02 00
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 01cb5h                          ; eb d3
+    xor al, al                                ; 30 c0
+    jmp short 01ceah                          ; eb 04
+    cmp AL, strict byte 008h                  ; 3c 08
+    jnc short 01d51h                          ; 73 67
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, dx                                ; 8e c2
+    add bx, si                                ; 01 f3
+    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
+    mov word [es:bx+024h], strict word 00000h ; 26 c7 47 24 00 00
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    mov word [es:bx+028h], 00200h             ; 26 c7 47 28 00 02
+    mov byte [es:bx+027h], 000h               ; 26 c6 47 27 00
+    mov word [es:bx+02ah], strict word 00000h ; 26 c7 47 2a 00 00
+    mov word [es:bx+02ch], strict word 00000h ; 26 c7 47 2c 00 00
+    mov word [es:bx+02eh], strict word 00000h ; 26 c7 47 2e 00 00
+    mov word [es:bx+030h], strict word 00000h ; 26 c7 47 30 00 00
+    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
+    mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00
+    mov word [es:bx+03ch], strict word 00000h ; 26 c7 47 3c 00 00
+    mov word [es:bx+03ah], strict word 00000h ; 26 c7 47 3a 00 00
+    mov word [es:bx+038h], strict word 00000h ; 26 c7 47 38 00 00
+    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 01ce6h                          ; eb 95
+    xor al, al                                ; 30 c0
+    jmp short 01d59h                          ; eb 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jnc short 01d71h                          ; 73 18
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov es, dx                                ; 8e c2
+    add bx, si                                ; 01 f3
+    mov byte [es:bx+001e3h], 010h             ; 26 c6 87 e3 01 10
+    mov byte [es:bx+001f4h], 010h             ; 26 c6 87 f4 01 10
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 01d55h                          ; eb e4
+    mov es, dx                                ; 8e c2
+    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
+    mov byte [es:si+001f3h], 000h             ; 26 c6 84 f3 01 00
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_reset_:                                  ; 0xf1d85 LB 0xde
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 d3 f8
+    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
+    mov di, ax                                ; 89 c7
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    shr dx, 1                                 ; d1 ea
+    mov dh, byte [bp-010h]                    ; 8a 76 f0
+    and dh, 001h                              ; 80 e6 01
+    mov byte [bp-00ch], dh                    ; 88 76 f4
+    xor dh, dh                                ; 30 f6
+    imul bx, dx, strict byte 00006h           ; 6b da 06
+    mov es, ax                                ; 8e c0
+    add bx, 00122h                            ; 81 c3 22 01
+    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
+    mov si, word [es:bx+00208h]               ; 26 8b b7 08 02
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 00eh                  ; b0 0e
+    out DX, AL                                ; ee
+    mov bx, 000ffh                            ; bb ff 00
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01dddh                          ; 76 0c
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01dcch                           ; 74 ef
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    imul bx, word [bp-010h], strict byte 0001ch ; 6b 5e f0 1c
+    mov es, di                                ; 8e c7
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
+    je short 01e3fh                           ; 74 4c
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 01dfeh                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 01e01h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00003h                ; 83 c2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 001h                              ; 80 fb 01
+    jne short 01e3fh                          ; 75 22
+    cmp al, bl                                ; 38 d8
+    jne short 01e3fh                          ; 75 1e
+    mov bx, strict word 0ffffh                ; bb ff ff
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e3fh                          ; 76 16
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01e3fh                           ; 74 0a
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    dec ax                                    ; 48
+    test ax, ax                               ; 85 c0
+    jnbe short 01e38h                         ; 77 fb
+    jmp short 01e24h                          ; eb e5
+    mov bx, strict word 00010h                ; bb 10 00
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e53h                          ; 76 0c
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 040h                 ; a8 40
+    je short 01e42h                           ; 74 ef
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_cmd_data_in_:                            ; 0xf1e63 LB 0x2b5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00010h                ; 83 ec 10
+    push ax                                   ; 50
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov es, dx                                ; 8e c2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [es:bx+00ch]                 ; 26 8a 47 0c
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, al                                ; 88 c3
+    xor bh, ah                                ; 30 e7
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov di, word [bp-016h]                    ; 8b 7e ea
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    add bx, word [bp-016h]                    ; 03 5e ea
+    mov ax, word [es:bx+028h]                 ; 26 8b 47 28
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    test ax, ax                               ; 85 c0
+    jne short 01eb5h                          ; 75 07
+    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
+    jmp short 01eb8h                          ; eb 03
+    shr word [bp-00eh], 1                     ; d1 6e f2
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01ed4h                           ; 74 0f
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 02111h                           ; e9 3d 02
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov di, word [bp-016h]                    ; 8b 7e ea
+    mov di, word [es:di+008h]                 ; 26 8b 7d 08
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov al, byte [es:bx+016h]                 ; 26 8a 47 16
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [es:bx+012h]                 ; 26 8b 47 12
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ah, byte [es:bx+014h]                 ; 26 8a 67 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    test al, al                               ; 84 c0
+    je short 01f04h                           ; 74 03
+    jmp near 01fe7h                           ; e9 e3 00
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    xor ah, ah                                ; 30 e4
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si]                      ; 26 8b 0c
+    add cx, word [bp-01ch]                    ; 03 4e e4
+    mov word [bp-014h], cx                    ; 89 4e ec
+    adc bx, word [es:si+002h]                 ; 26 13 5c 02
+    adc dx, word [es:si+004h]                 ; 26 13 54 04
+    adc ax, word [es:si+006h]                 ; 26 13 44 06
+    test ax, ax                               ; 85 c0
+    jnbe short 01f39h                         ; 77 13
+    je short 01f2bh                           ; 74 03
+    jmp near 01f9dh                           ; e9 72 00
+    test dx, dx                               ; 85 d2
+    jnbe short 01f39h                         ; 77 0a
+    jne short 01f9dh                          ; 75 6c
+    cmp bx, 01000h                            ; 81 fb 00 10
+    jnbe short 01f39h                         ; 77 02
+    jne short 01f9dh                          ; 75 64
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 0a02ah                               ; e8 da 80
+    xor dh, dh                                ; 30 f6
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00020h                ; be 20 00
+    call 0a02ah                               ; e8 ba 80
+    mov bx, dx                                ; 89 d3
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00008h                ; be 08 00
+    call 0a02ah                               ; e8 69 80
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 0a02ah                               ; e8 4b 80
+    mov ah, dl                                ; 88 d4
+    and ah, 00fh                              ; 80 e4 0f
+    or ah, 040h                               ; 80 cc 40
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    out DX, AL                                ; ee
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    shr dx, 008h                              ; c1 ea 08
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    add bx, strict byte 00005h                ; 83 c3 05
+    mov al, dl                                ; 88 d0
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    test byte [bp-008h], 001h                 ; f6 46 f8 01
+    je short 02031h                           ; 74 05
+    mov dx, 000b0h                            ; ba b0 00
+    jmp short 02034h                          ; eb 03
+    mov dx, 000a0h                            ; ba a0 00
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    or ax, dx                                 ; 09 d0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    out DX, AL                                ; ee
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    cmp ax, 000c4h                            ; 3d c4 00
+    je short 02058h                           ; 74 05
+    cmp ax, strict word 00029h                ; 3d 29 00
+    jne short 02062h                          ; 75 0a
+    mov si, word [bp-01ch]                    ; 8b 76 e4
+    mov word [bp-01ch], strict word 00001h    ; c7 46 e4 01 00
+    jmp short 02065h                          ; eb 03
+    mov si, strict word 00001h                ; be 01 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02065h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 02087h                           ; 74 0f
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 02111h                           ; e9 8a 00
+    test bl, 008h                             ; f6 c3 08
+    jne short 0209bh                          ; 75 0f
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 02111h                           ; e9 76 00
+    sti                                       ; fb
+    cmp di, 0f800h                            ; 81 ff 00 f8
+    jc short 020afh                           ; 72 0d
+    sub di, 00800h                            ; 81 ef 00 08
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    add ax, 00080h                            ; 05 80 00
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov cx, word [bp-00eh]                    ; 8b 4e f2
+    mov es, [bp-010h]                         ; 8e 46 f0
+    rep insw                                  ; f3 6d
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    add word [es:bx+018h], si                 ; 26 01 77 18
+    dec word [bp-01ch]                        ; ff 4e e4
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 020c7h                          ; 75 f1
+    cmp word [bp-01ch], strict byte 00000h    ; 83 7e e4 00
+    jne short 020f0h                          ; 75 14
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02106h                           ; 74 24
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 02111h                          ; eb 21
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 0209ch                           ; 74 a4
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00005h                ; b8 05 00
+    jmp short 02111h                          ; eb 0b
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_ata_detect:                                 ; 0xf2118 LB 0x68e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 00260h                            ; 81 ec 60 02
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 42 f5
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov di, 00122h                            ; bf 22 01
+    mov es, ax                                ; 8e c0
+    mov word [bp-01ch], di                    ; 89 7e e4
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
+    mov word [es:di+00206h], 001f0h           ; 26 c7 85 06 02 f0 01
+    mov word [es:di+00208h], 003f0h           ; 26 c7 85 08 02 f0 03
+    mov byte [es:di+00205h], 00eh             ; 26 c6 85 05 02 0e
+    mov byte [es:di+0020ah], 000h             ; 26 c6 85 0a 02 00
+    mov word [es:di+0020ch], 00170h           ; 26 c7 85 0c 02 70 01
+    mov word [es:di+0020eh], 00370h           ; 26 c7 85 0e 02 70 03
+    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
+    xor al, al                                ; 30 c0
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    jmp near 02726h                           ; e9 ac 05
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [si+006h]                         ; 8d 54 06
+    out DX, AL                                ; ee
+    lea bx, [si+002h]                         ; 8d 5c 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea di, [si+003h]                         ; 8d 7c 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 055h                              ; 80 fb 55
+    jne short 021fch                          ; 75 4a
+    cmp AL, strict byte 0aah                  ; 3c aa
+    jne short 021fch                          ; 75 46
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    call 01d85h                               ; e8 b2 fb
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 021deh                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 021e1h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [si+006h]                         ; 8d 54 06
+    out DX, AL                                ; ee
+    lea dx, [si+002h]                         ; 8d 54 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    lea dx, [si+003h]                         ; 8d 54 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 001h                              ; 80 fb 01
+    jne short 02238h                          ; 75 40
+    cmp al, bl                                ; 38 d8
+    je short 021feh                           ; 74 02
+    jmp short 02238h                          ; eb 3a
+    lea dx, [si+004h]                         ; 8d 54 04
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    mov ch, al                                ; 88 c5
+    lea dx, [si+005h]                         ; 8d 54 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-006h], al                    ; 88 46 fa
+    lea dx, [si+007h]                         ; 8d 54 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp cl, 014h                              ; 80 f9 14
+    jne short 0223ah                          ; 75 1c
+    cmp bl, 0ebh                              ; 80 fb eb
+    jne short 0223ah                          ; 75 17
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
+    jmp short 0227eh                          ; eb 44
+    test ch, ch                               ; 84 ed
+    jne short 0225fh                          ; 75 21
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 0225fh                          ; 75 1b
+    test al, al                               ; 84 c0
+    je short 0225fh                           ; 74 17
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
+    jmp short 0227eh                          ; eb 1f
+    cmp ch, 0ffh                              ; 80 fd ff
+    jne short 0227eh                          ; 75 1a
+    cmp ch, byte [bp-006h]                    ; 3a 6e fa
+    jne short 0227eh                          ; 75 15
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
+    mov dx, word [bp-02ah]                    ; 8b 56 d6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov si, word [bp-01ch]                    ; 8b 76 e4
+    add si, ax                                ; 01 c6
+    mov al, byte [es:si+022h]                 ; 26 8a 44 22
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 022fdh                          ; 75 5b
+    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
+    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
+    lea dx, [bp-00264h]                       ; 8d 96 9c fd
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
+    mov cx, strict word 00001h                ; b9 01 00
+    mov bx, 000ech                            ; bb ec 00
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov dx, es                                ; 8c c2
+    call 01e63h                               ; e8 93 fb
+    test ax, ax                               ; 85 c0
+    je short 022dfh                           ; 74 0b
+    push 00124h                               ; 68 24 01
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 8a f6
+    add sp, strict byte 00004h                ; 83 c4 04
+    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
+    je short 022ebh                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 022edh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov byte [bp-016h], al                    ; 88 46 ea
+    mov al, byte [bp-00204h]                  ; 8a 86 fc fd
+    test al, al                               ; 84 c0
+    je short 02300h                           ; 74 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02302h                          ; eb 05
+    jmp near 024deh                           ; e9 de 01
+    xor ah, ah                                ; 30 e4
+    mov byte [bp-018h], al                    ; 88 46 e8
+    mov word [bp-034h], 00200h                ; c7 46 cc 00 02
+    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov si, word [bp-001ech]                  ; 8b b6 14 fe
+    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    xor ax, ax                                ; 31 c0
+    mov word [bp-030h], ax                    ; 89 46 d0
+    mov word [bp-028h], ax                    ; 89 46 d8
+    cmp word [bp-020h], 00fffh                ; 81 7e e0 ff 0f
+    jne short 02357h                          ; 75 1e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    jne short 02357h                          ; 75 19
+    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
+    mov word [bp-030h], ax                    ; 89 46 d0
+    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 0236ah                           ; 72 0c
+    jbe short 02372h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 0237ah                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 02376h                           ; 74 0e
+    jmp short 023b4h                          ; eb 4a
+    test al, al                               ; 84 c0
+    jne short 023b4h                          ; 75 46
+    mov BL, strict byte 01eh                  ; b3 1e
+    jmp short 0237ch                          ; eb 0a
+    mov BL, strict byte 026h                  ; b3 26
+    jmp short 0237ch                          ; eb 06
+    mov BL, strict byte 067h                  ; b3 67
+    jmp short 0237ch                          ; eb 02
+    mov BL, strict byte 070h                  ; b3 70
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 27 f3
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, bl                                ; 88 d8
+    call 016ach                               ; e8 1b f3
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    mov word [bp-038h], ax                    ; 89 46 c8
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 0b f3
+    xor ah, ah                                ; 30 e4
+    mov word [bp-03ah], ax                    ; 89 46 c6
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 007h                  ; 04 07
+    call 016ach                               ; e8 ff f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-036h], ax                    ; 89 46 ca
+    jmp short 023c6h                          ; eb 12
+    push word [bp-028h]                       ; ff 76 d8
+    push word [bp-030h]                       ; ff 76 d0
+    push word [bp-020h]                       ; ff 76 e0
+    push si                                   ; 56
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-03ah]                         ; 8d 46 c6
+    call 059d2h                               ; e8 0c 36
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 52 f5
+    mov ax, word [bp-036h]                    ; 8b 46 ca
+    push ax                                   ; 50
+    mov ax, word [bp-03ah]                    ; 8b 46 c6
+    push ax                                   ; 50
+    mov ax, word [bp-038h]                    ; 8b 46 c8
+    push ax                                   ; 50
+    push word [bp-022h]                       ; ff 76 de
+    push word [bp-026h]                       ; ff 76 da
+    push word [bp-024h]                       ; ff 76 dc
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    push ax                                   ; 50
+    push 0014dh                               ; 68 4d 01
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 6e f5
+    add sp, strict byte 00014h                ; 83 c4 14
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov di, word [bp-01ch]                    ; 8b 7e e4
+    add di, ax                                ; 01 c7
+    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov byte [es:di+024h], al                 ; 26 88 45 24
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov byte [es:di+026h], al                 ; 26 88 45 26
+    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov word [es:di+028h], ax                 ; 26 89 45 28
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:di+030h], ax                 ; 26 89 45 30
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov word [es:di+032h], ax                 ; 26 89 45 32
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:di+034h], ax                 ; 26 89 45 34
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:di+03ch], ax                 ; 26 89 45 3c
+    mov ax, word [bp-030h]                    ; 8b 46 d0
+    mov word [es:di+03ah], ax                 ; 26 89 45 3a
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:di+038h], ax                 ; 26 89 45 38
+    mov word [es:di+036h], si                 ; 26 89 75 36
+    lea di, [di+02ah]                         ; 8d 7d 2a
+    push DS                                   ; 1e
+    push SS                                   ; 16
+    pop DS                                    ; 1f
+    lea si, [bp-03ah]                         ; 8d 76 c6
+    movsw                                     ; a5
+    movsw                                     ; a5
+    movsw                                     ; a5
+    pop DS                                    ; 1f
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp AL, strict byte 002h                  ; 3c 02
+    jnc short 024c8h                          ; 73 61
+    test al, al                               ; 84 c0
+    jne short 02470h                          ; 75 05
+    mov di, strict word 0003dh                ; bf 3d 00
+    jmp short 02473h                          ; eb 03
+    mov di, strict word 0004dh                ; bf 4d 00
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    mov ax, word [bp-038h]                    ; 8b 46 c8
+    mov es, dx                                ; 8e c2
+    mov word [es:di], ax                      ; 26 89 05
+    mov al, byte [bp-03ah]                    ; 8a 46 c6
+    mov byte [es:di+002h], al                 ; 26 88 45 02
+    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
+    mov al, byte [bp-022h]                    ; 8a 46 de
+    mov byte [es:di+004h], al                 ; 26 88 45 04
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov word [es:di+009h], ax                 ; 26 89 45 09
+    mov al, byte [bp-026h]                    ; 8a 46 da
+    mov byte [es:di+00bh], al                 ; 26 88 45 0b
+    mov al, byte [bp-022h]                    ; 8a 46 de
+    mov byte [es:di+00eh], al                 ; 26 88 45 0e
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 024b1h                          ; eb 05
+    cmp ah, 00fh                              ; 80 fc 0f
+    jnc short 024c0h                          ; 73 0f
+    mov bl, ah                                ; 88 e3
+    xor bh, bh                                ; 30 ff
+    mov es, dx                                ; 8e c2
+    add bx, di                                ; 01 fb
+    add al, byte [es:bx]                      ; 26 02 07
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 024ach                          ; eb ec
+    neg al                                    ; f6 d8
+    mov es, dx                                ; 8e c2
+    mov byte [es:di+00fh], al                 ; 26 88 45 0f
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    xor bh, bh                                ; 30 ff
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    add bx, word [bp-01ch]                    ; 03 5e e4
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
+    inc byte [bp-012h]                        ; fe 46 ee
+    cmp byte [bp-008h], 003h                  ; 80 7e f8 03
+    jne short 02554h                          ; 75 70
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    lea dx, [bp-00264h]                       ; 8d 96 9c fd
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
+    mov cx, strict word 00001h                ; b9 01 00
+    mov bx, 000a1h                            ; bb a1 00
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov dx, es                                ; 8c c2
+    call 01e63h                               ; e8 41 f9
+    test ax, ax                               ; 85 c0
+    je short 02531h                           ; 74 0b
+    push 00174h                               ; 68 74 01
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 38 f4
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov bh, byte [bp-00263h]                  ; 8a be 9d fd
+    and bh, 01fh                              ; 80 e7 1f
+    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
+    je short 02544h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02546h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov bl, al                                ; 88 c3
+    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
+    je short 02556h                           ; 74 07
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 02558h                          ; eb 04
+    jmp short 0258dh                          ; eb 37
+    xor dx, dx                                ; 31 d2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov di, word [bp-01ch]                    ; 8b 7e e4
+    add di, ax                                ; 01 c7
+    mov byte [es:di+023h], bh                 ; 26 88 7d 23
+    mov byte [es:di+024h], bl                 ; 26 88 5d 24
+    mov byte [es:di+026h], dl                 ; 26 88 55 26
+    mov word [es:di+028h], 00800h             ; 26 c7 45 28 00 08
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-01ch]                    ; 03 5e e4
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 025c4h                           ; 74 30
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 025f4h                          ; 75 5c
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov di, word [bp-01ch]                    ; 8b 7e e4
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
+    mov bx, word [es:di+03ah]                 ; 26 8b 5d 3a
+    mov cx, word [es:di+038h]                 ; 26 8b 4d 38
+    mov dx, word [es:di+036h]                 ; 26 8b 55 36
+    mov si, strict word 0000bh                ; be 0b 00
+    call 0a02ah                               ; e8 6c 7a
+    mov word [bp-02eh], dx                    ; 89 56 d2
+    mov word [bp-02ch], cx                    ; 89 4e d4
+    mov al, byte [bp-001c3h]                  ; 8a 86 3d fe
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, byte [bp-001c4h]                  ; 8a 86 3c fe
+    or dx, ax                                 ; 09 c2
+    mov byte [bp-010h], 00fh                  ; c6 46 f0 0f
+    jmp short 025e4h                          ; eb 09
+    dec byte [bp-010h]                        ; fe 4e f0
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jbe short 025f0h                          ; 76 0c
+    mov cl, byte [bp-010h]                    ; 8a 4e f0
+    mov ax, strict word 00001h                ; b8 01 00
+    sal ax, CL                                ; d3 e0
+    test dx, ax                               ; 85 c2
+    je short 025dbh                           ; 74 eb
+    xor di, di                                ; 31 ff
+    jmp short 025fbh                          ; eb 07
+    jmp short 0262ah                          ; eb 34
+    cmp di, strict byte 00014h                ; 83 ff 14
+    jnl short 02610h                          ; 7d 15
+    mov si, di                                ; 89 fe
+    add si, di                                ; 01 fe
+    mov al, byte [bp+si-0022dh]               ; 8a 82 d3 fd
+    mov byte [bp+si-064h], al                 ; 88 42 9c
+    mov al, byte [bp+si-0022eh]               ; 8a 82 d2 fd
+    mov byte [bp+si-063h], al                 ; 88 42 9d
+    inc di                                    ; 47
+    jmp short 025f6h                          ; eb e6
+    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
+    mov di, strict word 00027h                ; bf 27 00
+    jmp short 0261eh                          ; eb 05
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 0262ah                          ; 7e 0c
+    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
+    jne short 0262ah                          ; 75 06
+    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
+    jmp short 02619h                          ; eb ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 0268eh                           ; 74 5d
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0263ch                           ; 74 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 02699h                           ; 74 60
+    jmp near 0271dh                           ; e9 e1 00
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 02647h                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 0264ah                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 001adh                               ; 68 ad 01
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 0d f3
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    mov al, byte [bp+di-064h]                 ; 8a 43 9c
+    xor ah, ah                                ; 30 e4
+    inc di                                    ; 47
+    test ax, ax                               ; 85 c0
+    je short 02676h                           ; 74 0e
+    push ax                                   ; 50
+    push 001b8h                               ; 68 b8 01
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 f5 f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 0265eh                          ; eb e8
+    push word [bp-02ch]                       ; ff 76 d4
+    push word [bp-02eh]                       ; ff 76 d2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    push ax                                   ; 50
+    push 001bbh                               ; 68 bb 01
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 de f2
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 0271dh                           ; e9 8f 00
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 0269bh                           ; 74 07
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 0269eh                          ; eb 05
+    jmp short 026fdh                          ; eb 62
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 001adh                               ; 68 ad 01
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 b9 f2
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    mov al, byte [bp+di-064h]                 ; 8a 43 9c
+    xor ah, ah                                ; 30 e4
+    inc di                                    ; 47
+    test ax, ax                               ; 85 c0
+    je short 026cah                           ; 74 0e
+    push ax                                   ; 50
+    push 001b8h                               ; 68 b8 01
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 a1 f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 026b2h                          ; eb e8
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
+    jne short 026eah                          ; 75 0b
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 001dbh                               ; 68 db 01
+    jmp short 026f3h                          ; eb 09
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 001f5h                               ; 68 f5 01
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 6e f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 0271dh                          ; eb 20
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 02708h                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 0270bh                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00207h                               ; 68 07 02
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 4c f2
+    add sp, strict byte 00008h                ; 83 c4 08
+    inc byte [bp-00eh]                        ; fe 46 f2
+    cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
+    jnc short 0277bh                          ; 73 55
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov cx, ax                                ; 89 c1
+    mov byte [bp-014h], al                    ; 88 46 ec
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    mov word [bp-032h], dx                    ; 89 56 ce
+    mov al, byte [bp-032h]                    ; 8a 46 ce
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    add bx, ax                                ; 01 c3
+    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
+    jne short 02775h                          ; 75 03
+    jmp near 0217ah                           ; e9 05 fa
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp near 0217dh                           ; e9 02 fa
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 bf ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_cmd_data_out_:                           ; 0xf27a6 LB 0x28a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00020h                ; 83 ec 20
+    mov di, ax                                ; 89 c7
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov word [bp-01eh], bx                    ; 89 5e e2
+    mov word [bp-022h], cx                    ; 89 4e de
+    mov es, dx                                ; 8e c2
+    mov al, byte [es:di+00ch]                 ; 26 8a 45 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    shr ax, 1                                 ; d1 e8
+    and dl, 001h                              ; 80 e2 01
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 02805h                           ; 74 0f
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 02a29h                           ; e9 24 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [es:di+004h]                 ; 26 8b 45 04
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [es:di]                      ; 26 8b 05
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [es:di+008h]                 ; 26 8b 45 08
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:di+016h]                 ; 26 8b 45 16
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [es:di+012h]                 ; 26 8b 45 12
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [es:di+014h]                 ; 26 8b 45 14
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    test ax, ax                               ; 85 c0
+    je short 02850h                           ; 74 03
+    jmp near 02917h                           ; e9 c7 00
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    mov si, word [bp-024h]                    ; 8b 76 dc
+    add si, word [bp-022h]                    ; 03 76 de
+    adc bx, word [bp-010h]                    ; 13 5e f0
+    adc ax, word [bp-00eh]                    ; 13 46 f2
+    adc dx, word [bp-00ch]                    ; 13 56 f4
+    test dx, dx                               ; 85 d2
+    jnbe short 02877h                         ; 77 10
+    jne short 028dah                          ; 75 71
+    test ax, ax                               ; 85 c0
+    jnbe short 02877h                         ; 77 0a
+    jne short 028dah                          ; 75 6b
+    cmp bx, 01000h                            ; 81 fb 00 10
+    jnbe short 02877h                         ; 77 02
+    jne short 028dah                          ; 75 63
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov si, strict word 00018h                ; be 18 00
+    call 0a02ah                               ; e8 a1 77
+    xor dh, dh                                ; 30 f6
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov si, strict word 00020h                ; be 20 00
+    call 0a02ah                               ; e8 8a 77
+    mov bx, dx                                ; 89 d3
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov byte [bp-00fh], al                    ; 88 46 f1
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    xor ah, ah                                ; 30 e4
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov si, strict word 00008h                ; be 08 00
+    call 0a02ah                               ; e8 36 77
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov si, strict word 00010h                ; be 10 00
+    call 0a02ah                               ; e8 21 77
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    and AL, strict byte 00fh                  ; 24 0f
+    or AL, strict byte 040h                   ; 0c 40
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov al, byte [bp-022h]                    ; 8a 46 de
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    out DX, AL                                ; ee
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 02959h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 0295ch                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dl, byte [bp-01ch]                    ; 8a 56 e4
+    xor dh, dh                                ; 30 f6
+    or ax, dx                                 ; 09 d0
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02974h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 02996h                           ; 74 0f
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 02a29h                           ; e9 93 00
+    test bl, 008h                             ; f6 c3 08
+    jne short 029aah                          ; 75 0f
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 02a29h                           ; e9 7f 00
+    sti                                       ; fb
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    cmp ax, 0f800h                            ; 3d 00 f8
+    jc short 029c3h                           ; 72 10
+    sub ax, 00800h                            ; 2d 00 08
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, 00080h                            ; 81 c2 80 00
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov cx, word [bp-020h]                    ; 8b 4e e0
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov es, [bp-012h]                         ; 8e 46 ee
+    db  0f3h, 026h, 06fh
+    ; rep es outsw                              ; f3 26 6f
+    mov word [bp-016h], si                    ; 89 76 ea
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    inc word [es:di+018h]                     ; 26 ff 45 18
+    dec word [bp-022h]                        ; ff 4e de
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 029dfh                          ; 75 f1
+    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
+    jne short 02a08h                          ; 75 14
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02a1eh                           ; 74 24
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp short 02a29h                          ; eb 21
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 029abh                           ; 74 9b
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00007h                ; b8 07 00
+    jmp short 02a29h                          ; eb 0b
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+@ata_read_sectors:                           ; 0xf2a30 LB 0xb5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
+    mov dx, cx                                ; 89 ca
+    sal dx, 009h                              ; c1 e2 09
+    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
+    je short 02a71h                           ; 74 1f
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov [bp-00ch], es                         ; 8c 46 f4
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov word [es:di+028h], dx                 ; 26 89 55 28
+    mov bx, 000c4h                            ; bb c4 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e63h                               ; e8 f7 f3
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    jmp short 02ad6h                          ; eb 65
+    xor bx, bx                                ; 31 db
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov di, word [es:si]                      ; 26 8b 3c
+    add di, cx                                ; 01 cf
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov di, word [es:si+002h]                 ; 26 8b 7c 02
+    adc di, bx                                ; 11 df
+    mov word [bp-008h], di                    ; 89 7e f8
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    adc bx, word [bp-00ch]                    ; 13 5e f4
+    mov di, word [es:si+006h]                 ; 26 8b 7c 06
+    adc di, word [bp-006h]                    ; 13 7e fa
+    test di, di                               ; 85 ff
+    jnbe short 02aadh                         ; 77 11
+    jne short 02ab9h                          ; 75 1b
+    test bx, bx                               ; 85 db
+    jnbe short 02aadh                         ; 77 0b
+    jne short 02ab9h                          ; 75 15
+    cmp word [bp-008h], 01000h                ; 81 7e f8 00 10
+    jnbe short 02aadh                         ; 77 02
+    jne short 02ab9h                          ; 75 0c
+    mov bx, strict word 00024h                ; bb 24 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e63h                               ; e8 ac f3
+    jmp short 02adch                          ; eb 23
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov [bp-006h], es                         ; 8c 46 fa
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov word [es:di+028h], dx                 ; 26 89 55 28
+    mov bx, 000c4h                            ; bb c4 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e63h                               ; e8 90 f3
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@ata_write_sectors:                          ; 0xf2ae5 LB 0x5b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    les si, [bp+004h]                         ; c4 76 04
+    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
+    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
+    je short 02b05h                           ; 74 0c
+    mov bx, strict word 00030h                ; bb 30 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 027a6h                               ; e8 a3 fc
+    jmp short 02b37h                          ; eb 32
+    xor ax, ax                                ; 31 c0
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    mov di, word [es:si]                      ; 26 8b 3c
+    add di, cx                                ; 01 cf
+    mov word [bp-006h], di                    ; 89 7e fa
+    adc ax, word [es:si+002h]                 ; 26 13 44 02
+    adc bx, word [es:si+004h]                 ; 26 13 5c 04
+    adc dx, word [es:si+006h]                 ; 26 13 54 06
+    test dx, dx                               ; 85 d2
+    jnbe short 02b32h                         ; 77 0f
+    jne short 02af9h                          ; 75 d4
+    test bx, bx                               ; 85 db
+    jnbe short 02b32h                         ; 77 09
+    jne short 02af9h                          ; 75 ce
+    cmp ax, 01000h                            ; 3d 00 10
+    jnbe short 02b32h                         ; 77 02
+    jne short 02af9h                          ; 75 c7
+    mov bx, strict word 00034h                ; bb 34 00
+    jmp short 02afch                          ; eb c5
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+ata_cmd_packet_:                             ; 0xf2b40 LB 0x289
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00012h                ; 83 ec 12
+    push ax                                   ; 50
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov si, bx                                ; 89 de
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 15 eb
+    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    shr ax, 1                                 ; d1 e8
+    mov ah, byte [bp-018h]                    ; 8a 66 e8
+    and ah, 001h                              ; 80 e4 01
+    mov byte [bp-008h], ah                    ; 88 66 f8
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 02b92h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 a5 ed
+    push 00221h                               ; 68 21 02
+    push 00230h                               ; 68 30 02
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 dd ed
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 02dc0h                           ; e9 2e 02
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    jne short 02b8ch                          ; 75 f4
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    xor ax, ax                                ; 31 c0
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jnc short 02bcah                          ; 73 06
+    mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
+    jmp short 02bd0h                          ; eb 06
+    jbe short 02bd0h                          ; 76 04
+    mov byte [bp-006h], 010h                  ; c6 46 fa 10
+    shr byte [bp-006h], 1                     ; d0 6e fa
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
+    mov word [es:bx+01ah], strict word 00000h ; 26 c7 47 1a 00 00
+    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 02bfeh                           ; 74 06
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 02dc0h                           ; e9 c2 01
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov AL, strict byte 0f0h                  ; b0 f0
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 02c24h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02c27h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov AL, strict byte 0a0h                  ; b0 a0
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02c37h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 02c59h                           ; 74 0f
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 02dc0h                           ; e9 67 01
+    test AL, strict byte 008h                 ; a8 08
+    jne short 02c6ch                          ; 75 0f
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp near 02dc0h                           ; e9 54 01
+    sti                                       ; fb
+    mov ax, si                                ; 89 f0
+    shr ax, 004h                              ; c1 e8 04
+    add ax, cx                                ; 01 c8
+    and si, strict byte 0000fh                ; 83 e6 0f
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov es, ax                                ; 8e c0
+    db  0f3h, 026h, 06fh
+    ; rep es outsw                              ; f3 26 6f
+    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
+    jne short 02c93h                          ; 75 09
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp near 02da3h                           ; e9 10 01
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02c93h                          ; 75 f1
+    test AL, strict byte 088h                 ; a8 88
+    je short 02d06h                           ; 74 60
+    test AL, strict byte 001h                 ; a8 01
+    je short 02cb5h                           ; 74 0b
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp short 02c53h                          ; eb 9e
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 02cc6h                           ; 74 0b
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp short 02c66h                          ; eb a0
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 004h                              ; c1 e8 04
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, ax                                ; 01 c2
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    and ax, strict word 0000fh                ; 25 0f 00
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov word [bp+00eh], dx                    ; 89 56 0e
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 008h                              ; c1 e3 08
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    cmp bx, ax                                ; 39 c3
+    jnc short 02d09h                          ; 73 0c
+    mov cx, bx                                ; 89 d9
+    sub word [bp+004h], bx                    ; 29 5e 04
+    xor bx, bx                                ; 31 db
+    jmp short 02d12h                          ; eb 0c
+    jmp near 02da3h                           ; e9 9a 00
+    mov cx, ax                                ; 89 c1
+    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
+    sub bx, ax                                ; 29 c3
+    xor ax, ax                                ; 31 c0
+    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
+    jne short 02d30h                          ; 75 16
+    cmp bx, word [bp+006h]                    ; 3b 5e 06
+    jbe short 02d30h                          ; 76 11
+    sub bx, word [bp+006h]                    ; 2b 5e 06
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 02d39h                          ; eb 09
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    sub word [bp+006h], bx                    ; 29 5e 06
+    sbb word [bp+008h], ax                    ; 19 46 08
+    mov si, bx                                ; 89 de
+    test cl, 003h                             ; f6 c1 03
+    test bl, 003h                             ; f6 c3 03
+    test byte [bp-00ch], 003h                 ; f6 46 f4 03
+    test bl, 001h                             ; f6 c3 01
+    je short 02d5ah                           ; 74 10
+    inc bx                                    ; 43
+    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
+    jbe short 02d5ah                          ; 76 09
+    test byte [bp-00ch], 001h                 ; f6 46 f4 01
+    je short 02d5ah                           ; 74 03
+    dec word [bp-00ch]                        ; ff 4e f4
+    shr bx, 1                                 ; d1 eb
+    shr cx, 1                                 ; d1 e9
+    shr word [bp-00ch], 1                     ; d1 6e f4
+    test cx, cx                               ; 85 c9
+    je short 02d6bh                           ; 74 06
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    in ax, DX                                 ; ed
+    loop 02d68h                               ; e2 fd
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov cx, bx                                ; 89 d9
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insw                                  ; f3 6d
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    je short 02d81h                           ; 74 05
+    mov cx, ax                                ; 89 c1
+    in ax, DX                                 ; ed
+    loop 02d7eh                               ; e2 fd
+    add word [bp+00ch], si                    ; 01 76 0c
+    xor ax, ax                                ; 31 c0
+    add word [bp-016h], si                    ; 01 76 ea
+    adc word [bp-014h], ax                    ; 11 46 ec
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov word [es:bx+01ah], ax                 ; 26 89 47 1a
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
+    jmp near 02c93h                           ; e9 f0 fe
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02db5h                           ; 74 0c
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp near 02c66h                           ; e9 b1 fe
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+ata_soft_reset_:                             ; 0xf2dc9 LB 0x80
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 91 e8
+    mov dx, bx                                ; 89 da
+    shr dx, 1                                 ; d1 ea
+    and bl, 001h                              ; 80 e3 01
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    xor dh, dh                                ; 30 f6
+    imul bx, dx, strict byte 00006h           ; 6b da 06
+    mov es, ax                                ; 8e c0
+    add bx, 00122h                            ; 81 c3 22 01
+    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
+    mov bx, word [es:bx+00208h]               ; 26 8b 9f 08 02
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 02e0bh                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02e0eh                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02e1ch                          ; 75 f4
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02e39h                           ; 74 0b
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02e41h                          ; eb 08
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_diskette_ret_status_:                    ; 0xf2e49 LB 0x19
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00041h                ; ba 41 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 03 e8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_diskette_current_cyl_:                   ; 0xf2e62 LB 0x30
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bl, al                                ; 88 c3
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 02e77h                          ; 76 0b
+    push 00250h                               ; 68 50 02
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 f2 ea
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, bl                                ; 88 d8
+    add ax, 00094h                            ; 05 94 00
+    mov bx, dx                                ; 89 d3
+    mov dx, ax                                ; 89 c2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d2 e7
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_wait_for_interrupt_:                  ; 0xf2e92 LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    cli                                       ; fa
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 b0 e7
+    test AL, strict byte 080h                 ; a8 80
+    je short 02ea8h                           ; 74 04
+    and AL, strict byte 080h                  ; 24 80
+    jmp short 02eadh                          ; eb 05
+    sti                                       ; fb
+    hlt                                       ; f4
+    cli                                       ; fa
+    jmp short 02e97h                          ; eb ea
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2eb3 LB 0x47
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    cli                                       ; fa
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ax, dx                                ; 89 d0
+    call 01650h                               ; e8 8e e7
+    test al, al                               ; 84 c0
+    jne short 02ecbh                          ; 75 05
+    sti                                       ; fb
+    xor cl, cl                                ; 30 c9
+    jmp short 02ef0h                          ; eb 25
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 7c e7
+    mov cl, al                                ; 88 c1
+    test AL, strict byte 080h                 ; a8 80
+    je short 02eebh                           ; 74 11
+    and AL, strict byte 07fh                  ; 24 7f
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 75 e7
+    jmp short 02ef0h                          ; eb 05
+    sti                                       ; fb
+    hlt                                       ; f4
+    cli                                       ; fa
+    jmp short 02ebah                          ; eb ca
+    mov al, cl                                ; 88 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_reset_controller_:                    ; 0xf2efa LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    and AL, strict byte 0fbh                  ; 24 fb
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    or AL, strict byte 004h                   ; 0c 04
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    jne short 02f0fh                          ; 75 f4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_prepare_controller_:                  ; 0xf2f22 LB 0x83
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov cx, ax                                ; 89 c1
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 1c e7
+    and AL, strict byte 07fh                  ; 24 7f
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 1b e7
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 004h                  ; 24 04
+    mov byte [bp-008h], al                    ; 88 46 f8
+    test cx, cx                               ; 85 c9
+    je short 02f56h                           ; 74 04
+    mov AL, strict byte 020h                  ; b0 20
+    jmp short 02f58h                          ; eb 02
+    mov AL, strict byte 010h                  ; b0 10
+    or AL, strict byte 00ch                   ; 0c 0c
+    or al, cl                                 ; 08 c8
+    mov dx, 003f2h                            ; ba f2 03
+    out DX, AL                                ; ee
+    mov bx, strict word 00025h                ; bb 25 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ax, dx                                ; 89 d0
+    call 0165eh                               ; e8 f3 e6
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 dc e6
+    shr al, 006h                              ; c0 e8 06
+    mov dx, 003f7h                            ; ba f7 03
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    jne short 02f7bh                          ; 75 f4
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 02f9dh                          ; 75 10
+    call 02e92h                               ; e8 02 ff
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c1 e6
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_media_known_:                         ; 0xf2fa5 LB 0x43
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 9b e6
+    mov ah, al                                ; 88 c4
+    test bx, bx                               ; 85 db
+    je short 02fbdh                           ; 74 02
+    shr al, 1                                 ; d0 e8
+    and AL, strict byte 001h                  ; 24 01
+    jne short 02fc5h                          ; 75 04
+    xor ah, ah                                ; 30 e4
+    jmp short 02fe1h                          ; eb 1c
+    mov dx, 00090h                            ; ba 90 00
+    test bx, bx                               ; 85 db
+    je short 02fcfh                           ; 74 03
+    mov dx, 00091h                            ; ba 91 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 7b e6
+    xor ah, ah                                ; 30 e4
+    sar ax, 004h                              ; c1 f8 04
+    and AL, strict byte 001h                  ; 24 01
+    je short 02fc1h                           ; 74 e3
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_read_id_:                             ; 0xf2fe8 LB 0x44
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov bx, ax                                ; 89 c3
+    call 02f22h                               ; e8 2c ff
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    call 02e92h                               ; e8 90 fe
+    xor si, si                                ; 31 f6
+    jmp short 0300bh                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 03017h                          ; 7d 0c
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-00eh], al                 ; 88 42 f2
+    inc si                                    ; 46
+    jmp short 03006h                          ; eb ef
+    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
+    je short 03021h                           ; 74 04
+    xor ax, ax                                ; 31 c0
+    jmp short 03024h                          ; eb 03
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_drive_recal_:                         ; 0xf302c LB 0x4d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    call 02f22h                               ; e8 eb fe
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    call 02e92h                               ; e8 4f fe
+    test bx, bx                               ; 85 db
+    je short 03051h                           ; 74 0a
+    mov bl, al                                ; 88 c3
+    or bl, 002h                               ; 80 cb 02
+    mov cx, 00095h                            ; b9 95 00
+    jmp short 03059h                          ; eb 08
+    mov bl, al                                ; 88 c3
+    or bl, 001h                               ; 80 cb 01
+    mov cx, 00094h                            ; b9 94 00
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 fa e5
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 f0 e5
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_media_sense_:                         ; 0xf3079 LB 0xf9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    call 0302ch                               ; e8 a6 ff
+    test ax, ax                               ; 85 c0
+    jne short 0308fh                          ; 75 05
+    xor cx, cx                                ; 31 c9
+    jmp near 03166h                           ; e9 d7 00
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 17 e6
+    test di, di                               ; 85 ff
+    jne short 030a0h                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 030a5h                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    cmp cl, 001h                              ; 80 f9 01
+    jne short 030b3h                          ; 75 09
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 015h                  ; b5 15
+    mov si, strict word 00001h                ; be 01 00
+    jmp short 030f1h                          ; eb 3e
+    cmp cl, 002h                              ; 80 f9 02
+    jne short 030beh                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 035h                  ; b5 35
+    jmp short 030aeh                          ; eb f0
+    cmp cl, 003h                              ; 80 f9 03
+    jne short 030c9h                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 017h                  ; b5 17
+    jmp short 030aeh                          ; eb e5
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 030d4h                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 017h                  ; b5 17
+    jmp short 030aeh                          ; eb da
+    cmp cl, 005h                              ; 80 f9 05
+    jne short 030dfh                          ; 75 06
+    mov CL, strict byte 0cch                  ; b1 cc
+    mov CH, strict byte 0d7h                  ; b5 d7
+    jmp short 030aeh                          ; eb cf
+    cmp cl, 00eh                              ; 80 f9 0e
+    je short 030e9h                           ; 74 05
+    cmp cl, 00fh                              ; 80 f9 0f
+    jne short 030ebh                          ; 75 02
+    jmp short 030d9h                          ; eb ee
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    xor si, si                                ; 31 f6
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 5e e5
+    mov ax, di                                ; 89 f8
+    call 02fe8h                               ; e8 e3 fe
+    test ax, ax                               ; 85 c0
+    jne short 0313bh                          ; 75 32
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    je short 0313bh                           ; 74 2a
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 03128h                           ; 74 0f
+    mov ah, cl                                ; 88 cc
+    and ah, 03fh                              ; 80 e4 3f
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 03134h                           ; 74 12
+    test al, al                               ; 84 c0
+    je short 0312dh                           ; 74 07
+    jmp short 030f1h                          ; eb c9
+    and cl, 03fh                              ; 80 e1 3f
+    jmp short 030f1h                          ; eb c4
+    mov cl, ah                                ; 88 e1
+    or cl, 040h                               ; 80 c9 40
+    jmp short 030f1h                          ; eb bd
+    mov cl, ah                                ; 88 e1
+    or cl, 080h                               ; 80 c9 80
+    jmp short 030f1h                          ; eb b6
+    test di, di                               ; 85 ff
+    jne short 03144h                          ; 75 05
+    mov di, 00090h                            ; bf 90 00
+    jmp short 03147h                          ; eb 03
+    mov di, 00091h                            ; bf 91 00
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 08 e5
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, di                                ; 89 fa
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 fa e4
+    mov cx, si                                ; 89 f1
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_drive_exists_:                        ; 0xf3172 LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 2e e5
+    test dx, dx                               ; 85 d2
+    jne short 03187h                          ; 75 05
+    shr al, 004h                              ; c0 e8 04
+    jmp short 03189h                          ; eb 02
+    and AL, strict byte 00fh                  ; 24 0f
+    test al, al                               ; 84 c0
+    je short 03192h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 03194h                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int13_diskette_function:                    ; 0xf319a LB 0x93e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    mov byte [bp-00eh], bl                    ; 88 5e f2
+    mov si, word [bp+016h]                    ; 8b 76 16
+    and si, 000ffh                            ; 81 e6 ff 00
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    mov ah, byte [bp+014h]                    ; 8a 66 14
+    mov cl, byte [bp+016h]                    ; 8a 4e 16
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    shr dx, 008h                              ; c1 ea 08
+    mov word [bp-010h], dx                    ; 89 56 f0
+    cmp bl, 008h                              ; 80 fb 08
+    jc short 031f7h                           ; 72 2e
+    mov dx, word [bp+01ch]                    ; 8b 56 1c
+    or dl, 001h                               ; 80 ca 01
+    cmp bl, 008h                              ; 80 fb 08
+    jbe short 0322dh                          ; 76 59
+    cmp bl, 016h                              ; 80 fb 16
+    jc short 031efh                           ; 72 16
+    or si, 00100h                             ; 81 ce 00 01
+    cmp bl, 016h                              ; 80 fb 16
+    jbe short 03230h                          ; 76 4e
+    cmp bl, 018h                              ; 80 fb 18
+    je short 03233h                           ; 74 4c
+    cmp bl, 017h                              ; 80 fb 17
+    je short 03249h                           ; 74 5d
+    jmp near 03ab5h                           ; e9 c6 08
+    cmp bl, 015h                              ; 80 fb 15
+    je short 0324ch                           ; 74 58
+    jmp near 03ab5h                           ; e9 be 08
+    cmp bl, 001h                              ; 80 fb 01
+    jc short 0320bh                           ; 72 0f
+    jbe short 0324fh                          ; 76 51
+    cmp bl, 005h                              ; 80 fb 05
+    je short 0326ah                           ; 74 67
+    cmp bl, 004h                              ; 80 fb 04
+    jbe short 0326dh                          ; 76 65
+    jmp near 03ab5h                           ; e9 aa 08
+    test bl, bl                               ; 84 db
+    jne short 0326fh                          ; 75 60
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03236h                          ; 76 1d
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02e49h                               ; e8 1f fc
+    jmp near 035d9h                           ; e9 ac 03
+    jmp near 03797h                           ; e9 67 05
+    jmp near 038cbh                           ; e9 98 06
+    jmp near 03964h                           ; e9 2e 07
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 70 e4
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 03251h                          ; 75 0f
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 03256h                          ; eb 0d
+    jmp near 038efh                           ; e9 a3 06
+    jmp near 03887h                           ; e9 38 06
+    jmp short 03298h                          ; eb 47
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    test cl, cl                               ; 84 c9
+    jne short 03272h                          ; 75 18
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, 00080h                            ; b8 80 00
+    jmp short 03227h                          ; eb bd
+    jmp near 03603h                           ; e9 96 03
+    jmp short 032b7h                          ; eb 48
+    jmp near 03ab5h                           ; e9 43 08
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 e1 e3
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02e49h                               ; e8 c2 fb
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    call 02e62h                               ; e8 cd fb
+    jmp near 035fch                           ; e9 64 03
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov dx, 00441h                            ; ba 41 04
+    xor ax, ax                                ; 31 c0
+    call 01650h                               ; e8 ac e3
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    sal dx, 008h                              ; c1 e2 08
+    or si, dx                                 ; 09 d6
+    mov word [bp+016h], si                    ; 89 76 16
+    test al, al                               ; 84 c0
+    je short 0330ah                           ; 74 56
+    jmp near 035d9h                           ; e9 22 03
+    mov ch, cl                                ; 88 cd
+    mov dl, byte [bp-010h]                    ; 8a 56 f0
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov byte [bp-00ch], ah                    ; 88 66 f4
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    shr dx, 008h                              ; c1 ea 08
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe short 032e0h                         ; 77 0e
+    cmp dl, 001h                              ; 80 fa 01
+    jnbe short 032e0h                         ; 77 09
+    test cl, cl                               ; 84 c9
+    je short 032e0h                           ; 74 05
+    cmp cl, 048h                              ; 80 f9 48
+    jbe short 0330dh                          ; 76 2d
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 38 e6
+    push 00275h                               ; 68 75 02
+    push 0028dh                               ; 68 8d 02
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 70 e6
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 0338eh                           ; e9 84 00
+    jmp near 035fch                           ; e9 ef 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03172h                               ; e8 5d fe
+    test ax, ax                               ; 85 c0
+    je short 03347h                           ; 74 2e
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    mov ax, dx                                ; 89 d0
+    call 02fa5h                               ; e8 82 fc
+    test ax, ax                               ; 85 c0
+    jne short 0334ah                          ; 75 23
+    mov ax, dx                                ; 89 d0
+    call 03079h                               ; e8 4d fd
+    test ax, ax                               ; 85 c0
+    jne short 0334ah                          ; 75 1a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 02e49h                               ; e8 08 fb
+    mov byte [bp+016h], dh                    ; 88 76 16
+    jmp near 035d9h                           ; e9 92 02
+    jmp near 03429h                           ; e9 df 00
+    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
+    jne short 03398h                          ; 75 48
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    shr ax, 00ch                              ; c1 e8 0c
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    sal dx, 004h                              ; c1 e2 04
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, dx                                ; 01 d3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp dx, bx                                ; 39 da
+    jbe short 0336ch                          ; 76 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 009h                              ; c1 e3 09
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 0339bh                          ; 73 1b
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 009h                               ; 80 cc 09
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00009h                ; b8 09 00
+    call 02e49h                               ; e8 b8 fa
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    jmp near 035d9h                           ; e9 41 02
+    jmp near 034bfh                           ; e9 24 01
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    mov AL, strict byte 046h                  ; b0 46
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02f22h                               ; e8 41 fb
+    mov AL, strict byte 0e6h                  ; b0 e6
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 002h                              ; c1 e2 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or ax, dx                                 ; 09 d0
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dl, ch                                ; 88 ea
+    xor dh, dh                                ; 30 f6
+    add ax, dx                                ; 01 d0
+    dec ax                                    ; 48
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    call 02eb3h                               ; e8 91 fa
+    test al, al                               ; 84 c0
+    jne short 0343ah                          ; 75 14
+    call 02efah                               ; e8 d1 fa
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, 00080h                            ; b8 80 00
+    jmp near 0338eh                           ; e9 54 ff
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 03454h                           ; 74 0e
+    push 00275h                               ; 68 75 02
+    push 002a8h                               ; 68 a8 02
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 15 e5
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 0345dh                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 03476h                          ; 7d 19
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ah], al                 ; 88 42 e6
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 eb e1
+    inc si                                    ; 46
+    jmp short 03458h                          ; eb e2
+    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
+    je short 0348dh                           ; 74 11
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 020h                               ; 80 cc 20
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00020h                ; b8 20 00
+    jmp near 0338eh                           ; e9 01 ff
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    sal ax, 009h                              ; c1 e0 09
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov si, word [bp+010h]                    ; 8b 76 10
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    mov di, si                                ; 89 f7
+    mov es, dx                                ; 8e c2
+    mov cx, ax                                ; 89 c1
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02e62h                               ; e8 aa f9
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    jmp near 0395dh                           ; e9 9e 04
+    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
+    je short 034c8h                           ; 74 03
+    jmp near 035e7h                           ; e9 1f 01
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    shr dx, 00ch                              ; c1 ea 0c
+    mov cl, dl                                ; 88 d1
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    sal ax, 004h                              ; c1 e0 04
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, ax                                ; 01 c3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp ax, bx                                ; 39 d8
+    jbe short 034e4h                          ; 76 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 009h                              ; c1 e3 09
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 034fbh                          ; 73 03
+    jmp near 03380h                           ; e9 85 fe
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02f22h                               ; e8 e1 f9
+    mov AL, strict byte 0c5h                  ; b0 c5
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 002h                              ; c1 e2 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or ax, dx                                 ; 09 d0
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    xor dh, dh                                ; 30 f6
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    dec ax                                    ; 48
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    call 02eb3h                               ; e8 31 f9
+    test al, al                               ; 84 c0
+    jne short 03589h                          ; 75 03
+    jmp near 03426h                           ; e9 9d fe
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 035a3h                           ; 74 0e
+    push 00275h                               ; 68 75 02
+    push 002a8h                               ; 68 a8 02
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 c6 e3
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 035ach                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 035c5h                          ; 7d 19
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ah], al                 ; 88 42 e6
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 9c e0
+    inc si                                    ; 46
+    jmp short 035a7h                          ; eb e2
+    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
+    jne short 035ceh                          ; 75 03
+    jmp near 034abh                           ; e9 dd fe
+    test byte [bp-019h], 002h                 ; f6 46 e7 02
+    je short 035e0h                           ; 74 0c
+    mov word [bp+016h], 00300h                ; c7 46 16 00 03
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 035fch                           ; e9 1c 00
+    mov word [bp+016h], 00100h                ; c7 46 16 00 01
+    jmp short 035d9h                          ; eb f2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02e62h                               ; e8 6e f8
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov ch, byte [bp+016h]                    ; 8a 6e 16
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    shr dx, 008h                              ; c1 ea 08
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    cmp bl, 001h                              ; 80 fb 01
+    jnbe short 03635h                         ; 77 12
+    cmp dl, 001h                              ; 80 fa 01
+    jnbe short 03635h                         ; 77 0d
+    cmp AL, strict byte 04fh                  ; 3c 4f
+    jnbe short 03635h                         ; 77 09
+    test ch, ch                               ; 84 ed
+    je short 03635h                           ; 74 05
+    cmp ch, 012h                              ; 80 fd 12
+    jbe short 0364ah                          ; 76 15
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02e49h                               ; e8 03 f8
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03172h                               ; e8 20 fb
+    test ax, ax                               ; 85 c0
+    jne short 03659h                          ; 75 03
+    jmp near 0325ah                           ; e9 01 fc
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    mov ax, dx                                ; 89 d0
+    call 02fa5h                               ; e8 42 f9
+    test ax, ax                               ; 85 c0
+    jne short 03673h                          ; 75 0c
+    mov ax, dx                                ; 89 d0
+    call 03079h                               ; e8 0d fa
+    test ax, ax                               ; 85 c0
+    jne short 03673h                          ; 75 03
+    jmp near 03330h                           ; e9 bd fc
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    shr dx, 00ch                              ; c1 ea 0c
+    mov cl, dl                                ; 88 d1
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    sal ax, 004h                              ; c1 e0 04
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, ax                                ; 01 c3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp ax, bx                                ; 39 d8
+    jbe short 0368fh                          ; 76 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 002h                              ; c1 e3 02
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 036a6h                          ; 73 03
+    jmp near 03380h                           ; e9 da fc
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02f22h                               ; e8 36 f8
+    mov AL, strict byte 00fh                  ; b0 0f
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    or bx, ax                                 ; 09 c3
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    out DX, AL                                ; ee
+    mov AL, strict byte 04dh                  ; b0 4d
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    out DX, AL                                ; ee
+    xor al, ch                                ; 30 e8
+    out DX, AL                                ; ee
+    mov AL, strict byte 0f6h                  ; b0 f6
+    out DX, AL                                ; ee
+    call 02eb3h                               ; e8 96 f7
+    test al, al                               ; 84 c0
+    jne short 03727h                          ; 75 06
+    call 02efah                               ; e8 d6 f7
+    jmp near 0325ah                           ; e9 33 fb
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 03741h                           ; 74 0e
+    push 00275h                               ; 68 75 02
+    push 002a8h                               ; 68 a8 02
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 28 e2
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 0374ah                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 03763h                          ; 7d 19
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ah], al                 ; 88 42 e6
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 fe de
+    inc si                                    ; 46
+    jmp short 03745h                          ; eb e2
+    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
+    je short 03780h                           ; 74 17
+    test byte [bp-019h], 002h                 ; f6 46 e7 02
+    je short 03772h                           ; 74 03
+    jmp near 035d4h                           ; e9 62 fe
+    push 00275h                               ; 68 75 02
+    push 002bch                               ; 68 bc 02
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 e9 e1
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02e49h                               ; e8 bf f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    call 02e62h                               ; e8 ce f6
+    jmp near 0395dh                           ; e9 c6 01
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 037bch                          ; 76 1e
+    xor ax, ax                                ; 31 c0
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+008h], ax                    ; 89 46 08
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 038d8h                           ; e9 1c 01
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 ea de
+    mov cl, al                                ; 88 c1
+    xor ch, ch                                ; 30 ed
+    test AL, strict byte 0f0h                 ; a8 f0
+    je short 037cch                           ; 74 02
+    mov CH, strict byte 001h                  ; b5 01
+    test cl, 00fh                             ; f6 c1 0f
+    je short 037d3h                           ; 74 02
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 037deh                          ; 75 05
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 037e1h                          ; eb 03
+    and cl, 00fh                              ; 80 e1 0f
+    mov byte [bp+011h], 000h                  ; c6 46 11 00
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov word [bp+010h], ax                    ; 89 46 10
+    xor al, cl                                ; 30 c8
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, ch                                ; 88 ea
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+012h], ax                    ; 89 46 12
+    cmp cl, 003h                              ; 80 f9 03
+    jc short 0381dh                           ; 72 15
+    jbe short 03844h                          ; 76 3a
+    cmp cl, 005h                              ; 80 f9 05
+    jc short 0384bh                           ; 72 3c
+    jbe short 03852h                          ; 76 41
+    cmp cl, 00fh                              ; 80 f9 0f
+    je short 03860h                           ; 74 4a
+    cmp cl, 00eh                              ; 80 f9 0e
+    je short 03859h                           ; 74 3e
+    jmp short 03867h                          ; eb 4a
+    cmp cl, 002h                              ; 80 f9 02
+    je short 0383dh                           ; 74 1b
+    cmp cl, 001h                              ; 80 f9 01
+    je short 03836h                           ; 74 0f
+    test cl, cl                               ; 84 c9
+    jne short 03867h                          ; 75 3c
+    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp short 03875h                          ; eb 3f
+    mov word [bp+014h], 02709h                ; c7 46 14 09 27
+    jmp short 03875h                          ; eb 38
+    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
+    jmp short 03875h                          ; eb 31
+    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
+    jmp short 03875h                          ; eb 2a
+    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
+    jmp short 03875h                          ; eb 23
+    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
+    jmp short 03875h                          ; eb 1c
+    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
+    jmp short 03875h                          ; eb 15
+    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
+    jmp short 03875h                          ; eb 0e
+    push 00275h                               ; 68 75 02
+    push 002cdh                               ; 68 cd 02
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 f4 e0
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 03ad8h                               ; e8 57 02
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp near 0395dh                           ; e9 d6 00
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03893h                          ; 76 05
+    mov word [bp+016h], si                    ; 89 76 16
+    jmp short 038d8h                          ; eb 45
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 13 de
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 038a6h                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 038abh                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    test cl, cl                               ; 84 c9
+    je short 038c5h                           ; 74 0d
+    cmp cl, 001h                              ; 80 f9 01
+    jbe short 038c2h                          ; 76 05
+    or ah, 002h                               ; 80 cc 02
+    jmp short 038c5h                          ; eb 03
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp near 035fch                           ; e9 31 fd
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 038deh                          ; 76 0f
+    mov word [bp+016h], si                    ; 89 76 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02e49h                               ; e8 71 f5
+    mov word [bp+01ch], dx                    ; 89 56 1c
+    jmp near 035fch                           ; e9 1e fd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 006h                               ; 80 cc 06
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp near 03227h                           ; e9 38 f9
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov bl, cl                                ; 88 cb
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe short 038cfh                         ; 77 d7
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03172h                               ; e8 72 f8
+    test ax, ax                               ; 85 c0
+    jne short 03907h                          ; 75 03
+    jmp near 0325ah                           ; e9 53 f9
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 03912h                           ; 74 05
+    mov dx, 00091h                            ; ba 91 00
+    jmp short 03915h                          ; eb 03
+    mov dx, 00090h                            ; ba 90 00
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 32 dd
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp bl, 002h                              ; 80 fb 02
+    jc short 03934h                           ; 72 0f
+    jbe short 03940h                          ; 76 19
+    cmp bl, 004h                              ; 80 fb 04
+    je short 0393ch                           ; 74 10
+    cmp bl, 003h                              ; 80 fb 03
+    je short 03944h                           ; 74 13
+    jmp near 03219h                           ; e9 e5 f8
+    cmp bl, 001h                              ; 80 fb 01
+    je short 0393ch                           ; 74 03
+    jmp near 03219h                           ; e9 dd f8
+    or AL, strict byte 090h                   ; 0c 90
+    jmp short 03946h                          ; eb 06
+    or AL, strict byte 070h                   ; 0c 70
+    jmp short 03946h                          ; eb 02
+    or AL, strict byte 010h                   ; 0c 10
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 0b dd
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02e49h                               ; e8 ec f4
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp near 035fch                           ; e9 98 fc
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ch, ah                                ; 88 e5
+    and ch, 03fh                              ; 80 e5 3f
+    mov bl, ah                                ; 88 e3
+    xor bh, bh                                ; 30 ff
+    sar bx, 006h                              ; c1 fb 06
+    sal bx, 008h                              ; c1 e3 08
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03983h                          ; 76 03
+    jmp near 038cfh                           ; e9 4c ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03172h                               ; e8 e7 f7
+    test ax, ax                               ; 85 c0
+    jne short 03992h                          ; 75 03
+    jmp near 0325ah                           ; e9 c8 f8
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    mov ax, dx                                ; 89 d0
+    call 02fa5h                               ; e8 09 f6
+    test ax, ax                               ; 85 c0
+    jne short 039bah                          ; 75 1a
+    mov ax, dx                                ; 89 d0
+    call 03079h                               ; e8 d4 f6
+    test ax, ax                               ; 85 c0
+    jne short 039bah                          ; 75 11
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp near 03227h                           ; e9 6d f8
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 ec dc
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 039cdh                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 039d2h                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 039ddh                           ; 74 05
+    mov dx, 00091h                            ; ba 91 00
+    jmp short 039e0h                          ; eb 03
+    mov dx, 00090h                            ; ba 90 00
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 67 dc
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp cl, 003h                              ; 80 f9 03
+    jc short 03a0ch                           ; 72 1c
+    mov ah, al                                ; 88 c4
+    or ah, 090h                               ; 80 cc 90
+    cmp cl, 003h                              ; 80 f9 03
+    jbe short 03a43h                          ; 76 49
+    mov dl, al                                ; 88 c2
+    or dl, 010h                               ; 80 ca 10
+    cmp cl, 005h                              ; 80 f9 05
+    je short 03a50h                           ; 74 4c
+    cmp cl, 004h                              ; 80 f9 04
+    je short 03a56h                           ; 74 4d
+    jmp near 03a87h                           ; e9 7b 00
+    cmp cl, 002h                              ; 80 f9 02
+    je short 03a25h                           ; 74 14
+    cmp cl, 001h                              ; 80 f9 01
+    jne short 03a54h                          ; 75 3e
+    cmp byte [bp-008h], 027h                  ; 80 7e f8 27
+    jne short 03a54h                          ; 75 38
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a6ah                          ; 75 49
+    or AL, strict byte 090h                   ; 0c 90
+    jmp short 03a6ah                          ; eb 45
+    cmp byte [bp-008h], 027h                  ; 80 7e f8 27
+    jne short 03a34h                          ; 75 09
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a34h                          ; 75 04
+    or AL, strict byte 070h                   ; 0c 70
+    jmp short 03a6ah                          ; eb 36
+    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
+    jne short 03a87h                          ; 75 4d
+    cmp ch, 00fh                              ; 80 fd 0f
+    jne short 03a87h                          ; 75 48
+    or AL, strict byte 010h                   ; 0c 10
+    jmp short 03a87h                          ; eb 44
+    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
+    jne short 03a87h                          ; 75 3e
+    cmp ch, 009h                              ; 80 fd 09
+    je short 03a52h                           ; 74 04
+    jmp short 03a87h                          ; eb 37
+    jmp short 03a6ch                          ; eb 1a
+    mov al, ah                                ; 88 e0
+    jmp short 03a87h                          ; eb 31
+    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
+    jne short 03a87h                          ; 75 2b
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a63h                          ; 75 02
+    jmp short 03a52h                          ; eb ef
+    cmp ch, 012h                              ; 80 fd 12
+    jne short 03a87h                          ; 75 1f
+    mov al, dl                                ; 88 d0
+    jmp short 03a87h                          ; eb 1b
+    cmp byte [bp-008h], 04fh                  ; 80 7e f8 4f
+    jne short 03a87h                          ; 75 15
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a79h                          ; 75 02
+    jmp short 03a52h                          ; eb d9
+    cmp ch, 012h                              ; 80 fd 12
+    jne short 03a80h                          ; 75 02
+    jmp short 03a68h                          ; eb e8
+    cmp ch, 024h                              ; 80 fd 24
+    jne short 03a87h                          ; 75 02
+    or AL, strict byte 0d0h                   ; 0c d0
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    sar dx, 004h                              ; c1 fa 04
+    test dl, 001h                             ; f6 c2 01
+    jne short 03a96h                          ; 75 03
+    jmp near 039a9h                           ; e9 13 ff
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 bb db
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 03ad8h                               ; e8 29 00
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp near 03953h                           ; e9 9e fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 63 de
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 00275h                               ; 68 75 02
+    push 002e2h                               ; 68 e2 02
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 94 de
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 03219h                           ; e9 41 f7
+get_floppy_dpt_:                             ; 0xf3ad8 LB 0x30
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dl, al                                ; 88 c2
+    xor ax, ax                                ; 31 c0
+    jmp short 03ae9h                          ; eb 06
+    inc ax                                    ; 40
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jnc short 03b01h                          ; 73 18
+    mov bx, ax                                ; 89 c3
+    add bx, ax                                ; 01 c3
+    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
+    jne short 03ae3h                          ; 75 f0
+    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
+    add ax, strict word 00000h                ; 05 00 00
+    jmp short 03b04h                          ; eb 03
+    mov ax, strict word 00041h                ; b8 41 00
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+dummy_soft_reset_:                           ; 0xf3b08 LB 0x7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    xor ax, ax                                ; 31 c0
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_init:                                 ; 0xf3b0f LB 0x18
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 51 db
+    xor bx, bx                                ; 31 db
+    mov dx, 00366h                            ; ba 66 03
+    call 0165eh                               ; e8 3b db
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_isactive:                             ; 0xf3b27 LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 39 db
+    mov dx, 00366h                            ; ba 66 03
+    call 01650h                               ; e8 17 db
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_emulated_drive:                       ; 0xf3b3d LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 23 db
+    mov dx, 00368h                            ; ba 68 03
+    call 01650h                               ; e8 01 db
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int13_eltorito:                             ; 0xf3b53 LB 0x190
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 0b db
+    mov si, 00366h                            ; be 66 03
+    mov di, ax                                ; 89 c7
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 0004bh                ; 3d 4b 00
+    jc short 03b7bh                           ; 72 0a
+    jbe short 03ba2h                          ; 76 2f
+    cmp ax, strict word 0004dh                ; 3d 4d 00
+    jbe short 03b80h                          ; 76 08
+    jmp near 03ca7h                           ; e9 2c 01
+    cmp ax, strict word 0004ah                ; 3d 4a 00
+    jne short 03b9fh                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 98 dd
+    push word [bp+016h]                       ; ff 76 16
+    push 002fch                               ; 68 fc 02
+    push 0030bh                               ; 68 0b 03
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 cd dd
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 03cc2h                           ; e9 23 01
+    jmp near 03ca7h                           ; e9 05 01
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov bx, strict word 00013h                ; bb 13 00
+    call 0165eh                               ; e8 b0 da
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    inc dx                                    ; 42
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 9e da
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 8b da
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 77 da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
+    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0169ah                               ; e8 9d da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 6b da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000ah                ; 83 c2 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 59 da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 47 da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 35 da
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00010h                ; 83 c2 10
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 05 da
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00011h                ; 83 c2 11
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 f1 d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00012h                ; 83 c2 12
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 dd d9
+    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
+    jne short 03c8dh                          ; 75 06
+    mov es, di                                ; 8e c7
+    mov byte [es:si], 000h                    ; 26 c6 04 00
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c2 d9
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 71 dc
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 002fch                               ; 68 fc 02
+    push 00333h                               ; 68 33 03
+    jmp near 03b94h                           ; e9 d2 fe
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, ax                                ; 89 c3
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 81 d9
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 03ca0h                          ; eb bd
+device_is_cdrom_:                            ; 0xf3ce3 LB 0x35
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 79 d9
+    cmp bl, 010h                              ; 80 fb 10
+    jc short 03cfch                           ; 72 04
+    xor ax, ax                                ; 31 c0
+    jmp short 03d11h                          ; eb 15
+    xor bh, bh                                ; 30 ff
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, ax                                ; 8e c0
+    add bx, 00122h                            ; 81 c3 22 01
+    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
+    jne short 03cf8h                          ; 75 ea
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+cdrom_boot_:                                 ; 0xf3d18 LB 0x434
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 0081ch                            ; 81 ec 1c 08
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 3f d9
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov si, 00366h                            ; be 66 03
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-018h], 00122h                ; c7 46 e8 22 01
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    jmp short 03d4dh                          ; eb 09
+    inc byte [bp-00ch]                        ; fe 46 f4
+    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
+    jnc short 03d59h                          ; 73 0c
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    call 03ce3h                               ; e8 8e ff
+    test ax, ax                               ; 85 c0
+    je short 03d44h                           ; 74 eb
+    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
+    jc short 03d65h                           ; 72 06
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 040e9h                           ; e9 84 03
+    mov cx, strict word 0000ch                ; b9 0c 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-026h]                         ; 8d 46 da
+    call 0a03ah                               ; e8 c8 62
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    mov ax, strict word 00011h                ; b8 11 00
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, strict word 00001h                ; b8 01 00
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
+    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    jmp short 03db0h                          ; eb 09
+    inc byte [bp-00eh]                        ; fe 46 f2
+    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
+    jnbe short 03dech                         ; 77 3c
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    add di, ax                                ; 01 c7
+    lea dx, [bp-00826h]                       ; 8d 96 da f7
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00001h                   ; 6a 01
+    push strict byte 00000h                   ; 6a 00
+    push 00800h                               ; 68 00 08
+    push strict byte 00000h                   ; 6a 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    test ax, ax                               ; 85 c0
+    jne short 03da7h                          ; 75 bb
+    test ax, ax                               ; 85 c0
+    je short 03df6h                           ; 74 06
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 040e9h                           ; e9 f3 02
+    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
+    je short 03e03h                           ; 74 06
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp near 040e9h                           ; e9 e6 02
+    xor di, di                                ; 31 ff
+    jmp short 03e0dh                          ; eb 06
+    inc di                                    ; 47
+    cmp di, strict byte 00005h                ; 83 ff 05
+    jnc short 03e1dh                          ; 73 10
+    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
+    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    je short 03e07h                           ; 74 f0
+    mov ax, strict word 00005h                ; b8 05 00
+    jmp near 040e9h                           ; e9 cc 02
+    xor di, di                                ; 31 ff
+    jmp short 03e27h                          ; eb 06
+    inc di                                    ; 47
+    cmp di, strict byte 00017h                ; 83 ff 17
+    jnc short 03e37h                          ; 73 10
+    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    je short 03e21h                           ; 74 f0
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp near 040e9h                           ; e9 b2 02
+    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
+    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, strict word 00001h                ; b8 01 00
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    add di, ax                                ; 01 c7
+    lea dx, [bp-00826h]                       ; 8d 96 da f7
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00001h                   ; 6a 01
+    push strict byte 00000h                   ; 6a 00
+    push 00800h                               ; 68 00 08
+    push strict byte 00000h                   ; 6a 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    test ax, ax                               ; 85 c0
+    je short 03e99h                           ; 74 06
+    mov ax, strict word 00007h                ; b8 07 00
+    jmp near 040e9h                           ; e9 50 02
+    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
+    je short 03ea6h                           ; 74 06
+    mov ax, strict word 00008h                ; b8 08 00
+    jmp near 040e9h                           ; e9 43 02
+    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
+    je short 03eb3h                           ; 74 06
+    mov ax, strict word 00009h                ; b8 09 00
+    jmp near 040e9h                           ; e9 36 02
+    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
+    je short 03ec0h                           ; 74 06
+    mov ax, strict word 0000ah                ; b8 0a 00
+    jmp near 040e9h                           ; e9 29 02
+    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
+    jne short 03ebah                          ; 75 f3
+    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
+    je short 03ed4h                           ; 74 06
+    mov ax, strict word 0000bh                ; b8 0b 00
+    jmp near 040e9h                           ; e9 15 02
+    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov byte [es:si+001h], al                 ; 26 88 44 01
+    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
+    jne short 03eedh                          ; 75 07
+    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
+    jmp short 03f00h                          ; eb 13
+    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
+    jnc short 03efbh                          ; 73 07
+    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
+    jmp short 03f00h                          ; eb 05
+    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov byte [es:si+003h], al                 ; 26 88 44 03
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    mov word [es:si+004h], dx                 ; 26 89 54 04
+    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
+    mov word [bp-010h], ax                    ; 89 46 f0
+    test ax, ax                               ; 85 c0
+    jne short 03f2fh                          ; 75 05
+    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov word [es:si+00ch], ax                 ; 26 89 44 0c
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov di, word [bp-00800h]                  ; 8b be 00 f8
+    mov word [es:si+00eh], di                 ; 26 89 7c 0e
+    test di, di                               ; 85 ff
+    je short 03f51h                           ; 74 06
+    cmp di, 00400h                            ; 81 ff 00 04
+    jbe short 03f57h                          ; 76 06
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp near 040e9h                           ; e9 92 01
+    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
+    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    lea cx, [di-001h]                         ; 8d 4d ff
+    shr cx, 002h                              ; c1 e9 02
+    inc cx                                    ; 41
+    mov ax, cx                                ; 89 c8
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov word [es:bx+00eh], cx                 ; 26 89 4f 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov ax, di                                ; 89 f8
+    sal ax, 009h                              ; c1 e0 09
+    mov dx, 00800h                            ; ba 00 08
+    sub dx, ax                                ; 29 c2
+    mov ax, dx                                ; 89 d0
+    and ah, 007h                              ; 80 e4 07
+    mov word [es:bx+020h], ax                 ; 26 89 47 20
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    add ax, ax                                ; 01 c0
+    mov word [bp-014h], ax                    ; 89 46 ec
+    push word [bp-010h]                       ; ff 76 f0
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00001h                   ; 6a 01
+    mov ax, di                                ; 89 f8
+    xor di, di                                ; 31 ff
+    mov cx, strict word 00009h                ; b9 09 00
+    sal ax, 1                                 ; d1 e0
+    rcl di, 1                                 ; d1 d7
+    loop 03fcbh                               ; e2 fa
+    push di                                   ; 57
+    push ax                                   ; 50
+    push strict byte 00000h                   ; 6a 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov di, word [bp-014h]                    ; 8b 7e ec
+    call word [word di+0006ah]                ; ff 95 6a 00
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
+    test ax, ax                               ; 85 c0
+    je short 03fffh                           ; 74 06
+    mov ax, strict word 0000dh                ; b8 0d 00
+    jmp near 040e9h                           ; e9 ea 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov al, byte [es:si+001h]                 ; 26 8a 44 01
+    cmp AL, strict byte 002h                  ; 3c 02
+    jc short 04017h                           ; 72 0d
+    jbe short 04032h                          ; 76 26
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 04042h                           ; 74 32
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 0403ah                           ; 74 26
+    jmp near 0408eh                           ; e9 77 00
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 0408eh                          ; 75 73
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
+    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
+    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
+    jmp short 0408eh                          ; eb 5c
+    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
+    jmp short 04024h                          ; eb ea
+    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
+    jmp short 04024h                          ; eb e2
+    mov dx, 001c4h                            ; ba c4 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01650h                               ; e8 05 d6
+    and AL, strict byte 03fh                  ; 24 3f
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov word [es:si+014h], ax                 ; 26 89 44 14
+    mov dx, 001c4h                            ; ba c4 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01650h                               ; e8 f1 d5
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 002h                              ; c1 e3 02
+    mov dx, 001c5h                            ; ba c5 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01650h                               ; e8 e1 d5
+    xor ah, ah                                ; 30 e4
+    add ax, bx                                ; 01 d8
+    inc ax                                    ; 40
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov word [es:si+012h], ax                 ; 26 89 44 12
+    mov dx, 001c3h                            ; ba c3 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01650h                               ; e8 cc d5
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov word [es:si+010h], ax                 ; 26 89 44 10
+    mov es, [bp-016h]                         ; 8e 46 ea
+    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
+    je short 040cfh                           ; 74 37
+    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
+    jne short 040b7h                          ; 75 18
+    mov dx, strict word 00010h                ; ba 10 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 a8 d5
+    mov bl, al                                ; 88 c3
+    or bl, 041h                               ; 80 cb 41
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00010h                ; ba 10 00
+    mov ax, strict word 00040h                ; b8 40 00
+    jmp short 040cch                          ; eb 15
+    mov dx, 00304h                            ; ba 04 03
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 01650h                               ; e8 90 d5
+    mov bl, al                                ; 88 c3
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, 00304h                            ; ba 04 03
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 0165eh                               ; e8 8f d5
+    mov es, [bp-016h]                         ; 8e 46 ea
+    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
+    je short 040ddh                           ; 74 04
+    mov byte [es:si], 001h                    ; 26 c6 04 01
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov al, byte [es:si+002h]                 ; 26 8a 44 02
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0f2h, 044h, 0f1h
+    db  041h, 024h, 042h, 04eh, 042h, 019h, 042h, 04eh, 042h, 019h, 042h, 040h, 044h, 026h, 044h, 0f2h
+    db  044h, 0f2h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 026h, 044h, 0e9h, 044h, 026h
+    db  044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h
+    db  044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h, 0f2h, 044h
+_int13_cdemu:                                ; 0xf414c LB 0x442
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0002ah                ; 83 ec 2a
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 0f d5
+    mov di, 00366h                            ; bf 66 03
+    mov cx, ax                                ; 89 c1
+    mov si, di                                ; 89 fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:di+003h]                 ; 26 8a 45 03
+    add al, al                                ; 00 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, byte [es:di+004h]                 ; 26 8a 45 04
+    add byte [bp-006h], al                    ; 00 46 fa
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d2 d4
+    mov es, cx                                ; 8e c1
+    cmp byte [es:di], 000h                    ; 26 80 3d 00
+    je short 041a3h                           ; 74 0f
+    mov al, byte [es:di+002h]                 ; 26 8a 45 02
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    cmp ax, dx                                ; 39 d0
+    je short 041cch                           ; 74 29
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 75 d7
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0034ch                               ; 68 4c 03
+    push 00358h                               ; 68 58 03
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 a0 d7
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 04512h                           ; e9 46 03
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 00050h                ; 3d 50 00
+    jnbe short 0424bh                         ; 77 74
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov di, 040f3h                            ; bf f3 40
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+04110h]               ; 2e 8b 85 10 41
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    xor bh, bh                                ; 30 ff
+    jmp ax                                    ; ff e0
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    les bx, [bp-00eh]                         ; c4 5e f2
+    add bx, ax                                ; 01 c3
+    mov bl, byte [es:bx+022h]                 ; 26 8a 5f 22
+    xor bh, bh                                ; 30 ff
+    add bx, bx                                ; 01 db
+    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
+    je short 04216h                           ; 74 09
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call word [word bx+00076h]                ; ff 97 76 00
+    jmp near 04426h                           ; e9 0d 02
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    jmp near 0451ah                           ; e9 f6 02
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 23 d4
+    mov cl, al                                ; 88 c1
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    or bx, ax                                 ; 09 c3
+    mov word [bp+016h], bx                    ; 89 5e 16
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 1a d4
+    test cl, cl                               ; 84 c9
+    je short 042a8h                           ; 74 60
+    jmp near 0452eh                           ; e9 e3 02
+    jmp near 044f2h                           ; e9 a4 02
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov di, word [es:si+014h]                 ; 26 8b 7c 14
+    mov dx, word [es:si+012h]                 ; 26 8b 54 12
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    mov ax, word [es:si+008h]                 ; 26 8b 44 08
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    and ax, strict word 0003fh                ; 25 3f 00
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov cx, word [bp+014h]                    ; 8b 4e 14
+    and cx, 000c0h                            ; 81 e1 c0 00
+    sal cx, 002h                              ; c1 e1 02
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    shr ax, 008h                              ; c1 e8 08
+    or ax, cx                                 ; 09 c8
+    mov si, word [bp+012h]                    ; 8b 76 12
+    shr si, 008h                              ; c1 ee 08
+    mov cx, word [bp+016h]                    ; 8b 4e 16
+    xor ch, ch                                ; 30 ed
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    test cx, cx                               ; 85 c9
+    je short 042b6h                           ; 74 1e
+    cmp di, word [bp-010h]                    ; 3b 7e f0
+    jc short 042a5h                           ; 72 08
+    cmp ax, dx                                ; 39 d0
+    jnc short 042a5h                          ; 73 04
+    cmp si, bx                                ; 39 de
+    jc short 042abh                           ; 72 06
+    jmp near 04512h                           ; e9 6a 02
+    jmp near 0442ah                           ; e9 7f 01
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    shr dx, 008h                              ; c1 ea 08
+    cmp dx, strict byte 00004h                ; 83 fa 04
+    jne short 042b9h                          ; 75 03
+    jmp near 04426h                           ; e9 6d 01
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    shr dx, 004h                              ; c1 ea 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    add cx, dx                                ; 01 d1
+    mov word [bp-01ah], cx                    ; 89 4e e6
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    and dx, strict byte 0000fh                ; 83 e2 0f
+    mov word [bp-01eh], dx                    ; 89 56 e2
+    xor dl, dl                                ; 30 d2
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 12 5d
+    xor bx, bx                                ; 31 db
+    add ax, si                                ; 01 f0
+    adc dx, bx                                ; 11 da
+    mov bx, di                                ; 89 fb
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 05 5d
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    dec ax                                    ; 48
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    xor bl, bl                                ; 30 db
+    mov cx, word [bp-00ah]                    ; 8b 4e f6
+    or cx, bx                                 ; 09 d9
+    mov word [bp+016h], cx                    ; 89 4e 16
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    mov word [bp-01ch], di                    ; 89 7e e4
+    mov di, ax                                ; 89 c7
+    and di, strict byte 00003h                ; 83 e7 03
+    xor bh, bh                                ; 30 ff
+    add ax, word [bp-00ah]                    ; 03 46 f6
+    adc dx, bx                                ; 11 da
+    add ax, strict word 0ffffh                ; 05 ff ff
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov word [bp-020h], dx                    ; 89 56 e0
+    shr word [bp-020h], 1                     ; d1 6e e0
+    rcr word [bp-022h], 1                     ; d1 5e de
+    shr word [bp-020h], 1                     ; d1 6e e0
+    rcr word [bp-022h], 1                     ; d1 5e de
+    mov cx, strict word 0000ch                ; b9 0c 00
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02eh]                         ; 8d 46 d2
+    call 0a03ah                               ; e8 ff 5c
+    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    add ax, si                                ; 01 f0
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    adc dx, word [bp-01ch]                    ; 13 56 e4
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov word [bp-02ah], dx                    ; 89 56 d6
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    sub ax, si                                ; 29 f0
+    inc ax                                    ; 40
+    xchg ah, al                               ; 86 c4
+    mov word [bp-027h], ax                    ; 89 46 d9
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov ax, di                                ; 89 f8
+    sal ax, 009h                              ; c1 e0 09
+    mov word [es:bx+01eh], ax                 ; 26 89 47 1e
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    mov bx, strict word 00004h                ; bb 04 00
+    sub bx, dx                                ; 29 d3
+    mov dx, bx                                ; 89 da
+    sub dx, di                                ; 29 fa
+    sal dx, 009h                              ; c1 e2 09
+    and dh, 007h                              ; 80 e6 07
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov word [es:bx+020h], dx                 ; 26 89 57 20
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    add bx, dx                                ; 01 d3
+    mov dl, byte [es:bx+022h]                 ; 26 8a 57 22
+    xor dh, dh                                ; 30 f6
+    add dx, dx                                ; 01 d2
+    mov word [bp-018h], dx                    ; 89 56 e8
+    push word [bp-01ah]                       ; ff 76 e6
+    push word [bp-01eh]                       ; ff 76 e2
+    push strict byte 00001h                   ; 6a 01
+    mov si, word [bp-00ah]                    ; 8b 76 f6
+    xor di, di                                ; 31 ff
+    mov cx, strict word 00009h                ; b9 09 00
+    sal si, 1                                 ; d1 e6
+    rcl di, 1                                 ; d1 d7
+    loop 043bdh                               ; e2 fa
+    push di                                   ; 57
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-02eh]                         ; 8d 5e d2
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    call word [word si+0006ah]                ; ff 94 6a 00
+    mov dx, ax                                ; 89 c2
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov word [es:bx+01eh], strict word 00000h ; 26 c7 47 1e 00 00
+    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
+    test al, al                               ; 84 c0
+    je short 04426h                           ; 74 37
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 29 d5
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0034ch                               ; 68 4c 03
+    push 0038eh                               ; 68 8e 03
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 55 d5
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 002h                               ; 80 cc 02
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    jmp near 0451dh                           ; e9 f7 00
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 29 d2
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov di, word [es:si+014h]                 ; 26 8b 7c 14
+    mov dx, word [es:si+012h]                 ; 26 8b 54 12
+    dec dx                                    ; 4a
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    dec bx                                    ; 4b
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor al, al                                ; 30 c0
+    mov cx, word [bp+014h]                    ; 8b 4e 14
+    xor ch, ch                                ; 30 ed
+    mov word [bp-018h], cx                    ; 89 4e e8
+    mov cx, dx                                ; 89 d1
+    xor ch, dh                                ; 30 f5
+    sal cx, 008h                              ; c1 e1 08
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov cx, word [bp-018h]                    ; 8b 4e e8
+    or cx, word [bp-016h]                     ; 0b 4e ea
+    mov word [bp+014h], cx                    ; 89 4e 14
+    shr dx, 002h                              ; c1 ea 02
+    xor dh, dh                                ; 30 f6
+    and dl, 0c0h                              ; 80 e2 c0
+    mov word [bp-016h], dx                    ; 89 56 ea
+    mov dx, di                                ; 89 fa
+    xor dh, dh                                ; 30 f6
+    and dl, 03fh                              ; 80 e2 3f
+    or dx, word [bp-016h]                     ; 0b 56 ea
+    xor cl, cl                                ; 30 c9
+    or cx, dx                                 ; 09 d1
+    mov word [bp+014h], cx                    ; 89 4e 14
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    sal bx, 008h                              ; c1 e3 08
+    or dx, bx                                 ; 09 da
+    mov word [bp+012h], dx                    ; 89 56 12
+    xor dl, dl                                ; 30 d2
+    or dl, 002h                               ; 80 ca 02
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov dl, byte [es:si+001h]                 ; 26 8a 54 01
+    mov word [bp+010h], ax                    ; 89 46 10
+    cmp dl, 003h                              ; 80 fa 03
+    je short 044cch                           ; 74 1a
+    cmp dl, 002h                              ; 80 fa 02
+    je short 044c8h                           ; 74 11
+    cmp dl, 001h                              ; 80 fa 01
+    jne short 044d0h                          ; 75 14
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor al, al                                ; 30 c0
+    or AL, strict byte 002h                   ; 0c 02
+    mov word [bp+010h], ax                    ; 89 46 10
+    jmp short 044d0h                          ; eb 08
+    or AL, strict byte 004h                   ; 0c 04
+    jmp short 044c3h                          ; eb f7
+    or AL, strict byte 005h                   ; 0c 05
+    jmp short 044c3h                          ; eb f3
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
+    jc short 044ddh                           ; 72 03
+    jmp near 04426h                           ; e9 49 ff
+    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    jmp short 044dah                          ; eb f1
+    or bh, 003h                               ; 80 cf 03
+    mov word [bp+016h], bx                    ; 89 5e 16
+    jmp near 0442ah                           ; e9 38 ff
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 26 d4
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0034ch                               ; 68 4c 03
+    push 003afh                               ; 68 af 03
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 57 d4
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 30 d1
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 04439h                           ; e9 04 ff
+    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 07ch, 046h, 0cch
+    db  04ah, 039h, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 02eh, 046h, 07ch, 046h, 0cch, 04ah, 07ch
+    db  046h, 07ch, 046h, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 0cch, 04ah, 060h, 046h, 0cch
+    db  04ah, 07ch, 046h, 069h, 046h, 098h, 046h, 02eh, 046h, 098h, 046h, 0d8h, 047h, 073h, 048h, 098h
+    db  046h, 09bh, 048h, 0e6h, 04ah, 0eeh, 04ah, 07ch, 046h
+_int13_cdrom:                                ; 0xf458e LB 0x598
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0002ah                ; 83 ec 2a
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 cd d0
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 ab d0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    cmp ax, 000e0h                            ; 3d e0 00
+    jc short 045c2h                           ; 72 05
+    cmp ax, 000f0h                            ; 3d f0 00
+    jc short 045e0h                           ; 72 1e
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 003ebh                               ; 68 eb 03
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 8c d3
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 04b04h                           ; e9 24 05
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 04609h                           ; 72 10
+    push ax                                   ; 50
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 00416h                               ; 68 16 04
+    jmp short 045d5h                          ; eb cc
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 00050h                ; 3d 50 00
+    jnbe short 0467ch                         ; 77 68
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov di, 04535h                            ; bf 35 45
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+04552h]               ; 2e 8b 85 52 45
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    xor bh, bh                                ; 30 ff
+    jmp ax                                    ; ff e0
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    jmp near 04b0ch                           ; e9 d3 04
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 0e d0
+    mov cl, al                                ; 88 c1
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    or bx, ax                                 ; 09 c3
+    mov word [bp+018h], bx                    ; 89 5e 18
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 05 d0
+    test cl, cl                               ; 84 c9
+    je short 04679h                           ; 74 1c
+    jmp near 04b20h                           ; e9 c0 04
+    or bh, 002h                               ; 80 cf 02
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp near 04b0fh                           ; e9 a6 04
+    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
+    or bh, 030h                               ; 80 cf 30
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
+    jmp near 04ad0h                           ; e9 54 04
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 9c d2
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 00333h                               ; 68 33 03
+    push strict byte 00004h                   ; 6a 04
+    jmp short 046d7h                          ; eb 3f
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [bp-018h], bx                    ; 89 5e e8
+    mov [bp-012h], es                         ; 8c 46 ee
+    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
+    or di, ax                                 ; 09 c7
+    je short 046e0h                           ; 74 18
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 00448h                               ; 68 48 04
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 8c d2
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 04b04h                           ; e9 24 04
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov di, bx                                ; 89 df
+    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-014h], ax                    ; 89 46 ec
+    cmp ax, strict word 00044h                ; 3d 44 00
+    je short 04706h                           ; 74 05
+    cmp ax, strict word 00047h                ; 3d 47 00
+    jne short 04709h                          ; 75 03
+    jmp near 04acch                           ; e9 c3 03
+    mov cx, strict word 0000ch                ; b9 0c 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02eh]                         ; 8d 46 d2
+    call 0a03ah                               ; e8 24 59
+    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov dx, di                                ; 89 fa
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov word [bp-02ah], dx                    ; 89 56 d6
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    xchg ah, al                               ; 86 c4
+    mov word [bp-027h], ax                    ; 89 46 d9
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00800h             ; 26 c7 44 10 00 08
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    add di, ax                                ; 01 c7
+    push word [bp-022h]                       ; ff 76 de
+    push word [bp-01eh]                       ; ff 76 e2
+    push strict byte 00001h                   ; 6a 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 0000bh                ; b9 0b 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 04769h                               ; e2 fa
+    push dx                                   ; 52
+    push ax                                   ; 50
+    push strict byte 00000h                   ; 6a 00
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-02eh]                         ; 8d 5e d2
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov dx, word [es:si+01ch]                 ; 26 8b 54 1c
+    mov cx, strict word 0000bh                ; b9 0b 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 04795h                               ; e2 fa
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    cmp byte [bp-01ch], 000h                  ; 80 7e e4 00
+    je short 047feh                           ; 74 53
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 6d d1
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push word [bp-014h]                       ; ff 76 ec
+    push 003dfh                               ; 68 df 03
+    push 00471h                               ; 68 71 04
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 9c d1
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 04b0ch                           ; e9 34 03
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    jnbe short 04846h                         ; 77 69
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov al, byte [es:di+025h]                 ; 26 8a 45 25
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    je short 0485ch                           ; 74 67
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    je short 04836h                           ; 74 3c
+    test bx, bx                               ; 85 db
+    je short 04801h                           ; 74 03
+    jmp near 04acch                           ; e9 cb 02
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 04817h                          ; 75 12
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 0b4h                               ; 80 cc b4
+    mov word [bp+018h], ax                    ; 89 46 18
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    jmp near 04b0ch                           ; e9 f5 02
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, dx                                ; 01 d6
+    mov byte [es:si+025h], al                 ; 26 88 44 25
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov word [bp+018h], ax                    ; 89 46 18
+    jmp short 047feh                          ; eb c8
+    test al, al                               ; 84 c0
+    jne short 04849h                          ; 75 0f
+    or bh, 0b0h                               ; 80 cf b0
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov byte [bp+018h], al                    ; 88 46 18
+    jmp near 04b0fh                           ; e9 c9 02
+    jmp near 04b04h                           ; e9 bb 02
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, dx                                ; 01 d6
+    mov byte [es:si+025h], al                 ; 26 88 44 25
+    test al, al                               ; 84 c0
+    jne short 0486eh                          ; 75 0e
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    xor dl, dl                                ; 30 d2
+    or dx, ax                                 ; 09 c2
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp short 047feh                          ; eb 90
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 04862h                          ; eb ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, ax                                ; 01 c6
+    mov al, byte [es:si+025h]                 ; 26 8a 44 25
+    test al, al                               ; 84 c0
+    je short 0488eh                           ; 74 06
+    or bh, 0b1h                               ; 80 cf b1
+    jmp near 04663h                           ; e9 d5 fd
+    je short 048b7h                           ; 74 27
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 0b1h                               ; 80 cc b1
+    jmp near 04b0ch                           ; e9 71 02
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    mov bx, dx                                ; 89 d3
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov es, cx                                ; 8e c1
+    mov di, dx                                ; 89 d7
+    mov ax, word [es:di]                      ; 26 8b 05
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    cmp ax, strict word 0001ah                ; 3d 1a 00
+    jnc short 048bah                          ; 73 05
+    jmp short 04846h                          ; eb 8f
+    jmp near 04acch                           ; e9 12 02
+    jc short 0491eh                           ; 72 62
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+028h]                 ; 26 8b 45 28
+    mov es, cx                                ; 8e c1
+    mov di, dx                                ; 89 d7
+    mov word [es:di], strict word 0001ah      ; 26 c7 05 1a 00
+    mov word [es:di+002h], strict word 00074h ; 26 c7 45 02 74 00
+    mov word [es:di+004h], strict word 0ffffh ; 26 c7 45 04 ff ff
+    mov word [es:di+006h], strict word 0ffffh ; 26 c7 45 06 ff ff
+    mov word [es:di+008h], strict word 0ffffh ; 26 c7 45 08 ff ff
+    mov word [es:di+00ah], strict word 0ffffh ; 26 c7 45 0a ff ff
+    mov word [es:di+00ch], strict word 0ffffh ; 26 c7 45 0c ff ff
+    mov word [es:di+00eh], strict word 0ffffh ; 26 c7 45 0e ff ff
+    mov word [es:di+018h], ax                 ; 26 89 45 18
+    mov word [es:di+010h], strict word 0ffffh ; 26 c7 45 10 ff ff
+    mov word [es:di+012h], strict word 0ffffh ; 26 c7 45 12 ff ff
+    mov word [es:di+014h], strict word 0ffffh ; 26 c7 45 14 ff ff
+    mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
+    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
+    jc short 0497dh                           ; 72 59
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
+    mov word [es:bx+01ah], 00356h             ; 26 c7 47 1a 56 03
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov dx, word [es:di+00206h]               ; 26 8b 95 06 02
+    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov al, byte [es:di+00205h]               ; 26 8a 85 05 02
+    mov byte [bp-006h], al                    ; 88 46 fa
+    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
+    mov di, si                                ; 89 f7
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di+026h]                 ; 26 8a 45 26
+    mov cx, strict word 00070h                ; b9 70 00
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 04980h                          ; 75 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 04982h                          ; eb 05
+    jmp near 04a00h                           ; e9 80 00
+    xor ax, ax                                ; 31 c0
+    or cx, ax                                 ; 09 c1
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov word [es:si+00234h], dx               ; 26 89 94 34 02
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:si+00236h], ax               ; 26 89 84 36 02
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    mov di, strict word 00002h                ; bf 02 00
+    idiv di                                   ; f7 ff
+    or dl, 00eh                               ; 80 ca 0e
+    sal dx, 004h                              ; c1 e2 04
+    mov byte [es:si+00238h], dl               ; 26 88 94 38 02
+    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
+    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
+    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
+    mov word [es:si+0023eh], cx               ; 26 89 8c 3e 02
+    mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00
+    mov byte [es:si+00242h], 011h             ; 26 c6 84 42 02 11
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    jmp short 049e2h                          ; eb 05
+    cmp ch, 00fh                              ; 80 fd 0f
+    jnc short 049f6h                          ; 73 14
+    mov dl, ch                                ; 88 ea
+    xor dh, dh                                ; 30 f6
+    add dx, 00356h                            ; 81 c2 56 03
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 01650h                               ; e8 60 cc
+    add cl, al                                ; 00 c1
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 049ddh                          ; eb e7
+    neg cl                                    ; f6 d9
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
+    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
+    jnc short 04a09h                          ; 73 03
+    jmp near 04acch                           ; e9 c3 00
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, ax                                ; 01 c6
+    mov al, byte [es:si+00204h]               ; 26 8a 84 04 02
+    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
+    mov word [es:bx+01eh], 0beddh             ; 26 c7 47 1e dd be
+    mov word [es:bx+020h], strict word 00024h ; 26 c7 47 20 24 00
+    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
+    test al, al                               ; 84 c0
+    jne short 04a51h                          ; 75 0c
+    mov word [es:bx+024h], 05349h             ; 26 c7 47 24 49 53
+    mov word [es:bx+026h], 02041h             ; 26 c7 47 26 41 20
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx+028h], 05441h             ; 26 c7 47 28 41 54
+    mov word [es:bx+02ah], 02041h             ; 26 c7 47 2a 41 20
+    mov word [es:bx+02ch], 02020h             ; 26 c7 47 2c 20 20
+    mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
+    test al, al                               ; 84 c0
+    jne short 04a86h                          ; 75 16
+    mov word [es:bx+030h], dx                 ; 26 89 57 30
+    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
+    mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00
+    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    and AL, strict byte 001h                  ; 24 01
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx+038h], ax                 ; 26 89 47 38
+    mov word [es:bx+03ah], strict word 00000h ; 26 c7 47 3a 00 00
+    mov word [es:bx+03ch], strict word 00000h ; 26 c7 47 3c 00 00
+    mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00
+    xor al, al                                ; 30 c0
+    mov AH, strict byte 01eh                  ; b4 1e
+    jmp short 04ab1h                          ; eb 05
+    cmp ah, 040h                              ; 80 fc 40
+    jnc short 04ac3h                          ; 73 12
+    mov dl, ah                                ; 88 e2
+    xor dh, dh                                ; 30 f6
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov si, bx                                ; 89 de
+    add si, dx                                ; 01 d6
+    add al, byte [es:si]                      ; 26 02 04
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 04aach                          ; eb e9
+    neg al                                    ; f6 d8
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:bx+041h], al                 ; 26 88 47 41
+    mov byte [bp+019h], 000h                  ; c6 46 19 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 83 cb
+    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    or bh, 006h                               ; 80 cf 06
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp short 04b20h                          ; eb 32
+    cmp bx, strict byte 00006h                ; 83 fb 06
+    je short 04acch                           ; 74 d9
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    jc short 04b04h                           ; 72 0c
+    jbe short 04acch                          ; 76 d2
+    cmp bx, strict byte 00003h                ; 83 fb 03
+    jc short 04b04h                           ; 72 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jbe short 04acch                          ; 76 c8
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+018h], ax                    ; 89 46 18
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 3e cb
+    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
+    jmp short 04adfh                          ; eb b9
+print_boot_device_:                          ; 0xf4b26 LB 0x4b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    test al, al                               ; 84 c0
+    je short 04b33h                           ; 74 05
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp short 04b4dh                          ; eb 1a
+    test dl, dl                               ; 84 d2
+    je short 04b3ch                           ; 74 05
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp short 04b4dh                          ; eb 11
+    test bl, 080h                             ; f6 c3 80
+    jne short 04b45h                          ; 75 04
+    xor dh, dh                                ; 30 f6
+    jmp short 04b4dh                          ; eb 08
+    test bl, 080h                             ; f6 c3 80
+    je short 04b6bh                           ; 74 21
+    mov dx, strict word 00001h                ; ba 01 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 cb cd
+    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
+    add dx, 00dc6h                            ; 81 c2 c6 0d
+    push dx                                   ; 52
+    push 00494h                               ; 68 94 04
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 fe cd
+    add sp, strict byte 00006h                ; 83 c4 06
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+print_boot_failure_:                         ; 0xf4b71 LB 0x96
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    mov ah, dl                                ; 88 d4
+    mov dl, cl                                ; 88 ca
+    mov cl, bl                                ; 88 d9
+    and cl, 07fh                              ; 80 e1 7f
+    xor ch, ch                                ; 30 ed
+    mov si, cx                                ; 89 ce
+    test al, al                               ; 84 c0
+    je short 04ba1h                           ; 74 1b
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 92 cd
+    push 00ddah                               ; 68 da 0d
+    push 004a8h                               ; 68 a8 04
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 ca cd
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 04be5h                          ; eb 44
+    test ah, ah                               ; 84 e4
+    je short 04bb5h                           ; 74 10
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 73 cd
+    push 00de4h                               ; 68 e4 0d
+    jmp short 04b94h                          ; eb df
+    test bl, 080h                             ; f6 c3 80
+    je short 04bcbh                           ; 74 11
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 5e cd
+    push si                                   ; 56
+    push 00dd0h                               ; 68 d0 0d
+    jmp short 04bdah                          ; eb 0f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 4d cd
+    push si                                   ; 56
+    push 00dc6h                               ; 68 c6 0d
+    push 004bdh                               ; 68 bd 04
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 84 cd
+    add sp, strict byte 00008h                ; 83 c4 08
+    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
+    jne short 04bffh                          ; 75 14
+    test dl, dl                               ; 84 d2
+    jne short 04bf4h                          ; 75 05
+    push 004d5h                               ; 68 d5 04
+    jmp short 04bf7h                          ; eb 03
+    push 004ffh                               ; 68 ff 04
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 6a cd
+    add sp, strict byte 00004h                ; 83 c4 04
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+print_cdromboot_failure_:                    ; 0xf4c07 LB 0x27
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 09 cd
+    push dx                                   ; 52
+    push 00534h                               ; 68 34 05
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 43 cd
+    add sp, strict byte 00006h                ; 83 c4 06
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int19_function:                             ; 0xf4c2e LB 0x271
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 2d ca
+    mov bx, ax                                ; 89 c3
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, strict word 0003dh                ; b8 3d 00
+    call 016ach                               ; e8 5e ca
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00038h                ; b8 38 00
+    call 016ach                               ; e8 54 ca
+    and AL, strict byte 0f0h                  ; 24 f0
+    xor ah, ah                                ; 30 e4
+    sal ax, 004h                              ; c1 e0 04
+    mov si, dx                                ; 89 d6
+    or si, ax                                 ; 09 c6
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 016ach                               ; e8 43 ca
+    and AL, strict byte 00fh                  ; 24 0f
+    xor ah, ah                                ; 30 e4
+    sal ax, 00ch                              ; c1 e0 0c
+    or si, ax                                 ; 09 c6
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, bx                                ; 89 d8
+    call 01650h                               ; e8 d6 c9
+    test al, al                               ; 84 c0
+    je short 04c8ah                           ; 74 0c
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, bx                                ; 89 d8
+    call 01650h                               ; e8 ca c9
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
+    jne short 04ca0h                          ; 75 10
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 016ach                               ; e8 16 ca
+    and AL, strict byte 0f0h                  ; 24 f0
+    xor ah, ah                                ; 30 e4
+    sar ax, 004h                              ; c1 f8 04
+    call 07d8bh                               ; e8 eb 30
+    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
+    jne short 04ca9h                          ; 75 03
+    shr si, 004h                              ; c1 ee 04
+    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
+    jne short 04cb2h                          ; 75 03
+    shr si, 008h                              ; c1 ee 08
+    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
+    jne short 04cbbh                          ; 75 03
+    shr si, 00ch                              ; c1 ee 0c
+    cmp si, strict byte 00010h                ; 83 fe 10
+    jnc short 04cc4h                          ; 73 04
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 49 cc
+    push si                                   ; 56
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00554h                               ; 68 54 05
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 7d cc
+    add sp, strict byte 00008h                ; 83 c4 08
+    and si, strict byte 0000fh                ; 83 e6 0f
+    cmp si, strict byte 00002h                ; 83 fe 02
+    jc short 04d02h                           ; 72 0e
+    jbe short 04d11h                          ; 76 1b
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 04d2fh                           ; 74 34
+    cmp si, strict byte 00003h                ; 83 fe 03
+    je short 04d25h                           ; 74 25
+    jmp short 04d5eh                          ; eb 5c
+    cmp si, strict byte 00001h                ; 83 fe 01
+    jne short 04d5eh                          ; 75 57
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], al                    ; 88 46 f8
+    jmp short 04d76h                          ; eb 65
+    mov dx, 0037ch                            ; ba 7c 03
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    call 01650h                               ; e8 36 c9
+    add AL, strict byte 080h                  ; 04 80
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    jmp short 04d76h                          ; eb 51
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    mov byte [bp-008h], 001h                  ; c6 46 f8 01
+    jmp short 04d39h                          ; eb 0a
+    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 04d76h                           ; 74 3d
+    call 03d18h                               ; e8 dc ef
+    mov bx, ax                                ; 89 c3
+    test AL, strict byte 0ffh                 ; a8 ff
+    je short 04d65h                           ; 74 23
+    call 04c07h                               ; e8 c2 fe
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov cx, strict word 00001h                ; b9 01 00
+    call 04b71h                               ; e8 13 fe
+    xor ax, ax                                ; 31 c0
+    xor dx, dx                                ; 31 d2
+    jmp near 04e98h                           ; e9 33 01
+    mov dx, 00372h                            ; ba 72 03
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    call 0166ch                               ; e8 fe c8
+    mov di, ax                                ; 89 c7
+    shr bx, 008h                              ; c1 eb 08
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
+    jne short 04dd1h                          ; 75 55
+    xor si, si                                ; 31 f6
+    mov ax, 0e200h                            ; b8 00 e2
+    mov es, ax                                ; 8e c0
+    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
+    jne short 04d45h                          ; 75 bb
+    mov cx, ax                                ; 89 c1
+    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
+    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
+    jne short 04d45h                          ; 75 ad
+    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
+    jne short 04d45h                          ; 75 a6
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov dx, word [es:di]                      ; 26 8b 15
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    cmp ax, 06568h                            ; 3d 68 65
+    jne short 04dd3h                          ; 75 24
+    cmp dx, 07445h                            ; 81 fa 45 74
+    jne short 04dd3h                          ; 75 1e
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 04b26h                               ; e8 5f fd
+    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
+    mov word [bp-010h], cx                    ; 89 4e f0
+    jmp short 04df2h                          ; eb 21
+    jmp short 04df8h                          ; eb 25
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 04b26h                               ; e8 41 fd
+    sti                                       ; fb
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    call far [bp-012h]                        ; ff 5e ee
+    jmp near 04d45h                           ; e9 4d ff
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 04e25h                          ; 75 27
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 04e25h                          ; 75 21
+    mov di, 007c0h                            ; bf c0 07
+    mov es, di                                ; 8e c7
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    mov ax, 00201h                            ; b8 01 02
+    mov DH, strict byte 000h                  ; b6 00
+    mov cx, strict word 00001h                ; b9 01 00
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    int 013h                                  ; cd 13
+    mov ax, strict word 00000h                ; b8 00 00
+    sbb ax, strict byte 00000h                ; 83 d8 00
+    test ax, ax                               ; 85 c0
+    je short 04e25h                           ; 74 03
+    jmp near 04d45h                           ; e9 20 ff
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 04e2fh                           ; 74 04
+    xor bl, bl                                ; 30 db
+    jmp short 04e31h                          ; eb 02
+    mov BL, strict byte 001h                  ; b3 01
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 04e39h                           ; 74 02
+    mov BL, strict byte 001h                  ; b3 01
+    xor dx, dx                                ; 31 d2
+    mov ax, di                                ; 89 f8
+    call 0166ch                               ; e8 2c c8
+    mov si, ax                                ; 89 c6
+    mov dx, strict word 00002h                ; ba 02 00
+    mov ax, di                                ; 89 f8
+    call 0166ch                               ; e8 22 c8
+    cmp si, ax                                ; 39 c6
+    je short 04e5fh                           ; 74 11
+    test bl, bl                               ; 84 db
+    jne short 04e77h                          ; 75 25
+    mov dx, 001feh                            ; ba fe 01
+    mov ax, di                                ; 89 f8
+    call 0166ch                               ; e8 12 c8
+    cmp ax, 0aa55h                            ; 3d 55 aa
+    je short 04e77h                           ; 74 18
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor cx, cx                                ; 31 c9
+    jmp near 04d5bh                           ; e9 e4 fe
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 04b26h                               ; e8 9d fc
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    xor dx, dx                                ; 31 d2
+    xor al, al                                ; 30 c0
+    add ax, di                                ; 01 f8
+    adc dx, bx                                ; 11 da
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+keyboard_panic_:                             ; 0xf4e9f LB 0x13
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push ax                                   ; 50
+    push 00574h                               ; 68 74 05
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 bb ca
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_keyboard_init:                              ; 0xf4eb2 LB 0x26a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04ed5h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04ed5h                          ; 76 08
+    xor al, al                                ; 30 c0
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04ebeh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04edeh                          ; 75 05
+    xor ax, ax                                ; 31 c0
+    call 04e9fh                               ; e8 c1 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04ef8h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04ef8h                          ; 76 08
+    mov AL, strict byte 001h                  ; b0 01
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04ee1h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04f02h                          ; 75 06
+    mov ax, strict word 00001h                ; b8 01 00
+    call 04e9fh                               ; e8 9d ff
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, strict word 00055h                ; 3d 55 00
+    je short 04f13h                           ; 74 06
+    mov ax, 003dfh                            ; b8 df 03
+    call 04e9fh                               ; e8 8c ff
+    mov AL, strict byte 0abh                  ; b0 ab
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04f33h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04f33h                          ; 76 08
+    mov AL, strict byte 010h                  ; b0 10
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f1ch                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04f3dh                          ; 75 06
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 04e9fh                               ; e8 62 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04f57h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04f57h                          ; 76 08
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f40h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04f61h                          ; 75 06
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 04e9fh                               ; e8 3e ff
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test ax, ax                               ; 85 c0
+    je short 04f71h                           ; 74 06
+    mov ax, 003e0h                            ; b8 e0 03
+    call 04e9fh                               ; e8 2e ff
+    mov AL, strict byte 0ffh                  ; b0 ff
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04f91h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04f91h                          ; 76 08
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f7ah                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04f9bh                          ; 75 06
+    mov ax, strict word 00014h                ; b8 14 00
+    call 04e9fh                               ; e8 04 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04fb5h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04fb5h                          ; 76 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f9eh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04fbfh                          ; 75 06
+    mov ax, strict word 00015h                ; b8 15 00
+    call 04e9fh                               ; e8 e0 fe
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 04fd0h                           ; 74 06
+    mov ax, 003e1h                            ; b8 e1 03
+    call 04e9fh                               ; e8 cf fe
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04fe2h                          ; 75 08
+    mov AL, strict byte 031h                  ; b0 31
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04fd0h                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000aah                            ; 3d aa 00
+    je short 04ffbh                           ; 74 0e
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000aah                            ; 3d aa 00
+    je short 04ffbh                           ; 74 06
+    mov ax, 003e2h                            ; b8 e2 03
+    call 04e9fh                               ; e8 a4 fe
+    mov AL, strict byte 0f5h                  ; b0 f5
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 0501bh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0501bh                          ; 76 08
+    mov AL, strict byte 040h                  ; b0 40
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05004h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05025h                          ; 75 06
+    mov ax, strict word 00028h                ; b8 28 00
+    call 04e9fh                               ; e8 7a fe
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0503fh                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0503fh                          ; 76 08
+    mov AL, strict byte 041h                  ; b0 41
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05028h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05049h                          ; 75 06
+    mov ax, strict word 00029h                ; b8 29 00
+    call 04e9fh                               ; e8 56 fe
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 0505ah                           ; 74 06
+    mov ax, 003e3h                            ; b8 e3 03
+    call 04e9fh                               ; e8 45 fe
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 0507ah                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0507ah                          ; 76 08
+    mov AL, strict byte 050h                  ; b0 50
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05063h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05084h                          ; 75 06
+    mov ax, strict word 00032h                ; b8 32 00
+    call 04e9fh                               ; e8 1b fe
+    mov AL, strict byte 065h                  ; b0 65
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 050a4h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 050a4h                          ; 76 08
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 0508dh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 050aeh                          ; 75 06
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 04e9fh                               ; e8 f1 fd
+    mov AL, strict byte 0f4h                  ; b0 f4
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 050ceh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 050ceh                          ; 76 08
+    mov AL, strict byte 070h                  ; b0 70
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 050b7h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 050d8h                          ; 75 06
+    mov ax, strict word 00046h                ; b8 46 00
+    call 04e9fh                               ; e8 c7 fd
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 050f2h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 050f2h                          ; 76 08
+    mov AL, strict byte 071h                  ; b0 71
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 050dbh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 050fch                          ; 75 06
+    mov ax, strict word 00046h                ; b8 46 00
+    call 04e9fh                               ; e8 a3 fd
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 0510dh                           ; 74 06
+    mov ax, 003e4h                            ; b8 e4 03
+    call 04e9fh                               ; e8 92 fd
+    mov AL, strict byte 0a8h                  ; b0 a8
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    call 0658ch                               ; e8 74 14
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+enqueue_key_:                                ; 0xf511c LB 0x9e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov bl, dl                                ; 88 d3
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 3a c5
+    mov di, ax                                ; 89 c7
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 2f c5
+    mov si, ax                                ; 89 c6
+    lea cx, [si+002h]                         ; 8d 4c 02
+    cmp cx, strict byte 0003eh                ; 83 f9 3e
+    jc short 0514ah                           ; 72 03
+    mov cx, strict word 0001eh                ; b9 1e 00
+    cmp cx, di                                ; 39 f9
+    jne short 05152h                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 0517ch                          ; eb 2a
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, si                                ; 89 f2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 fe c4
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+001h]                         ; 8d 54 01
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 f0 c4
+    mov bx, cx                                ; 89 cb
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 01 c5
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    aam 0c6h                                  ; d4 c6
+    lds di, [bp+si-04948h]                    ; c5 ba b8 b6
+    stosb                                     ; aa
+    popfw                                     ; 9d
+    push sp                                   ; 54
+    push bx                                   ; 53
+    inc si                                    ; 46
+    inc bp                                    ; 45
+    cmp bh, byte [bx+si]                      ; 3a 38
+    sub bl, byte [ss:di]                      ; 36 2a 1d
+    clc                                       ; f8
+    push sp                                   ; 54
+    mov AL, strict byte 052h                  ; b0 52
+    push dx                                   ; 52
+    push dx                                   ; 52
+    push dx                                   ; 52
+    push dx                                   ; 52
+    aas                                       ; 3f
+    push bx                                   ; 53
+    sub word [bp+si-03dh], dx                 ; 29 52 c3
+    push bx                                   ; 53
+    aaa                                       ; 37
+    push sp                                   ; 54
+    ficom word [si-044h]                      ; de 54 bc
+    push sp                                   ; 54
+    not word [bp+si+052h]                     ; f7 52 52
+    push dx                                   ; 52
+    push dx                                   ; 52
+    push dx                                   ; 52
+    adc word [bp+di+047h], 01752h             ; 81 53 47 52 17
+    push sp                                   ; 54
+    pushfw                                    ; 9c
+    push sp                                   ; 54
+    xlatb                                     ; d7
+    push sp                                   ; 54
+_int09_function:                             ; 0xf51ba LB 0x494
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov al, byte [bp+014h]                    ; 8a 46 14
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    test al, al                               ; 84 c0
+    jne short 051e4h                          ; 75 19
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 4d c7
+    push 00587h                               ; 68 87 05
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 88 c7
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 052aah                           ; e9 c6 00
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 63 c4
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 54 c4
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 45 c4
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00012h                ; b9 12 00
+    mov di, 05185h                            ; bf 85 51
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+05196h]               ; 2e 8b 85 96 51
+    jmp ax                                    ; ff e0
+    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 21 c4
+    or byte [bp-008h], 040h                   ; 80 4e f8 40
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    jmp near 054c8h                           ; e9 81 02
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0bfh                  ; 24 bf
+    mov byte [bp-008h], al                    ; 88 46 f8
+    jmp near 054c8h                           ; e9 76 02
+    test byte [bp-00ch], 002h                 ; f6 46 f4 02
+    jne short 0528bh                          ; 75 33
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    and AL, strict byte 07fh                  ; 24 7f
+    cmp AL, strict byte 02ah                  ; 3c 2a
+    jne short 05266h                          ; 75 05
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp short 05269h                          ; eb 03
+    mov dx, strict word 00001h                ; ba 01 00
+    test byte [bp-00ah], 080h                 ; f6 46 f6 80
+    je short 05278h                           ; 74 09
+    mov al, dl                                ; 88 d0
+    not al                                    ; f6 d0
+    and byte [bp-00eh], al                    ; 20 46 f2
+    jmp short 0527bh                          ; eb 03
+    or byte [bp-00eh], dl                     ; 08 56 f2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d3 c3
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    and AL, strict byte 07fh                  ; 24 7f
+    cmp AL, strict byte 01dh                  ; 3c 1d
+    je short 05298h                           ; 74 04
+    and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
+    and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 b4 c3
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    test byte [bp-004h], 001h                 ; f6 46 fc 01
+    jne short 0528bh                          ; 75 d5
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 93 c3
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test AL, strict byte 002h                 ; a8 02
+    je short 052e0h                           ; 74 0e
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 052efh                          ; eb 0f
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 001h                   ; 0c 01
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 69 c3
+    jmp short 0528bh                          ; eb 94
+    test byte [bp-004h], 001h                 ; f6 46 fc 01
+    jne short 0528bh                          ; 75 8e
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0fbh                  ; 24 fb
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 4c c3
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test AL, strict byte 002h                 ; a8 02
+    je short 05327h                           ; 74 0e
+    and AL, strict byte 0fbh                  ; 24 fb
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 05336h                          ; eb 0f
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0feh                  ; 24 fe
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 22 c3
+    jmp near 0528bh                           ; e9 4c ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 0a c3
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test AL, strict byte 002h                 ; a8 02
+    je short 05369h                           ; 74 0e
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 05378h                          ; eb 0f
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 002h                   ; 0c 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 e0 c2
+    jmp near 0528bh                           ; e9 0a ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0f7h                  ; 24 f7
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c8 c2
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test AL, strict byte 002h                 ; a8 02
+    je short 053abh                           ; 74 0e
+    and AL, strict byte 0f7h                  ; 24 f7
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 053bah                          ; eb 0f
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0fdh                  ; 24 fd
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 9e c2
+    jmp near 0528bh                           ; e9 c8 fe
+    test byte [bp-004h], 003h                 ; f6 46 fc 03
+    jne short 053e9h                          ; 75 20
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 020h                   ; 0c 20
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 80 c2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor AL, strict byte 020h                  ; 34 20
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    jmp near 0527eh                           ; e9 95 fe
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 60 c2
+    mov AL, strict byte 0aeh                  ; b0 ae
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    call 0e034h                               ; e8 2d 8c
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 40 c2
+    test AL, strict byte 008h                 ; a8 08
+    jne short 05407h                          ; 75 f3
+    jmp near 0528bh                           ; e9 74 fe
+    test byte [bp-004h], 003h                 ; f6 46 fc 03
+    je short 05420h                           ; 74 03
+    jmp near 0528bh                           ; e9 6b fe
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0dfh                  ; 24 df
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 29 c2
+    jmp short 0541dh                          ; eb e6
+    test byte [bp-004h], 002h                 ; f6 46 fc 02
+    je short 05470h                           ; 74 33
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 26 c2
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 29 c2
+    mov bx, 00080h                            ; bb 80 00
+    mov dx, strict word 00071h                ; ba 71 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 01 c2
+    mov AL, strict byte 0aeh                  ; b0 ae
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    push bp                                   ; 55
+    int 01bh                                  ; cd 1b
+    pop bp                                    ; 5d
+    xor dx, dx                                ; 31 d2
+    xor ax, ax                                ; 31 c0
+    call 0511ch                               ; e8 ae fc
+    jmp short 0541dh                          ; eb ad
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 010h                   ; 0c 10
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d9 c1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor AL, strict byte 010h                  ; 34 10
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c4 c1
+    jmp short 0541dh                          ; eb 81
+    test byte [bp-004h], 002h                 ; f6 46 fc 02
+    je short 054a5h                           ; 74 03
+    jmp near 0528bh                           ; e9 e6 fd
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0efh                  ; 24 ef
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 a4 c1
+    jmp short 054a2h                          ; eb e6
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    test AL, strict byte 004h                 ; a8 04
+    jne short 054a2h                          ; 75 df
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 89 c1
+    jmp short 054a2h                          ; eb cb
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0fbh                  ; 24 fb
+    jmp short 054aah                          ; eb cc
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 00ch                  ; 24 0c
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jne short 054f8h                          ; 75 11
+    mov bx, 01234h                            ; bb 34 12
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 87 c1
+    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
+    test byte [bp-008h], 008h                 ; f6 46 f8 08
+    je short 0550dh                           ; 74 0f
+    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00018h                ; ba 18 00
+    jmp near 052a4h                           ; e9 97 fd
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    test AL, strict byte 080h                 ; a8 80
+    je short 0554bh                           ; 74 37
+    cmp AL, strict byte 0fah                  ; 3c fa
+    jne short 0552ah                          ; 75 12
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 2f c1
+    mov bl, al                                ; 88 c3
+    or bl, 010h                               ; 80 cb 10
+    xor bh, bh                                ; 30 ff
+    jmp short 05540h                          ; eb 16
+    cmp AL, strict byte 0feh                  ; 3c fe
+    je short 05531h                           ; 74 03
+    jmp near 0528bh                           ; e9 5a fd
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 16 c1
+    or AL, strict byte 020h                   ; 0c 20
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 15 c1
+    jmp short 0552eh                          ; eb e3
+    cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
+    jbe short 05570h                          ; 76 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 c7 c3
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 005a1h                               ; 68 a1 05
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 fc c3
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 052aah                           ; e9 3a fd
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test AL, strict byte 008h                 ; a8 08
+    je short 0558ah                           ; 74 13
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
+    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
+    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
+    jmp near 0561ah                           ; e9 90 00
+    test AL, strict byte 004h                 ; a8 04
+    je short 055a1h                           ; 74 13
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
+    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
+    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
+    jmp near 0561ah                           ; e9 79 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    and AL, strict byte 002h                  ; 24 02
+    test al, al                               ; 84 c0
+    jbe short 055beh                          ; 76 14
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    cmp AL, strict byte 047h                  ; 3c 47
+    jc short 055beh                           ; 72 0d
+    cmp AL, strict byte 053h                  ; 3c 53
+    jnbe short 055beh                         ; 77 09
+    mov DL, strict byte 0e0h                  ; b2 e0
+    xor ah, ah                                ; 30 e4
+    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
+    jmp short 05616h                          ; eb 58
+    test byte [bp-00eh], 003h                 ; f6 46 f2 03
+    je short 055f3h                           ; 74 2f
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test ax, dx                               ; 85 d0
+    je short 055e3h                           ; 74 0a
+    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
+    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    jmp short 055ebh                          ; eb 08
+    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
+    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    jmp short 05620h                          ; eb 2d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul bx, ax, strict byte 0000ah           ; 6b d8 0a
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test ax, dx                               ; 85 d0
+    je short 05612h                           ; 74 0a
+    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
+    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    jmp short 0561ah                          ; eb 08
+    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
+    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 05640h                          ; 75 1a
+    test dl, dl                               ; 84 d2
+    jne short 05640h                          ; 75 16
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 ee c2
+    push 005d8h                               ; 68 d8 05
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 29 c3
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, bx                                ; 89 da
+    jmp near 0546bh                           ; e9 1d fe
+dequeue_key_:                                ; 0xf564e LB 0x94
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov di, ax                                ; 89 c7
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov si, bx                                ; 89 de
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 04 c0
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f9 bf
+    cmp bx, ax                                ; 39 c3
+    je short 056b4h                           ; 74 3d
+    mov dx, bx                                ; 89 da
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 d1 bf
+    mov cl, al                                ; 88 c1
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 c6 bf
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov byte [es:si], cl                      ; 26 88 0c
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov byte [es:di], al                      ; 26 88 05
+    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
+    je short 056afh                           ; 74 13
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    cmp bx, strict byte 0003eh                ; 83 fb 3e
+    jc short 056a6h                           ; 72 03
+    mov bx, strict word 0001eh                ; bb 1e 00
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 cb bf
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 056b6h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+    mov byte [01292h], AL                     ; a2 92 12
+    adc word [bx+si], dx                      ; 11 10
+    or cl, byte [bx+di]                       ; 0a 09
+    add ax, 00102h                            ; 05 02 01
+    add ah, ah                                ; 00 e4
+    push di                                   ; 57
+    wait                                      ; 9b
+    push di                                   ; 57
+    sub ax, 07958h                            ; 2d 58 79
+    pop ax                                    ; 58
+    mov bl, byte [bx+si-04dh]                 ; 8a 58 b3
+    pop ax                                    ; 58
+    mov sp, 02d58h                            ; bc 58 2d
+    pop cx                                    ; 59
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    mov ds, [bx+di-039h]                      ; 8e 59 c7
+    pop cx                                    ; 59
+    daa                                       ; 27
+    pop ax                                    ; 58
+_int16_function:                             ; 0xf56e2 LB 0x2f0
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 5e bf
+    mov cl, al                                ; 88 c1
+    mov bh, al                                ; 88 c7
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 51 bf
+    mov bl, al                                ; 88 c3
+    mov dl, cl                                ; 88 ca
+    xor dh, dh                                ; 30 f6
+    sar dx, 004h                              ; c1 fa 04
+    and dl, 007h                              ; 80 e2 07
+    and AL, strict byte 007h                  ; 24 07
+    xor ah, ah                                ; 30 e4
+    xor al, dl                                ; 30 d0
+    test ax, ax                               ; 85 c0
+    je short 0577bh                           ; 74 66
+    cli                                       ; fa
+    mov AL, strict byte 0edh                  ; b0 ed
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0572eh                          ; 75 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 0571ch                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    jne short 0577ah                          ; 75 41
+    mov dl, bl                                ; 88 da
+    and dl, 0c8h                              ; 80 e2 c8
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    sar ax, 004h                              ; c1 f8 04
+    and AL, strict byte 007h                  ; 24 07
+    xor dh, dh                                ; 30 f6
+    mov cx, dx                                ; 89 d1
+    or cl, al                                 ; 08 c1
+    mov bl, cl                                ; 88 cb
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 007h                  ; 24 07
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05769h                          ; 75 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05757h                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor bh, bh                                ; 30 ff
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 e4 be
+    sti                                       ; fb
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, 000a2h                            ; 3d a2 00
+    jnbe short 057e4h                         ; 77 5e
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0000ch                ; b9 0c 00
+    mov di, 056bfh                            ; bf bf 56
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+056cah]               ; 2e 8b 85 ca 56
+    jmp ax                                    ; ff e0
+    push strict byte 00001h                   ; 6a 01
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0564eh                               ; e8 a4 fe
+    test ax, ax                               ; 85 c0
+    jne short 057b9h                          ; 75 0b
+    push 0060fh                               ; 68 0f 06
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 b0 c1
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 057c5h                           ; 74 06
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    je short 057cbh                           ; 74 06
+    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
+    jne short 057cfh                          ; 75 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp near 05827h                           ; e9 43 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 34 c1
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 00633h                               ; 68 33 06
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 68 c1
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 17 c1
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    push ax                                   ; 50
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    push ax                                   ; 50
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    push ax                                   ; 50
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    push ax                                   ; 50
+    push 0065bh                               ; 68 5b 06
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 42 c1
+    add sp, strict byte 0000ch                ; 83 c4 0c
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
+    push strict byte 00000h                   ; 6a 00
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0564eh                               ; e8 0d fe
+    test ax, ax                               ; 85 c0
+    jne short 0584bh                          ; 75 06
+    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
+    jmp short 05827h                          ; eb dc
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 05857h                           ; 74 06
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    je short 0585dh                           ; 74 06
+    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
+    jne short 05861h                          ; 75 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
+    jmp short 05827h                          ; eb ae
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 ce bd
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    jmp near 057deh                           ; e9 54 ff
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 0511ch                               ; e8 82 f8
+    test ax, ax                               ; 85 c0
+    jne short 058abh                          ; 75 0d
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 05827h                           ; e9 7c ff
+    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
+    jmp near 05827h                           ; e9 74 ff
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 030h                   ; 0c 30
+    jmp short 058a5h                          ; eb e9
+    mov byte [bp-004h], 002h                  ; c6 46 fc 02
+    xor cx, cx                                ; 31 c9
+    cli                                       ; fa
+    mov AL, strict byte 0f2h                  ; b0 f2
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 058e3h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 058e3h                          ; 76 08
+    mov dx, 00080h                            ; ba 80 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 058cch                          ; eb e9
+    test bx, bx                               ; 85 db
+    jbe short 05927h                          ; 76 40
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    jne short 05927h                          ; 75 35
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0590ch                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0590ch                          ; 76 08
+    mov dx, 00080h                            ; ba 80 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 058f5h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jbe short 0591eh                          ; 76 0e
+    shr cx, 008h                              ; c1 e9 08
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    sal ax, 008h                              ; c1 e0 08
+    or cx, ax                                 ; 09 c1
+    dec byte [bp-004h]                        ; fe 4e fc
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jnbe short 058f2h                         ; 77 cb
+    mov word [bp+00ch], cx                    ; 89 4e 0c
+    jmp near 05827h                           ; e9 fa fe
+    push strict byte 00001h                   ; 6a 01
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0564eh                               ; e8 12 fd
+    test ax, ax                               ; 85 c0
+    jne short 0594bh                          ; 75 0b
+    push 0060fh                               ; 68 0f 06
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 1e c0
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 05954h                          ; 75 03
+    jmp near 057cfh                           ; e9 7b fe
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    jne short 0595dh                          ; 75 03
+    jmp near 057cbh                           ; e9 6e fe
+    jmp short 05951h                          ; eb f2
+    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
+    push strict byte 00000h                   ; 6a 00
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0564eh                               ; e8 db fc
+    test ax, ax                               ; 85 c0
+    jne short 0597ah                          ; 75 03
+    jmp near 05845h                           ; e9 cb fe
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 05983h                          ; 75 03
+    jmp near 05861h                           ; e9 de fe
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    jne short 0598ch                          ; 75 03
+    jmp near 0585dh                           ; e9 d1 fe
+    jmp short 05980h                          ; eb f2
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 b9 bc
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 a8 bc
+    mov bh, al                                ; 88 c7
+    and bh, 073h                              ; 80 e7 73
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 9a bc
+    and AL, strict byte 00ch                  ; 24 0c
+    or al, bh                                 ; 08 f8
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    jmp near 057dch                           ; e9 15 fe
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    jmp near 058a5h                           ; e9 d3 fe
+set_geom_lba_:                               ; 0xf59d2 LB 0xe7
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    enter 00008h, 000h                        ; c8 08 00 00
+    mov di, ax                                ; 89 c7
+    mov es, dx                                ; 8e c2
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov word [bp-006h], strict word 0007eh    ; c7 46 fa 7e 00
+    mov word [bp-002h], 000ffh                ; c7 46 fe ff 00
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov cx, word [bp+00eh]                    ; 8b 4e 0e
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov si, strict word 00020h                ; be 20 00
+    call 0a02ah                               ; e8 2b 46
+    test ax, ax                               ; 85 c0
+    jne short 05a0fh                          ; 75 0c
+    test bx, bx                               ; 85 db
+    jne short 05a0fh                          ; 75 08
+    test cx, cx                               ; 85 c9
+    jne short 05a0fh                          ; 75 04
+    test dx, dx                               ; 85 d2
+    je short 05a16h                           ; 74 07
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov si, bx                                ; 89 de
+    jmp short 05a1ch                          ; eb 06
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov si, word [bp+00eh]                    ; 8b 76 0e
+    mov word [bp-004h], bx                    ; 89 5e fc
+    xor bx, bx                                ; 31 db
+    jmp short 05a28h                          ; eb 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jnl short 05a4bh                          ; 7d 23
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    cmp si, ax                                ; 39 c6
+    jc short 05a39h                           ; 72 0a
+    jne short 05a42h                          ; 75 11
+    mov ax, word [bp-004h]                    ; 8b 46 fc
+    cmp ax, word [bp-008h]                    ; 3b 46 f8
+    jnbe short 05a42h                         ; 77 09
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    inc ax                                    ; 40
+    shr ax, 1                                 ; d1 e8
+    mov word [bp-002h], ax                    ; 89 46 fe
+    shr word [bp-006h], 1                     ; d1 6e fa
+    rcr word [bp-008h], 1                     ; d1 5e f8
+    inc bx                                    ; 43
+    jmp short 05a23h                          ; eb d8
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    xor dx, dx                                ; 31 d2
+    mov bx, strict word 0003fh                ; bb 3f 00
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 91 45
+    mov bx, ax                                ; 89 c3
+    mov cx, dx                                ; 89 d1
+    mov ax, word [bp-004h]                    ; 8b 46 fc
+    mov dx, si                                ; 89 f2
+    call 09fb0h                               ; e8 4c 45
+    mov word [es:di+002h], ax                 ; 26 89 45 02
+    cmp ax, 00400h                            ; 3d 00 04
+    jbe short 05a73h                          ; 76 06
+    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    mov word [es:di], ax                      ; 26 89 05
+    mov word [es:di+004h], strict word 0003fh ; 26 c7 45 04 3f 00
+    leave                                     ; c9
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn 00008h                               ; c2 08 00
+    inc cx                                    ; 41
+    pop bx                                    ; 5b
+    push dx                                   ; 52
+    pop bx                                    ; 5b
+    sbb word [bp+di-07fh], 0815bh             ; 81 5b 81 5b 81
+    pop bx                                    ; 5b
+    jno short 05af0h                          ; 71 5d
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    sahf                                      ; 9e
+    pop bp                                    ; 5d
+    xchg word [bp-056h], bx                   ; 87 5e aa
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    xchg word [bp-079h], bx                   ; 87 5e 87
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    or word [bp-079h], bx                     ; 09 5e 87
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    xchg word [bp+03ah], bx                   ; 87 5e 3a
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+    stosb                                     ; aa
+    pop si                                    ; 5e
+_int13_harddisk:                             ; 0xf5ab9 LB 0x44f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00010h                ; 83 ec 10
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 a4 bb
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-004h], ax                    ; 89 46 fc
+    xor bx, bx                                ; 31 db
+    mov dx, 0008eh                            ; ba 8e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 85 bb
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    cmp ax, 00080h                            ; 3d 80 00
+    jc short 05ae8h                           ; 72 05
+    cmp ax, 00090h                            ; 3d 90 00
+    jc short 05b06h                           ; 72 1e
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 0068dh                               ; 68 8d 06
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 66 be
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 05ec5h                           ; e9 bf 03
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
+    mov byte [bp-002h], dl                    ; 88 56 fe
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 05b2fh                           ; 72 10
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 006b8h                               ; 68 b8 06
+    jmp short 05afbh                          ; eb cc
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jnbe short 05b7eh                         ; 77 44
+    add bx, bx                                ; 01 db
+    jmp word [cs:bx+05a87h]                   ; 2e ff a7 87 5a
+    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
+    jnc short 05b4fh                          ; 73 08
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    call 01d85h                               ; e8 36 c2
+    jmp near 05d87h                           ; e9 35 02
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 f5 ba
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    xor dh, dh                                ; 30 f6
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    or dx, ax                                 ; 09 c2
+    mov word [bp+016h], dx                    ; 89 56 16
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 e7 ba
+    test cl, cl                               ; 84 c9
+    je short 05bdfh                           ; 74 64
+    jmp near 05ee1h                           ; e9 63 03
+    jmp near 05eaah                           ; e9 29 03
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov di, word [bp+014h]                    ; 8b 7e 14
+    shr di, 008h                              ; c1 ef 08
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    xor al, al                                ; 30 c0
+    and ah, 003h                              ; 80 e4 03
+    or di, ax                                 ; 09 c7
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    and ax, strict word 0003fh                ; 25 3f 00
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    cmp ax, 00080h                            ; 3d 80 00
+    jnbe short 05bbch                         ; 77 04
+    test ax, ax                               ; 85 c0
+    jne short 05be2h                          ; 75 26
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 5c bd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 006eah                               ; 68 ea 06
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 8d bd
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 05ec5h                           ; e9 e6 02
+    jmp near 05d8bh                           ; e9 a9 01
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+02ch]                 ; 26 8b 47 2c
+    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
+    mov dx, word [es:bx+02eh]                 ; 26 8b 57 2e
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    cmp di, ax                                ; 39 c7
+    jnc short 05c10h                          ; 73 0c
+    cmp cx, word [bp-008h]                    ; 3b 4e f8
+    jbe short 05c10h                          ; 76 07
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    cmp ax, dx                                ; 39 d0
+    jbe short 05c40h                          ; 76 30
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 08 bd
+    push word [bp-006h]                       ; ff 76 fa
+    push word [bp-008h]                       ; ff 76 f8
+    push di                                   ; 57
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 00712h                               ; 68 12 07
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 2c bd
+    add sp, strict byte 00010h                ; 83 c4 10
+    jmp near 05ec5h                           ; e9 85 02
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 00004h                ; 3d 04 00
+    je short 05c6bh                           ; 74 20
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
+    jne short 05c74h                          ; 75 14
+    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
+    cmp ax, word [bp-00ah]                    ; 3b 46 f6
+    je short 05c6eh                           ; 74 05
+    jmp short 05c74h                          ; eb 09
+    jmp near 05d87h                           ; e9 19 01
+    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
+    jc short 05ca4h                           ; 72 30
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    mov bx, cx                                ; 89 cb
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 6a 43
+    xor bx, bx                                ; 31 db
+    add ax, word [bp-008h]                    ; 03 46 f8
+    adc dx, bx                                ; 11 da
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 5b 43
+    xor bx, bx                                ; 31 db
+    add ax, word [bp-006h]                    ; 03 46 fa
+    adc dx, bx                                ; 11 da
+    add ax, strict word 0ffffh                ; 05 ff ff
+    mov word [bp-010h], ax                    ; 89 46 f0
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
+    mov word [es:si+01ah], strict word 00000h ; 26 c7 44 1a 00 00
+    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov word [es:si], ax                      ; 26 89 04
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
+    mov word [es:si+012h], di                 ; 26 89 7c 12
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov word [es:si+014h], ax                 ; 26 89 44 14
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    mov word [es:si+016h], ax                 ; 26 89 44 16
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov byte [es:si+00ch], al                 ; 26 88 44 0c
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 002h                              ; c1 e3 02
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    add ax, ax                                ; 01 c0
+    add bx, ax                                ; 01 c3
+    push ES                                   ; 06
+    push si                                   ; 56
+    call word [word bx+0007eh]                ; ff 97 7e 00
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor al, al                                ; 30 c0
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, word [es:si+018h]                 ; 26 8b 5c 18
+    or bx, ax                                 ; 09 c3
+    mov word [bp+016h], bx                    ; 89 5e 16
+    test dl, dl                               ; 84 d2
+    je short 05d87h                           ; 74 46
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 d7 bb
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 00759h                               ; 68 59 07
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 03 bc
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 05ecdh                           ; e9 5c 01
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 a7 bb
+    push 0077ah                               ; 68 7a 07
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 e2 bb
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c8 b8
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov di, word [es:bx+02ch]                 ; 26 8b 7f 2c
+    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
+    mov ax, word [es:bx+02eh]                 ; 26 8b 47 2e
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov al, byte [es:si+001e2h]               ; 26 8a 84 e2 01
+    xor ah, ah                                ; 30 e4
+    mov byte [bp+016h], ah                    ; 88 66 16
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    xor bh, bh                                ; 30 ff
+    dec di                                    ; 4f
+    mov dx, di                                ; 89 fa
+    xor dh, dh                                ; 30 f6
+    sal dx, 008h                              ; c1 e2 08
+    or bx, dx                                 ; 09 d3
+    mov word [bp+014h], bx                    ; 89 5e 14
+    mov bx, di                                ; 89 fb
+    shr bx, 002h                              ; c1 eb 02
+    and bl, 0c0h                              ; 80 e3 c0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    and dl, 03fh                              ; 80 e2 3f
+    or bl, dl                                 ; 08 d3
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    mov dl, bl                                ; 88 da
+    mov word [bp+014h], dx                    ; 89 56 14
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    sal cx, 008h                              ; c1 e1 08
+    sub cx, 00100h                            ; 81 e9 00 01
+    or dx, cx                                 ; 09 ca
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp near 05d87h                           ; e9 7e ff
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add si, ax                                ; 01 c6
+    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 040h                  ; 3c 40
+    jne short 05e2fh                          ; 75 03
+    jmp near 05d87h                           ; e9 58 ff
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 0aah                               ; 80 cc aa
+    jmp near 05ecdh                           ; e9 93 00
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add si, ax                                ; 01 c6
+    mov di, word [es:si+032h]                 ; 26 8b 7c 32
+    mov ax, word [es:si+030h]                 ; 26 8b 44 30
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov ax, word [es:si+034h]                 ; 26 8b 44 34
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 84 41
+    mov bx, word [bp-006h]                    ; 8b 5e fa
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 7c 41
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp+014h], dx                    ; 89 56 14
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp near 05d8bh                           ; e9 04 ff
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 91 ba
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 00794h                               ; 68 94 07
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 c2 ba
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 05d87h                           ; e9 dd fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 6e ba
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 007c7h                               ; 68 c7 07
+    jmp near 05bd4h                           ; e9 0f fd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 7d b7
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 05d9ah                           ; e9 b2 fe
+    movsb                                     ; a4
+    pop di                                    ; 5f
+    xlatb                                     ; d7
+    pop di                                    ; 5f
+    xlatb                                     ; d7
+    pop di                                    ; 5f
+    xlatb                                     ; d7
+    pop di                                    ; 5f
+    out strict byte 063h, AL                  ; e6 63
+    cmp word [bx+di-029h], sp                 ; 39 61 d7
+    pop di                                    ; 5f
+    aas                                       ; 3f
+    popaw                                     ; 61
+    out strict byte 063h, AL                  ; e6 63
+    mov sp, 0bc5fh                            ; bc 5f bc
+    pop di                                    ; 5f
+    mov sp, 0bc5fh                            ; bc 5f bc
+    pop di                                    ; 5f
+    std                                       ; fd
+    arpl [si-043a1h], di                      ; 63 bc 5f bc
+    pop di                                    ; 5f
+_int13_harddisk_ext:                         ; 0xf5f08 LB 0x52d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 0002ah                ; 83 ec 2a
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 55 b7
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 49 b7
+    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
+    mov word [bp-006h], ax                    ; 89 46 fa
+    xor bx, bx                                ; 31 db
+    mov dx, 0008eh                            ; ba 8e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 28 b7
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    cmp ax, 00080h                            ; 3d 80 00
+    jc short 05f45h                           ; 72 05
+    cmp ax, 00090h                            ; 3d 90 00
+    jc short 05f63h                           ; 72 1e
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 0068dh                               ; 68 8d 06
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 09 ba
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 06413h                           ; e9 b0 04
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
+    mov byte [bp-004h], dl                    ; 88 56 fc
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 05f8ah                           ; 72 10
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 006b8h                               ; 68 b8 06
+    jmp short 05f58h                          ; eb ce
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    sub bx, strict byte 00041h                ; 83 eb 41
+    cmp bx, strict byte 0000fh                ; 83 fb 0f
+    jnbe short 05fbch                         ; 77 24
+    add bx, bx                                ; 01 db
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    jmp word [cs:bx+05ee8h]                   ; 2e ff a7 e8 5e
+    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 030h                               ; 80 cc 30
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
+    jmp near 063eah                           ; e9 2e 04
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 5c b9
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 007c7h                               ; 68 c7 07
+    jmp near 06071h                           ; e9 9a 00
+    mov di, word [bp+00ah]                    ; 8b 7e 0a
+    mov es, [bp+004h]                         ; 8e 46 04
+    mov word [bp-01eh], di                    ; 89 7e e2
+    mov [bp-01ah], es                         ; 8c 46 e6
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [es:di+004h]                 ; 26 8b 45 04
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
+    mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
+    xor ax, ax                                ; 31 c0
+    xor bx, bx                                ; 31 db
+    mov si, strict word 00020h                ; be 20 00
+    call 0a01ah                               ; e8 10 40
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
+    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
+    or dx, bx                                 ; 09 da
+    or cx, di                                 ; 09 f9
+    mov bl, byte [bp-004h]                    ; 8a 5e fc
+    mov byte [bp-022h], bl                    ; 88 5e de
+    mov byte [bp-021h], 000h                  ; c6 46 df 00
+    imul di, word [bp-022h], strict byte 0001ch ; 6b 7e de 1c
+    mov es, [bp-006h]                         ; 8e 46 fa
+    add di, word [bp-008h]                    ; 03 7e f8
+    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
+    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
+    jnbe short 06059h                         ; 77 22
+    jne short 0607ch                          ; 75 43
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
+    jnbe short 06059h                         ; 77 17
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
+    jne short 0607ch                          ; 75 31
+    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
+    jnbe short 06059h                         ; 77 08
+    jne short 0607ch                          ; 75 29
+    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
+    jc short 0607ch                           ; 72 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 bf b8
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 00808h                               ; 68 08 08
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 f0 b8
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 06413h                           ; e9 97 03
+    mov di, word [bp+016h]                    ; 8b 7e 16
+    shr di, 008h                              ; c1 ef 08
+    cmp di, strict byte 00044h                ; 83 ff 44
+    je short 0608ch                           ; 74 05
+    cmp di, strict byte 00047h                ; 83 ff 47
+    jne short 0608fh                          ; 75 03
+    jmp near 063e6h                           ; e9 57 03
+    les si, [bp-008h]                         ; c4 76 f8
+    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
+    mov word [es:si+01ah], strict word 00000h ; 26 c7 44 1a 00 00
+    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
+    mov word [es:si+006h], ax                 ; 26 89 44 06
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov word [es:si+004h], ax                 ; 26 89 44 04
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    mov word [es:si], dx                      ; 26 89 14
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
+    mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    mov byte [es:si+00ch], al                 ; 26 88 44 0c
+    mov dx, di                                ; 89 fa
+    add dx, di                                ; 01 fa
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 002h                              ; c1 e3 02
+    add bx, dx                                ; 01 d3
+    push ES                                   ; 06
+    push si                                   ; 56
+    call word [word bx-00002h]                ; ff 97 fe ff
+    mov dx, ax                                ; 89 c2
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+018h]                 ; 26 8b 47 18
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    test dl, dl                               ; 84 d2
+    je short 0615dh                           ; 74 4e
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 09 b8
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push di                                   ; 57
+    push 007f5h                               ; 68 f5 07
+    push 00759h                               ; 68 59 07
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 3b b8
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 0641bh                           ; e9 e2 02
+    or ah, 0b2h                               ; 80 cc b2
+    jmp near 0641bh                           ; e9 dc 02
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov di, bx                                ; 89 df
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp-010h], ax                    ; 89 46 f0
+    cmp ax, strict word 0001ah                ; 3d 1a 00
+    jnc short 06160h                          ; 73 06
+    jmp near 06413h                           ; e9 b6 02
+    jmp near 063e6h                           ; e9 86 02
+    jnc short 06165h                          ; 73 03
+    jmp near 06204h                           ; e9 9f 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [es:bx+03ch]                 ; 26 8b 47 3c
+    mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
+    mov dx, word [es:bx+036h]                 ; 26 8b 57 36
+    mov bx, word [es:bx+028h]                 ; 26 8b 5f 28
+    mov word [bp-026h], bx                    ; 89 5e da
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov bx, di                                ; 89 fb
+    mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
+    mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00
+    mov bx, word [bp-02ah]                    ; 8b 5e d6
+    mov si, di                                ; 89 fe
+    mov word [es:si+004h], bx                 ; 26 89 5c 04
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov bx, word [bp-028h]                    ; 8b 5e d8
+    mov word [es:si+008h], bx                 ; 26 89 5c 08
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
+    mov bx, word [bp-024h]                    ; 8b 5e dc
+    mov word [es:si+00ch], bx                 ; 26 89 5c 0c
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
+    mov bx, word [bp-026h]                    ; 8b 5e da
+    mov word [es:si+018h], bx                 ; 26 89 5c 18
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+010h], dx                 ; 26 89 57 10
+    mov word [es:bx+012h], cx                 ; 26 89 4f 12
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov si, strict word 00020h                ; be 20 00
+    call 0a02ah                               ; e8 30 3e
+    mov bx, di                                ; 89 fb
+    mov word [es:bx+014h], dx                 ; 26 89 57 14
+    mov word [es:bx+016h], cx                 ; 26 89 4f 16
+    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
+    jc short 06273h                           ; 72 69
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:di+01ch], ax                 ; 26 89 45 1c
+    mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
+    mov cl, byte [bp-004h]                    ; 8a 4e fc
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
+    mov byte [bp-002h], al                    ; 88 46 fe
+    imul bx, cx, strict byte 0001ch           ; 6b d9 1c
+    add bx, word [bp-008h]                    ; 03 5e f8
+    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
+    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
+    test al, al                               ; 84 c0
+    jne short 06263h                          ; 75 04
+    xor bx, bx                                ; 31 db
+    jmp short 06266h                          ; eb 03
+    mov bx, strict word 00008h                ; bb 08 00
+    or bl, 010h                               ; 80 cb 10
+    cmp ah, 001h                              ; 80 fc 01
+    jne short 06276h                          ; 75 08
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 06278h                          ; eb 05
+    jmp near 06317h                           ; e9 a1 00
+    xor dx, dx                                ; 31 d2
+    or bx, dx                                 ; 09 d3
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 06283h                          ; 75 05
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 06285h                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    or bx, dx                                 ; 09 d3
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 06290h                          ; 75 05
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp short 06292h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    or bx, ax                                 ; 09 c3
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    les si, [bp-008h]                         ; c4 76 f8
+    mov word [es:si+00234h], ax               ; 26 89 84 34 02
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:si+00236h], ax               ; 26 89 84 36 02
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    mov cx, strict word 00002h                ; b9 02 00
+    idiv cx                                   ; f7 f9
+    or dl, 00eh                               ; 80 ca 0e
+    sal dx, 004h                              ; c1 e2 04
+    mov byte [es:si+00238h], dl               ; 26 88 94 38 02
+    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
+    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
+    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
+    mov word [es:si+0023eh], bx               ; 26 89 9c 3e 02
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
+    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
+    xor bl, bl                                ; 30 db
+    xor bh, bh                                ; 30 ff
+    jmp short 062f7h                          ; eb 05
+    cmp bh, 00fh                              ; 80 ff 0f
+    jnc short 0630dh                          ; 73 16
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    add dx, 00356h                            ; 81 c2 56 03
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    call 01650h                               ; e8 49 b3
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 062f2h                          ; eb e5
+    neg bl                                    ; f6 db
+    les si, [bp-008h]                         ; c4 76 f8
+    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
+    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
+    jnc short 06320h                          ; 73 03
+    jmp near 063e6h                           ; e9 c6 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+00204h]               ; 26 8a 87 04 02
+    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di], strict word 00042h      ; 26 c7 05 42 00
+    mov word [es:di+01eh], 0beddh             ; 26 c7 45 1e dd be
+    mov word [es:di+020h], strict word 00024h ; 26 c7 45 20 24 00
+    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
+    test al, al                               ; 84 c0
+    jne short 06368h                          ; 75 0c
+    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
+    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+028h], 05441h             ; 26 c7 45 28 41 54
+    mov word [es:di+02ah], 02041h             ; 26 c7 45 2a 41 20
+    mov word [es:di+02ch], 02020h             ; 26 c7 45 2c 20 20
+    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
+    test al, al                               ; 84 c0
+    jne short 0639dh                          ; 75 16
+    mov word [es:di+030h], dx                 ; 26 89 55 30
+    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
+    mov word [es:di+034h], strict word 00000h ; 26 c7 45 34 00 00
+    mov word [es:di+036h], strict word 00000h ; 26 c7 45 36 00 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 001h                  ; 24 01
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+038h], ax                 ; 26 89 45 38
+    mov word [es:di+03ah], strict word 00000h ; 26 c7 45 3a 00 00
+    mov word [es:di+03ch], strict word 00000h ; 26 c7 45 3c 00 00
+    mov word [es:di+03eh], strict word 00000h ; 26 c7 45 3e 00 00
+    xor bl, bl                                ; 30 db
+    mov BH, strict byte 01eh                  ; b7 1e
+    jmp short 063c8h                          ; eb 05
+    cmp bh, 040h                              ; 80 ff 40
+    jnc short 063ddh                          ; 73 15
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, ax                                ; 01 c2
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01650h                               ; e8 79 b2
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 063c3h                          ; eb e6
+    neg bl                                    ; f6 db
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+041h], bl                 ; 26 88 5d 41
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 69 b2
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    cmp ax, strict word 00006h                ; 3d 06 00
+    je short 063e6h                           ; 74 e4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 06413h                           ; 72 0c
+    jbe short 063e6h                          ; 76 dd
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jc short 06413h                           ; 72 05
+    cmp ax, strict word 00004h                ; 3d 04 00
+    jbe short 063e6h                          ; 76 d3
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 2f b2
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 063f9h                          ; eb c4
+_int14_function:                             ; 0xf6435 LB 0x157
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sti                                       ; fb
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, dx                                ; 01 d2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 27 b2
+    mov si, ax                                ; 89 c6
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, strict byte 0007ch                ; 83 c2 7c
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 fb b1
+    mov cl, al                                ; 88 c1
+    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
+    jnc short 06461h                          ; 73 04
+    test si, si                               ; 85 f6
+    jnbe short 06464h                         ; 77 03
+    jmp near 06582h                           ; e9 1e 01
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 06478h                           ; 72 0d
+    jbe short 064d3h                          ; 76 66
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 064cbh                           ; 74 5a
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 064ceh                           ; 74 59
+    jmp near 0657ch                           ; e9 04 01
+    test al, al                               ; 84 c0
+    jne short 064d0h                          ; 75 54
+    lea dx, [bx+003h]                         ; 8d 57 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    or AL, strict byte 080h                   ; 0c 80
+    out DX, AL                                ; ee
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    and AL, strict byte 0e0h                  ; 24 e0
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    sar cx, 005h                              ; c1 f9 05
+    mov ax, 00600h                            ; b8 00 06
+    sar ax, CL                                ; d3 f8
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    lea dx, [bx+001h]                         ; 8d 57 01
+    out DX, AL                                ; ee
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    and AL, strict byte 01fh                  ; 24 1f
+    lea dx, [bx+003h]                         ; 8d 57 03
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    lea dx, [bx+006h]                         ; 8d 57 06
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+012h], al                    ; 88 46 12
+    jmp near 0655dh                           ; e9 9f 00
+    mov AL, strict byte 017h                  ; b0 17
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov AL, strict byte 004h                  ; b0 04
+    out DX, AL                                ; ee
+    jmp short 064a0h                          ; eb d5
+    jmp near 0656bh                           ; e9 9d 00
+    jmp short 06521h                          ; eb 51
+    jmp near 0657ch                           ; e9 a9 00
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 90 b1
+    mov si, ax                                ; 89 c6
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00060h                ; 25 60 00
+    cmp ax, strict word 00060h                ; 3d 60 00
+    je short 06503h                           ; 74 17
+    test cl, cl                               ; 84 c9
+    je short 06503h                           ; 74 13
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 73 b1
+    cmp ax, si                                ; 39 f0
+    je short 064deh                           ; 74 e1
+    mov si, ax                                ; 89 c6
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    jmp short 064deh                          ; eb db
+    test cl, cl                               ; 84 c9
+    je short 0650dh                           ; 74 06
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    test cl, cl                               ; 84 c9
+    jne short 0655dh                          ; 75 43
+    or AL, strict byte 080h                   ; 0c 80
+    mov byte [bp+013h], al                    ; 88 46 13
+    jmp short 0655dh                          ; eb 3c
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 42 b1
+    mov si, ax                                ; 89 c6
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0654dh                          ; 75 17
+    test cl, cl                               ; 84 c9
+    je short 0654dh                           ; 74 13
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 29 b1
+    cmp ax, si                                ; 39 f0
+    je short 0652ch                           ; 74 e5
+    mov si, ax                                ; 89 c6
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    jmp short 0652ch                          ; eb df
+    test cl, cl                               ; 84 c9
+    je short 06563h                           ; 74 12
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+012h], al                    ; 88 46 12
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp short 06586h                          ; eb 23
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 0651ch                          ; eb b1
+    lea dx, [si+005h]                         ; 8d 54 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    lea dx, [si+006h]                         ; 8d 54 06
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 0655ah                          ; eb de
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 06586h                          ; eb 04
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_enable_a20_:                             ; 0xf658c LB 0x30
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov dx, 00092h                            ; ba 92 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cl, al                                ; 88 c1
+    test bx, bx                               ; 85 db
+    je short 065a5h                           ; 74 05
+    or AL, strict byte 002h                   ; 0c 02
+    out DX, AL                                ; ee
+    jmp short 065a8h                          ; eb 03
+    and AL, strict byte 0fdh                  ; 24 fd
+    out DX, AL                                ; ee
+    test cl, 002h                             ; f6 c1 02
+    je short 065b2h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 065b4h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_e820_range_:                             ; 0xf65bc LB 0x8b
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    mov al, byte [bp+00ah]                    ; 8a 46 0a
+    xor ah, ah                                ; 30 e4
+    mov word [es:si+004h], ax                 ; 26 89 44 04
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    sub word [bp+006h], bx                    ; 29 5e 06
+    sbb word [bp+008h], cx                    ; 19 4e 08
+    sub byte [bp+00ch], al                    ; 28 46 0c
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov word [es:si+00ch], ax                 ; 26 89 44 0c
+    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:si+010h], ax                 ; 26 89 44 10
+    mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn 0000ah                               ; c2 0a 00
+    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
+    db  000h, 0edh, 06ah, 084h, 066h, 098h, 066h, 02dh, 067h, 033h, 067h, 038h, 067h, 03dh, 067h, 0e5h
+    db  067h, 084h, 069h, 0aah, 069h, 026h, 067h, 026h, 067h, 077h, 06ah, 09fh, 06ah, 0b2h, 06ah, 0c1h
+    db  06ah, 02dh, 067h, 0c8h, 06ah
+_int15_function:                             ; 0xf6647 LB 0x4d8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, 000ech                            ; 3d ec 00
+    jnbe short 0668eh                         ; 77 35
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00012h                ; b9 12 00
+    mov di, 06612h                            ; bf 12 66
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov si, word [cs:di+06623h]               ; 2e 8b b5 23 66
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    mov cx, word [bp+018h]                    ; 8b 4e 18
+    and cl, 0feh                              ; 80 e1 fe
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    or dl, 001h                               ; 80 ca 01
+    mov bx, ax                                ; 89 c3
+    or bh, 086h                               ; 80 cf 86
+    jmp si                                    ; ff e6
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, 000c0h                            ; 3d c0 00
+    je short 06691h                           ; 74 03
+    jmp near 06aedh                           ; e9 5c 04
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    jmp near 06a96h                           ; e9 fe 03
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 066adh                           ; 72 0e
+    jbe short 066c1h                          ; 76 20
+    cmp ax, strict word 00003h                ; 3d 03 00
+    je short 066eeh                           ; 74 48
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 066d1h                           ; 74 26
+    jmp short 066fbh                          ; eb 4e
+    test ax, ax                               ; 85 c0
+    jne short 066fbh                          ; 75 4a
+    xor ax, ax                                ; 31 c0
+    call 0658ch                               ; e8 d6 fe
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp near 06726h                           ; e9 65 00
+    mov ax, strict word 00001h                ; b8 01 00
+    call 0658ch                               ; e8 c5 fe
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], dh                    ; 88 76 13
+    jmp near 06726h                           ; e9 55 00
+    mov dx, 00092h                            ; ba 92 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    shr ax, 1                                 ; d1 e8
+    and ax, strict word 00001h                ; 25 01 00
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], ah                    ; 88 66 13
+    jmp near 06726h                           ; e9 38 00
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], ah                    ; 88 66 13
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    jmp near 06726h                           ; e9 2b 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 1d b2
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 0082eh                               ; 68 2e 08
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 52 b2
+    add sp, strict byte 00006h                ; 83 c4 06
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    mov word [bp+012h], ax                    ; 89 46 12
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp near 067dfh                           ; e9 ac 00
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp short 06726h                          ; eb ee
+    mov word [bp+018h], cx                    ; 89 4e 18
+    jmp short 06723h                          ; eb e6
+    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
+    jne short 067b2h                          ; 75 6f
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 04 af
+    test AL, strict byte 001h                 ; a8 01
+    jne short 067afh                          ; 75 5f
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 02 af
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    mov dx, 00098h                            ; ba 98 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 12 af
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, 0009ah                            ; ba 9a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 06 af
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 fa ae
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dx, 0009eh                            ; ba 9e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 ee ae
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 0d af
+    mov dl, al                                ; 88 c2
+    or dl, 040h                               ; 80 ca 40
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c7h                               ; e8 1b af
+    jmp near 06726h                           ; e9 77 ff
+    jmp near 06a8dh                           ; e9 db 02
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jne short 067d3h                          ; 75 1c
+    xor bx, bx                                ; 31 db
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 9c ae
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 e0 ae
+    mov dl, al                                ; 88 c2
+    and dl, 0bfh                              ; 80 e2 bf
+    jmp short 067a4h                          ; eb d1
+    mov word [bp+018h], dx                    ; 89 56 18
+    mov ax, bx                                ; 89 d8
+    xor ah, bh                                ; 30 fc
+    xor bl, bl                                ; 30 db
+    dec ax                                    ; 48
+    or bx, ax                                 ; 09 c3
+    mov word [bp+012h], bx                    ; 89 5e 12
+    jmp near 06726h                           ; e9 41 ff
+    cli                                       ; fa
+    mov ax, strict word 00001h                ; b8 01 00
+    call 0658ch                               ; e8 a0 fd
+    mov di, ax                                ; 89 c7
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    sal ax, 004h                              ; c1 e0 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    add cx, ax                                ; 01 c1
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    shr dx, 00ch                              ; c1 ea 0c
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    cmp cx, ax                                ; 39 c1
+    jnc short 0680bh                          ; 73 05
+    db  0feh, 0c2h
+    ; inc dl                                    ; fe c2
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0002fh                ; bb 2f 00
+    call 0167ah                               ; e8 60 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000ah                ; 83 c2 0a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, cx                                ; 89 cb
+    call 0167ah                               ; e8 52 ae
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 0165eh                               ; e8 25 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000dh                ; 83 c2 0d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 00093h                            ; bb 93 00
+    call 0165eh                               ; e8 16 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 24 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00020h                ; 83 c2 20
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ah                               ; e8 15 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00022h                ; 83 c2 22
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 07 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00024h                ; 83 c2 24
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0000fh                ; bb 0f 00
+    call 0165eh                               ; e8 dc ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00025h                ; 83 c2 25
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 0009bh                            ; bb 9b 00
+    call 0165eh                               ; e8 cd ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00026h                ; 83 c2 26
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 db ad
+    mov ax, ss                                ; 8c d0
+    mov cx, ax                                ; 89 c1
+    sal cx, 004h                              ; c1 e1 04
+    shr ax, 00ch                              ; c1 e8 0c
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00028h                ; 83 c2 28
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ah                               ; e8 bf ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, cx                                ; 89 cb
+    call 0167ah                               ; e8 b1 ad
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002ch                ; 83 c2 2c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 0165eh                               ; e8 84 ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002dh                ; 83 c2 2d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 00093h                            ; bb 93 00
+    call 0165eh                               ; e8 75 ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002eh                ; 83 c2 2e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 83 ad
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov es, [bp+014h]                         ; 8e 46 14
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    push DS                                   ; 1e
+    push eax                                  ; 66 50
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    mov ds, ax                                ; 8e d8
+    mov word [00467h], sp                     ; 89 26 67 04
+    mov [00469h], ss                          ; 8c 16 69 04
+    call 06913h                               ; e8 00 00
+    pop di                                    ; 5f
+    add di, strict byte 0001bh                ; 83 c7 1b
+    push strict byte 00020h                   ; 6a 20
+    push di                                   ; 57
+    lgdt [es:si+008h]                         ; 26 0f 01 54 08
+    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
+    mov eax, cr0                              ; 0f 20 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov cr0, eax                              ; 0f 22 c0
+    retf                                      ; cb
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ss, ax                                ; 8e d0
+    mov ax, strict word 00010h                ; b8 10 00
+    mov ds, ax                                ; 8e d8
+    mov ax, strict word 00018h                ; b8 18 00
+    mov es, ax                                ; 8e c0
+    db  033h, 0f6h
+    ; xor si, si                                ; 33 f6
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    cld                                       ; fc
+    rep movsw                                 ; f3 a5
+    call 06947h                               ; e8 00 00
+    pop ax                                    ; 58
+    push 0f000h                               ; 68 00 f0
+    add ax, strict byte 00018h                ; 83 c0 18
+    push ax                                   ; 50
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    mov eax, cr0                              ; 0f 20 c0
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cr0, eax                              ; 0f 22 c0
+    retf                                      ; cb
+    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    lss sp, [00467h]                          ; 0f b2 26 67 04
+    pop eax                                   ; 66 58
+    pop DS                                    ; 1f
+    mov ax, di                                ; 89 f8
+    call 0658ch                               ; e8 14 fc
+    sti                                       ; fb
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    jmp near 06726h                           ; e9 a2 fd
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016ach                               ; e8 22 ad
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016ach                               ; e8 15 ad
+    xor ah, ah                                ; 30 e4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    cmp dx, strict byte 0ffc0h                ; 83 fa c0
+    jbe short 0697dh                          ; 76 da
+    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
+    jmp short 0697dh                          ; eb d3
+    cli                                       ; fa
+    mov ax, strict word 00001h                ; b8 01 00
+    call 0658ch                               ; e8 db fb
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00038h                ; 83 c2 38
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ah                               ; e8 ba ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003ah                ; 83 c2 3a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 ac ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003ch                ; 83 c2 3c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0000fh                ; bb 0f 00
+    call 0165eh                               ; e8 81 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003dh                ; 83 c2 3d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 0009bh                            ; bb 9b 00
+    call 0165eh                               ; e8 72 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003eh                ; 83 c2 3e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 80 ac
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 004h                  ; b0 04
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 001h                  ; b0 01
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov si, word [bp+006h]                    ; 8b 76 06
+    call 06a3bh                               ; e8 00 00
+    pop di                                    ; 5f
+    add di, strict byte 00018h                ; 83 c7 18
+    push strict byte 00038h                   ; 6a 38
+    push di                                   ; 57
+    lgdt [es:si+008h]                         ; 26 0f 01 54 08
+    lidt [es:si+010h]                         ; 26 0f 01 5c 10
+    mov ax, strict word 00001h                ; b8 01 00
+    lmsw ax                                   ; 0f 01 f0
+    retf                                      ; cb
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ss, ax                                ; 8e d0
+    mov ax, strict word 00018h                ; b8 18 00
+    mov ds, ax                                ; 8e d8
+    mov ax, strict word 00020h                ; b8 20 00
+    mov es, ax                                ; 8e c0
+    lea ax, [bp+004h]                         ; 8d 46 04
+    db  08bh, 0e0h
+    ; mov sp, ax                                ; 8b e0
+    popaw                                     ; 61
+    add sp, strict byte 00006h                ; 83 c4 06
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    pop ax                                    ; 58
+    mov ax, strict word 00030h                ; b8 30 00
+    push ax                                   ; 50
+    push cx                                   ; 51
+    retf                                      ; cb
+    jmp near 06726h                           ; e9 af fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 a1 ae
+    push 0086eh                               ; 68 6e 08
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 dc ae
+    add sp, strict byte 00004h                ; 83 c4 04
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 06726h                           ; e9 87 fc
+    mov word [bp+018h], cx                    ; 89 4e 18
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
+    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
+    jmp near 06726h                           ; e9 74 fc
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 b1 ab
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 0697dh                           ; e9 bc fe
+    push 0089dh                               ; 68 9d 08
+    push strict byte 00008h                   ; 6a 08
+    jmp short 06a87h                          ; eb bf
+    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
+    jne short 06aedh                          ; 75 1f
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 06ae6h                           ; 72 0b
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jnbe short 06ae6h                         ; 77 06
+    mov word [bp+018h], cx                    ; 89 4e 18
+    jmp near 06726h                           ; e9 40 fc
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    jmp near 06726h                           ; e9 39 fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 2b ae
+    push word [bp+00ch]                       ; ff 76 0c
+    push word [bp+012h]                       ; ff 76 12
+    push 008b4h                               ; 68 b4 08
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 60 ae
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp short 06a8dh                          ; eb 82
+    mov bx, 0e06ch                            ; bb 6c e0
+    insb                                      ; 6c
+    add byte [di+04fh], ch                    ; 00 6d 4f
+    insw                                      ; 6d
+    insw                                      ; 6d
+    insw                                      ; 6d
+    mov ch, byte [di-054h]                    ; 8a 6d ac
+    insw                                      ; 6d
+    into                                      ; ce
+    insw                                      ; 6d
+    or bp, word [bp+03fh]                     ; 0b 6e 3f
+    outsb                                     ; 6e
+_int15_function32:                           ; 0xf6b1f LB 0x3bc
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov dx, word [bp+020h]                    ; 8b 56 20
+    shr dx, 008h                              ; c1 ea 08
+    mov bx, word [bp+028h]                    ; 8b 5e 28
+    and bl, 0feh                              ; 80 e3 fe
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    cmp dx, 000e8h                            ; 81 fa e8 00
+    je short 06b8ah                           ; 74 4d
+    cmp dx, 000d0h                            ; 81 fa d0 00
+    je short 06b83h                           ; 74 40
+    cmp dx, 00086h                            ; 81 fa 86 00
+    jne short 06ba8h                          ; 75 5f
+    sti                                       ; fb
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    div ebx                                   ; 66 f7 f3
+    db  066h, 08bh, 0c8h
+    ; mov ecx, eax                              ; 66 8b c8
+    in AL, strict byte 061h                   ; e4 61
+    and AL, strict byte 010h                  ; 24 10
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    db  066h, 00bh, 0c9h
+    ; or ecx, ecx                               ; 66 0b c9
+    je near 06b80h                            ; 0f 84 0e 00
+    in AL, strict byte 061h                   ; e4 61
+    and AL, strict byte 010h                  ; 24 10
+    db  03ah, 0c4h
+    ; cmp al, ah                                ; 3a c4
+    je short 06b72h                           ; 74 f8
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    dec ecx                                   ; 66 49
+    jne short 06b72h                          ; 75 f2
+    jmp near 06d49h                           ; e9 c6 01
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    je short 06b8ch                           ; 74 04
+    jmp short 06ba8h                          ; eb 1e
+    jmp short 06be2h                          ; eb 56
+    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
+    jne short 06bech                          ; 75 59
+    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
+    jne short 06bech                          ; 75 52
+    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
+    jne short 06bech                          ; 75 4b
+    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
+    je short 06baah                           ; 74 02
+    jmp short 06bech                          ; eb 42
+    mov ax, word [bp+00ah]                    ; 8b 46 0a
+    or ax, word [bp+008h]                     ; 0b 46 08
+    jne short 06bech                          ; 75 3a
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    or ax, word [bp+004h]                     ; 0b 46 04
+    jne short 06bech                          ; 75 32
+    mov word [bp+028h], bx                    ; 89 5e 28
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov word [bp+008h], ax                    ; 89 46 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    mov word [bp+00ah], ax                    ; 89 46 0a
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov word [bp+004h], ax                    ; 89 46 04
+    mov ax, word [bp+01eh]                    ; 8b 46 1e
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+020h], 03332h                ; c7 46 20 32 33
+    mov word [bp+022h], 04941h                ; c7 46 22 41 49
+    jmp near 06d49h                           ; e9 67 01
+    cmp ax, strict word 00020h                ; 3d 20 00
+    je short 06bf2h                           ; 74 0b
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 06befh                           ; 74 03
+    jmp near 06d1fh                           ; e9 30 01
+    jmp near 06e8dh                           ; e9 9b 02
+    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
+    jne short 06bech                          ; 75 f3
+    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
+    jne short 06bech                          ; 75 ec
+    mov ax, strict word 00035h                ; b8 35 00
+    call 016ach                               ; e8 a6 aa
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06c0fh                               ; e2 fa
+    mov ax, strict word 00034h                ; b8 34 00
+    call 016ach                               ; e8 91 aa
+    xor ah, ah                                ; 30 e4
+    mov dx, bx                                ; 89 da
+    or dx, ax                                 ; 09 c2
+    xor bx, bx                                ; 31 db
+    add bx, bx                                ; 01 db
+    adc dx, 00100h                            ; 81 d2 00 01
+    cmp dx, 00100h                            ; 81 fa 00 01
+    jc short 06c35h                           ; 72 06
+    jne short 06c63h                          ; 75 32
+    test bx, bx                               ; 85 db
+    jnbe short 06c63h                         ; 77 2e
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016ach                               ; e8 71 aa
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06c44h                               ; e2 fa
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016ach                               ; e8 5c aa
+    xor ah, ah                                ; 30 e4
+    or bx, ax                                 ; 09 c3
+    mov cx, strict word 0000ah                ; b9 0a 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06c57h                               ; e2 fa
+    add bx, strict byte 00000h                ; 83 c3 00
+    adc dx, strict byte 00010h                ; 83 d2 10
+    mov ax, strict word 00062h                ; b8 62 00
+    call 016ach                               ; e8 43 aa
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    xor al, al                                ; 30 c0
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov cx, strict word 00008h                ; b9 08 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 06c76h                               ; e2 f8
+    mov ax, strict word 00061h                ; b8 61 00
+    call 016ach                               ; e8 28 aa
+    xor ah, ah                                ; 30 e4
+    or word [bp-00ah], ax                     ; 09 46 f6
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    mov ax, strict word 00063h                ; b8 63 00
+    call 016ach                               ; e8 12 aa
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 06d1fh                         ; 77 77
+    mov si, ax                                ; 89 c6
+    add si, ax                                ; 01 c6
+    mov ax, bx                                ; 89 d8
+    add ax, strict word 00000h                ; 05 00 00
+    mov cx, dx                                ; 89 d1
+    adc cx, strict byte 0ffffh                ; 83 d1 ff
+    jmp word [cs:si+06b0bh]                   ; 2e ff a4 0b 6b
+    push strict byte 00001h                   ; 6a 01
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00009h                   ; 6a 09
+    push 0fc00h                               ; 68 00 fc
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 065bch                               ; e8 e9 f8
+    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
+    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
+    jmp near 06e72h                           ; e9 92 01
+    push strict byte 00002h                   ; 6a 02
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 0000ah                   ; 6a 0a
+    push strict byte 00000h                   ; 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    mov bx, 0fc00h                            ; bb 00 fc
+    mov cx, strict word 00009h                ; b9 09 00
+    call 065bch                               ; e8 c3 f8
+    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
+    jmp short 06cd8h                          ; eb d8
+    push strict byte 00002h                   ; 6a 02
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00010h                   ; 6a 10
+    push strict byte 00000h                   ; 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0000fh                ; b9 0f 00
+    call 065bch                               ; e8 a4 f8
+    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
+    jmp short 06cd8h                          ; eb b9
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 f9 ab
+    push word [bp+014h]                       ; ff 76 14
+    push word [bp+020h]                       ; ff 76 20
+    push 008b4h                               ; 68 b4 08
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 2e ac
+    add sp, strict byte 00008h                ; 83 c4 08
+    or byte [bp+028h], 001h                   ; 80 4e 28 01
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor al, al                                ; 30 c0
+    or AL, strict byte 086h                   ; 0c 86
+    mov word [bp+020h], ax                    ; 89 46 20
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    push strict byte 00001h                   ; 6a 01
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push cx                                   ; 51
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 00010h                ; b9 10 00
+    call 065bch                               ; e8 57 f8
+    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
+    jmp near 06cd8h                           ; e9 6b ff
+    push strict byte 00003h                   ; 6a 03
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push dx                                   ; 52
+    push bx                                   ; 53
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov si, word [bp+024h]                    ; 8b 76 24
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 065bch                               ; e8 3a f8
+    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
+    jmp near 06cd8h                           ; e9 4e ff
+    push strict byte 00002h                   ; 6a 02
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push 0fec0h                               ; 68 c0 fe
+    push 01000h                               ; 68 00 10
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, 0fec0h                            ; b9 c0 fe
+    call 065bch                               ; e8 18 f8
+    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
+    jmp near 06cd8h                           ; e9 2c ff
+    push strict byte 00002h                   ; 6a 02
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push 0fee0h                               ; 68 e0 fe
+    push 01000h                               ; 68 00 10
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, 0fee0h                            ; b9 e0 fe
+    call 065bch                               ; e8 f6 f7
+    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
+    jmp near 06cd8h                           ; e9 0a ff
+    push strict byte 00002h                   ; 6a 02
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0fffch                ; b9 fc ff
+    call 065bch                               ; e8 d6 f7
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 06df3h                          ; 75 07
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    test ax, ax                               ; 85 c0
+    je short 06e03h                           ; 74 10
+    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
+    jmp near 06cd8h                           ; e9 dd fe
+    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
+    jmp near 06cd8h                           ; e9 d5 fe
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp short 06e72h                          ; eb 67
+    push strict byte 00002h                   ; 6a 02
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 065bch                               ; e8 9a f7
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 06e2fh                          ; 75 07
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    test ax, ax                               ; 85 c0
+    je short 06e37h                           ; 74 08
+    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
+    jmp near 06cd8h                           ; e9 a1 fe
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp short 06e72h                          ; eb 33
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 06e4bh                          ; 75 06
+    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
+    je short 06e72h                           ; 74 27
+    push strict byte 00001h                   ; 6a 01
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push strict byte 00001h                   ; 6a 01
+    push word [bp-008h]                       ; ff 76 f8
+    push word [bp-00ah]                       ; ff 76 f6
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 065bch                               ; e8 52 f7
+    xor ax, ax                                ; 31 c0
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+020h], 04150h                ; c7 46 20 50 41
+    mov word [bp+022h], 0534dh                ; c7 46 22 4d 53
+    mov word [bp+01ch], strict word 00014h    ; c7 46 1c 14 00
+    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
+    and byte [bp+028h], 0feh                  ; 80 66 28 fe
+    jmp near 06d49h                           ; e9 bc fe
+    mov word [bp+028h], bx                    ; 89 5e 28
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016ach                               ; e8 16 a8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016ach                               ; e8 09 a8
+    xor ah, ah                                ; 30 e4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+01ch], dx                    ; 89 56 1c
+    cmp dx, 03c00h                            ; 81 fa 00 3c
+    jbe short 06eb5h                          ; 76 05
+    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
+    mov ax, strict word 00035h                ; b8 35 00
+    call 016ach                               ; e8 f1 a7
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov ax, strict word 00034h                ; b8 34 00
+    call 016ach                               ; e8 e4 a7
+    xor ah, ah                                ; 30 e4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+018h], dx                    ; 89 56 18
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov word [bp+020h], ax                    ; 89 46 20
+    mov word [bp+014h], dx                    ; 89 56 14
+    jmp near 06d49h                           ; e9 6e fe
+_inv_op_handler:                             ; 0xf6edb LB 0x19b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    les bx, [bp+018h]                         ; c4 5e 18
+    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
+    jne short 06ef1h                          ; 75 06
+    inc word [bp+018h]                        ; ff 46 18
+    jmp near 0706fh                           ; e9 7e 01
+    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
+    je short 06efbh                           ; 74 03
+    jmp near 0706bh                           ; e9 70 01
+    mov si, 00800h                            ; be 00 08
+    xor ax, ax                                ; 31 c0
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov es, ax                                ; 8e c0
+    mov bx, word [es:si+02ch]                 ; 26 8b 5c 2c
+    sub bx, strict byte 00006h                ; 83 eb 06
+    mov dx, word [es:si+020h]                 ; 26 8b 54 20
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov es, dx                                ; 8e c2
+    mov word [es:bx], ax                      ; 26 89 07
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov ax, word [es:si+022h]                 ; 26 8b 44 22
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov ax, word [es:si+018h]                 ; 26 8b 44 18
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+004h], ax                 ; 26 89 47 04
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov bl, byte [es:si+038h]                 ; 26 8a 5c 38
+    xor bh, bh                                ; 30 ff
+    mov di, word [es:si+036h]                 ; 26 8b 7c 36
+    mov ax, word [es:si+024h]                 ; 26 8b 44 24
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 06f4ch                               ; e2 fa
+    cmp bx, dx                                ; 39 d3
+    jne short 06f5ah                          ; 75 04
+    cmp di, ax                                ; 39 c7
+    je short 06f5fh                           ; 74 05
+    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov bl, byte [es:si+04ah]                 ; 26 8a 5c 4a
+    xor bh, bh                                ; 30 ff
+    mov di, word [es:si+048h]                 ; 26 8b 7c 48
+    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 06f75h                               ; e2 fa
+    cmp bx, dx                                ; 39 d3
+    jne short 06f83h                          ; 75 04
+    cmp di, ax                                ; 39 c7
+    je short 06f87h                           ; 74 04
+    or byte [bp-008h], 002h                   ; 80 4e f8 02
+    push strict byte 00000h                   ; 6a 00
+    push 00800h                               ; 68 00 08
+    push strict byte 0001fh                   ; 6a 1f
+    db  08bh, 0dch
+    ; mov bx, sp                                ; 8b dc
+    lgdt [ss:bx]                              ; 36 0f 01 17
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov ax, word [es:si+03ah]                 ; 26 8b 44 3a
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [es:si+036h]                 ; 26 8b 44 36
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov al, byte [es:si+039h]                 ; 26 8a 44 39
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, byte [es:si+038h]                 ; 26 8a 44 38
+    or dx, ax                                 ; 09 c2
+    mov word [es:si+00ch], dx                 ; 26 89 54 0c
+    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
+    mov ax, word [es:si+04ch]                 ; 26 8b 44 4c
+    mov word [es:si], ax                      ; 26 89 04
+    mov ax, word [es:si+048h]                 ; 26 8b 44 48
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    mov al, byte [es:si+04bh]                 ; 26 8a 44 4b
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, byte [es:si+04ah]                 ; 26 8a 44 4a
+    or dx, ax                                 ; 09 c2
+    mov word [es:si+004h], dx                 ; 26 89 54 04
+    mov al, byte [es:si+05ch]                 ; 26 8a 44 5c
+    mov dx, word [es:si+05ah]                 ; 26 8b 54 5a
+    push ax                                   ; 50
+    push dx                                   ; 52
+    push word [es:si+05eh]                    ; 26 ff 74 5e
+    db  08bh, 0dch
+    ; mov bx, sp                                ; 8b dc
+    lidt [ss:bx]                              ; 36 0f 01 1f
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov cx, word [bp-008h]                    ; 8b 4e f8
+    mov ax, 00080h                            ; b8 80 00
+    mov ss, ax                                ; 8e d0
+    mov ax, word [ss:0001eh]                  ; 36 a1 1e 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [ss:00024h]                  ; 36 a1 24 00
+    mov es, ax                                ; 8e c0
+    smsw ax                                   ; 0f 01 e0
+    inc ax                                    ; 40
+    lmsw ax                                   ; 0f 01 f0
+    mov ax, strict word 00008h                ; b8 08 00
+    test cx, strict word 00001h               ; f7 c1 01 00
+    je near 07028h                            ; 0f 84 02 00
+    mov es, ax                                ; 8e c0
+    test cx, strict word 00002h               ; f7 c1 02 00
+    je near 07050h                            ; 0f 84 20 00
+    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
+    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
+    mov bx, word [word ss:00002h]             ; 36 8b 1e 02 00
+    mov word [word ss:0000ah], bx             ; 36 89 1e 0a 00
+    mov bx, word [word ss:00004h]             ; 36 8b 1e 04 00
+    mov word [word ss:0000ch], bx             ; 36 89 1e 0c 00
+    mov ds, ax                                ; 8e d8
+    mov eax, cr0                              ; 0f 20 c0
+    dec ax                                    ; 48
+    mov cr0, eax                              ; 0f 22 c0
+    mov sp, strict word 00026h                ; bc 26 00
+    popaw                                     ; 61
+    mov sp, word [word ss:0002ch]             ; 36 8b 26 2c 00
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
+    iret                                      ; cf
+    jmp short 0706fh                          ; eb 04
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 0706ch                          ; eb fd
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+init_rtc_:                                   ; 0xf7076 LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 016c7h                               ; e8 44 a6
+    mov dx, strict word 00002h                ; ba 02 00
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c7h                               ; e8 3b a6
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 016ach                               ; e8 1a a6
+    mov ax, strict word 0000dh                ; b8 0d 00
+    call 016ach                               ; e8 14 a6
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+rtc_updating_:                               ; 0xf709e LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, 061a8h                            ; ba a8 61
+    dec dx                                    ; 4a
+    je short 070b6h                           ; 74 0e
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 016ach                               ; e8 fe a5
+    test AL, strict byte 080h                 ; a8 80
+    jne short 070a5h                          ; 75 f3
+    xor ax, ax                                ; 31 c0
+    jmp short 070b9h                          ; eb 03
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int70_function:                             ; 0xf70bf LB 0xbf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 e2 a5
+    mov bl, al                                ; 88 c3
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 016ach                               ; e8 d7 a5
+    mov dl, al                                ; 88 c2
+    test bl, 060h                             ; f6 c3 60
+    jne short 070dfh                          ; 75 03
+    jmp near 07165h                           ; e9 86 00
+    test AL, strict byte 020h                 ; a8 20
+    je short 070e7h                           ; 74 04
+    sti                                       ; fb
+    int 04ah                                  ; cd 4a
+    cli                                       ; fa
+    test dl, 040h                             ; f6 c2 40
+    je short 0714fh                           ; 74 63
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 5b a5
+    test al, al                               ; 84 c0
+    je short 07165h                           ; 74 6c
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01688h                               ; e8 86 a5
+    test dx, dx                               ; 85 d2
+    jne short 07151h                          ; 75 4b
+    cmp ax, 003d1h                            ; 3d d1 03
+    jnc short 07151h                          ; 73 46
+    mov dx, 00098h                            ; ba 98 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 58 a5
+    mov si, ax                                ; 89 c6
+    mov dx, 0009ah                            ; ba 9a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 4d a5
+    mov cx, ax                                ; 89 c1
+    xor bx, bx                                ; 31 db
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 32 a5
+    mov dl, byte [bp-004h]                    ; 8a 56 fc
+    and dl, 037h                              ; 80 e2 37
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c7h                               ; e8 8d a5
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 01650h                               ; e8 0f a5
+    mov bl, al                                ; 88 c3
+    or bl, 080h                               ; 80 cb 80
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 0f a5
+    jmp short 07165h                          ; eb 14
+    mov bx, ax                                ; 89 c3
+    add bx, 0fc2fh                            ; 81 c3 2f fc
+    mov cx, dx                                ; 89 d1
+    adc cx, strict byte 0ffffh                ; 83 d1 ff
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0169ah                               ; e8 35 a5
+    call 0e030h                               ; e8 c8 6e
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    xchg sp, ax                               ; 94
+    jno short 0712ch                          ; 71 bb
+    jno short 07153h                          ; 71 e0
+    jno short 07191h                          ; 71 1c
+    jc short 071e5h                           ; 72 6e
+    jc short 0711eh                           ; 72 a5
+    jc short 07167h                           ; 72 ec
+    jc short 071c4h                           ; 72 47
+    db  073h
+_int1a_function:                             ; 0xf717e LB 0x1d9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sti                                       ; fb
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe short 071e7h                         ; 77 5e
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    add bx, bx                                ; 01 db
+    jmp word [cs:bx+0716eh]                   ; 2e ff a7 6e 71
+    cli                                       ; fa
+    mov bx, 0046eh                            ; bb 6e 04
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov bx, 0046ch                            ; bb 6c 04
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    mov bx, 00470h                            ; bb 70 04
+    mov al, byte [es:bx]                      ; 26 8a 07
+    mov byte [bp+012h], al                    ; 88 46 12
+    mov byte [es:bx], 000h                    ; 26 c6 07 00
+    sti                                       ; fb
+    jmp short 071e7h                          ; eb 2c
+    cli                                       ; fa
+    mov bx, 0046eh                            ; bb 6e 04
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    mov word [es:bx], ax                      ; 26 89 07
+    mov bx, 0046ch                            ; bb 6c 04
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:bx], ax                      ; 26 89 07
+    mov bx, 00470h                            ; bb 70 04
+    mov byte [es:bx], 000h                    ; 26 c6 07 00
+    sti                                       ; fb
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp short 071e7h                          ; eb 07
+    call 0709eh                               ; e8 bb fe
+    test ax, ax                               ; 85 c0
+    je short 071eah                           ; 74 03
+    jmp near 07218h                           ; e9 2e 00
+    xor ax, ax                                ; 31 c0
+    call 016ach                               ; e8 bd a4
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    mov ax, strict word 00002h                ; b8 02 00
+    call 016ach                               ; e8 b4 a4
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov ax, strict word 00004h                ; b8 04 00
+    call 016ach                               ; e8 ab a4
+    mov dl, al                                ; 88 c2
+    mov byte [bp+011h], al                    ; 88 46 11
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 a0 a4
+    and AL, strict byte 001h                  ; 24 01
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov byte [bp+012h], dl                    ; 88 56 12
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    call 0709eh                               ; e8 7f fe
+    test ax, ax                               ; 85 c0
+    je short 07226h                           ; 74 03
+    call 07076h                               ; e8 50 fe
+    mov dl, byte [bp+00fh]                    ; 8a 56 0f
+    xor dh, dh                                ; 30 f6
+    xor ax, ax                                ; 31 c0
+    call 016c7h                               ; e8 97 a4
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00002h                ; b8 02 00
+    call 016c7h                               ; e8 8c a4
+    mov dl, byte [bp+011h]                    ; 8a 56 11
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00004h                ; b8 04 00
+    call 016c7h                               ; e8 81 a4
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 60 a4
+    mov bl, al                                ; 88 c3
+    and bl, 060h                              ; 80 e3 60
+    or bl, 002h                               ; 80 cb 02
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    and AL, strict byte 001h                  ; 24 01
+    or bl, al                                 ; 08 c3
+    mov dl, bl                                ; 88 da
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c7h                               ; e8 62 a4
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov byte [bp+012h], bl                    ; 88 5e 12
+    jmp short 07218h                          ; eb aa
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    call 0709eh                               ; e8 29 fe
+    test ax, ax                               ; 85 c0
+    je short 0727bh                           ; 74 02
+    jmp short 07218h                          ; eb 9d
+    mov ax, strict word 00009h                ; b8 09 00
+    call 016ach                               ; e8 2b a4
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov ax, strict word 00008h                ; b8 08 00
+    call 016ach                               ; e8 22 a4
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    mov ax, strict word 00007h                ; b8 07 00
+    call 016ach                               ; e8 19 a4
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    mov ax, strict word 00032h                ; b8 32 00
+    call 016ach                               ; e8 10 a4
+    mov byte [bp+011h], al                    ; 88 46 11
+    mov byte [bp+012h], al                    ; 88 46 12
+    jmp near 07218h                           ; e9 73 ff
+    call 0709eh                               ; e8 f6 fd
+    test ax, ax                               ; 85 c0
+    je short 072b2h                           ; 74 06
+    call 07076h                               ; e8 c7 fd
+    jmp near 07218h                           ; e9 66 ff
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00009h                ; b8 09 00
+    call 016c7h                               ; e8 0a a4
+    mov dl, byte [bp+00fh]                    ; 8a 56 0f
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00008h                ; b8 08 00
+    call 016c7h                               ; e8 ff a3
+    mov dl, byte [bp+00eh]                    ; 8a 56 0e
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00007h                ; b8 07 00
+    call 016c7h                               ; e8 f4 a3
+    mov dl, byte [bp+011h]                    ; 8a 56 11
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00032h                ; b8 32 00
+    call 016c7h                               ; e8 e9 a3
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 c8 a3
+    mov bl, al                                ; 88 c3
+    and bl, 07fh                              ; 80 e3 7f
+    jmp near 0725bh                           ; e9 6f ff
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 ba a3
+    mov bl, al                                ; 88 c3
+    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
+    test AL, strict byte 020h                 ; a8 20
+    je short 07300h                           ; 74 03
+    jmp near 07218h                           ; e9 18 ff
+    call 0709eh                               ; e8 9b fd
+    test ax, ax                               ; 85 c0
+    je short 0730ah                           ; 74 03
+    call 07076h                               ; e8 6c fd
+    mov dl, byte [bp+00fh]                    ; 8a 56 0f
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00001h                ; b8 01 00
+    call 016c7h                               ; e8 b2 a3
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00003h                ; b8 03 00
+    call 016c7h                               ; e8 a7 a3
+    mov dl, byte [bp+011h]                    ; 8a 56 11
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00005h                ; b8 05 00
+    call 016c7h                               ; e8 9c a3
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    mov dl, bl                                ; 88 da
+    and dl, 05fh                              ; 80 e2 5f
+    or dl, 020h                               ; 80 ca 20
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c7h                               ; e8 83 a3
+    jmp near 07218h                           ; e9 d1 fe
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 5f a3
+    mov bl, al                                ; 88 c3
+    mov dl, al                                ; 88 c2
+    and dl, 057h                              ; 80 e2 57
+    jmp near 0725dh                           ; e9 06 ff
+send_to_mouse_ctrl_:                         ; 0xf7357 LB 0x34
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 07376h                           ; 74 0e
+    push 008eeh                               ; 68 ee 08
+    push 01168h                               ; 68 68 11
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 f3 a5
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov AL, strict byte 0d4h                  ; b0 d4
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    xor al, bl                                ; 30 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_mouse_data_:                             ; 0xf738b LB 0x5d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov es, dx                                ; 8e c2
+    mov cx, 02710h                            ; b9 10 27
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00021h                ; 25 21 00
+    cmp ax, strict word 00021h                ; 3d 21 00
+    je short 073ceh                           ; 74 28
+    test cx, cx                               ; 85 c9
+    je short 073ceh                           ; 74 24
+    mov dx, strict word 00061h                ; ba 61 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 010h                  ; 24 10
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov dx, strict word 00061h                ; ba 61 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, ax                                ; 89 c2
+    xor dh, ah                                ; 30 e6
+    and dl, 010h                              ; 80 e2 10
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cmp dx, ax                                ; 39 c2
+    je short 073b5h                           ; 74 ea
+    dec cx                                    ; 49
+    jmp short 07398h                          ; eb ca
+    test cx, cx                               ; 85 c9
+    jne short 073d6h                          ; 75 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 073e1h                          ; eb 0b
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [es:bx], al                      ; 26 88 07
+    xor al, al                                ; 30 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_kbd_command_byte_:                       ; 0xf73e8 LB 0x32
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 07407h                           ; 74 0e
+    push 008f8h                               ; 68 f8 08
+    push 01168h                               ; 68 68 11
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 62 a5
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int74_function:                             ; 0xf741a LB 0xd2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 43 a2
+    mov cx, ax                                ; 89 c1
+    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 021h                  ; 24 21
+    cmp AL, strict byte 021h                  ; 3c 21
+    jne short 0745eh                          ; 75 22
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 04 a2
+    mov byte [bp-002h], al                    ; 88 46 fe
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 f9 a1
+    mov byte [bp-006h], al                    ; 88 46 fa
+    test AL, strict byte 080h                 ; a8 80
+    jne short 07461h                          ; 75 03
+    jmp near 074d8h                           ; e9 77 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 007h                  ; 24 07
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    and AL, strict byte 007h                  ; 24 07
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00028h                ; 83 c2 28
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 da a1
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp al, byte [bp-004h]                    ; 3a 46 fc
+    jc short 074c8h                           ; 72 3c
+    mov dx, strict word 00028h                ; ba 28 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 bc a1
+    xor ah, ah                                ; 30 e4
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov dx, strict word 00029h                ; ba 29 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 af a1
+    xor ah, ah                                ; 30 e4
+    mov word [bp+00ah], ax                    ; 89 46 0a
+    mov dx, strict word 0002ah                ; ba 2a 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 a2 a1
+    xor ah, ah                                ; 30 e4
+    mov word [bp+008h], ax                    ; 89 46 08
+    xor al, al                                ; 30 c0
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov byte [bp-002h], ah                    ; 88 66 fe
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 074cbh                           ; 74 0a
+    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
+    jmp short 074cbh                          ; eb 03
+    inc byte [bp-002h]                        ; fe 46 fe
+    mov bl, byte [bp-002h]                    ; 8a 5e fe
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 86 a1
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    das                                       ; 2f
+    jne short 0748ah                          ; 75 ab
+    jne short 07509h                          ; 75 28
+    jbe short 074a0h                          ; 76 bd
+    jbe short 0750eh                          ; 76 29
+    jnbe short 0755dh                         ; 77 76
+    jne short 0753ah                          ; 75 51
+    jnbe short 07501h                         ; 77 16
+    db  078h
+_int15_function_mouse:                       ; 0xf74ec LB 0x38d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 70 a1
+    mov cx, ax                                ; 89 c1
+    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
+    jbe short 0750fh                          ; 76 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    jmp near 07873h                           ; e9 64 03
+    mov ax, strict word 00065h                ; b8 65 00
+    call 073e8h                               ; e8 d3 fe
+    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe short 07584h                         ; 77 60
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    add si, ax                                ; 01 c6
+    jmp word [cs:si+074dch]                   ; 2e ff a4 dc 74
+    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
+    jnbe short 07587h                         ; 77 52
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 13 a1
+    test AL, strict byte 080h                 ; a8 80
+    jne short 0754ch                          ; 75 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 005h                  ; c6 46 13 05
+    jmp near 0786dh                           ; e9 21 03
+    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
+    jne short 07556h                          ; 75 04
+    mov AL, strict byte 0f5h                  ; b0 f5
+    jmp short 07558h                          ; eb 02
+    mov AL, strict byte 0f4h                  ; b0 f4
+    xor ah, ah                                ; 30 e4
+    call 07357h                               ; e8 fa fd
+    test al, al                               ; 84 c0
+    jne short 0758ah                          ; 75 29
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 22 fe
+    test al, al                               ; 84 c0
+    je short 07573h                           ; 74 06
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    jne short 0758ah                          ; 75 17
+    jmp near 0786dh                           ; e9 f7 02
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 07581h                           ; 72 04
+    cmp AL, strict byte 008h                  ; 3c 08
+    jbe short 0758dh                          ; 76 0c
+    jmp near 0771fh                           ; e9 9b 01
+    jmp near 0785ah                           ; e9 d3 02
+    jmp near 07865h                           ; e9 db 02
+    jmp near 077f1h                           ; e9 64 02
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 bb a0
+    mov ah, byte [bp+00dh]                    ; 8a 66 0d
+    db  0feh, 0cch
+    ; dec ah                                    ; fe cc
+    mov bl, al                                ; 88 c3
+    and bl, 0f8h                              ; 80 e3 f8
+    or bl, ah                                 ; 08 e3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 b3 a0
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 9d a0
+    mov bl, al                                ; 88 c3
+    and bl, 0f8h                              ; 80 e3 f8
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 9c a0
+    mov ax, 000ffh                            ; b8 ff 00
+    call 07357h                               ; e8 8f fd
+    test al, al                               ; 84 c0
+    jne short 0758ah                          ; 75 be
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0738bh                               ; e8 b7 fd
+    mov cl, al                                ; 88 c1
+    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
+    jne short 075e6h                          ; 75 0a
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 004h                  ; c6 46 13 04
+    jmp short 07573h                          ; eb 8d
+    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
+    je short 075fdh                           ; 74 11
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00903h                               ; 68 03 09
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 6c a3
+    add sp, strict byte 00006h                ; 83 c4 06
+    test cl, cl                               ; 84 c9
+    jne short 0758ah                          ; 75 89
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 82 fd
+    test al, al                               ; 84 c0
+    jne short 07663h                          ; 75 56
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0738bh                               ; e8 76 fd
+    test al, al                               ; 84 c0
+    jne short 07663h                          ; 75 4a
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp+00ch], al                    ; 88 46 0c
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp+00dh], al                    ; 88 46 0d
+    jmp near 0786dh                           ; e9 45 02
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 0763fh                           ; 72 10
+    jbe short 0765dh                          ; 76 2c
+    cmp AL, strict byte 006h                  ; 3c 06
+    je short 07672h                           ; 74 3d
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0766ch                           ; 74 33
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 07666h                           ; 74 29
+    jmp short 07678h                          ; eb 39
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 07657h                           ; 74 14
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 07651h                           ; 74 0a
+    test al, al                               ; 84 c0
+    jne short 07678h                          ; 75 2d
+    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
+    jmp short 0767ch                          ; eb 2b
+    mov byte [bp-008h], 014h                  ; c6 46 f8 14
+    jmp short 0767ch                          ; eb 25
+    mov byte [bp-008h], 028h                  ; c6 46 f8 28
+    jmp short 0767ch                          ; eb 1f
+    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
+    jmp short 0767ch                          ; eb 19
+    jmp near 077f1h                           ; e9 8b 01
+    mov byte [bp-008h], 050h                  ; c6 46 f8 50
+    jmp short 0767ch                          ; eb 10
+    mov byte [bp-008h], 064h                  ; c6 46 f8 64
+    jmp short 0767ch                          ; eb 0a
+    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
+    jmp short 0767ch                          ; eb 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jbe short 076b2h                          ; 76 30
+    mov ax, 000f3h                            ; b8 f3 00
+    call 07357h                               ; e8 cf fc
+    test al, al                               ; 84 c0
+    jne short 076a7h                          ; 75 1b
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0738bh                               ; e8 f7 fc
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 07357h                               ; e8 bb fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0738bh                               ; e8 e7 fc
+    jmp near 0786dh                           ; e9 c6 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 0786dh                           ; e9 bb 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 002h                  ; c6 46 13 02
+    jmp near 0786dh                           ; e9 b0 01
+    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
+    jnc short 0771fh                          ; 73 5c
+    mov ax, 000e8h                            ; b8 e8 00
+    call 07357h                               ; e8 8e fc
+    test al, al                               ; 84 c0
+    jne short 07715h                          ; 75 48
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 b6 fc
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 076ech                           ; 74 11
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 0092eh                               ; 68 2e 09
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 7d a2
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 07357h                               ; e8 63 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 8f fc
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 0774eh                           ; 74 4c
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 0092eh                               ; 68 2e 09
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 56 a2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 0774eh                          ; eb 39
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp short 0774eh                          ; eb 2f
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 002h                  ; c6 46 13 02
+    jmp short 0774eh                          ; eb 25
+    mov ax, 000f2h                            ; b8 f2 00
+    call 07357h                               ; e8 28 fc
+    test al, al                               ; 84 c0
+    jne short 07746h                          ; 75 13
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 50 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0738bh                               ; e8 48 fc
+    jmp near 0761fh                           ; e9 d9 fe
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 0786dh                           ; e9 1c 01
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    test al, al                               ; 84 c0
+    jbe short 0775fh                          ; 76 07
+    cmp AL, strict byte 002h                  ; 3c 02
+    jbe short 077c6h                          ; 76 6a
+    jmp near 077fbh                           ; e9 9c 00
+    mov ax, 000e9h                            ; b8 e9 00
+    call 07357h                               ; e8 f2 fb
+    test al, al                               ; 84 c0
+    jne short 077cfh                          ; 75 66
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 1a fc
+    mov cl, al                                ; 88 c1
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 0778ah                           ; 74 11
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 0092eh                               ; 68 2e 09
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 df a1
+    add sp, strict byte 00006h                ; 83 c4 06
+    test cl, cl                               ; 84 c9
+    jne short 077f1h                          ; 75 63
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 f5 fb
+    test al, al                               ; 84 c0
+    jne short 077f1h                          ; 75 57
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0738bh                               ; e8 e9 fb
+    test al, al                               ; 84 c0
+    jne short 077f1h                          ; 75 4b
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0738bh                               ; e8 dd fb
+    test al, al                               ; 84 c0
+    jne short 077f1h                          ; 75 3f
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp+00ch], al                    ; 88 46 0c
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    jmp short 0774eh                          ; eb 88
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 077d1h                          ; 75 07
+    mov ax, 000e6h                            ; b8 e6 00
+    jmp short 077d4h                          ; eb 05
+    jmp short 077f1h                          ; eb 20
+    mov ax, 000e7h                            ; b8 e7 00
+    call 07357h                               ; e8 80 fb
+    mov cl, al                                ; 88 c1
+    test cl, cl                               ; 84 c9
+    jne short 077edh                          ; 75 10
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0738bh                               ; e8 a6 fb
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 077edh                           ; 74 02
+    mov CL, strict byte 001h                  ; b1 01
+    test cl, cl                               ; 84 c9
+    je short 07858h                           ; 74 67
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp short 07858h                          ; eb 5d
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 0095ah                               ; 68 5a 09
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 5d a1
+    add sp, strict byte 00006h                ; 83 c4 06
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    jmp short 0786dh                          ; eb 57
+    mov si, word [bp+00ch]                    ; 8b 76 0c
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00022h                ; ba 22 00
+    mov ax, cx                                ; 89 c8
+    call 0167ah                               ; e8 57 9e
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    mov dx, strict word 00024h                ; ba 24 00
+    mov ax, cx                                ; 89 c8
+    call 0167ah                               ; e8 4c 9e
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 1a 9e
+    mov ah, al                                ; 88 c4
+    test si, si                               ; 85 f6
+    jne short 0784ah                          ; 75 0e
+    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
+    jne short 0784ah                          ; 75 08
+    test AL, strict byte 080h                 ; a8 80
+    je short 0784ch                           ; 74 06
+    and AL, strict byte 07fh                  ; 24 7f
+    jmp short 0784ch                          ; eb 02
+    or AL, strict byte 080h                   ; 0c 80
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 06 9e
+    jmp short 0786dh                          ; eb 13
+    push 00974h                               ; 68 74 09
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 04 a1
+    add sp, strict byte 00004h                ; 83 c4 04
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    mov ax, strict word 00047h                ; b8 47 00
+    call 073e8h                               ; e8 75 fb
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int17_function:                             ; 0xf7879 LB 0xaf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push ax                                   ; 50
+    sti                                       ; fb
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 df 9d
+    mov bx, ax                                ; 89 c3
+    mov si, ax                                ; 89 c6
+    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
+    jnc short 078a3h                          ; 73 0c
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jnc short 078a3h                          ; 73 04
+    test bx, bx                               ; 85 db
+    jnbe short 078a6h                         ; 77 03
+    jmp near 0791eh                           ; e9 78 00
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00078h                ; 83 c2 78
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 9f 9d
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    sal cx, 008h                              ; c1 e1 08
+    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
+    jne short 078eah                          ; 75 2c
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-004h], ax                    ; 89 46 fc
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    or AL, strict byte 001h                   ; 0c 01
+    out DX, AL                                ; ee
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    lea dx, [si+001h]                         ; 8d 54 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 040h                 ; a8 40
+    je short 078eah                           ; 74 07
+    test cx, cx                               ; 85 c9
+    je short 078eah                           ; 74 03
+    dec cx                                    ; 49
+    jmp short 078d9h                          ; eb ef
+    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
+    jne short 07905h                          ; 75 15
+    lea dx, [si+002h]                         ; 8d 54 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-004h], ax                    ; 89 46 fc
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 0fbh                  ; 24 fb
+    out DX, AL                                ; ee
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    or AL, strict byte 004h                   ; 0c 04
+    out DX, AL                                ; ee
+    lea dx, [si+001h]                         ; 8d 54 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor AL, strict byte 048h                  ; 34 48
+    mov byte [bp+013h], al                    ; 88 46 13
+    test cx, cx                               ; 85 c9
+    jne short 07918h                          ; 75 04
+    or byte [bp+013h], 001h                   ; 80 4e 13 01
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp short 07922h                          ; eb 04
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+wait_:                                       ; 0xf7928 LB 0xaf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    pushfw                                    ; 9c
+    pop ax                                    ; 58
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    sti                                       ; fb
+    xor cx, cx                                ; 31 c9
+    mov dx, 0046ch                            ; ba 6c 04
+    xor ax, ax                                ; 31 c0
+    call 01688h                               ; e8 3d 9d
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bx, dx                                ; 89 d3
+    hlt                                       ; f4
+    mov dx, 0046ch                            ; ba 6c 04
+    xor ax, ax                                ; 31 c0
+    call 01688h                               ; e8 2f 9d
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov di, dx                                ; 89 d7
+    cmp dx, bx                                ; 39 da
+    jnbe short 07969h                         ; 77 07
+    jne short 07970h                          ; 75 0c
+    cmp ax, word [bp-010h]                    ; 3b 46 f0
+    jbe short 07970h                          ; 76 07
+    sub ax, word [bp-010h]                    ; 2b 46 f0
+    sbb dx, bx                                ; 19 da
+    jmp short 0797bh                          ; eb 0b
+    cmp dx, bx                                ; 39 da
+    jc short 0797bh                           ; 72 07
+    jne short 0797fh                          ; 75 09
+    cmp ax, word [bp-010h]                    ; 3b 46 f0
+    jnc short 0797fh                          ; 73 04
+    sub si, ax                                ; 29 c6
+    sbb cx, dx                                ; 19 d1
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bx, di                                ; 89 fb
+    mov ax, 00100h                            ; b8 00 01
+    int 016h                                  ; cd 16
+    je short 07993h                           ; 74 05
+    mov AL, strict byte 001h                  ; b0 01
+    jmp near 07995h                           ; e9 02 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    test al, al                               ; 84 c0
+    je short 079bch                           ; 74 23
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    int 016h                                  ; cd 16
+    xchg ah, al                               ; 86 c4
+    mov dl, al                                ; 88 c2
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00996h                               ; 68 96 09
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 b7 9f
+    add sp, strict byte 00006h                ; 83 c4 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 079bch                           ; 74 04
+    mov al, dl                                ; 88 d0
+    jmp short 079ceh                          ; eb 12
+    test cx, cx                               ; 85 c9
+    jnle short 07950h                         ; 7f 90
+    jne short 079c6h                          ; 75 04
+    test si, si                               ; 85 f6
+    jnbe short 07950h                         ; 77 8a
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    push ax                                   ; 50
+    popfw                                     ; 9d
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_logo_byte_:                             ; 0xf79d7 LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_logo_word_:                             ; 0xf79ed LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+print_detected_harddisks_:                   ; 0xf7a01 LB 0x13a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 58 9c
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    mov dx, 00304h                            ; ba 04 03
+    call 01650h                               ; e8 2c 9c
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp-00ch]                    ; 3a 5e f4
+    jnc short 07a8bh                          ; 73 5d
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    add dx, 00305h                            ; 81 c2 05 03
+    mov ax, si                                ; 89 f0
+    call 01650h                               ; e8 13 9c
+    mov bh, al                                ; 88 c7
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jc short 07a68h                           ; 72 25
+    test cl, cl                               ; 84 c9
+    jne short 07a54h                          ; 75 0d
+    push 009a7h                               ; 68 a7 09
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 17 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CL, strict byte 001h                  ; b1 01
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    push ax                                   ; 50
+    push 009bch                               ; 68 bc 09
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 04 9f
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 07b08h                           ; e9 a0 00
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 07a7fh                           ; 72 13
+    test ch, ch                               ; 84 ed
+    jne short 07a7dh                          ; 75 0d
+    push 009cfh                               ; 68 cf 09
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 ee 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CH, strict byte 001h                  ; b5 01
+    jmp short 07a54h                          ; eb d5
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc short 07a9fh                          ; 73 1c
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 07a8eh                           ; 74 05
+    jmp short 07a9fh                          ; eb 14
+    jmp near 07b0dh                           ; e9 7f 00
+    push 009e4h                               ; 68 e4 09
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 d0 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
+    jmp short 07ab5h                          ; eb 16
+    cmp bh, 004h                              ; 80 ff 04
+    jc short 07ab5h                           ; 72 11
+    test cl, cl                               ; 84 c9
+    jne short 07ab5h                          ; 75 0d
+    push 009f6h                               ; 68 f6 09
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 b6 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CL, strict byte 001h                  ; b1 01
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    push ax                                   ; 50
+    push 00a0ah                               ; 68 0a 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 a3 9e
+    add sp, strict byte 00006h                ; 83 c4 06
+    cmp bh, 004h                              ; 80 ff 04
+    jc short 07aceh                           ; 72 03
+    sub bh, 004h                              ; 80 ef 04
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    test ax, ax                               ; 85 c0
+    je short 07ae0h                           ; 74 05
+    push 00a14h                               ; 68 14 0a
+    jmp short 07ae3h                          ; eb 03
+    push 00a1fh                               ; 68 1f 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 7e 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov di, strict word 00002h                ; bf 02 00
+    cwd                                       ; 99
+    idiv di                                   ; f7 ff
+    test dx, dx                               ; 85 d2
+    je short 07afeh                           ; 74 05
+    push 00a28h                               ; 68 28 0a
+    jmp short 07b01h                          ; eb 03
+    push 00a2eh                               ; 68 2e 0a
+    push di                                   ; 57
+    call 01966h                               ; e8 61 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp near 07a29h                           ; e9 1c ff
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 07b26h                          ; 75 13
+    test cl, cl                               ; 84 c9
+    jne short 07b26h                          ; 75 0f
+    test ch, ch                               ; 84 ed
+    jne short 07b26h                          ; 75 0b
+    push 00a35h                               ; 68 35 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 43 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    push 00a49h                               ; 68 49 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 38 9e
+    add sp, strict byte 00004h                ; 83 c4 04
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_boot_drive_:                             ; 0xf7b3b LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 21 9b
+    mov dx, 00304h                            ; ba 04 03
+    call 01650h                               ; e8 ff 9a
+    sub bl, 002h                              ; 80 eb 02
+    cmp bl, al                                ; 38 c3
+    jc short 07b5ah                           ; 72 02
+    mov BL, strict byte 0ffh                  ; b3 ff
+    mov al, bl                                ; 88 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+show_logo_:                                  ; 0xf7b63 LB 0x228
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f5 9a
+    mov si, ax                                ; 89 c6
+    xor cl, cl                                ; 30 c9
+    xor dx, dx                                ; 31 d2
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 0d3h                  ; b0 d3
+    out strict byte 040h, AL                  ; e6 40
+    mov AL, strict byte 048h                  ; b0 48
+    out strict byte 040h, AL                  ; e6 40
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    call 079edh                               ; e8 5d fe
+    cmp ax, 066bbh                            ; 3d bb 66
+    jne short 07ba7h                          ; 75 12
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    lea di, [bp-016h]                         ; 8d 7e ea
+    mov ax, 04f03h                            ; b8 03 4f
+    int 010h                                  ; cd 10
+    mov word [es:di], bx                      ; 26 89 1d
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    je short 07baah                           ; 74 03
+    jmp near 07c67h                           ; e9 bd 00
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 004h                  ; 04 04
+    xor ah, ah                                ; 30 e4
+    call 079d7h                               ; e8 24 fe
+    mov ch, al                                ; 88 c5
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 005h                  ; 04 05
+    xor ah, ah                                ; 30 e4
+    call 079d7h                               ; e8 16 fe
+    mov dh, al                                ; 88 c6
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 079edh                               ; e8 1e fe
+    mov bx, ax                                ; 89 c3
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 006h                  ; 04 06
+    xor ah, ah                                ; 30 e4
+    call 079d7h                               ; e8 fa fd
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    test ch, ch                               ; 84 ed
+    jne short 07bech                          ; 75 08
+    test dh, dh                               ; 84 f6
+    jne short 07bech                          ; 75 04
+    test bx, bx                               ; 85 db
+    je short 07c44h                           ; 74 58
+    mov bx, 00142h                            ; bb 42 01
+    mov ax, 04f02h                            ; b8 02 4f
+    int 010h                                  ; cd 10
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    je short 07c1dh                           ; 74 23
+    xor bx, bx                                ; 31 db
+    jmp short 07c04h                          ; eb 06
+    inc bx                                    ; 43
+    cmp bx, strict byte 00010h                ; 83 fb 10
+    jnbe short 07c24h                         ; 77 20
+    mov ax, bx                                ; 89 d8
+    or ah, 002h                               ; 80 cc 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 07928h                               ; e8 13 fd
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07bfeh                          ; 75 e5
+    mov CL, strict byte 001h                  ; b1 01
+    jmp short 07c24h                          ; eb 07
+    mov ax, 00210h                            ; b8 10 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    test cl, cl                               ; 84 c9
+    jne short 07c3ah                          ; 75 12
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    shr ax, 004h                              ; c1 e8 04
+    mov dx, strict word 00001h                ; ba 01 00
+    call 07928h                               ; e8 f4 fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07c3ah                          ; 75 02
+    mov CL, strict byte 001h                  ; b1 01
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    je short 07c67h                           ; 74 27
+    test cl, cl                               ; 84 c9
+    je short 07c46h                           ; 74 02
+    jmp short 07c67h                          ; eb 21
+    mov bx, strict word 00010h                ; bb 10 00
+    jmp short 07c50h                          ; eb 05
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 07c67h                          ; 76 17
+    mov ax, bx                                ; 89 d8
+    or ah, 002h                               ; 80 cc 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 07928h                               ; e8 c7 fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07c4bh                          ; 75 e6
+    mov CL, strict byte 001h                  ; b1 01
+    xor bx, bx                                ; 31 db
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 ed 99
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 07c91h                           ; 74 14
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    jne short 07cb8h                          ; 75 35
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 07cb8h                          ; 75 2f
+    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
+    je short 07c94h                           ; 74 05
+    jmp short 07cb8h                          ; eb 27
+    jmp near 07d6ch                           ; e9 d8 00
+    cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
+    jne short 07ca5h                          ; 75 0b
+    push 00a4bh                               ; 68 4b 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 c4 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    test cl, cl                               ; 84 c9
+    jne short 07cb8h                          ; 75 0f
+    mov dx, strict word 00001h                ; ba 01 00
+    mov ax, 000c0h                            ; b8 c0 00
+    call 07928h                               ; e8 76 fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07cb8h                          ; 75 02
+    mov CL, strict byte 001h                  ; b1 01
+    test cl, cl                               ; 84 c9
+    je short 07c91h                           ; 74 d5
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, 00100h                            ; b8 00 01
+    mov cx, 01000h                            ; b9 00 10
+    int 010h                                  ; cd 10
+    mov ax, 00700h                            ; b8 00 07
+    mov BH, strict byte 007h                  ; b7 07
+    db  033h, 0c9h
+    ; xor cx, cx                                ; 33 c9
+    mov dx, 0184fh                            ; ba 4f 18
+    int 010h                                  ; cd 10
+    mov ax, 00200h                            ; b8 00 02
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    int 010h                                  ; cd 10
+    push 00a6dh                               ; 68 6d 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 81 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    call 07a01h                               ; e8 16 fd
+    push 00ab1h                               ; 68 b1 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 73 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov dx, strict word 00001h                ; ba 01 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 07928h                               ; e8 29 fc
+    mov bl, al                                ; 88 c3
+    test al, al                               ; 84 c0
+    je short 07cf6h                           ; 74 f1
+    cmp AL, strict byte 030h                  ; 3c 30
+    je short 07d59h                           ; 74 50
+    cmp bl, 002h                              ; 80 fb 02
+    jc short 07d32h                           ; 72 24
+    cmp bl, 009h                              ; 80 fb 09
+    jnbe short 07d32h                         ; 77 1f
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    call 07b3bh                               ; e8 21 fe
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 07d20h                          ; 75 02
+    jmp short 07cf6h                          ; eb d6
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, 0037ch                            ; ba 7c 03
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 32 99
+    mov byte [bp-00ch], 002h                  ; c6 46 f4 02
+    jmp short 07d59h                          ; eb 27
+    cmp bl, 02eh                              ; 80 fb 2e
+    je short 07d47h                           ; 74 10
+    cmp bl, 026h                              ; 80 fb 26
+    je short 07d4dh                           ; 74 11
+    cmp bl, 021h                              ; 80 fb 21
+    jne short 07d53h                          ; 75 12
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    jmp short 07d59h                          ; eb 12
+    mov byte [bp-00ch], 003h                  ; c6 46 f4 03
+    jmp short 07d59h                          ; eb 0c
+    mov byte [bp-00ch], 004h                  ; c6 46 f4 04
+    jmp short 07d59h                          ; eb 06
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 07cf6h                           ; 74 9d
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 f8 98
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    mov ds, ax                                ; 8e d8
+    call 0edbfh                               ; e8 41 70
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+delay_boot_:                                 ; 0xf7d8b LB 0x67
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    test ax, ax                               ; 85 c0
+    je short 07debh                           ; 74 55
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 0d3h                  ; b0 d3
+    out strict byte 040h, AL                  ; e6 40
+    mov AL, strict byte 048h                  ; b0 48
+    out strict byte 040h, AL                  ; e6 40
+    push dx                                   ; 52
+    push 00afbh                               ; 68 fb 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 bb 9b
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov bx, dx                                ; 89 d3
+    test bx, bx                               ; 85 db
+    jbe short 07dcbh                          ; 76 17
+    push bx                                   ; 53
+    push 00b19h                               ; 68 19 0b
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 a9 9b
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 07928h                               ; e8 60 fb
+    dec bx                                    ; 4b
+    jmp short 07db0h                          ; eb e5
+    push 00a49h                               ; 68 49 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01966h                               ; e8 93 9b
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    mov ds, ax                                ; 8e d8
+    call 0edbfh                               ; e8 d7 6f
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+scsi_cmd_data_in_:                           ; 0xf7df2 LB 0xd5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07e08h                          ; 75 f7
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 07e1ch                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 07e1eh                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07e28h                               ; e2 fa
+    mov cx, ax                                ; 89 c1
+    and cx, 000f0h                            ; 81 e1 f0 00
+    or cx, di                                 ; 09 f9
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07e4dh                               ; e2 fa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp cx, ax                                ; 39 c1
+    jnc short 07e6fh                          ; 73 0e
+    les di, [bp-00ah]                         ; c4 7e f6
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di]                      ; 26 8a 05
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 07e58h                          ; eb e9
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07e6fh                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 07e8ah                           ; 74 0e
+    lea dx, [si+003h]                         ; 8d 54 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov di, strict word 00004h                ; bf 04 00
+    jmp short 07ebch                          ; eb 32
+    lea dx, [si+001h]                         ; 8d 54 01
+    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
+    jne short 07e99h                          ; 75 06
+    cmp bx, 08000h                            ; 81 fb 00 80
+    jbe short 07eb3h                          ; 76 1a
+    mov cx, 08000h                            ; b9 00 80
+    les di, [bp+006h]                         ; c4 7e 06
+    rep insb                                  ; f3 6c
+    add bx, 08000h                            ; 81 c3 00 80
+    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 07e8ah                          ; eb d7
+    mov cx, bx                                ; 89 d9
+    les di, [bp+006h]                         ; c4 7e 06
+    rep insb                                  ; f3 6c
+    xor di, di                                ; 31 ff
+    mov ax, di                                ; 89 f8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ah                               ; c2 0a 00
+scsi_cmd_data_out_:                          ; 0xf7ec7 LB 0xd5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov di, ax                                ; 89 c7
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07eddh                          ; 75 f7
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 07ef1h                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 07ef3h                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07efdh                               ; e2 fa
+    mov cx, ax                                ; 89 c1
+    and cx, 000f0h                            ; 81 e1 f0 00
+    or cx, si                                 ; 09 f1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 001h                  ; b0 01
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07f22h                               ; e2 fa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp cx, ax                                ; 39 c1
+    jnc short 07f44h                          ; 73 0e
+    les si, [bp-00ah]                         ; c4 76 f6
+    add si, cx                                ; 01 ce
+    mov al, byte [es:si]                      ; 26 8a 04
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 07f2dh                          ; eb e9
+    lea dx, [di+001h]                         ; 8d 55 01
+    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
+    jne short 07f53h                          ; 75 06
+    cmp bx, 08000h                            ; 81 fb 00 80
+    jbe short 07f6eh                          ; 76 1b
+    mov cx, 08000h                            ; b9 00 80
+    les si, [bp+006h]                         ; c4 76 06
+    db  0f3h, 026h, 06eh
+    ; rep es outsb                              ; f3 26 6e
+    add bx, 08000h                            ; 81 c3 00 80
+    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 07f44h                          ; eb d6
+    mov cx, bx                                ; 89 d9
+    les si, [bp+006h]                         ; c4 76 06
+    db  0f3h, 026h, 06eh
+    ; rep es outsb                              ; f3 26 6e
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07f76h                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 07f91h                           ; 74 0e
+    lea dx, [di+003h]                         ; 8d 55 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 07f93h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ah                               ; c2 0a 00
+@scsi_read_sectors:                          ; 0xf7f9c LB 0xe0
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    sub AL, strict byte 008h                  ; 2c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 07fc8h                          ; 76 11
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00b1eh                               ; 68 1e 0b
+    push 00b30h                               ; 68 30 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 a1 99
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov word [bp-01ah], 00088h                ; c7 46 e6 88 00
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
+    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov cx, strict word 00009h                ; b9 09 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 08032h                               ; e2 f8
+    push word [bp-008h]                       ; ff 76 f8
+    push word [bp-00ah]                       ; ff 76 f6
+    push word [es:si+00ah]                    ; 26 ff 74 0a
+    push word [es:si+008h]                    ; 26 ff 74 08
+    push strict byte 00010h                   ; 6a 10
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-01ah]                         ; 8d 5e e6
+    call 07df2h                               ; e8 9e fd
+    mov ah, al                                ; 88 c4
+    test al, al                               ; 84 c0
+    jne short 0806fh                          ; 75 15
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@scsi_write_sectors:                         ; 0xf807c LB 0xe0
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    sub AL, strict byte 008h                  ; 2c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 080a8h                          ; 76 11
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00b4fh                               ; 68 4f 0b
+    push 00b30h                               ; 68 30 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 c1 98
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov word [bp-01ah], 0008ah                ; c7 46 e6 8a 00
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
+    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov cx, strict word 00009h                ; b9 09 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 08112h                               ; e2 f8
+    push word [bp-008h]                       ; ff 76 f8
+    push word [bp-00ah]                       ; ff 76 f6
+    push word [es:si+00ah]                    ; 26 ff 74 0a
+    push word [es:si+008h]                    ; 26 ff 74 08
+    push strict byte 00010h                   ; 6a 10
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-01ah]                         ; 8d 5e e6
+    call 07ec7h                               ; e8 93 fd
+    mov ah, al                                ; 88 c4
+    test al, al                               ; 84 c0
+    jne short 0814fh                          ; 75 15
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+scsi_cmd_packet_:                            ; 0xf815c LB 0x168
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov di, ax                                ; 89 c7
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov word [bp-00ch], cx                    ; 89 4e f4
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f4 94
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 081a3h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 94 97
+    push 00b62h                               ; 68 62 0b
+    push 00b72h                               ; 68 72 0b
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 cc 97
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp near 082b9h                           ; e9 16 01
+    sub di, strict byte 00008h                ; 83 ef 08
+    sal di, 002h                              ; c1 e7 02
+    sub byte [bp-006h], 002h                  ; 80 6e fa 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    add di, si                                ; 01 f7
+    mov bx, word [es:di+0021ch]               ; 26 8b 9d 1c 02
+    mov al, byte [es:di+0021eh]               ; 26 8a 85 1e 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 081bfh                          ; 75 f7
+    xor ax, ax                                ; 31 c0
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, word [bp+004h]                    ; 03 56 04
+    adc ax, word [bp+008h]                    ; 13 46 08
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
+    xor di, di                                ; 31 ff
+    add cx, dx                                ; 01 d1
+    mov word [bp-010h], cx                    ; 89 4e f0
+    adc di, ax                                ; 11 c7
+    mov ax, cx                                ; 89 c8
+    mov dx, di                                ; 89 fa
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 081eah                               ; e2 fa
+    and ax, 000f0h                            ; 25 f0 00
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    or cx, ax                                 ; 09 c1
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    out DX, AL                                ; ee
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, di                                ; 89 fa
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 08212h                               ; e2 fa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cmp cx, ax                                ; 39 c1
+    jnc short 08234h                          ; 73 0e
+    les di, [bp-00eh]                         ; c4 7e f2
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di]                      ; 26 8a 05
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 0821dh                          ; eb e9
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 08234h                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 0824fh                           ; 74 0e
+    lea dx, [bx+003h]                         ; 8d 57 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp short 082b9h                          ; eb 6a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    test ax, ax                               ; 85 c0
+    je short 0825eh                           ; 74 08
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov cx, ax                                ; 89 c1
+    in AL, DX                                 ; ec
+    loop 0825bh                               ; e2 fd
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:si+01ah], ax                 ; 26 89 44 1a
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    lea ax, [bx+001h]                         ; 8d 47 01
+    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
+    jne short 0827fh                          ; 75 07
+    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
+    jbe short 0829ch                          ; 76 1d
+    mov dx, ax                                ; 89 c2
+    mov cx, 08000h                            ; b9 00 80
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insb                                  ; f3 6c
+    add word [bp+006h], 08000h                ; 81 46 06 00 80
+    adc word [bp+008h], strict byte 0ffffh    ; 83 56 08 ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    jmp short 0826fh                          ; eb d3
+    mov dx, ax                                ; 89 c2
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insb                                  ; f3 6c
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
+    je short 082b7h                           ; 74 07
+    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
+    in AL, DX                                 ; ec
+    loop 082b4h                               ; e2 fd
+    xor dx, dx                                ; 31 d2
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+scsi_enumerate_attached_devices_:            ; 0xf82c4 LB 0x4a6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 0023ch                            ; 81 ec 3c 02
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 92 93
+    mov di, 00122h                            ; bf 22 01
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
+    jmp near 086e8h                           ; e9 00 04
+    cmp AL, strict byte 004h                  ; 3c 04
+    jc short 082efh                           ; 72 03
+    jmp near 08760h                           ; e9 71 04
+    mov cx, strict word 00010h                ; b9 10 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-046h]                         ; 8d 46 ba
+    call 0a03ah                               ; e8 3e 1d
+    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
+    mov byte [bp-045h], 010h                  ; c6 46 bb 10
+    mov byte [bp-039h], 020h                  ; c6 46 c7 20
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00020h                   ; 6a 20
+    lea dx, [bp-00246h]                       ; 8d 96 ba fd
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00010h                   ; 6a 10
+    mov dl, byte [bp-022h]                    ; 8a 56 de
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-046h]                         ; 8d 5e ba
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    call 07df2h                               ; e8 cd fa
+    test al, al                               ; 84 c0
+    je short 08337h                           ; 74 0e
+    push 00b92h                               ; 68 92 0b
+    push 00bcbh                               ; 68 cb 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 32 96
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
+    mov bx, word [bp-00242h]                  ; 8b 9e be fd
+    mov cx, word [bp-00244h]                  ; 8b 8e bc fd
+    mov dx, word [bp-00246h]                  ; 8b 96 ba fd
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    add dx, strict byte 00001h                ; 83 c2 01
+    mov word [bp-014h], dx                    ; 89 56 ec
+    adc cx, strict byte 00000h                ; 83 d1 00
+    mov word [bp-01ch], cx                    ; 89 4e e4
+    adc bx, strict byte 00000h                ; 83 d3 00
+    mov word [bp-010h], bx                    ; 89 5e f0
+    adc ax, strict word 00000h                ; 15 00 00
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov al, byte [bp-0023eh]                  ; 8a 86 c2 fd
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 008h                              ; c1 e6 08
+    mov al, byte [bp-0023dh]                  ; 8a 86 c3 fd
+    xor bx, bx                                ; 31 db
+    or si, ax                                 ; 09 c6
+    mov al, byte [bp-0023ch]                  ; 8a 86 c4 fd
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 08386h                               ; e2 fa
+    or bx, ax                                 ; 09 c3
+    or dx, si                                 ; 09 f2
+    mov al, byte [bp-0023bh]                  ; 8a 86 c5 fd
+    xor ah, ah                                ; 30 e4
+    or bx, ax                                 ; 09 c3
+    mov word [bp-028h], bx                    ; 89 5e d8
+    test dx, dx                               ; 85 d2
+    jne short 083a5h                          ; 75 06
+    cmp bx, 00200h                            ; 81 fb 00 02
+    je short 083c5h                           ; 74 20
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 73 95
+    push dx                                   ; 52
+    push word [bp-028h]                       ; ff 76 d8
+    push word [bp-022h]                       ; ff 76 de
+    push 00beah                               ; 68 ea 0b
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 a7 95
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 086dch                           ; e9 17 03
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 083d8h                           ; 72 0c
+    jbe short 083e0h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 083e8h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 083e4h                           ; 74 0e
+    jmp short 08431h                          ; eb 59
+    test al, al                               ; 84 c0
+    jne short 08431h                          ; 75 55
+    mov BL, strict byte 090h                  ; b3 90
+    jmp short 083eah                          ; eb 0a
+    mov BL, strict byte 098h                  ; b3 98
+    jmp short 083eah                          ; eb 06
+    mov BL, strict byte 0a0h                  ; b3 a0
+    jmp short 083eah                          ; eb 02
+    mov BL, strict byte 0a8h                  ; b3 a8
+    mov cl, bl                                ; 88 d9
+    add cl, 007h                              ; 80 c1 07
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    call 016ach                               ; e8 b6 92
+    test al, al                               ; 84 c0
+    je short 08431h                           ; 74 37
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 a9 92
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov al, bl                                ; 88 d8
+    call 016ach                               ; e8 9d 92
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    cwd                                       ; 99
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 8d 92
+    xor ah, ah                                ; 30 e4
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, cx                                ; 89 c8
+    call 016ach                               ; e8 83 92
+    xor ah, ah                                ; 30 e4
+    mov word [bp-026h], ax                    ; 89 46 da
+    jmp near 0851fh                           ; e9 ee 00
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov cx, word [bp-01ch]                    ; 8b 4e e4
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    mov si, strict word 0000ch                ; be 0c 00
+    call 0a02ah                               ; e8 e7 1b
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov word [bp-016h], bx                    ; 89 5e ea
+    mov word [bp-01ah], cx                    ; 89 4e e6
+    mov word [bp-01eh], dx                    ; 89 56 e2
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    test ax, ax                               ; 85 c0
+    jnbe short 0846bh                         ; 77 15
+    je short 0845bh                           ; 74 03
+    jmp near 084e0h                           ; e9 85 00
+    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
+    jnbe short 0846bh                         ; 77 0a
+    jne short 08458h                          ; 75 f5
+    cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
+    jnbe short 0846bh                         ; 77 02
+    jne short 084e0h                          ; 75 75
+    mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
+    mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov cx, word [bp-01ch]                    ; 8b 4e e4
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    mov si, strict word 00006h                ; be 06 00
+    call 0a02ah                               ; e8 a6 1b
+    mov si, word [bp-01eh]                    ; 8b 76 e2
+    add si, dx                                ; 01 d6
+    mov word [bp-036h], si                    ; 89 76 ca
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    adc dx, cx                                ; 11 ca
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    adc dx, bx                                ; 11 da
+    mov word [bp-034h], dx                    ; 89 56 cc
+    mov dx, word [bp-02ah]                    ; 8b 56 d6
+    adc dx, ax                                ; 11 c2
+    mov word [bp-02ch], dx                    ; 89 56 d4
+    mov ax, dx                                ; 89 d0
+    mov bx, word [bp-034h]                    ; 8b 5e cc
+    mov cx, word [bp-024h]                    ; 8b 4e dc
+    mov dx, si                                ; 89 f2
+    mov si, strict word 00008h                ; be 08 00
+    call 0a02ah                               ; e8 76 1b
+    mov word [bp-02eh], bx                    ; 89 5e d2
+    mov word [bp-030h], cx                    ; 89 4e d0
+    mov word [bp-032h], dx                    ; 89 56 ce
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov bx, word [bp-034h]                    ; 8b 5e cc
+    mov cx, word [bp-024h]                    ; 8b 4e dc
+    mov dx, word [bp-036h]                    ; 8b 56 ca
+    mov si, strict word 00010h                ; be 10 00
+    call 0a02ah                               ; e8 5b 1b
+    mov si, word [bp-032h]                    ; 8b 76 ce
+    add si, dx                                ; 01 d6
+    mov dx, word [bp-030h]                    ; 8b 56 d0
+    adc dx, cx                                ; 11 ca
+    mov ax, word [bp-02eh]                    ; 8b 46 d2
+    adc ax, bx                                ; 11 d8
+    jmp short 0851fh                          ; eb 3f
+    test ax, ax                               ; 85 c0
+    jnbe short 084f6h                         ; 77 12
+    jne short 08502h                          ; 75 1c
+    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
+    jnbe short 084f6h                         ; 77 0a
+    jne short 08502h                          ; 75 14
+    cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
+    jnbe short 084f6h                         ; 77 02
+    jne short 08502h                          ; 75 0c
+    mov word [bp-018h], 00080h                ; c7 46 e8 80 00
+    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
+    jmp short 0851bh                          ; eb 19
+    mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
+    mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov cx, word [bp-01ch]                    ; 8b 4e e4
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    mov si, strict word 0000bh                ; be 0b 00
+    call 0a02ah                               ; e8 0f 1b
+    mov si, dx                                ; 89 d6
+    mov dx, cx                                ; 89 ca
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 008h                  ; 04 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    mov es, [bp-020h]                         ; 8e 46 e0
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
+    mov al, byte [bp-022h]                    ; 8a 46 de
+    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov word [es:bx+022h], 0ff04h             ; 26 c7 47 22 04 ff
+    mov word [es:bx+024h], strict word 00000h ; 26 c7 47 24 00 00
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:bx+028h], ax                 ; 26 89 47 28
+    mov byte [es:bx+027h], 001h               ; 26 c6 47 27 01
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:bx+030h], ax                 ; 26 89 47 30
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:bx+034h], ax                 ; 26 89 47 34
+    test dx, dx                               ; 85 d2
+    jne short 08591h                          ; 75 06
+    cmp si, 00400h                            ; 81 fe 00 04
+    jbe short 0859fh                          ; 76 0e
+    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
+    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
+    jmp short 085a7h                          ; eb 08
+    mov word [es:bx+02ch], si                 ; 26 89 77 2c
+    mov word [es:bx+032h], si                 ; 26 89 77 32
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 71 93
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-010h]                       ; ff 76 f0
+    push word [bp-01ch]                       ; ff 76 e4
+    push word [bp-014h]                       ; ff 76 ec
+    push word [bp-026h]                       ; ff 76 da
+    push word [bp-018h]                       ; ff 76 e8
+    push dx                                   ; 52
+    push si                                   ; 56
+    push word [bp-022h]                       ; ff 76 de
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00c18h                               ; 68 18 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 8f 93
+    add sp, strict byte 00018h                ; 83 c4 18
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-020h]                         ; 8e 46 e0
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:bx+03ch], ax                 ; 26 89 47 3c
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov word [es:bx+03ah], ax                 ; 26 89 47 3a
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov word [es:bx+038h], ax                 ; 26 89 47 38
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:bx+036h], ax                 ; 26 89 47 36
+    mov al, byte [es:di+001e2h]               ; 26 8a 85 e2 01
+    mov ah, byte [bp-00ch]                    ; 8a 66 f4
+    add ah, 008h                              ; 80 c4 08
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [es:di+001e2h], al               ; 26 88 85 e2 01
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 25 90
+    mov bl, al                                ; 88 c3
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 24 90
+    inc byte [bp-00ch]                        ; fe 46 f4
+    jmp near 086d1h                           ; e9 91 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 d8 92
+    push word [bp-022h]                       ; ff 76 de
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 00c46h                               ; 68 46 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 0a 93
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 008h                  ; 04 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
+    je short 08673h                           ; 74 05
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 08675h                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    mov es, [bp-020h]                         ; 8e 46 e0
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
+    mov al, byte [bp-022h]                    ; 8a 46 de
+    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov word [es:bx+022h], 00504h             ; 26 c7 47 22 04 05
+    mov byte [es:bx+024h], dl                 ; 26 88 57 24
+    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
+    mov al, byte [es:di+001f3h]               ; 26 8a 85 f3 01
+    mov ah, byte [bp-00ch]                    ; 8a 66 f4
+    add ah, 008h                              ; 80 c4 08
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [es:di+001f3h], al               ; 26 88 85 f3 01
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov es, [bp-020h]                         ; 8e 46 e0
+    mov byte [es:di+0022ch], al               ; 26 88 85 2c 02
+    inc word [bp-022h]                        ; ff 46 de
+    cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
+    jl short 086e8h                           ; 7c 03
+    jmp near 08760h                           ; e9 78 00
+    mov byte [bp-046h], 012h                  ; c6 46 ba 12
+    xor al, al                                ; 30 c0
+    mov byte [bp-045h], al                    ; 88 46 bb
+    mov byte [bp-044h], al                    ; 88 46 bc
+    mov byte [bp-043h], al                    ; 88 46 bd
+    mov byte [bp-042h], 005h                  ; c6 46 be 05
+    mov byte [bp-041h], al                    ; 88 46 bf
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00005h                   ; 6a 05
+    lea dx, [bp-00246h]                       ; 8d 96 ba fd
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00006h                   ; 6a 06
+    mov dl, byte [bp-022h]                    ; 8a 56 de
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-046h]                         ; 8d 5e ba
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    call 07df2h                               ; e8 d7 f6
+    test al, al                               ; 84 c0
+    je short 0872dh                           ; 74 0e
+    push 00b92h                               ; 68 92 0b
+    push 00bb2h                               ; 68 b2 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 3c 92
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov es, [bp-020h]                         ; 8e 46 e0
+    mov al, byte [es:di+0022ch]               ; 26 8a 85 2c 02
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
+    jne short 08749h                          ; 75 0a
+    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
+    jne short 08749h                          ; 75 03
+    jmp near 082e8h                           ; e9 9f fb
+    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
+    jne short 086d1h                          ; 75 81
+    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
+    and AL, strict byte 01fh                  ; 24 1f
+    cmp AL, strict byte 005h                  ; 3c 05
+    jne short 0875dh                          ; 75 03
+    jmp near 08640h                           ; e9 e3 fe
+    jmp near 086d1h                           ; e9 71 ff
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_scsi_init:                                  ; 0xf876a LB 0x66
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f6 8e
+    mov bx, 00122h                            ; bb 22 01
+    mov es, ax                                ; 8e c0
+    mov byte [es:bx+0022ch], 000h             ; 26 c6 87 2c 02 00
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 00432h                            ; ba 32 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 0879ah                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 00433h                            ; ba 33 04
+    out DX, AL                                ; ee
+    mov ax, 00430h                            ; b8 30 04
+    call 082c4h                               ; e8 2a fb
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 00436h                            ; ba 36 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 087b3h                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 00437h                            ; ba 37 04
+    out DX, AL                                ; ee
+    mov ax, 00434h                            ; b8 34 04
+    call 082c4h                               ; e8 11 fb
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 0043ah                            ; ba 3a 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 087cch                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 0043bh                            ; ba 3b 04
+    out DX, AL                                ; ee
+    mov ax, 00438h                            ; b8 38 04
+    call 082c4h                               ; e8 f8 fa
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_ctrl_extract_bits_:                     ; 0xf87d0 LB 0x1c
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, ax                                ; 89 c6
+    and ax, bx                                ; 21 d8
+    and dx, cx                                ; 21 ca
+    mov cl, byte [bp+006h]                    ; 8a 4e 06
+    xor ch, ch                                ; 30 ed
+    jcxz 087e7h                               ; e3 06
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 087e1h                               ; e2 fa
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn 00002h                               ; c2 02 00
+ahci_addr_to_phys_:                          ; 0xf87ec LB 0x1e
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 087fah                               ; e2 fa
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    pop bp                                    ; 5d
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+ahci_port_cmd_sync_:                         ; 0xf880a LB 0x156
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov cx, dx                                ; 89 d1
+    mov dl, bl                                ; 88 da
+    mov es, cx                                ; 8e c1
+    mov al, byte [es:si+00262h]               ; 26 8a 84 62 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0882dh                          ; 75 03
+    jmp near 08958h                           ; e9 2b 01
+    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
+    xor ah, ah                                ; 30 e4
+    xor di, di                                ; 31 ff
+    or di, 00080h                             ; 81 cf 80 00
+    xor dh, dh                                ; 30 f6
+    or di, dx                                 ; 09 d7
+    mov word [es:si], di                      ; 26 89 3c
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    lea ax, [si+00080h]                       ; 8d 84 80 00
+    mov dx, cx                                ; 89 ca
+    call 087ech                               ; e8 92 ff
+    mov es, cx                                ; 8e c1
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 007h                              ; c1 e7 07
+    lea ax, [di+00118h]                       ; 8d 85 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea si, [bx+004h]                         ; 8d 77 04
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 011h                   ; 0c 11
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [di+00138h]                       ; 8d 85 38 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, strict word 00001h                ; b8 01 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00110h                            ; 05 10 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test dh, 040h                             ; f6 c6 40
+    jne short 088ebh                          ; 75 04
+    test AL, strict byte 001h                 ; a8 01
+    je short 088efh                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 088f1h                          ; eb 02
+    xor al, al                                ; 30 c0
+    test al, al                               ; 84 c0
+    je short 088beh                           ; 74 c9
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 007h                              ; c1 e7 07
+    lea ax, [di+00110h]                       ; 8d 85 10 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea si, [bx+004h]                         ; 8d 77 04
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [di+00118h]                       ; 8d 85 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_cmd_data_:                              ; 0xf8960 LB 0x267
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    xor di, di                                ; 31 ff
+    mov es, dx                                ; 8e c2
+    mov bx, ax                                ; 89 c3
+    mov ax, word [es:bx+00232h]               ; 26 8b 87 32 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], di                    ; 89 7e f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:bx+010h]                 ; 26 8b 47 10
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov ax, 00080h                            ; b8 80 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a03ah                               ; e8 9c 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:di+00082h], al               ; 26 88 85 82 00
+    mov byte [es:di+00083h], 000h             ; 26 c6 85 83 00 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00084h], al               ; 26 88 85 84 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00008h                ; be 08 00
+    call 0a02ah                               ; e8 48 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00010h                ; be 10 00
+    call 0a02ah                               ; e8 22 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
+    mov byte [es:di+00087h], 040h             ; 26 c6 85 87 00 40
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 0a02ah                               ; e8 f6 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00020h                ; be 20 00
+    call 0a02ah                               ; e8 d0 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00028h                ; be 28 00
+    call 0a02ah                               ; e8 aa 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
+    mov byte [es:di+0008bh], 000h             ; 26 c6 85 8b 00 00
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov byte [es:di+0008ch], al               ; 26 88 85 8c 00
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [es:di+0008dh], al               ; 26 88 85 8d 00
+    mov word [es:di+00276h], strict word 00010h ; 26 c7 85 76 02 10 00
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    xor dx, dx                                ; 31 d2
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    xor cx, cx                                ; 31 c9
+    call 09fe9h                               ; e8 34 15
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov bx, word [es:bx+008h]                 ; 26 8b 5f 08
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
+    mov ax, 0026ah                            ; b8 6a 02
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09f01h                               ; e8 30 14
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
+    add dx, strict byte 0ffffh                ; 83 c2 ff
+    mov ax, word [es:di+00280h]               ; 26 8b 85 80 02
+    adc ax, strict word 0ffffh                ; 15 ff ff
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, 004h                              ; c1 e3 04
+    mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
+    mov word [es:bx+0010eh], ax               ; 26 89 87 0e 01
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, 004h                              ; c1 e3 04
+    mov ax, word [es:di+0027ah]               ; 26 8b 85 7a 02
+    mov dx, word [es:di+0027ch]               ; 26 8b 95 7c 02
+    mov word [es:bx+00100h], ax               ; 26 89 87 00 01
+    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
+    test ax, ax                               ; 85 c0
+    je short 08b63h                           ; 74 3b
+    dec ax                                    ; 48
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, 004h                              ; c1 e3 04
+    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
+    mov word [es:bx+0010eh], di               ; 26 89 bf 0e 01
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, 004h                              ; c1 e3 04
+    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
+    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
+    mov word [es:bx+00100h], dx               ; 26 89 97 00 01
+    mov word [es:bx+00102h], ax               ; 26 89 87 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 035h                  ; 3c 35
+    jne short 08b70h                          ; 75 06
+    mov byte [bp-008h], 040h                  ; c6 46 f8 40
+    jmp short 08b87h                          ; eb 17
+    cmp AL, strict byte 0a0h                  ; 3c a0
+    jne short 08b83h                          ; 75 0f
+    or byte [bp-008h], 020h                   ; 80 4e f8 20
+    les bx, [bp-00eh]                         ; c4 5e f2
+    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
+    jmp short 08b87h                          ; eb 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    or byte [bp-008h], 005h                   ; 80 4e f8 05
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    call 0880ah                               ; e8 71 fc
+    mov cx, word [bp-00ch]                    ; 8b 4e f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    add bx, 00240h                            ; 81 c3 40 02
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, 0026ah                            ; 05 6a 02
+    mov dx, cx                                ; 89 ca
+    call 09f78h                               ; e8 ca 13
+    mov es, cx                                ; 8e c1
+    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
+    test al, al                               ; 84 c0
+    je short 08bbdh                           ; 74 05
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 08bbfh                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_port_deinit_current_:                   ; 0xf8bc7 LB 0x180
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov di, ax                                ; 89 c7
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov es, dx                                ; 8e c2
+    mov si, word [es:di+00260h]               ; 26 8b b5 60 02
+    mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 08c48h                           ; 74 5f
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0eeh                  ; 24 ee
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test ax, 0c011h                           ; a9 11 c0
+    je short 08c4bh                           ; 74 07
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08c4dh                          ; eb 05
+    jmp near 08d3eh                           ; e9 f3 00
+    xor al, al                                ; 30 c0
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 08c1bh                           ; 74 ca
+    mov cx, strict word 00020h                ; b9 20 00
+    xor bx, bx                                ; 31 db
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    call 0a03ah                               ; e8 dc 13
+    lea ax, [di+00080h]                       ; 8d 85 80 00
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    call 0a03ah                               ; e8 cd 13
+    lea ax, [di+00200h]                       ; 8d 85 00 02
+    mov cx, strict word 00060h                ; b9 60 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    call 0a03ah                               ; e8 be 13
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    add ax, 00108h                            ; 05 08 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    add ax, 0010ch                            ; 05 0c 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    add ax, 00104h                            ; 05 04 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    add ax, 00114h                            ; 05 14 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov byte [es:di+00262h], 0ffh             ; 26 c6 85 62 02 ff
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_port_init_:                             ; 0xf8d47 LB 0x24d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    call 08bc7h                               ; e8 6c fe
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    add bx, strict byte 00004h                ; 83 c3 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0eeh                  ; 24 ee
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test ax, 0c011h                           ; a9 11 c0
+    je short 08dcch                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08dceh                          ; eb 02
+    xor al, al                                ; 30 c0
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 08d97h                           ; 74 c5
+    mov cx, strict word 00020h                ; b9 20 00
+    xor bx, bx                                ; 31 db
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a03ah                               ; e8 5b 12
+    lea ax, [si+00080h]                       ; 8d 84 80 00
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a03ah                               ; e8 4c 12
+    lea di, [si+00200h]                       ; 8d bc 00 02
+    mov cx, strict word 00060h                ; b9 60 00
+    xor bx, bx                                ; 31 db
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a03ah                               ; e8 3b 12
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    sal bx, 007h                              ; c1 e3 07
+    lea ax, [bx+00108h]                       ; 8d 87 08 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov cx, word [es:si+00260h]               ; 26 8b 8c 60 02
+    mov word [bp-00ch], cx                    ; 89 4e f4
+    mov cx, dx                                ; 89 d1
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 087ech                               ; e8 bf f9
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+0010ch]                       ; 8d 87 0c 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00100h]                       ; 8d 87 00 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 087ech                               ; e8 53 f9
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00104h]                       ; 8d 87 04 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00114h]                       ; 8d 87 14 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00110h]                       ; 8d 87 10 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00130h]                       ; 8d 87 30 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:si+00262h], al               ; 26 88 84 62 02
+    mov byte [es:si+00263h], 000h             ; 26 c6 84 63 02 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+@ahci_read_sectors:                          ; 0xf8f94 LB 0xa8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    les bx, [bp+004h]                         ; c4 5e 04
+    mov bl, byte [es:bx+00ch]                 ; 26 8a 5f 0c
+    xor bh, bh                                ; 30 ff
+    sub bx, strict byte 0000ch                ; 83 eb 0c
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jbe short 08fbah                          ; 76 0f
+    push bx                                   ; 53
+    push 00c62h                               ; 68 62 0c
+    push 00c74h                               ; 68 74 0c
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 af 89
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    les si, [bp+004h]                         ; c4 76 04
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, dx                                ; 8e c2
+    mov word [es:di+00268h], ax               ; 26 89 85 68 02
+    mov es, [bp+006h]                         ; 8e 46 06
+    add bx, si                                ; 01 f3
+    mov bl, byte [es:bx+0022dh]               ; 26 8a 9f 2d 02
+    xor bh, bh                                ; 30 ff
+    mov di, si                                ; 89 f7
+    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
+    xor ax, ax                                ; 31 c0
+    call 08d47h                               ; e8 60 fd
+    mov bx, strict word 00025h                ; bb 25 00
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    call 08960h                               ; e8 6e f9
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
+    mov word [es:bx+018h], ax                 ; 26 89 47 18
+    mov cx, ax                                ; 89 c1
+    sal cx, 009h                              ; c1 e1 09
+    shr cx, 1                                 ; d1 e9
+    mov di, word [es:di+008h]                 ; 26 8b 7d 08
+    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
+    mov si, di                                ; 89 fe
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    xor bx, bx                                ; 31 db
+    les di, [bp+004h]                         ; c4 7e 04
+    mov es, [es:di+00232h]                    ; 26 8e 85 32 02
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@ahci_write_sectors:                         ; 0xf903c LB 0x86
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    mov es, cx                                ; 8e c1
+    mov dl, byte [es:si+00ch]                 ; 26 8a 54 0c
+    xor dh, dh                                ; 30 f6
+    sub dx, strict byte 0000ch                ; 83 ea 0c
+    cmp dx, strict byte 00004h                ; 83 fa 04
+    jbe short 09066h                          ; 76 0f
+    push dx                                   ; 52
+    push 00c93h                               ; 68 93 0c
+    push 00c74h                               ; 68 74 0c
+    push strict byte 00007h                   ; 6a 07
+    call 01966h                               ; e8 03 89
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor bx, bx                                ; 31 db
+    mov es, cx                                ; 8e c1
+    mov di, word [es:si+00232h]               ; 26 8b bc 32 02
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, di                                ; 8e c7
+    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
+    mov es, cx                                ; 8e c1
+    mov bx, si                                ; 89 f3
+    add bx, dx                                ; 01 d3
+    mov bl, byte [es:bx+0022dh]               ; 26 8a 9f 2d 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    xor ax, ax                                ; 31 c0
+    call 08d47h                               ; e8 b6 fc
+    mov bx, strict word 00035h                ; bb 35 00
+    mov ax, si                                ; 89 f0
+    mov dx, cx                                ; 89 ca
+    call 08960h                               ; e8 c5 f8
+    mov dx, ax                                ; 89 c2
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
+    mov word [es:si+018h], ax                 ; 26 89 44 18
+    xor bx, bx                                ; 31 db
+    mov es, [es:si+00232h]                    ; 26 8e 84 32 02
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+ahci_cmd_packet_:                            ; 0xf90c2 LB 0x18a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    push ax                                   ; 50
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-012h], bx                    ; 89 5e ee
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 8f 85
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-008h], ax                    ; 89 46 f8
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 09108h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 2f 88
+    push 00ca6h                               ; 68 a6 0c
+    push 00cb6h                               ; 68 b6 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 67 88
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 09243h                           ; e9 3b 01
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    jne short 09102h                          ; 75 f4
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov cx, strict word 00008h                ; b9 08 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 09117h                               ; e2 fa
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si], ax                      ; 26 89 04
+    mov word [es:si+002h], dx                 ; 26 89 54 02
+    mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    xor cx, cx                                ; 31 c9
+    call 09fb0h                               ; e8 60 0e
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    xor di, di                                ; 31 ff
+    mov ax, word [es:si+00232h]               ; 26 8b 84 32 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], di                    ; 89 7e f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    sub word [bp-014h], strict byte 0000ch    ; 83 6e ec 0c
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+00268h], ax               ; 26 89 85 68 02
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    add bx, si                                ; 01 f3
+    mov al, byte [es:bx+0022dh]               ; 26 8a 87 2d 02
+    xor ah, ah                                ; 30 e4
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    mov bx, ax                                ; 89 c3
+    xor al, al                                ; 30 c0
+    call 08d47h                               ; e8 b8 fb
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov ax, 000c0h                            ; b8 c0 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a047h                               ; e8 a3 0e
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov word [es:si+01ah], di                 ; 26 89 7c 1a
+    mov word [es:si+01ch], di                 ; 26 89 7c 1c
+    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
+    test ax, ax                               ; 85 c0
+    je short 091e2h                           ; 74 27
+    dec ax                                    ; 48
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+0010ch], ax               ; 26 89 85 0c 01
+    mov word [es:di+0010eh], di               ; 26 89 bd 0e 01
+    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
+    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
+    mov word [es:di+00100h], dx               ; 26 89 95 00 01
+    mov word [es:di+00102h], ax               ; 26 89 85 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov bx, 000a0h                            ; bb a0 00
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    call 08960h                               ; e8 73 f7
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    mov bx, word [es:si+01ah]                 ; 26 8b 5c 1a
+    mov cx, ax                                ; 89 c1
+    shr cx, 1                                 ; d1 e9
+    rcr bx, 1                                 ; d1 db
+    mov di, word [es:si+008h]                 ; 26 8b 7c 08
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov cx, bx                                ; 89 d9
+    mov si, di                                ; 89 fe
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    or ax, word [es:bx+004h]                  ; 26 0b 47 04
+    jne short 09241h                          ; 75 05
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 09243h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+ahci_port_detect_device_:                    ; 0xf924c LB 0x4e3
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 00224h                            ; 81 ec 24 02
+    mov si, ax                                ; 89 c6
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov byte [bp-00ch], bl                    ; 88 5e f4
+    mov cl, bl                                ; 88 d9
+    xor ch, ch                                ; 30 ed
+    mov bx, cx                                ; 89 cb
+    call 08d47h                               ; e8 e0 fa
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 fc 83
+    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
+    mov word [bp-016h], ax                    ; 89 46 ea
+    sal cx, 007h                              ; c1 e1 07
+    mov word [bp-024h], cx                    ; 89 4e dc
+    mov ax, cx                                ; 89 c8
+    add ax, 0012ch                            ; 05 2c 01
+    cwd                                       ; 99
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    mov cx, di                                ; 89 f9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 00001h                ; b8 01 00
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    mov ax, bx                                ; 89 d8
+    mov cx, di                                ; 89 f9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    add ax, 00128h                            ; 05 28 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    call 087d0h                               ; e8 b5 f4
+    test ax, ax                               ; 85 c0
+    jne short 09322h                          ; 75 03
+    jmp near 09727h                           ; e9 05 04
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    sal ax, 007h                              ; c1 e0 07
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    add ax, 00128h                            ; 05 28 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov di, dx                                ; 89 d7
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    call 087d0h                               ; e8 67 f4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 09322h                           ; 74 b4
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov dx, di                                ; 89 fa
+    call 087d0h                               ; e8 53 f4
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jne short 0931fh                          ; 75 9d
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    add ax, 00130h                            ; 05 30 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov al, byte [es:bx+00231h]               ; 26 8a 87 31 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 004h                  ; 3c 04
+    jc short 093cch                           ; 72 03
+    jmp near 09727h                           ; e9 5b 03
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    add bx, strict byte 00004h                ; 83 c3 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 010h                   ; 0c 10
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    add ax, 00124h                            ; 05 24 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    add cl, 00ch                              ; 80 c1 0c
+    test dx, dx                               ; 85 d2
+    jne short 09492h                          ; 75 54
+    cmp ax, 00101h                            ; 3d 01 01
+    jne short 09492h                          ; 75 4f
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00
+    mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov bx, 000ech                            ; bb ec 00
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov dx, es                                ; 8c c2
+    call 08960h                               ; e8 dd f4
+    mov byte [bp-00ah], cl                    ; 88 4e f6
+    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
+    je short 09495h                           ; 74 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 09497h                          ; eb 05
+    jmp near 09665h                           ; e9 d0 01
+    xor ax, ax                                ; 31 c0
+    mov dl, al                                ; 88 c2
+    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [bp-00224h]                  ; 8b 86 dc fd
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-0021eh]                  ; 8b 86 e2 fd
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov di, word [bp-001b2h]                  ; 8b be 4e fe
+    mov ax, word [bp-001b0h]                  ; 8b 86 50 fe
+    mov word [bp-014h], ax                    ; 89 46 ec
+    xor ax, ax                                ; 31 c0
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
+    jne short 094e6h                          ; 75 1e
+    cmp di, strict byte 0ffffh                ; 83 ff ff
+    jne short 094e6h                          ; 75 19
+    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-0015eh]                  ; 8b 86 a2 fe
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp-00160h]                  ; 8b 86 a0 fe
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov di, word [bp-00162h]                  ; 8b be 9e fe
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov es, [bp-016h]                         ; 8e 46 ea
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov byte [es:bx+0022dh], al               ; 26 88 87 2d 02
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    add si, ax                                ; 01 c6
+    mov word [es:si+022h], 0ff05h             ; 26 c7 44 22 05 ff
+    mov byte [es:si+024h], dl                 ; 26 88 54 24
+    mov byte [es:si+025h], 000h               ; 26 c6 44 25 00
+    mov word [es:si+028h], 00200h             ; 26 c7 44 28 00 02
+    mov byte [es:si+027h], 001h               ; 26 c6 44 27 01
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:si+03ch], ax                 ; 26 89 44 3c
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:si+03ah], ax                 ; 26 89 44 3a
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:si+038h], ax                 ; 26 89 44 38
+    mov word [es:si+036h], di                 ; 26 89 7c 36
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:si+030h], ax                 ; 26 89 44 30
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:si+032h], ax                 ; 26 89 44 32
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:si+034h], ax                 ; 26 89 44 34
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 09561h                           ; 72 0c
+    jbe short 09569h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 09571h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0956dh                           ; 74 0e
+    jmp short 095b9h                          ; eb 58
+    test al, al                               ; 84 c0
+    jne short 095b9h                          ; 75 54
+    mov DL, strict byte 040h                  ; b2 40
+    jmp short 09573h                          ; eb 0a
+    mov DL, strict byte 048h                  ; b2 48
+    jmp short 09573h                          ; eb 06
+    mov DL, strict byte 050h                  ; b2 50
+    jmp short 09573h                          ; eb 02
+    mov DL, strict byte 058h                  ; b2 58
+    mov bl, dl                                ; 88 d3
+    add bl, 007h                              ; 80 c3 07
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 016ach                               ; e8 2d 81
+    test al, al                               ; 84 c0
+    je short 095b9h                           ; 74 36
+    mov al, dl                                ; 88 d0
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 20 81
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    sal cx, 008h                              ; c1 e1 08
+    mov al, dl                                ; 88 d0
+    call 016ach                               ; e8 14 81
+    xor ah, ah                                ; 30 e4
+    add ax, cx                                ; 01 c8
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 04 81
+    xor ah, ah                                ; 30 e4
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov ax, bx                                ; 89 d8
+    call 016ach                               ; e8 fa 80
+    xor ah, ah                                ; 30 e4
+    mov word [bp-026h], ax                    ; 89 46 da
+    jmp short 095cbh                          ; eb 12
+    push word [bp-01eh]                       ; ff 76 e2
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-014h]                       ; ff 76 ec
+    push di                                   ; 57
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02ah]                         ; 8d 46 d6
+    call 059d2h                               ; e8 07 c4
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 4d 83
+    push word [bp-01eh]                       ; ff 76 e2
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-014h]                       ; ff 76 ec
+    push di                                   ; 57
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    push ax                                   ; 50
+    mov ax, word [bp-02ah]                    ; 8b 46 d6
+    push ax                                   ; 50
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    push ax                                   ; 50
+    push word [bp-020h]                       ; ff 76 e0
+    push word [bp-022h]                       ; ff 76 de
+    push word [bp-018h]                       ; ff 76 e8
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    push ax                                   ; 50
+    push 00cd6h                               ; 68 d6 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 5f 83
+    add sp, strict byte 0001ch                ; 83 c4 1c
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov di, word [bp-00eh]                    ; 8b 7e f2
+    add di, ax                                ; 01 c7
+    mov es, [bp-016h]                         ; 8e 46 ea
+    lea di, [di+02ah]                         ; 8d 7d 2a
+    push DS                                   ; 1e
+    push SS                                   ; 16
+    pop DS                                    ; 1f
+    lea si, [bp-02ah]                         ; 8d 76 d6
+    movsw                                     ; a5
+    movsw                                     ; a5
+    movsw                                     ; a5
+    pop DS                                    ; 1f
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov dl, byte [es:bx+001e2h]               ; 26 8a 97 e2 01
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    add AL, strict byte 00ch                  ; 04 0c
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
+    db  0feh, 0c2h
+    ; inc dl                                    ; fe c2
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov byte [es:bx+001e2h], dl               ; 26 88 97 e2 01
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 fd 7f
+    mov bl, al                                ; 88 c3
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 fc 7f
+    jmp near 09716h                           ; e9 b1 00
+    cmp dx, 0eb14h                            ; 81 fa 14 eb
+    jne short 096bfh                          ; 75 54
+    cmp ax, 00101h                            ; 3d 01 01
+    jne short 096bfh                          ; 75 4f
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00
+    mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov bx, 000a1h                            ; bb a1 00
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov dx, es                                ; 8c c2
+    call 08960h                               ; e8 b0 f2
+    mov byte [bp-00ah], cl                    ; 88 4e f6
+    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
+    je short 096c1h                           ; 74 07
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 096c3h                          ; eb 04
+    jmp short 09716h                          ; eb 55
+    xor dx, dx                                ; 31 d2
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov es, [bp-016h]                         ; 8e 46 ea
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov byte [es:bx+0022dh], al               ; 26 88 87 2d 02
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    add si, ax                                ; 01 c6
+    mov word [es:si+022h], 00505h             ; 26 c7 44 22 05 05
+    mov byte [es:si+024h], dl                 ; 26 88 54 24
+    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov dl, byte [es:bx+001f3h]               ; 26 8a 97 f3 01
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    add AL, strict byte 00ch                  ; 04 0c
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
+    db  0feh, 0c2h
+    ; inc dl                                    ; fe c2
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov byte [es:bx+001f3h], dl               ; 26 88 97 f3 01
+    inc byte [bp-008h]                        ; fe 46 f8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov byte [es:bx+00231h], al               ; 26 88 87 31 02
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_mem_alloc_:                             ; 0xf972f LB 0x43
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, 00413h                            ; ba 13 04
+    xor ax, ax                                ; 31 c0
+    call 0166ch                               ; e8 2d 7f
+    test ax, ax                               ; 85 c0
+    je short 09768h                           ; 74 25
+    dec ax                                    ; 48
+    mov bx, ax                                ; 89 c3
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 0000ah                ; b9 0a 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 0974bh                               ; e2 fa
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    mov cx, strict word 00004h                ; b9 04 00
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    loop 09758h                               ; e2 fa
+    mov dx, 00413h                            ; ba 13 04
+    xor ax, ax                                ; 31 c0
+    call 0167ah                               ; e8 14 7f
+    mov ax, si                                ; 89 f0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_hba_init_:                              ; 0xf9772 LB 0x16d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 e4 7e
+    mov bx, 00122h                            ; bb 22 01
+    mov di, ax                                ; 89 c7
+    mov ax, strict word 00010h                ; b8 10 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    call 0972fh                               ; e8 83 ff
+    mov word [bp-010h], ax                    ; 89 46 f0
+    test ax, ax                               ; 85 c0
+    jne short 097b6h                          ; 75 03
+    jmp near 098beh                           ; e9 08 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, di                                ; 8e c7
+    mov word [es:bx+00232h], ax               ; 26 89 87 32 02
+    mov byte [es:bx+00231h], 000h             ; 26 c6 87 31 02 00
+    xor bx, bx                                ; 31 db
+    mov es, ax                                ; 8e c0
+    mov byte [es:bx+00262h], 0ffh             ; 26 c6 87 62 02 ff
+    mov word [es:bx+00260h], si               ; 26 89 b7 60 02
+    mov word [es:bx+00264h], 0c000h           ; 26 c7 87 64 02 00 c0
+    mov word [es:bx+00266h], strict word 0000ch ; 26 c7 87 66 02 0c 00
+    mov ax, strict word 00004h                ; b8 04 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, strict word 00004h                ; b8 04 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test AL, strict byte 001h                 ; a8 01
+    jne short 09810h                          ; 75 de
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0001fh                ; bb 1f 00
+    xor cx, cx                                ; 31 c9
+    call 087d0h                               ; e8 7a ef
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    jmp short 09882h                          ; eb 21
+    xor al, al                                ; 30 c0
+    test al, al                               ; 84 c0
+    je short 09879h                           ; 74 12
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    xor ax, ax                                ; 31 c0
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    call 0924ch                               ; e8 d8 f9
+    dec byte [bp-00ch]                        ; fe 4e f4
+    je short 098bch                           ; 74 43
+    inc byte [bp-00eh]                        ; fe 46 f2
+    cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
+    jnc short 098bch                          ; 73 3a
+    mov cl, byte [bp-00eh]                    ; 8a 4e f2
+    xor ch, ch                                ; 30 ed
+    mov bx, strict word 00001h                ; bb 01 00
+    xor di, di                                ; 31 ff
+    jcxz 09894h                               ; e3 06
+    sal bx, 1                                 ; d1 e3
+    rcl di, 1                                 ; d1 d7
+    loop 0988eh                               ; e2 fa
+    mov ax, strict word 0000ch                ; b8 0c 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test dx, di                               ; 85 fa
+    jne short 098b8h                          ; 75 04
+    test ax, bx                               ; 85 d8
+    je short 09861h                           ; 74 a9
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 09863h                          ; eb a7
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0c7h, 099h, 0a5h, 099h, 0abh, 099h, 0b1h, 099h, 0b7h
+    db  099h, 0bdh, 099h, 0c3h, 099h, 0c7h, 099h
+_ahci_init:                                  ; 0xf98df LB 0x119
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov ax, 00601h                            ; b8 01 06
+    mov dx, strict word 00001h                ; ba 01 00
+    call 09e13h                               ; e8 24 05
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    je short 09942h                           ; 74 4c
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    xor dh, dh                                ; 30 f6
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 00034h                ; bb 34 00
+    call 09e3eh                               ; e8 33 05
+    mov cl, al                                ; 88 c1
+    test cl, cl                               ; 84 c9
+    je short 09945h                           ; 74 34
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00fh], bh                    ; 88 7e f1
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-00bh], bh                    ; 88 7e f5
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    call 09e3eh                               ; e8 0e 05
+    cmp AL, strict byte 012h                  ; 3c 12
+    je short 09945h                           ; 74 11
+    mov bl, cl                                ; 88 cb
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    jmp short 09908h                          ; eb c6
+    jmp near 099f2h                           ; e9 ad 00
+    test cl, cl                               ; 84 c9
+    je short 09942h                           ; 74 f9
+    add cl, 002h                              ; 80 c1 02
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-00dh], bh                    ; 88 7e f3
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-009h], bh                    ; 88 7e f7
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 09e3eh                               ; e8 d3 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 09942h                          ; 75 d3
+    mov byte [bp-004h], 000h                  ; c6 46 fc 00
+    mov bl, cl                                ; 88 cb
+    add bl, 002h                              ; 80 c3 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 09e6ch                               ; e8 e9 04
+    mov dx, ax                                ; 89 c2
+    and ax, strict word 0000fh                ; 25 0f 00
+    sub ax, strict word 00004h                ; 2d 04 00
+    cmp ax, strict word 0000bh                ; 3d 0b 00
+    jnbe short 099c7h                         ; 77 37
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00008h                ; b9 08 00
+    mov di, 098c8h                            ; bf c8 98
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di-06731h]               ; 2e 8b 85 cf 98
+    jmp ax                                    ; ff e0
+    mov byte [bp-004h], 010h                  ; c6 46 fc 10
+    jmp short 099c7h                          ; eb 1c
+    mov byte [bp-004h], 014h                  ; c6 46 fc 14
+    jmp short 099c7h                          ; eb 16
+    mov byte [bp-004h], 018h                  ; c6 46 fc 18
+    jmp short 099c7h                          ; eb 10
+    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
+    jmp short 099c7h                          ; eb 0a
+    mov byte [bp-004h], 020h                  ; c6 46 fc 20
+    jmp short 099c7h                          ; eb 04
+    mov byte [bp-004h], 024h                  ; c6 46 fc 24
+    mov cx, dx                                ; 89 d1
+    shr cx, 004h                              ; c1 e9 04
+    sal cx, 002h                              ; c1 e1 02
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test al, al                               ; 84 c0
+    je short 099f2h                           ; 74 1c
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 09e96h                               ; e8 af 04
+    test AL, strict byte 001h                 ; a8 01
+    je short 099f2h                           ; 74 07
+    and AL, strict byte 0f0h                  ; 24 f0
+    add ax, cx                                ; 01 c8
+    call 09772h                               ; e8 80 fd
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+apm_out_str_:                                ; 0xf99f8 LB 0x39
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    cmp byte [bx], 000h                       ; 80 3f 00
+    je short 09a0dh                           ; 74 0a
+    mov al, byte [bx]                         ; 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [bx]                         ; 8a 07
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    jne short 09a05h                          ; 75 f8
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    push dx                                   ; 52
+    call far 09a64h:09adah                    ; 9a da 9a 64 9a
+    jnle short 099b5h                         ; 7f 9a
+    ficomp dword [bp+si-06556h]               ; da 9a aa 9a
+    ficomp dword [bp+si-06520h]               ; da 9a e0 9a
+    scasw                                     ; af
+    call far 09aafh:09aafh                    ; 9a af 9a af 9a
+    pop DS                                    ; 1f
+    wait                                      ; 9b
+    scasw                                     ; af
+    call far 09b18h:09aafh                    ; 9a af 9a 18 9b
+_apm_function:                               ; 0xf9a31 LB 0xf3
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 0000eh                ; 3d 0e 00
+    jnbe short 09aafh                         ; 77 6c
+    mov bx, ax                                ; 89 c3
+    add bx, ax                                ; 01 c3
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    or dl, 001h                               ; 80 ca 01
+    jmp word [cs:bx-065edh]                   ; 2e ff a7 13 9a
+    mov word [bp+012h], 00102h                ; c7 46 12 02 01
+    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
+    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
+    jmp near 09adah                           ; e9 76 00
+    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
+    mov word [bp+00ch], 0a0b4h                ; c7 46 0c b4 a0
+    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
+    mov ax, strict word 0fff0h                ; b8 f0 ff
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+004h], ax                    ; 89 46 04
+    jmp near 09adah                           ; e9 5b 00
+    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
+    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    mov ax, strict word 0fff0h                ; b8 f0 ff
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+004h], ax                    ; 89 46 04
+    xor bx, bx                                ; 31 db
+    sal ebx, 010h                             ; 66 c1 e3 10
+    mov si, ax                                ; 89 c6
+    sal esi, 010h                             ; 66 c1 e6 10
+    jmp near 09adah                           ; e9 30 00
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp near 09adah                           ; e9 2b 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 69 7e
+    push word [bp+00ch]                       ; ff 76 0c
+    push word [bp+012h]                       ; ff 76 12
+    push 00d29h                               ; 68 29 0d
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 9e 7e
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+012h], ax                    ; 89 46 12
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
+    je short 09b05h                           ; 74 1f
+    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
+    je short 09afdh                           ; 74 11
+    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
+    jne short 09b0dh                          ; 75 1b
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d10h                            ; b8 10 0d
+    call 099f8h                               ; e8 fd fe
+    jmp short 09adah                          ; eb dd
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d18h                            ; b8 18 0d
+    jmp short 09af8h                          ; eb f3
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d20h                            ; b8 20 0d
+    jmp short 09af8h                          ; eb eb
+    or ah, 00ah                               ; 80 cc 0a
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp short 09adah                          ; eb c2
+    mov word [bp+012h], 00102h                ; c7 46 12 02 01
+    jmp short 09adah                          ; eb bb
+    or ah, 080h                               ; 80 cc 80
+    jmp short 09b10h                          ; eb ec
+pci16_select_reg_:                           ; 0xf9b24 LB 0x24
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    and dl, 0fch                              ; 80 e2 fc
+    mov bx, dx                                ; 89 d3
+    mov dx, 00cf8h                            ; ba f8 0c
+    movzx eax, ax                             ; 66 0f b7 c0
+    sal eax, 008h                             ; 66 c1 e0 08
+    or eax, strict dword 080000000h           ; 66 0d 00 00 00 80
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, eax                               ; 66 ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci16_find_device_:                          ; 0xf9b48 LB 0xf9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov si, bx                                ; 89 de
+    mov di, cx                                ; 89 cf
+    test cx, cx                               ; 85 c9
+    xor bx, bx                                ; 31 db
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    test bl, 007h                             ; f6 c3 07
+    jne short 09b90h                          ; 75 2d
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, bx                                ; 89 d8
+    call 09b24h                               ; e8 b9 ff
+    mov dx, 00cfeh                            ; ba fe 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 09b7eh                          ; 75 06
+    add bx, strict byte 00008h                ; 83 c3 08
+    jmp near 09c11h                           ; e9 93 00
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 09b8bh                           ; 74 07
+    mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
+    jmp short 09b90h                          ; eb 05
+    mov word [bp-010h], strict word 00008h    ; c7 46 f0 08 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 007h                  ; 24 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 09bb8h                          ; 75 1f
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    test ax, ax                               ; 85 c0
+    jne short 09bb8h                          ; 75 16
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, bx                                ; 89 d8
+    call 09b24h                               ; e8 7a ff
+    mov dx, 00cfeh                            ; ba fe 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp al, byte [bp-008h]                    ; 3a 46 f8
+    jbe short 09bb8h                          ; 76 03
+    mov byte [bp-008h], al                    ; 88 46 f8
+    test di, di                               ; 85 ff
+    je short 09bc1h                           ; 74 05
+    mov dx, strict word 00008h                ; ba 08 00
+    jmp short 09bc3h                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    mov ax, bx                                ; 89 d8
+    call 09b24h                               ; e8 5c ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
+    test di, di                               ; 85 ff
+    je short 09bf2h                           ; 74 0f
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 09be6h                               ; e2 fa
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jne short 09c02h                          ; 75 08
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    je short 09c08h                           ; 74 06
+    cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
+    je short 09c0eh                           ; 74 06
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 09c22h                           ; 74 14
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov dx, bx                                ; 89 da
+    shr dx, 008h                              ; c1 ea 08
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    cmp dx, ax                                ; 39 c2
+    jnbe short 09c22h                         ; 77 03
+    jmp near 09b5eh                           ; e9 3c ff
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    jne short 09c2bh                          ; 75 04
+    mov ax, bx                                ; 89 d8
+    jmp short 09c2eh                          ; eb 03
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    and bl, byte [di-062c5h]                  ; 22 9d 3b 9d
+    dec bp                                    ; 4d
+    popfw                                     ; 9d
+    popaw                                     ; 61
+    popfw                                     ; 9d
+    jnc short 09bdch                          ; 73 9d
+    db  086h
+    popfw                                     ; 9d
+_pci16_function:                             ; 0xf9c41 LB 0x1d2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    and word [bp+020h], 000ffh                ; 81 66 20 ff 00
+    and word [bp+02ch], strict byte 0fffeh    ; 83 66 2c fe
+    mov bx, word [bp+020h]                    ; 8b 5e 20
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    cmp bx, strict byte 00003h                ; 83 fb 03
+    jc short 09c73h                           ; 72 13
+    jbe short 09cc6h                          ; 76 64
+    cmp bx, strict byte 0000eh                ; 83 fb 0e
+    je short 09cceh                           ; 74 67
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jc short 09c7dh                           ; 72 11
+    cmp bx, strict byte 0000dh                ; 83 fb 0d
+    jbe short 09cd1h                          ; 76 60
+    jmp short 09c7dh                          ; eb 0a
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    je short 09c9ch                           ; 74 24
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    je short 09c80h                           ; 74 03
+    jmp near 09ddfh                           ; e9 5f 01
+    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
+    mov word [bp+014h], 00210h                ; c7 46 14 10 02
+    mov word [bp+01ch], strict word 00000h    ; c7 46 1c 00 00
+    mov word [bp+018h], 04350h                ; c7 46 18 50 43
+    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
+    jmp near 09e0ch                           ; e9 70 01
+    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
+    jne short 09ca8h                          ; 75 06
+    or ah, 083h                               ; 80 cc 83
+    jmp near 09e05h                           ; e9 5d 01
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov dx, word [bp+01ch]                    ; 8b 56 1c
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor cx, cx                                ; 31 c9
+    call 09b48h                               ; e8 92 fe
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 09cc8h                          ; 75 0d
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 09e05h                           ; e9 3f 01
+    jmp short 09cd3h                          ; eb 0b
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 09e0ch                           ; e9 3e 01
+    jmp near 09d9ah                           ; e9 c9 00
+    jmp short 09cf8h                          ; eb 25
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+01eh]                    ; 8b 56 1e
+    mov cx, strict word 00001h                ; b9 01 00
+    call 09b48h                               ; e8 66 fe
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 09cf2h                          ; 75 0b
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 09e05h                           ; e9 13 01
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 09e0ch                           ; e9 14 01
+    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
+    jc short 09d05h                           ; 72 06
+    or ah, 087h                               ; 80 cc 87
+    jmp near 09e05h                           ; e9 00 01
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 09b24h                               ; e8 16 fe
+    mov bx, word [bp+020h]                    ; 8b 5e 20
+    xor bh, bh                                ; 30 ff
+    sub bx, strict byte 00008h                ; 83 eb 08
+    cmp bx, strict byte 00005h                ; 83 fb 05
+    jnbe short 09d83h                         ; 77 68
+    add bx, bx                                ; 01 db
+    jmp word [cs:bx-063cbh]                   ; 2e ff a7 35 9c
+    mov bx, word [bp+01ch]                    ; 8b 5e 1c
+    xor bl, bl                                ; 30 db
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    and dx, strict byte 00003h                ; 83 e2 03
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    or bx, ax                                 ; 09 c3
+    mov word [bp+01ch], bx                    ; 89 5e 1c
+    jmp short 09d83h                          ; eb 48
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    in ax, DX                                 ; ed
+    mov word [bp+01ch], ax                    ; 89 46 1c
+    jmp short 09d83h                          ; eb 36
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp+01ch], ax                    ; 89 46 1c
+    mov word [bp+01eh], dx                    ; 89 56 1e
+    jmp short 09d83h                          ; eb 22
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    out DX, AL                                ; ee
+    jmp short 09d83h                          ; eb 10
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    out DX, ax                                ; ef
+    jmp near 09e0ch                           ; e9 86 00
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov cx, word [bp+01eh]                    ; 8b 4e 1e
+    mov dx, 00cfch                            ; ba fc 0c
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    jmp short 09e0ch                          ; eb 72
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov es, [bp+026h]                         ; 8e 46 26
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov [bp-006h], es                         ; 8c 46 fa
+    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
+    cmp cx, word [es:bx]                      ; 26 3b 0f
+    jbe short 09dc0h                          ; 76 11
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 089h                               ; 80 cc 89
+    mov word [bp+020h], ax                    ; 89 46 20
+    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
+    jmp short 09dd4h                          ; eb 14
+    les di, [es:bx+002h]                      ; 26 c4 7f 02
+    mov si, 0f2c0h                            ; be c0 f2
+    mov dx, ds                                ; 8c da
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
+    mov ax, word [0f4a0h]                     ; a1 a0 f4
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov word [es:bx], ax                      ; 26 89 07
+    jmp short 09e0ch                          ; eb 2d
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01923h                               ; e8 39 7b
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    push ax                                   ; 50
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    push ax                                   ; 50
+    push 00d5ch                               ; 68 5c 0d
+    push strict byte 00004h                   ; 6a 04
+    call 01966h                               ; e8 6c 7b
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 081h                               ; 80 cc 81
+    mov word [bp+020h], ax                    ; 89 46 20
+    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_find_classcode_:                         ; 0xf9e13 LB 0x2b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    mov cx, dx                                ; 89 d1
+    xor si, si                                ; 31 f6
+    mov dx, ax                                ; 89 c2
+    mov ax, 0b103h                            ; b8 03 b1
+    sal ecx, 010h                             ; 66 c1 e1 10
+    db  08bh, 0cah
+    ; mov cx, dx                                ; 8b ca
+    int 01ah                                  ; cd 1a
+    cmp ah, 000h                              ; 80 fc 00
+    je near 09e34h                            ; 0f 84 03 00
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_byte_:                       ; 0xf9e3e LB 0x2e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    mov dh, al                                ; 88 c6
+    mov bh, dl                                ; 88 d7
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov dl, dh                                ; 88 f2
+    xor dh, dh                                ; 30 f6
+    sal dx, 008h                              ; c1 e2 08
+    mov bl, bh                                ; 88 fb
+    xor bh, bh                                ; 30 ff
+    or bx, dx                                 ; 09 d3
+    mov di, ax                                ; 89 c7
+    mov ax, 0b108h                            ; b8 08 b1
+    int 01ah                                  ; cd 1a
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_word_:                       ; 0xf9e6c LB 0x2a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    mov bh, al                                ; 88 c7
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bl, bh                                ; 88 fb
+    xor bh, bh                                ; 30 ff
+    mov cx, bx                                ; 89 d9
+    sal cx, 008h                              ; c1 e1 08
+    mov bl, dl                                ; 88 d3
+    or bx, cx                                 ; 09 cb
+    mov di, ax                                ; 89 c7
+    mov ax, 0b109h                            ; b8 09 b1
+    int 01ah                                  ; cd 1a
+    mov ax, cx                                ; 89 c8
+    xor dx, dx                                ; 31 d2
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_dword_:                      ; 0xf9e96 LB 0x30
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    mov dh, al                                ; 88 c6
+    mov bh, dl                                ; 88 d7
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov dl, dh                                ; 88 f2
+    xor dh, dh                                ; 30 f6
+    sal dx, 008h                              ; c1 e2 08
+    mov bl, bh                                ; 88 fb
+    xor bh, bh                                ; 30 ff
+    or bx, dx                                 ; 09 d3
+    mov di, ax                                ; 89 c7
+    mov ax, 0b10ah                            ; b8 0a b1
+    int 01ah                                  ; cd 1a
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    shr ecx, 010h                             ; 66 c1 e9 10
+    mov dx, cx                                ; 89 ca
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vds_is_present_:                             ; 0xf9ec6 LB 0x1d
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, strict word 0007bh                ; bb 7b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    mov es, ax                                ; 8e c0
+    test byte [es:bx], 020h                   ; 26 f6 07 20
+    je short 09edeh                           ; 74 06
+    mov ax, strict word 00001h                ; b8 01 00
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    xor ax, ax                                ; 31 c0
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+vds_real_to_lin_:                            ; 0xf9ee3 LB 0x1e
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 09ef1h                               ; e2 fa
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    pop bp                                    ; 5d
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+vds_build_sg_list_:                          ; 0xf9f01 LB 0x77
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    mov ax, bx                                ; 89 d8
+    mov dx, cx                                ; 89 ca
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov es, si                                ; 8e c6
+    mov word [es:di], bx                      ; 26 89 1d
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov word [es:di+002h], bx                 ; 26 89 5d 02
+    call 09ee3h                               ; e8 c3 ff
+    mov es, si                                ; 8e c6
+    mov word [es:di+004h], ax                 ; 26 89 45 04
+    mov word [es:di+006h], dx                 ; 26 89 55 06
+    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
+    call 09ec6h                               ; e8 93 ff
+    test ax, ax                               ; 85 c0
+    je short 09f48h                           ; 74 11
+    mov es, si                                ; 8e c6
+    mov ax, 08105h                            ; b8 05 81
+    mov dx, strict word 00000h                ; ba 00 00
+    int 04bh                                  ; cd 4b
+    jc short 09f45h                           ; 72 02
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    cbw                                       ; 98
+    jmp short 09f6fh                          ; eb 27
+    mov es, si                                ; 8e c6
+    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
+    mov dx, word [es:di+004h]                 ; 26 8b 55 04
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [es:di+010h], dx                 ; 26 89 55 10
+    mov word [es:di+012h], ax                 ; 26 89 45 12
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov word [es:di+014h], ax                 ; 26 89 45 14
+    mov ax, bx                                ; 89 d8
+    mov word [es:di+016h], bx                 ; 26 89 5d 16
+    xor ax, bx                                ; 31 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vds_free_sg_list_:                           ; 0xf9f78 LB 0x38
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push di                                   ; 57
+    mov bx, ax                                ; 89 c3
+    call 09ec6h                               ; e8 44 ff
+    test ax, ax                               ; 85 c0
+    je short 09f97h                           ; 74 11
+    mov di, bx                                ; 89 df
+    mov es, dx                                ; 8e c2
+    mov ax, 08106h                            ; b8 06 81
+    mov dx, strict word 00000h                ; ba 00 00
+    int 04bh                                  ; cd 4b
+    jc short 09f96h                           ; 72 02
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    cbw                                       ; 98
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    times 0xa db 0
+__U4D:                                       ; 0xf9fb0 LB 0x39
+    pushfw                                    ; 9c
+    push eax                                  ; 66 50
+    push edx                                  ; 66 52
+    push ecx                                  ; 66 51
+    rol eax, 010h                             ; 66 c1 c0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    shr ecx, 010h                             ; 66 c1 e9 10
+    db  08bh, 0cbh
+    ; mov cx, bx                                ; 8b cb
+    div ecx                                   ; 66 f7 f1
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    pop ecx                                   ; 66 59
+    shr edx, 010h                             ; 66 c1 ea 10
+    db  08bh, 0cah
+    ; mov cx, dx                                ; 8b ca
+    pop edx                                   ; 66 5a
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    add sp, strict byte 00002h                ; 83 c4 02
+    pop ax                                    ; 58
+    rol eax, 010h                             ; 66 c1 c0 10
+    popfw                                     ; 9d
+    retn                                      ; c3
+__U4M:                                       ; 0xf9fe9 LB 0x31
+    pushfw                                    ; 9c
+    push eax                                  ; 66 50
+    push edx                                  ; 66 52
+    push ecx                                  ; 66 51
+    rol eax, 010h                             ; 66 c1 c0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    shr ecx, 010h                             ; 66 c1 e9 10
+    db  08bh, 0cbh
+    ; mov cx, bx                                ; 8b cb
+    mul ecx                                   ; 66 f7 e1
+    pop ecx                                   ; 66 59
+    pop edx                                   ; 66 5a
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    add sp, strict byte 00002h                ; 83 c4 02
+    pop ax                                    ; 58
+    rol eax, 010h                             ; 66 c1 c0 10
+    popfw                                     ; 9d
+    retn                                      ; c3
+__U8LS:                                      ; 0xfa01a LB 0x10
+    test si, si                               ; 85 f6
+    je short 0a029h                           ; 74 0b
+    sal dx, 1                                 ; d1 e2
+    rcl cx, 1                                 ; d1 d1
+    rcl bx, 1                                 ; d1 d3
+    rcl ax, 1                                 ; d1 d0
+    dec si                                    ; 4e
+    jne short 0a01eh                          ; 75 f5
+    retn                                      ; c3
+__U8RS:                                      ; 0xfa02a LB 0x10
+    test si, si                               ; 85 f6
+    je short 0a039h                           ; 74 0b
+    shr ax, 1                                 ; d1 e8
+    rcr bx, 1                                 ; d1 db
+    rcr cx, 1                                 ; d1 d9
+    rcr dx, 1                                 ; d1 da
+    dec si                                    ; 4e
+    jne short 0a02eh                          ; 75 f5
+    retn                                      ; c3
+_fmemset_:                                   ; 0xfa03a LB 0xd
+    push di                                   ; 57
+    mov es, dx                                ; 8e c2
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    xchg al, bl                               ; 86 d8
+    rep stosb                                 ; f3 aa
+    xchg al, bl                               ; 86 d8
+    pop di                                    ; 5f
+    retn                                      ; c3
+_fmemcpy_:                                   ; 0xfa047 LB 0x33
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    push di                                   ; 57
+    push DS                                   ; 1e
+    push si                                   ; 56
+    mov es, dx                                ; 8e c2
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    mov ds, cx                                ; 8e d9
+    db  08bh, 0f3h
+    ; mov si, bx                                ; 8b f3
+    mov cx, word [bp+004h]                    ; 8b 4e 04
+    rep movsb                                 ; f3 a4
+    pop si                                    ; 5e
+    pop DS                                    ; 1f
+    pop di                                    ; 5f
+    leave                                     ; c9
+    retn                                      ; c3
+    add byte [bx+si-06d60h], dl               ; 00 90 a0 92
+    mov AL, byte [0a096h]                     ; a0 96 a0
+    xchg si, ax                               ; 96
+    mov AL, byte [0a096h]                     ; a0 96 a0
+    cbw                                       ; 98
+    mov AL, byte [0a098h]                     ; a0 98 a0
+    call far 09ea0h:09ea0h                    ; 9a a0 9e a0 9e
+    mov AL, byte [0a0a0h]                     ; a0 a0 a0
+    movsw                                     ; a5
+    mov AL, byte [0a0a7h]                     ; a0 a7 a0
+apm_worker:                                  ; 0xfa07a LB 0x3a
+    sti                                       ; fb
+    push ax                                   ; 50
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    sub AL, strict byte 004h                  ; 2c 04
+    db  08bh, 0e8h
+    ; mov bp, ax                                ; 8b e8
+    sal bp, 1                                 ; d1 e5
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    pop ax                                    ; 58
+    mov AH, strict byte 053h                  ; b4 53
+    jnc short 0a0b0h                          ; 73 25
+    jmp word [cs:bp-05fa0h]                   ; 2e ff a6 60 a0
+    jmp short 0a0aeh                          ; eb 1c
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 0a0aeh                          ; eb 18
+    jmp short 0a0aeh                          ; eb 16
+    jmp short 0a0b0h                          ; eb 16
+    mov AH, strict byte 080h                  ; b4 80
+    jmp short 0a0b2h                          ; eb 14
+    jmp short 0a0b0h                          ; eb 10
+    mov ax, 00102h                            ; b8 02 01
+    jmp short 0a0aeh                          ; eb 09
+    jmp short 0a0aeh                          ; eb 07
+    mov BL, strict byte 000h                  ; b3 00
+    mov cx, strict word 00000h                ; b9 00 00
+    jmp short 0a0aeh                          ; eb 00
+    clc                                       ; f8
+    retn                                      ; c3
+    mov AH, strict byte 009h                  ; b4 09
+    stc                                       ; f9
+    retn                                      ; c3
+apm_pm16_entry:                              ; 0xfa0b4 LB 0x11
+    mov AH, strict byte 002h                  ; b4 02
+    push DS                                   ; 1e
+    push bp                                   ; 55
+    push CS                                   ; 0e
+    pop bp                                    ; 5d
+    add bp, strict byte 00008h                ; 83 c5 08
+    mov ds, bp                                ; 8e dd
+    call 0a07ah                               ; e8 b8 ff
+    pop bp                                    ; 5d
+    pop DS                                    ; 1f
+    retf                                      ; cb
+
+  ; Padding 0x393b bytes at 0xfa0c5
+  times 14651 db 0
+
+section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
+bios32_service:                              ; 0xfda00 LB 0x26
+    pushfw                                    ; 9c
+    cmp bl, 000h                              ; 80 fb 00
+    jne short 0da22h                          ; 75 1c
+    cmp ax, 05024h                            ; 3d 24 50
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    mov AL, strict byte 080h                  ; b0 80
+    jne short 0da20h                          ; 75 11
+    mov bx, strict word 00000h                ; bb 00 00
+    db  00fh
+    add byte [bx+di-01000h], bh               ; 00 b9 00 f0
+    add byte [bx+si], al                      ; 00 00
+    mov dx, 0da26h                            ; ba 26 da
+    add byte [bx+si], al                      ; 00 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    popfw                                     ; 9d
+    retf                                      ; cb
+    mov AL, strict byte 081h                  ; b0 81
+    jmp short 0da20h                          ; eb fa
+pcibios32_entry:                             ; 0xfda26 LB 0x1a
+    pushfw                                    ; 9c
+    cld                                       ; fc
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    call 0db78h                               ; e8 4b 01
+    add byte [bx+si], al                      ; 00 00
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    popfw                                     ; 9d
+    retf                                      ; cb
+    times 0xd db 0
+apm_pm32_entry:                              ; 0xfda40 LB 0x21
+    push bp                                   ; 55
+    mov ebp, cs                               ; 66 8c cd
+    push ebp                                  ; 66 55
+    mov bp, 0da5fh                            ; bd 5f da
+    add byte [bx+si], al                      ; 00 00
+    push ebp                                  ; 66 55
+    push CS                                   ; 0e
+    pop bp                                    ; 5d
+    add bp, strict byte 00008h                ; 83 c5 08
+    push ebp                                  ; 66 55
+    mov bp, 0a0b6h                            ; bd b6 a0
+    add byte [bx+si], al                      ; 00 00
+    push ebp                                  ; 66 55
+    mov AH, strict byte 003h                  ; b4 03
+    db  066h, 0cbh
+    ; retf                                      ; 66 cb
+    pop bp                                    ; 5d
+    retf                                      ; cb
+pci32_select_reg_:                           ; 0xfda61 LB 0x22
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    and dl, 0fch                              ; 80 e2 fc
+    mov bx, dx                                ; 89 d3
+    mov dx, 00cf8h                            ; ba f8 0c
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 0c0h
+    ; movzx ax, ax                              ; 0f b7 c0
+    sal ax, 008h                              ; c1 e0 08
+    or ax, strict word 00000h                 ; 0d 00 00
+    add byte [bx+si-03c76h], al               ; 00 80 8a c3
+    out DX, ax                                ; ef
+    lea sp, [di-004h]                         ; 8d 65 fc
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci32_find_device_:                          ; 0xfda83 LB 0xf7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00014h                ; 83 ec 14
+    push ax                                   ; 50
+    mov cx, dx                                ; 89 d1
+    mov si, bx                                ; 89 de
+    test bx, bx                               ; 85 db
+    xor bx, bx                                ; 31 db
+    mov byte [di-010h], 000h                  ; c6 45 f0 00
+    test bl, 007h                             ; f6 c3 07
+    jne short 0dad4h                          ; 75 36
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da5fh                               ; e8 b6 ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfeh                            ; ba fe 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    mov byte [di-014h], al                    ; 88 45 ec
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0dac2h                          ; 75 08
+    add bx, strict byte 00008h                ; 83 c3 08
+    jmp near 0db4ah                           ; e9 8a 00
+    add byte [bx+si], al                      ; 00 00
+    test byte [di-014h], 080h                 ; f6 45 ec 80
+    je short 0dacfh                           ; 74 07
+    mov di, strict word 00001h                ; bf 01 00
+    add byte [bx+si], al                      ; 00 00
+    jmp short 0dad4h                          ; eb 05
+    mov di, strict word 00008h                ; bf 08 00
+    add byte [bx+si], al                      ; 00 00
+    mov al, byte [di-014h]                    ; 8a 45 ec
+    and AL, strict byte 007h                  ; 24 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 0db03h                          ; 75 26
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    mov dx, ax                                ; 89 c2
+    sar dx, 008h                              ; c1 fa 08
+    test dx, dx                               ; 85 d2
+    jne short 0db03h                          ; 75 1a
+    mov dx, strict word 0001ah                ; ba 1a 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da5fh                               ; e8 6e ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfeh                            ; ba fe 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    cmp al, byte [di-010h]                    ; 3a 45 f0
+    jbe short 0db03h                          ; 76 03
+    mov byte [di-010h], al                    ; 88 45 f0
+    test si, si                               ; 85 f6
+    je short 0db0eh                           ; 74 07
+    mov ax, strict word 00008h                ; b8 08 00
+    add byte [bx+si], al                      ; 00 00
+    jmp short 0db10h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    call 0da5fh                               ; e8 46 ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    in ax, DX                                 ; ed
+    mov word [di-018h], ax                    ; 89 45 e8
+    mov word [di-020h], strict word 00000h    ; c7 45 e0 00 00
+    add byte [bx+si], al                      ; 00 00
+    test si, si                               ; 85 f6
+    je short 0db35h                           ; 74 06
+    shr ax, 008h                              ; c1 e8 08
+    mov word [di-018h], ax                    ; 89 45 e8
+    mov ax, word [di-018h]                    ; 8b 45 e8
+    cmp ax, word [di-024h]                    ; 3b 45 dc
+    je short 0db43h                           ; 74 06
+    cmp word [di-020h], strict byte 00000h    ; 83 7d e0 00
+    je short 0db4ah                           ; 74 07
+    dec cx                                    ; 49
+    cmp ecx, strict byte 0ffffffffh           ; 66 83 f9 ff
+    je short 0db62h                           ; 74 18
+    add bx, di                                ; 01 fb
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    sar ax, 008h                              ; c1 f8 08
+    mov word [di-01ch], ax                    ; 89 45 e4
+    movzx ax, byte [di-010h]                  ; 0f b6 45 f0
+    cmp ax, word [di-01ch]                    ; 3b 45 e4
+    jnl near 0da97h                           ; 0f 8d 37 ff
+    db  0ffh
+    jmp word [bp-07dh]                        ; ff 66 83
+    stc                                       ; f9
+    push word [di+005h]                       ; ff 75 05
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    jmp short 0db72h                          ; eb 05
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    add byte [bx+si], al                      ; 00 00
+    lea sp, [di-00ch]                         ; 8d 65 f4
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_pci32_function:                             ; 0xfdb7a LB 0x251
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    and dword [di+024h], strict dword 0658100ffh ; 66 81 65 24 ff 00 81 65
+    sub AL, strict byte 0feh                  ; 2c fe
+    inc word [bx+si]                          ; ff 00
+    add byte [bp+di+02445h], cl               ; 00 8b 45 24
+    xor ah, ah                                ; 30 e4
+    cmp eax, strict dword 029720003h          ; 66 3d 03 00 72 29
+    jbe near 0dc37h                           ; 0f 86 99 00
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 0840f000eh          ; 66 3d 0e 00 0f 84
+    test ax, strict word 00001h               ; a9 01 00
+    add byte [bp+03dh], ah                    ; 00 66 3d
+    or byte [bx+si], al                       ; 08 00
+    jc near 0ddb1h                            ; 0f 82 ff 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 0860f000dh          ; 66 3d 0d 00 0f 86
+    test AL, strict byte 000h                 ; a8 00
+    add byte [bx+si], al                      ; 00 00
+    jmp near 0ddb1h                           ; e9 f0 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 028740002h          ; 66 3d 02 00 74 28
+    cmp eax, strict dword 0850f0001h          ; 66 3d 01 00 0f 85
+    loopne 0dbd2h                             ; e0 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+024h], strict dword 0c7660001h ; 66 c7 45 24 01 00 66 c7
+    inc bp                                    ; 45
+    sbb byte [bx+si], dl                      ; 18 10
+    add dh, byte [bx+di]                      ; 02 31
+    sal byte [bp-077h], 045h                  ; c0 66 89 45
+    and bh, al                                ; 20 c7
+    inc bp                                    ; 45
+    sbb AL, strict byte 050h                  ; 1c 50
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    and cl, ch                                ; 20 e9
+    rol byte [bx+di], CL                      ; d2 01
+    add byte [bx+si], al                      ; 00 00
+    cmp dword [di+01ch], strict byte 0ffffffffh ; 66 83 7d 1c ff
+    jne short 0dc05h                          ; 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 083h                               ; 80 cc 83
+    jmp near 0ddb9h                           ; e9 b6 01
+    add byte [bx+si], al                      ; 00 00
+    xor bx, bx                                ; 31 db
+    db  00fh, 0b7h, 055h, 00ch
+    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
+    db  00fh, 0b7h, 045h, 020h
+    ; movzx ax, [di+020h]                       ; 0f b7 45 20
+    sal ax, 010h                              ; c1 e0 10
+    db  00fh, 0b7h, 04dh, 01ch
+    ; movzx cx, [di+01ch]                       ; 0f b7 4d 1c
+    or ax, cx                                 ; 09 c8
+    call 0da81h                               ; e8 66 fe
+    db  0ffh
+    jmp word [bp+03dh]                        ; ff 66 3d
+    db  0ffh
+    push word [di+00dh]                       ; ff 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0ddb9h                           ; e9 8b 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+018h], eax                  ; 66 89 45 18
+    jmp near 0ddc1h                           ; e9 8a 01
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 055h, 00ch
+    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov bx, strict word 00001h                ; bb 01 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da81h                               ; e8 39 fe
+    db  0ffh
+    jmp word [bp+03dh]                        ; ff 66 3d
+    db  0ffh
+    push word [di+00dh]                       ; ff 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0ddb9h                           ; e9 5e 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+018h], eax                  ; 66 89 45 18
+    jmp near 0ddc1h                           ; e9 5d 01
+    add byte [bx+si], al                      ; 00 00
+    cmp dword [di+008h], strict dword 00d720100h ; 66 81 7d 08 00 01 72 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 087h                               ; 80 cc 87
+    jmp near 0ddb9h                           ; e9 40 01
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 055h, 008h
+    ; movzx dx, [di+008h]                       ; 0f b7 55 08
+    db  00fh, 0b7h, 045h, 018h
+    ; movzx ax, [di+018h]                       ; 0f b7 45 18
+    call 0da5fh                               ; e8 d9 fd
+    db  0ffh
+    dec word [bp+di+02445h]                   ; ff 8b 45 24
+    xor ah, ah                                ; 30 e4
+    cmp eax, strict dword 02172000ah          ; 66 3d 0a 00 72 21
+    jbe short 0dd04h                          ; 76 6f
+    cmp eax, strict dword 0840f000dh          ; 66 3d 0d 00 0f 84
+    test ax, strict word 00000h               ; a9 00 00
+    add byte [bp+03dh], ah                    ; 00 66 3d
+    or AL, strict byte 000h                   ; 0c 00
+    je near 0dd2ah                            ; 0f 84 83 00
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 06374000bh          ; 66 3d 0b 00 74 63
+    jmp near 0ddc1h                           ; e9 0f 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 02d740009h          ; 66 3d 09 00 74 2d
+    cmp eax, strict dword 0850f0008h          ; 66 3d 08 00 0f 85
+    inc word [bx+si]                          ; ff 00
+    add byte [bx+si], al                      ; 00 00
+    mov bx, word [di+020h]                    ; 8b 5d 20
+    xor bl, bl                                ; 30 db
+    mov ax, word [di+008h]                    ; 8b 45 08
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 003h                  ; 24 03
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    or bx, ax                                 ; 09 c3
+    mov dword [di+020h], ebx                  ; 66 89 5d 20
+    jmp near 0ddc1h                           ; e9 dc 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+008h]                    ; 8b 45 08
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 002h                  ; 24 02
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in eax, DX                                ; 66 ed
+    mov dword [di+020h], eax                  ; 66 89 45 20
+    jmp near 0ddc1h                           ; e9 bf 00
+    add byte [bx+si], al                      ; 00 00
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    in ax, DX                                 ; ed
+    mov word [di+020h], ax                    ; 89 45 20
+    jmp near 0ddc1h                           ; e9 b1 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov dx, word [di+008h]                    ; 8b 55 08
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    db  00fh, 0b7h, 0d2h
+    ; movzx dx, dx                              ; 0f b7 d2
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, AL                                ; ee
+    jmp near 0ddc1h                           ; e9 97 00
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 045h, 020h
+    ; movzx ax, [di+020h]                       ; 0f b7 45 20
+    mov dx, word [di+008h]                    ; 8b 55 08
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    db  00fh, 0b7h, 0d2h
+    ; movzx dx, dx                              ; 0f b7 d2
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, eax                               ; 66 ef
+    jmp near 0ddc1h                           ; e9 7b 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, ax                                ; ef
+    jmp short 0ddc3h                          ; eb 70
+    db  00fh, 0b7h, 045h, 008h
+    ; movzx ax, [di+008h]                       ; 0f b7 45 08
+    mov es, [di+028h]                         ; 8e 45 28
+    mov [di-010h], es                         ; 8c 45 f0
+    mov bx, ax                                ; 89 c3
+    mov edx, dword [di]                       ; 66 8b 15
+    mov AL, byte [000f4h]                     ; a0 f4 00
+    add byte [bp+026h], ah                    ; 00 66 26
+    cmp dx, word [bx+si]                      ; 3b 10
+    jbe short 0dd7eh                          ; 76 12
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 089h                               ; 80 cc 89
+    mov dword [di+024h], eax                  ; 66 89 45 24
+    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
+    jmp short 0dda4h                          ; eb 26
+    db  00fh, 0b7h, 0cah
+    ; movzx cx, dx                              ; 0f b7 ca
+    db  066h, 026h, 08bh, 050h, 006h
+    ; mov edx, dword [es:bx+si+006h]            ; 66 26 8b 50 06
+    mov word [di-014h], dx                    ; 89 55 ec
+    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
+    mov dx, ds                                ; 8c da
+    mov si, 0f2c0h                            ; be c0 f2
+    add byte [bx+si], al                      ; 00 00
+    mov es, [di-014h]                         ; 8e 45 ec
+    push DS                                   ; 1e
+    db  066h, 08eh, 0dah
+    ; mov ds, edx                               ; 66 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
+    mov AL, byte [000f4h]                     ; a0 f4 00
+    add byte [bp-00fbbh], cl                  ; 00 8e 45 f0
+    db  066h, 026h, 089h, 003h
+    ; mov dword [es:bp+di], eax                 ; 66 26 89 03
+    jmp short 0ddc3h                          ; eb 10
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 081h                               ; 80 cc 81
+    mov dword [di+024h], eax                  ; 66 89 45 24
+    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
+    lea sp, [di-00ch]                         ; 8d 65 f4
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+
+  ; Padding 0x1 bytes at 0xfddcb
+  times 1 db 0
+
+section BIOS32CONST progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+section BIOS32CONST2 progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+section BIOS32_DATA progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+  ; Padding 0x234 bytes at 0xfddcc
+  times 564 db 0
+
+section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
+eoi_both_pics:                               ; 0xfe030 LB 0x4
+    mov AL, strict byte 020h                  ; b0 20
+    out strict byte 0a0h, AL                  ; e6 a0
+eoi_master_pic:                              ; 0xfe034 LB 0x5
+    mov AL, strict byte 020h                  ; b0 20
+    out strict byte 020h, AL                  ; e6 20
+    retn                                      ; c3
+set_int_vects:                               ; 0xfe039 LB 0xb
+    mov word [bx], ax                         ; 89 07
+    mov word [bx+002h], dx                    ; 89 57 02
+    add bx, strict byte 00004h                ; 83 c3 04
+    loop 0e039h                               ; e2 f6
+    retn                                      ; c3
+eoi_jmp_post:                                ; 0xfe044 LB 0x17
+    call 0e030h                               ; e8 e9 ff
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    jmp far [00467h]                          ; ff 2e 67 04
+    times 0xa db 0
+    db  'XM'
+post:                                        ; 0xfe05b LB 0x69
+    cli                                       ; fa
+    smsw ax                                   ; 0f 01 e0
+    test ax, strict word 00001h               ; a9 01 00
+    je short 0e06ah                           ; 74 06
+    mov AL, strict byte 001h                  ; b0 01
+    out strict byte 092h, AL                  ; e6 92
+    jmp short 0e068h                          ; eb fe
+    mov AL, strict byte 00fh                  ; b0 0f
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    xchg ah, al                               ; 86 c4
+    in AL, strict byte 064h                   ; e4 64
+    test AL, strict byte 004h                 ; a8 04
+    je short 0e089h                           ; 74 11
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    jne short 0e089h                          ; 75 0b
+    push strict byte 00040h                   ; 6a 40
+    pop DS                                    ; 1f
+    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
+    jne short 0e064h                          ; 75 db
+    mov AL, strict byte 00fh                  ; b0 0f
+    out strict byte 070h, AL                  ; e6 70
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 071h, AL                  ; e6 71
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    cmp AL, strict byte 009h                  ; 3c 09
+    je short 0e0a9h                           ; 74 12
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 0e0a9h                           ; 74 0e
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    out strict byte 00dh, AL                  ; e6 0d
+    out strict byte 0dah, AL                  ; e6 da
+    mov AL, strict byte 0c0h                  ; b0 c0
+    out strict byte 0d6h, AL                  ; e6 d6
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 0d4h, AL                  ; e6 d4
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0e0c4h                           ; 74 15
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    jnc short 0e0c4h                          ; 73 11
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 0e0bah                          ; 75 03
+    jmp near 0e366h                           ; e9 ac 02
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0e044h                           ; 74 86
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 0e047h                           ; 74 85
+    jmp short 0e0c4h                          ; eb 00
+normal_post:                                 ; 0xfe0c4 LB 0x1ff
+    mov ax, 07800h                            ; b8 00 78
+    db  08bh, 0e0h
+    ; mov sp, ax                                ; 8b e0
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov ss, ax                                ; 8e d0
+    mov es, ax                                ; 8e c0
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    cld                                       ; fc
+    mov cx, 00239h                            ; b9 39 02
+    rep stosw                                 ; f3 ab
+    inc di                                    ; 47
+    inc di                                    ; 47
+    mov cx, 005c6h                            ; b9 c6 05
+    rep stosw                                 ; f3 ab
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    add bx, 01000h                            ; 81 c3 00 10
+    cmp bx, 09000h                            ; 81 fb 00 90
+    jnc short 0e0f7h                          ; 73 0b
+    mov es, bx                                ; 8e c3
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    mov cx, 08000h                            ; b9 00 80
+    rep stosw                                 ; f3 ab
+    jmp short 0e0e2h                          ; eb eb
+    mov es, bx                                ; 8e c3
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    mov cx, 07ff8h                            ; b9 f8 7f
+    rep stosw                                 ; f3 ab
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0176dh                               ; e8 65 36
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov ds, bx                                ; 8e db
+    mov cx, strict word 00060h                ; b9 60 00
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov dx, 0f000h                            ; ba 00 f0
+    call 0e039h                               ; e8 21 ff
+    mov bx, 001a0h                            ; bb a0 01
+    mov cx, strict word 00010h                ; b9 10 00
+    call 0e039h                               ; e8 18 ff
+    mov ax, 0027fh                            ; b8 7f 02
+    mov word [00413h], ax                     ; a3 13 04
+    mov ax, 0e9d6h                            ; b8 d6 e9
+    mov word [00018h], ax                     ; a3 18 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0001ah], ax                     ; a3 1a 00
+    mov ax, 0f84dh                            ; b8 4d f8
+    mov word [00044h], ax                     ; a3 44 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00046h], ax                     ; a3 46 00
+    mov ax, 0f841h                            ; b8 41 f8
+    mov word [00048h], ax                     ; a3 48 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0004ah], ax                     ; a3 4a 00
+    mov ax, 0f859h                            ; b8 59 f8
+    mov word [00054h], ax                     ; a3 54 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00056h], ax                     ; a3 56 00
+    mov ax, 0efd4h                            ; b8 d4 ef
+    mov word [0005ch], ax                     ; a3 5c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0005eh], ax                     ; a3 5e 00
+    mov ax, 0f0a4h                            ; b8 a4 f0
+    mov word [00060h], ax                     ; a3 60 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00062h], ax                     ; a3 62 00
+    mov ax, 0e6f2h                            ; b8 f2 e6
+    mov word [00064h], ax                     ; a3 64 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00066h], ax                     ; a3 66 00
+    mov ax, 0efedh                            ; b8 ed ef
+    mov word [00070h], ax                     ; a3 70 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00072h], ax                     ; a3 72 00
+    call 0e778h                               ; e8 ee 05
+    mov ax, 0fe6eh                            ; b8 6e fe
+    mov word [00068h], ax                     ; a3 68 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0006ah], ax                     ; a3 6a 00
+    mov ax, 0fea5h                            ; b8 a5 fe
+    mov word [00020h], ax                     ; a3 20 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00022h], ax                     ; a3 22 00
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    mov ax, 0f065h                            ; b8 65 f0
+    mov word [00040h], ax                     ; a3 40 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00042h], ax                     ; a3 42 00
+    mov ax, 0e987h                            ; b8 87 e9
+    mov word [00024h], ax                     ; a3 24 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00026h], ax                     ; a3 26 00
+    mov ax, 0e82eh                            ; b8 2e e8
+    mov word [00058h], ax                     ; a3 58 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0005ah], ax                     ; a3 5a 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov byte [00417h], AL                     ; a2 17 04
+    mov byte [00418h], AL                     ; a2 18 04
+    mov byte [00419h], AL                     ; a2 19 04
+    mov byte [00471h], AL                     ; a2 71 04
+    mov byte [00497h], AL                     ; a2 97 04
+    mov AL, strict byte 010h                  ; b0 10
+    mov byte [00496h], AL                     ; a2 96 04
+    mov bx, strict word 0001eh                ; bb 1e 00
+    mov word [0041ah], bx                     ; 89 1e 1a 04
+    mov word [0041ch], bx                     ; 89 1e 1c 04
+    mov word [00480h], bx                     ; 89 1e 80 04
+    mov bx, strict word 0003eh                ; bb 3e 00
+    mov word [00482h], bx                     ; 89 1e 82 04
+    mov AL, strict byte 014h                  ; b0 14
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    mov byte [00410h], AL                     ; a2 10 04
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    mov ax, 0c000h                            ; b8 00 c0
+    mov dx, 0c800h                            ; ba 00 c8
+    call 01600h                               ; e8 ec 33
+    call 04eb2h                               ; e8 9b 6c
+    pop DS                                    ; 1f
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov word [0003ch], ax                     ; a3 3c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003eh], ax                     ; a3 3e 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov CL, strict byte 014h                  ; b1 14
+    mov dx, 00378h                            ; ba 78 03
+    call 0ecedh                               ; e8 bb 0a
+    mov dx, 00278h                            ; ba 78 02
+    call 0ecedh                               ; e8 b5 0a
+    sal bx, 00eh                              ; c1 e3 0e
+    mov ax, word [00410h]                     ; a1 10 04
+    and ax, 03fffh                            ; 25 ff 3f
+    db  00bh, 0c3h
+    ; or ax, bx                                 ; 0b c3
+    mov word [00410h], ax                     ; a3 10 04
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [0002ch], ax                     ; a3 2c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0002eh], ax                     ; a3 2e 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [00030h], ax                     ; a3 30 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00032h], ax                     ; a3 32 00
+    mov ax, 0e739h                            ; b8 39 e7
+    mov word [00050h], ax                     ; a3 50 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00052h], ax                     ; a3 52 00
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov CL, strict byte 00ah                  ; b1 0a
+    mov dx, 003f8h                            ; ba f8 03
+    call 0ed0bh                               ; e8 97 0a
+    mov dx, 002f8h                            ; ba f8 02
+    call 0ed0bh                               ; e8 91 0a
+    mov dx, 003e8h                            ; ba e8 03
+    call 0ed0bh                               ; e8 8b 0a
+    mov dx, 002e8h                            ; ba e8 02
+    call 0ed0bh                               ; e8 85 0a
+    sal bx, 009h                              ; c1 e3 09
+    mov ax, word [00410h]                     ; a1 10 04
+    and ax, 0f1ffh                            ; 25 ff f1
+    db  00bh, 0c3h
+    ; or ax, bx                                 ; 0b c3
+    mov word [00410h], ax                     ; a3 10 04
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov word [00128h], ax                     ; a3 28 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0012ah], ax                     ; a3 2a 01
+    mov ax, 0fe7bh                            ; b8 7b fe
+    mov word [001c0h], ax                     ; a3 c0 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001c2h], ax                     ; a3 c2 01
+    call 0edbfh                               ; e8 10 0b
+    jmp short 0e31bh                          ; eb 6a
+    times 0x10 db 0
+    db  'XM'
+nmi:                                         ; 0xfe2c3 LB 0x7
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01749h                               ; e8 80 34
+    iret                                      ; cf
+int75_handler:                               ; 0xfe2ca LB 0x8
+    out strict byte 0f0h, AL                  ; e6 f0
+    call 0e030h                               ; e8 61 fd
+    int 002h                                  ; cd 02
+    iret                                      ; cf
+hard_drive_post:                             ; 0xfe2d2 LB 0x12c
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov byte [00474h], AL                     ; a2 74 04
+    mov byte [00477h], AL                     ; a2 77 04
+    mov byte [0048ch], AL                     ; a2 8c 04
+    mov byte [0048dh], AL                     ; a2 8d 04
+    mov byte [0048eh], AL                     ; a2 8e 04
+    mov AL, strict byte 0c0h                  ; b0 c0
+    mov byte [00476h], AL                     ; a2 76 04
+    mov ax, 0e3feh                            ; b8 fe e3
+    mov word [0004ch], ax                     ; a3 4c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0004eh], ax                     ; a3 4e 00
+    mov ax, 0f8d5h                            ; b8 d5 f8
+    mov word [001d8h], ax                     ; a3 d8 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001dah], ax                     ; a3 da 01
+    mov ax, strict word 0003dh                ; b8 3d 00
+    mov word [00104h], ax                     ; a3 04 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov word [00106h], ax                     ; a3 06 01
+    mov ax, strict word 0004dh                ; b8 4d 00
+    mov word [00118h], ax                     ; a3 18 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov word [0011ah], ax                     ; a3 1a 01
+    retn                                      ; c3
+    mov ax, 0f8a7h                            ; b8 a7 f8
+    mov word [001d0h], ax                     ; a3 d0 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001d2h], ax                     ; a3 d2 01
+    mov ax, 0e2cah                            ; b8 ca e2
+    mov word [001d4h], ax                     ; a3 d4 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001d6h], ax                     ; a3 d6 01
+    call 0e753h                               ; e8 1d 04
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01c9fh                               ; e8 63 39
+    call 02118h                               ; e8 d9 3d
+    call 098dfh                               ; e8 9d b5
+    call 0876ah                               ; e8 25 a4
+    call 0ed2fh                               ; e8 e7 09
+    call 0e2d2h                               ; e8 87 ff
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    mov ax, 0c800h                            ; b8 00 c8
+    mov dx, 0f000h                            ; ba 00 f0
+    call 01600h                               ; e8 a9 32
+    call 0178dh                               ; e8 33 34
+    call 03b0fh                               ; e8 b2 57
+    sti                                       ; fb
+    int 019h                                  ; cd 19
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 0e361h                          ; eb fd
+    cli                                       ; fa
+    hlt                                       ; f4
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ss, [word 00069h]                     ; 8e 16 69 00
+    mov sp, word [word 00067h]                ; 8b 26 67 00
+    in AL, strict byte 092h                   ; e4 92
+    and AL, strict byte 0fdh                  ; 24 fd
+    out strict byte 092h, AL                  ; e6 92
+    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    in AL, strict byte 080h                   ; e4 80
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    db  03ah, 0e0h
+    ; cmp ah, al                                ; 3a e0
+    popaw                                     ; 61
+    sti                                       ; fb
+    retf 00002h                               ; ca 02 00
+    times 0x6d db 0
+    db  'XM'
+int13_handler:                               ; 0xfe3fe LB 0x3
+    jmp near 0ec5bh                           ; e9 5a 08
+rom_fdpt:                                    ; 0xfe401 LB 0x2f1
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h
+    db  04dh
+int19_handler:                               ; 0xfe6f2 LB 0x3
+    jmp near 0f0ach                           ; e9 b7 09
+biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
+    or word [bx+si], ax                       ; 09 00
+    cld                                       ; fc
+    add byte [bx+di], al                      ; 00 01
+    je short 0e73ch                           ; 74 40
+    times 0x2b db 0
+    db  'XM'
+biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
+    times 0xe db 0
+    db  'XM'
+biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 06435h                               ; e8 f3 7c
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 016e4h                               ; e8 95 2f
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+init_pic:                                    ; 0xfe753 LB 0x25
+    mov AL, strict byte 011h                  ; b0 11
+    out strict byte 020h, AL                  ; e6 20
+    out strict byte 0a0h, AL                  ; e6 a0
+    mov AL, strict byte 008h                  ; b0 08
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 070h                  ; b0 70
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 004h                  ; b0 04
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 001h                  ; b0 01
+    out strict byte 021h, AL                  ; e6 21
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 0b8h                  ; b0 b8
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 08fh                  ; b0 8f
+    out strict byte 0a1h, AL                  ; e6 a1
+    retn                                      ; c3
+ebda_post:                                   ; 0xfe778 LB 0xb6
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [00034h], ax                     ; a3 34 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00036h], ax                     ; a3 36 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [0003ch], ax                     ; a3 3c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003eh], ax                     ; a3 3e 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [001c8h], ax                     ; a3 c8 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001cah], ax                     ; a3 ca 01
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [001dch], ax                     ; a3 dc 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001deh], ax                     ; a3 de 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov ds, ax                                ; 8e d8
+    mov byte [word 00000h], 001h              ; c6 06 00 00 01
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
+    retn                                      ; c3
+    times 0x6f db 0
+    db  'XM'
+biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x159
+    sti                                       ; fb
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    cmp ah, 000h                              ; 80 fc 00
+    je short 0e846h                           ; 74 0f
+    cmp ah, 010h                              ; 80 fc 10
+    je short 0e846h                           ; 74 0a
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 056e2h                               ; e8 a0 6e
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    mov bx, strict word 00040h                ; bb 40 00
+    mov ds, bx                                ; 8e db
+    cli                                       ; fa
+    mov bx, word [word 0001ah]                ; 8b 1e 1a 00
+    cmp bx, word [word 0001ch]                ; 3b 1e 1c 00
+    jne short 0e85ah                          ; 75 04
+    sti                                       ; fb
+    nop                                       ; 90
+    jmp short 0e84bh                          ; eb f1
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 056e2h                               ; e8 82 6e
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    times 0x121 db 0
+    db  'XM'
+biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
+    cli                                       ; fa
+    push ax                                   ; 50
+    mov AL, strict byte 0adh                  ; b0 ad
+    out strict byte 064h, AL                  ; e6 64
+    mov AL, strict byte 00bh                  ; b0 0b
+    out strict byte 020h, AL                  ; e6 20
+    in AL, strict byte 020h                   ; e4 20
+    and AL, strict byte 002h                  ; 24 02
+    je short 0e9d0h                           ; 74 39
+    in AL, strict byte 060h                   ; e4 60
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    cld                                       ; fc
+    mov AH, strict byte 04fh                  ; b4 4f
+    stc                                       ; f9
+    int 015h                                  ; cd 15
+    jnc short 0e9cah                          ; 73 27
+    sti                                       ; fb
+    cmp AL, strict byte 0e0h                  ; 3c e0
+    jne short 0e9b3h                          ; 75 0b
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    or byte [00496h], 002h                    ; 80 0e 96 04 02
+    jmp short 0e9cah                          ; eb 17
+    cmp AL, strict byte 0e1h                  ; 3c e1
+    jne short 0e9c2h                          ; 75 0b
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    or byte [00496h], 001h                    ; 80 0e 96 04 01
+    jmp short 0e9cah                          ; eb 08
+    push ES                                   ; 06
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 051bah                               ; e8 f1 67
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    cli                                       ; fa
+    call 0e034h                               ; e8 64 f6
+    mov AL, strict byte 0aeh                  ; b0 ae
+    out strict byte 064h, AL                  ; e6 64
+    pop ax                                    ; 58
+    iret                                      ; cf
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 06edbh                               ; e8 fc 84
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+    times 0x274 db 0
+    db  'XM'
+biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
+    jmp short 0ecb0h                          ; eb 55
+int13_relocated:                             ; 0xfec5b LB 0x55
+    cmp ah, 04ah                              ; 80 fc 4a
+    jc short 0ec71h                           ; 72 11
+    cmp ah, 04dh                              ; 80 fc 4d
+    jnbe short 0ec71h                         ; 77 0c
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 03b53h                           ; e9 e2 4e
+    push ES                                   ; 06
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    call 03b27h                               ; e8 ae 4e
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0ecabh                           ; 74 2e
+    call 03b3dh                               ; e8 bd 4e
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  03ah, 0c2h
+    ; cmp al, dl                                ; 3a c2
+    jne short 0ec97h                          ; 75 11
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 0414ch                           ; e9 b5 54
+    and dl, 0e0h                              ; 80 e2 e0
+    db  03ah, 0c2h
+    ; cmp al, dl                                ; 3a c2
+    jne short 0ecabh                          ; 75 0d
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    db  0feh, 0cah
+    ; dec dl                                    ; fe ca
+    jmp short 0ecb4h                          ; eb 09
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+int13_noeltorito:                            ; 0xfecb0 LB 0x4
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+int13_legacy:                                ; 0xfecb4 LB 0x14
+    push dx                                   ; 52
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    test dl, 080h                             ; f6 c2 80
+    jne short 0ecc8h                          ; 75 06
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 0319ah                           ; e9 d2 44
+int13_notfloppy:                             ; 0xfecc8 LB 0x14
+    cmp dl, 0e0h                              ; 80 fa e0
+    jc short 0ecdch                           ; 72 0f
+    shr ebx, 010h                             ; 66 c1 eb 10
+    push bx                                   ; 53
+    call 0458eh                               ; e8 b9 58
+    pop bx                                    ; 5b
+    sal ebx, 010h                             ; 66 c1 e3 10
+    jmp short 0ece9h                          ; eb 0d
+int13_disk:                                  ; 0xfecdc LB 0xd
+    cmp ah, 040h                              ; 80 fc 40
+    jnbe short 0ece6h                         ; 77 05
+    call 05ab9h                               ; e8 d5 6d
+    jmp short 0ece9h                          ; eb 03
+    call 05f08h                               ; e8 1f 72
+int13_out:                                   ; 0xfece9 LB 0x4
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+detect_parport:                              ; 0xfeced LB 0x1e
+    push dx                                   ; 52
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    and AL, strict byte 0dfh                  ; 24 df
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    mov AL, strict byte 0aah                  ; b0 aa
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 0aah                  ; 3c aa
+    jne short 0ed0ah                          ; 75 0d
+    push bx                                   ; 53
+    sal bx, 1                                 ; d1 e3
+    mov word [bx+00408h], dx                  ; 89 97 08 04
+    pop bx                                    ; 5b
+    mov byte [bx+00478h], cl                  ; 88 8f 78 04
+    inc bx                                    ; 43
+    retn                                      ; c3
+detect_serial:                               ; 0xfed0b LB 0x24
+    push dx                                   ; 52
+    inc dx                                    ; 42
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0ed2dh                          ; 75 18
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0ed2dh                          ; 75 12
+    dec dx                                    ; 4a
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    pop dx                                    ; 5a
+    push bx                                   ; 53
+    sal bx, 1                                 ; d1 e3
+    mov word [bx+00400h], dx                  ; 89 97 00 04
+    pop bx                                    ; 5b
+    mov byte [bx+0047ch], cl                  ; 88 8f 7c 04
+    inc bx                                    ; 43
+    retn                                      ; c3
+    pop dx                                    ; 5a
+    retn                                      ; c3
+floppy_post:                                 ; 0xfed2f LB 0x87
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov AL, strict byte 000h                  ; b0 00
+    mov byte [0043eh], AL                     ; a2 3e 04
+    mov byte [0043fh], AL                     ; a2 3f 04
+    mov byte [00440h], AL                     ; a2 40 04
+    mov byte [00441h], AL                     ; a2 41 04
+    mov byte [00442h], AL                     ; a2 42 04
+    mov byte [00443h], AL                     ; a2 43 04
+    mov byte [00444h], AL                     ; a2 44 04
+    mov byte [00445h], AL                     ; a2 45 04
+    mov byte [00446h], AL                     ; a2 46 04
+    mov byte [00447h], AL                     ; a2 47 04
+    mov byte [00448h], AL                     ; a2 48 04
+    mov byte [0048bh], AL                     ; a2 8b 04
+    mov AL, strict byte 010h                  ; b0 10
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    shr al, 004h                              ; c0 e8 04
+    je short 0ed6ah                           ; 74 04
+    mov BL, strict byte 007h                  ; b3 07
+    jmp short 0ed6ch                          ; eb 02
+    mov BL, strict byte 000h                  ; b3 00
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    and AL, strict byte 00fh                  ; 24 0f
+    je short 0ed75h                           ; 74 03
+    or bl, 070h                               ; 80 cb 70
+    mov byte [0048fh], bl                     ; 88 1e 8f 04
+    mov AL, strict byte 000h                  ; b0 00
+    mov byte [00490h], AL                     ; a2 90 04
+    mov byte [00491h], AL                     ; a2 91 04
+    mov byte [00492h], AL                     ; a2 92 04
+    mov byte [00493h], AL                     ; a2 93 04
+    mov byte [00494h], AL                     ; a2 94 04
+    mov byte [00495h], AL                     ; a2 95 04
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 00ah, AL                  ; e6 0a
+    mov ax, 0efc7h                            ; b8 c7 ef
+    mov word [00078h], ax                     ; a3 78 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0007ah], ax                     ; a3 7a 00
+    mov ax, 0ec59h                            ; b8 59 ec
+    mov word [00100h], ax                     ; a3 00 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00102h], ax                     ; a3 02 01
+    mov ax, 0ef57h                            ; b8 57 ef
+    mov word [00038h], ax                     ; a3 38 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003ah], ax                     ; a3 3a 00
+    retn                                      ; c3
+bcd_to_bin:                                  ; 0xfedb6 LB 0x9
+    sal ax, 004h                              ; c1 e0 04
+    shr al, 004h                              ; c0 e8 04
+    aad 00ah                                  ; d5 0a
+    retn                                      ; c3
+rtc_post:                                    ; 0xfedbf LB 0x198
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 ee ff
+    test al, al                               ; 84 c0
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    mov dx, 01234h                            ; ba 34 12
+    mul dx                                    ; f7 e2
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 da ff
+    test al, al                               ; 84 c0
+    je short 0edebh                           ; 74 0b
+    add cx, 04463h                            ; 81 c1 63 44
+    adc dx, strict byte 00004h                ; 83 d2 04
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    jne short 0ede0h                          ; 75 f5
+    mov AL, strict byte 004h                  ; b0 04
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 c2 ff
+    test al, al                               ; 84 c0
+    je short 0ee0ah                           ; 74 12
+    add cx, 0076ch                            ; 81 c1 6c 07
+    adc dx, 00100h                            ; 81 d2 00 01
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    jne short 0edf8h                          ; 75 f4
+    mov ax, 0046ch                            ; b8 6c 04
+    mov dx, 0046eh                            ; ba 6e 04
+    db  08ah, 0cdh
+    ; mov cl, ch                                ; 8a cd
+    db  08ah, 0eah
+    ; mov ch, dl                                ; 8a ea
+    db  08ah, 0d6h
+    ; mov dl, dh                                ; 8a d6
+    db  032h, 0f6h
+    ; xor dh, dh                                ; 32 f6
+    mov word [0046ch], cx                     ; 89 0e 6c 04
+    mov word [0046eh], dx                     ; 89 16 6e 04
+    mov byte [00470h], dh                     ; 88 36 70 04
+    retn                                      ; c3
+    times 0x136 db 0
+    db  'XM'
+int0e_handler:                               ; 0xfef57 LB 0x70
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0ef81h                           ; 74 1e
+    mov dx, 003f5h                            ; ba f5 03
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    jne short 0ef69h                          ; 75 f6
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0ef73h                           ; 74 f2
+    push DS                                   ; 1e
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    call 0e034h                               ; e8 ab f0
+    or byte [0043eh], 080h                    ; 80 0e 3e 04 80
+    pop DS                                    ; 1f
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    iret                                      ; cf
+    times 0x33 db 0
+    db  'XM'
+_diskette_param_table:                       ; 0xfefc7 LB 0xb
+    scasw                                     ; af
+    add ah, byte [di]                         ; 02 25
+    add dl, byte [bp+si]                      ; 02 12
+    db  01bh, 0ffh
+    ; sbb di, di                                ; 1b ff
+    insb                                      ; 6c
+    db  0f6h
+    invd                                      ; 0f 08
+biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
+    jmp short 0efd4h                          ; eb 00
+int17_handler:                               ; 0xfefd4 LB 0xd
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 07879h                               ; e8 9c 88
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+_pmode_IDT:                                  ; 0xfefe1 LB 0x6
+    db  000h, 000h, 000h, 000h, 00fh, 000h
+_rmode_IDT:                                  ; 0xfefe7 LB 0x6
+    db  0ffh, 003h, 000h, 000h, 000h, 000h
+int1c_handler:                               ; 0xfefed LB 0x58
+    iret                                      ; cf
+    times 0x55 db 0
+    db  'XM'
+biosorg_check_0F045h:                        ; 0xff045 LB 0x20
+    iret                                      ; cf
+    times 0x1d db 0
+    db  'XM'
+int10_handler:                               ; 0xff065 LB 0x3f
+    iret                                      ; cf
+    times 0x3c db 0
+    db  'XM'
+biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0175bh                               ; e8 b1 26
+    hlt                                       ; f4
+    iret                                      ; cf
+int19_relocated:                             ; 0xff0ac LB 0x91
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, word [bp+002h]                    ; 8b 46 02
+    cmp ax, 0f000h                            ; 3d 00 f0
+    je short 0f0c3h                           ; 74 0d
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov ax, 01234h                            ; b8 34 12
+    mov word [001d8h], ax                     ; a3 d8 01
+    jmp near 0e05bh                           ; e9 98 ef
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    call 04c2eh                               ; e8 5e 5b
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 28
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 04c2eh                               ; e8 51 5b
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 1b
+    mov ax, strict word 00003h                ; b8 03 00
+    push strict byte 00003h                   ; 6a 03
+    call 04c2eh                               ; e8 43 5b
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 0d
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 04c2eh                               ; e8 36 5b
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    je short 0f0a4h                           ; 74 a6
+    mov word [byte bp+000h], ax               ; 89 46 00
+    sal ax, 004h                              ; c1 e0 04
+    mov word [bp+002h], ax                    ; 89 46 02
+    mov ax, word [byte bp+000h]               ; 8b 46 00
+    and ax, 0f000h                            ; 25 00 f0
+    mov word [bp+004h], ax                    ; 89 46 04
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    mov word [byte bp+000h], ax               ; 89 46 00
+    mov ax, 0aa55h                            ; b8 55 aa
+    pop bp                                    ; 5d
+    iret                                      ; cf
+    or cx, word [bp+si]                       ; 0b 0a
+    or word [bp+di], cx                       ; 09 0b
+    push eax                                  ; 66 50
+    mov eax, strict dword 000800000h          ; 66 b8 00 00 80 00
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    sal eax, 008h                             ; 66 c1 e0 08
+    and dl, 0fch                              ; 80 e2 fc
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov dx, 00cf8h                            ; ba f8 0c
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    retn                                      ; c3
+pcibios_init_iomem_bases:                    ; 0xff13d LB 0x16
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov eax, strict dword 0e0000000h          ; 66 b8 00 00 00 e0
+    push eax                                  ; 66 50
+    mov ax, 0d000h                            ; b8 00 d0
+    push ax                                   ; 50
+    mov ax, strict word 00010h                ; b8 10 00
+    push ax                                   ; 50
+    mov bx, strict word 00008h                ; bb 08 00
+pci_init_io_loop1:                           ; 0xff153 LB 0xe
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 ca ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    cmp ax, strict byte 0ffffh                ; 83 f8 ff
+    je short 0f19ah                           ; 74 39
+enable_iomem_space:                          ; 0xff161 LB 0x39
+    mov DL, strict byte 004h                  ; b2 04
+    call 0f122h                               ; e8 bc ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in AL, DX                                 ; ec
+    or AL, strict byte 007h                   ; 0c 07
+    out DX, AL                                ; ee
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 b0 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
+    jne short 0f19ah                          ; 75 1b
+    mov DL, strict byte 010h                  ; b2 10
+    call 0f122h                               ; e8 9e ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    and ax, strict byte 0fffch                ; 83 e0 fc
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    db  08bh, 0d1h
+    ; mov dx, cx                                ; 8b d1
+    add dx, strict byte 00014h                ; 83 c2 14
+    in ax, DX                                 ; ed
+    db  08bh, 0d1h
+    ; mov dx, cx                                ; 8b d1
+    add dx, strict byte 00018h                ; 83 c2 18
+    in eax, DX                                ; 66 ed
+next_pci_dev:                                ; 0xff19a LB 0xf
+    mov byte [bp-008h], 010h                  ; c6 46 f8 10
+    inc bx                                    ; 43
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jne short 0f153h                          ; 75 ae
+    db  08bh, 0e5h
+    ; mov sp, bp                                ; 8b e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pcibios_init_set_elcr:                       ; 0xff1a9 LB 0xc
+    push ax                                   ; 50
+    push cx                                   ; 51
+    mov dx, 004d0h                            ; ba d0 04
+    test AL, strict byte 008h                 ; a8 08
+    je short 0f1b5h                           ; 74 03
+    inc dx                                    ; 42
+    and AL, strict byte 007h                  ; 24 07
+is_master_pic:                               ; 0xff1b5 LB 0xd
+    db  08ah, 0c8h
+    ; mov cl, al                                ; 8a c8
+    mov BL, strict byte 001h                  ; b3 01
+    sal bl, CL                                ; d2 e3
+    in AL, DX                                 ; ec
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    out DX, AL                                ; ee
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    retn                                      ; c3
+pcibios_init_irqs:                           ; 0xff1c2 LB 0x53
+    push DS                                   ; 1e
+    push bp                                   ; 55
+    mov ax, 0f000h                            ; b8 00 f0
+    mov ds, ax                                ; 8e d8
+    mov dx, 004d0h                            ; ba d0 04
+    mov AL, strict byte 000h                  ; b0 00
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov si, 0f2a0h                            ; be a0 f2
+    mov bh, byte [si+008h]                    ; 8a 7c 08
+    mov bl, byte [si+009h]                    ; 8a 5c 09
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 43 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
+    jne near 0f292h                           ; 0f 85 a6 00
+    mov dl, byte [si+022h]                    ; 8a 54 22
+    call 0f122h                               ; e8 30 ff
+    push bx                                   ; 53
+    mov dx, 00cfch                            ; ba fc 0c
+    mov ax, 08080h                            ; b8 80 80
+    out DX, ax                                ; ef
+    add dx, strict byte 00002h                ; 83 c2 02
+    out DX, ax                                ; ef
+    mov ax, word [si+006h]                    ; 8b 44 06
+    sub ax, strict byte 00020h                ; 83 e8 20
+    shr ax, 004h                              ; c1 e8 04
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    add si, strict byte 00020h                ; 83 c6 20
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, 0f11eh                            ; b8 1e f1
+    push ax                                   ; 50
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
+pci_init_irq_loop1:                          ; 0xff215 LB 0x5
+    mov bh, byte [si]                         ; 8a 3c
+    mov bl, byte [si+001h]                    ; 8a 5c 01
+pci_init_irq_loop2:                          ; 0xff21a LB 0x15
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 03 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    cmp ax, strict byte 0ffffh                ; 83 f8 ff
+    jne short 0f22fh                          ; 75 07
+    test bl, 007h                             ; f6 c3 07
+    je short 0f286h                           ; 74 59
+    jmp short 0f27ch                          ; eb 4d
+pci_test_int_pin:                            ; 0xff22f LB 0x3c
+    mov DL, strict byte 03ch                  ; b2 3c
+    call 0f122h                               ; e8 ee fe
+    mov dx, 00cfdh                            ; ba fd 0c
+    in AL, DX                                 ; ec
+    and AL, strict byte 007h                  ; 24 07
+    je short 0f27ch                           ; 74 40
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov DL, strict byte 003h                  ; b2 03
+    mul dl                                    ; f6 e2
+    add AL, strict byte 002h                  ; 04 02
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    mov al, byte [bx+si]                      ; 8a 00
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    mov bx, word [byte bp+000h]               ; 8b 5e 00
+    call 0f122h                               ; e8 d0 fe
+    mov dx, 00cfch                            ; ba fc 0c
+    and AL, strict byte 003h                  ; 24 03
+    db  002h, 0d0h
+    ; add dl, al                                ; 02 d0
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 0f26bh                           ; 72 0d
+    mov bx, word [bp-002h]                    ; 8b 5e fe
+    mov al, byte [bx]                         ; 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov word [bp-002h], bx                    ; 89 5e fe
+    call 0f1a9h                               ; e8 3e ff
+pirq_found:                                  ; 0xff26b LB 0x11
+    mov bh, byte [si]                         ; 8a 3c
+    mov bl, byte [si+001h]                    ; 8a 5c 01
+    add bl, byte [bp-003h]                    ; 02 5e fd
+    mov DL, strict byte 03ch                  ; b2 3c
+    call 0f122h                               ; e8 aa fe
+    mov dx, 00cfch                            ; ba fc 0c
+    out DX, AL                                ; ee
+next_pci_func:                               ; 0xff27c LB 0xa
+    inc byte [bp-003h]                        ; fe 46 fd
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    test bl, 007h                             ; f6 c3 07
+    jne short 0f21ah                          ; 75 94
+next_pir_entry:                              ; 0xff286 LB 0xc
+    add si, strict byte 00010h                ; 83 c6 10
+    mov byte [bp-003h], 000h                  ; c6 46 fd 00
+    loop 0f215h                               ; e2 86
+    db  08bh, 0e5h
+    ; mov sp, bp                                ; 8b e5
+    pop bx                                    ; 5b
+pci_init_end:                                ; 0xff292 LB 0x2e
+    pop bp                                    ; 5d
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h
+    db  001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
+_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
+    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
+    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
+    db  000h, 018h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 002h, 000h
+    db  000h, 020h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 003h, 000h
+    db  000h, 028h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 004h, 000h
+    db  000h, 030h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 005h, 000h
+    db  000h, 038h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 006h, 000h
+    db  000h, 040h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 007h, 000h
+    db  000h, 048h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 008h, 000h
+    db  000h, 050h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 009h, 000h
+    db  000h, 058h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00ah, 000h
+    db  000h, 060h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00bh, 000h
+    db  000h, 068h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 00ch, 000h
+    db  000h, 070h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 00dh, 000h
+    db  000h, 078h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00eh, 000h
+    db  000h, 080h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00fh, 000h
+    db  000h, 088h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 010h, 000h
+    db  000h, 090h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 011h, 000h
+    db  000h, 098h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 012h, 000h
+    db  000h, 0a0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 013h, 000h
+    db  000h, 0a8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 014h, 000h
+    db  000h, 0b0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 015h, 000h
+    db  000h, 0b8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 016h, 000h
+    db  000h, 0c0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 017h, 000h
+    db  000h, 0c8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 018h, 000h
+    db  000h, 0d0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 019h, 000h
+    db  000h, 0d8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 01ah, 000h
+    db  000h, 0e0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 01bh, 000h
+    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
+    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
+_pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
+    loopne 0f4a3h                             ; e0 01
+    times 0x39d db 0
+    db  'XM'
+int12_handler:                               ; 0xff841 LB 0xc
+    sti                                       ; fb
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [00013h]                     ; a1 13 00
+    pop DS                                    ; 1f
+    iret                                      ; cf
+int11_handler:                               ; 0xff84d LB 0xc
+    sti                                       ; fb
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [00010h]                     ; a1 10 00
+    pop DS                                    ; 1f
+    iret                                      ; cf
+int15_handler:                               ; 0xff859 LB 0x2e
+    pushfw                                    ; 9c
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    cmp ah, 086h                              ; 80 fc 86
+    je short 0f88ch                           ; 74 28
+    cmp ah, 0e8h                              ; 80 fc e8
+    je short 0f88ch                           ; 74 23
+    cmp ah, 0d0h                              ; 80 fc d0
+    je short 0f88ch                           ; 74 1e
+    pushaw                                    ; 60
+    cmp ah, 053h                              ; 80 fc 53
+    je short 0f882h                           ; 74 0e
+    cmp ah, 0c2h                              ; 80 fc c2
+    je short 0f887h                           ; 74 0e
+    call 06647h                               ; e8 cb 6d
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    popfw                                     ; 9d
+    jmp short 0f893h                          ; eb 11
+    call 09a31h                               ; e8 ac a1
+    jmp short 0f87ch                          ; eb f5
+int15_handler_mouse:                         ; 0xff887 LB 0x5
+    call 074ech                               ; e8 62 7c
+    jmp short 0f87ch                          ; eb f0
+int15_handler32:                             ; 0xff88c LB 0x7
+    pushaw                                    ; 60
+    call 06b1fh                               ; e8 8f 72
+    popaw                                     ; 61
+    jmp short 0f87dh                          ; eb ea
+iret_modify_cf:                              ; 0xff893 LB 0x14
+    jc short 0f89eh                           ; 72 09
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    and byte [bp+006h], 0feh                  ; 80 66 06 fe
+    pop bp                                    ; 5d
+    iret                                      ; cf
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    or byte [bp+006h], 001h                   ; 80 4e 06 01
+    pop bp                                    ; 5d
+    iret                                      ; cf
+int74_handler:                               ; 0xff8a7 LB 0x2e
+    sti                                       ; fb
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0741ah                               ; e8 5f 7b
+    pop cx                                    ; 59
+    jcxz 0f8cah                               ; e3 0c
+    push strict byte 00000h                   ; 6a 00
+    pop DS                                    ; 1f
+    push word [0040eh]                        ; ff 36 0e 04
+    pop DS                                    ; 1f
+    call far [word 00022h]                    ; ff 1e 22 00
+    cli                                       ; fa
+    call 0e030h                               ; e8 62 e7
+    add sp, strict byte 00008h                ; 83 c4 08
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+int76_handler:                               ; 0xff8d5 LB 0x199
+    push ax                                   ; 50
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
+    call 0e030h                               ; e8 4c e7
+    pop DS                                    ; 1f
+    pop ax                                    ; 58
+    iret                                      ; cf
+    times 0x185 db 0
+    db  'XM'
+font8x8:                                     ; 0xffa6e LB 0x400
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
+    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
+    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
+    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
+    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
+    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
+    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
+    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
+    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
+    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
+    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
+    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
+    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
+    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
+    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
+    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
+    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
+    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
+    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
+    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
+    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
+    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
+    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
+    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
+    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
+    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
+    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
+    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
+    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
+    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
+    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
+    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
+    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
+    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
+    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
+    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
+    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
+    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
+    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
+    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
+    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
+    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
+    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
+    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
+    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
+    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
+    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
+    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
+    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
+    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
+    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
+    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
+biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0xd
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0717eh                               ; e8 07 73
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+int70_handler:                               ; 0xffe7b LB 0x2a
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 070bfh                               ; e8 3b 72
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    times 0x1b db 0
+    db  'XM'
+int08_handler:                               ; 0xffea5 LB 0x4e
+    sti                                       ; fb
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push DS                                   ; 1e
+    push dx                                   ; 52
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [0006ch]                     ; a1 6c 00
+    mov bx, word [word 0006eh]                ; 8b 1e 6e 00
+    add ax, strict byte 00001h                ; 83 c0 01
+    adc bx, strict byte 00000h                ; 83 d3 00
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jc short 0fed0h                           ; 72 0f
+    jnbe short 0fec8h                         ; 77 05
+    cmp ax, 000b0h                            ; 3d b0 00
+    jc short 0fed0h                           ; 72 08
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    inc byte [word 00070h]                    ; fe 06 70 00
+    mov word [0006ch], ax                     ; a3 6c 00
+    mov word [word 0006eh], bx                ; 89 1e 6e 00
+    mov AL, byte [00040h]                     ; a0 40 00
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    je short 0feech                           ; 74 0e
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [00040h], AL                     ; a2 40 00
+    jne short 0feech                          ; 75 07
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0cfh                  ; 24 cf
+    out DX, AL                                ; ee
+    int 01ch                                  ; cd 1c
+    cli                                       ; fa
+    call 05734h                               ; e8 42 58
+    dec bp                                    ; 4d
+biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
+    pop DS                                    ; 1f
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    iret                                      ; cf
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si+04dh], bl                 ; 00 58 4d
+biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
+    dec di                                    ; 4f
+    jc short 0ff64h                           ; 72 61
+    arpl [si+065h], bp                        ; 63 6c 65
+    and byte [bp+04dh], dl                    ; 20 56 4d
+    and byte [bp+069h], dl                    ; 20 56 69
+    jc short 0ff82h                           ; 72 74
+    jne short 0ff71h                          ; 75 61
+    insb                                      ; 6c
+    inc dx                                    ; 42
+    outsw                                     ; 6f
+    js short 0ff35h                           ; 78 20
+    inc dx                                    ; 42
+    dec cx                                    ; 49
+    dec di                                    ; 4f
+    push bx                                   ; 53
+    times 0x38 db 0
+    db  'XM'
+dummy_iret:                                  ; 0xfff53 LB 0x1
+    iret                                      ; cf
+biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
+    iret                                      ; cf
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    cld                                       ; fc
+    pop di                                    ; 5f
+    push bx                                   ; 53
+    dec bp                                    ; 4d
+    pop di                                    ; 5f
+    jnl short 0ff85h                          ; 7d 1f
+    add al, byte [di]                         ; 02 05
+    inc word [bx+si]                          ; ff 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    pop di                                    ; 5f
+    inc sp                                    ; 44
+    dec bp                                    ; 4d
+    dec cx                                    ; 49
+    pop di                                    ; 5f
+    and ax, strict word 00000h                ; 25 00 00
+    add byte [bx+si], dl                      ; 00 10
+    push CS                                   ; 0e
+    add byte [bx+si], al                      ; 00 00
+    add byte [di], ah                         ; 00 25
+    times 0x6f db 0
+    db  'XM'
+cpu_reset:                                   ; 0xffff0 LB 0x10
+    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 00eh
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 60422)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 60422)
@@ -0,0 +1,1 @@
+95481da57ef1489fb5666e8c8c2ca238 *VBoxPcBios286.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 60422)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 60422)
@@ -0,0 +1,16999 @@
+; $Id$ 
+;; @file
+; Auto Generated source file. Do not edit.
+;
+
+;
+; Source file: post.c
+;
+;  BIOS POST routines. Used only during initialization.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: bios.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: print.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: ata.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: floppy.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: floppyt.c
+;
+;  $Id$
+;  Floppy drive tables.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: eltorito.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: boot.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: keyboard.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: disk.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: serial.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: system.c
+;
+;  
+;  Copyright (C) 2006-2016 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: invop.c
+;
+;  $Id$
+;  Real mode invalid opcode handler.
+;  
+;  
+;  
+;  Copyright (C) 2013-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: timepci.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: ps2mouse.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: parallel.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: logo.c
+;
+;  $Id$
+;  Stuff for drawing the BIOS logo.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: scsi.c
+;
+;  $Id$
+;  SCSI host adapter driver to boot from SCSI disks
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: ahci.c
+;
+;  $Id$
+;  AHCI host adapter driver to boot from SATA disks.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: apm.c
+;
+;  $Id$
+;  APM BIOS support. Implements APM version 1.2.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: pcibios.c
+;
+;  $Id$
+;  PCI BIOS support.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: pciutil.c
+;
+;  Utility routines for calling the PCI BIOS.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: vds.c
+;
+;  Utility routines for calling the Virtual DMA Services.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: support.asm
+;
+;  $Id$
+;  Compiler support routines.
+;  
+;  
+;  
+;  Copyright (C) 2012-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+
+;
+; Source file: pcibio32.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+;  --------------------------------------------------------------------
+
+;
+; Source file: apm_pm.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+;  --------------------------------------------------------------------
+;  
+;  Protected-mode APM implementation.
+;  
+
+;
+; Source file: orgs.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+;  
+
+;
+; Source file: pci32.c
+;
+;  $Id$
+;  32-bit PCI BIOS wrapper.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+
+
+
+section _DATA progbits vstart=0x0 align=1 ; size=0xb0 class=DATA group=DGROUP
+_fd_parm:                                    ; 0xf0000 LB 0x5b
+    db  0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 080h, 0dfh, 002h, 025h
+    db  002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 040h, 0dfh, 002h, 025h, 002h, 00fh, 01bh
+    db  0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 000h, 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h
+    db  00fh, 008h, 04fh, 080h, 0afh, 002h, 025h, 002h, 012h, 01bh, 0ffh, 06ch, 0f6h, 00fh, 008h, 04fh
+    db  000h, 0afh, 002h, 025h, 002h, 024h, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 0c0h, 0afh, 002h
+    db  025h, 002h, 0ffh, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 0ffh, 000h
+_fd_map:                                     ; 0xf005b LB 0xf
+    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
+_pktacc:                                     ; 0xf006a LB 0xc
+    db  000h, 000h, 000h, 000h, 000h, 000h, 064h, 02bh, 04eh, 080h, 075h, 08fh
+_softrst:                                    ; 0xf0076 LB 0xc
+    db  000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 029h, 03bh, 029h, 03bh
+_dskacc:                                     ; 0xf0082 LB 0x2e
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 054h, 02ah, 009h, 02bh, 000h, 000h, 000h, 000h
+    db  098h, 07eh, 073h, 07fh, 04bh, 08eh, 0f1h, 08eh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
+
+section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
+    db   'NMI Handler called', 00ah, 000h
+    db   'INT18: BOOT FAILURE', 00ah, 000h
+    db   '%s', 00ah, 000h, 000h
+    db   'FATAL: ', 000h
+    db   'bios_printf: unknown %ll format', 00ah, 000h
+    db   'bios_printf: unknown format', 00ah, 000h
+    db   'ata-detect: Failed to detect ATA device', 00ah, 000h
+    db   'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h
+    db   'ata-detect: Failed to detect ATAPI device', 00ah, 000h
+    db   ' slave', 000h
+    db   'master', 000h
+    db   'ata%d %s: ', 000h
+    db   '%c', 000h
+    db   ' ATA-%d Hard-Disk (%lu MBytes)', 00ah, 000h
+    db   ' ATAPI-%d CD-ROM/DVD-ROM', 00ah, 000h
+    db   ' ATAPI-%d Device', 00ah, 000h
+    db   'ata%d %s: Unknown device', 00ah, 000h
+    db   'ata_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'set_diskette_current_cyl: drive > 1', 00ah, 000h
+    db   'int13_diskette_function', 000h
+    db   '%s: drive>1 || head>1 ...', 00ah, 000h
+    db   '%s: ctrl not ready', 00ah, 000h
+    db   '%s: write error', 00ah, 000h
+    db   '%s: bad floppy type', 00ah, 000h
+    db   '%s: unsupported AH=%02x', 00ah, 000h, 000h
+    db   'int13_eltorito', 000h
+    db   '%s: call with AX=%04x not implemented.', 00ah, 000h
+    db   '%s: unsupported AH=%02x', 00ah, 000h
+    db   'int13_cdemu', 000h
+    db   '%s: function %02x, emulation not active for DL= %02x', 00ah, 000h
+    db   '%s: function %02x, error %02x !', 00ah, 000h
+    db   '%s: function AH=%02x unsupported, returns fail', 00ah, 000h
+    db   'int13_cdrom', 000h
+    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
+    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
+    db   '%s: function %02x. Can', 027h, 't use 64bits lba', 00ah, 000h
+    db   '%s: function %02x, status %02x !', 00ah, 000h, 000h
+    db   'Booting from %s...', 00ah, 000h
+    db   'Boot from %s failed', 00ah, 000h
+    db   'Boot from %s %d failed', 00ah, 000h
+    db   'No bootable medium found! System halted.', 00ah, 000h
+    db   'Could not read from the boot medium! System halted.', 00ah, 000h
+    db   'CDROM boot failure code : %04x', 00ah, 000h
+    db   'Boot : bseqnr=%d, bootseq=%x', 00dh, 00ah, 000h, 000h
+    db   'Keyboard error:%u', 00ah, 000h
+    db   'KBD: int09 handler: AL=0', 00ah, 000h
+    db   'KBD: int09h_handler(): unknown scancode read: 0x%02x!', 00ah, 000h
+    db   'KBD: int09h_handler(): scancode & asciicode are zero?', 00ah, 000h
+    db   'KBD: int16h: out of keyboard input', 00ah, 000h
+    db   'KBD: unsupported int 16h function %02x', 00ah, 000h
+    db   'AX=%04x BX=%04x CX=%04x DX=%04x ', 00ah, 000h, 000h
+    db   'int13_harddisk', 000h
+    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
+    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
+    db   '%s: function %02x, count out of range!', 00ah, 000h
+    db   '%s: function %02x, disk %02x, parameters out of range %04x/%04x/%04x!', 00ah
+    db   000h
+    db   '%s: function %02x, error %02x !', 00ah, 000h
+    db   'format disk track called', 00ah, 000h
+    db   '%s: function %02xh unimplemented, returns success', 00ah, 000h
+    db   '%s: function %02xh unsupported, returns fail', 00ah, 000h
+    db   'int13_harddisk_ext', 000h
+    db   '%s: function %02x. LBA out of range', 00ah, 000h, 000h
+    db   'int15: Func 24h, subfunc %02xh, A20 gate control not supported', 00ah, 000h
+    db   '*** int 15h function AH=bf not yet supported!', 00ah, 000h
+    db   'EISA BIOS not present', 00ah, 000h
+    db   '*** int 15h function AX=%04x, BX=%04x not yet supported!', 00ah, 000h
+    db   'sendmouse', 000h
+    db   'setkbdcomm', 000h
+    db   'Mouse reset returned %02x (should be ack)', 00ah, 000h
+    db   'Mouse status returned %02x (should be ack)', 00ah, 000h
+    db   'INT 15h C2 AL=6, BH=%02x', 00ah, 000h
+    db   'INT 15h C2 default case entered', 00ah, 000h, 000h
+    db   'Key pressed: %x', 00ah, 000h
+    db   00ah, 00ah, '  AHCI controller:', 000h
+    db   00ah, '    %d) Hard disk', 000h
+    db   00ah, 00ah, '  SCSI controller:', 000h
+    db   '  IDE controller:', 000h
+    db   00ah, 00ah, 'AHCI controller:', 00ah, 000h
+    db   00ah, '    %d) ', 000h
+    db   'Secondary ', 000h
+    db   'Primary ', 000h
+    db   'Slave', 000h
+    db   'Master', 000h
+    db   'No hard disks found', 000h
+    db   00ah, 000h
+    db   'Press F12 to select boot device.', 00ah, 000h
+    db   00ah, 'VirtualBox temporary boot device selection', 00ah, 00ah, 'Detected H'
+    db   'ard disks:', 00ah, 00ah, 000h
+    db   00ah, 'Other boot devices:', 00ah, ' f) Floppy', 00ah, ' c) CD-ROM', 00ah
+    db   ' l) LAN', 00ah, 00ah, ' b) Continue booting', 00ah, 000h
+    db   'Delaying boot for %d seconds:', 000h
+    db   ' %d', 000h, 000h
+    db   'scsi_read_sectors', 000h
+    db   '%s: device_id out of range %d', 00ah, 000h
+    db   'scsi_write_sectors', 000h
+    db   'scsi_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'scsi_enumerate_attached_devices', 000h
+    db   '%s: SCSI_INQUIRY failed', 00ah, 000h
+    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
+    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
+    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
+    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
+    db   'ahci_read_sectors', 000h
+    db   '%s: device_id out of range %d', 00ah, 000h
+    db   'ahci_write_sectors', 000h
+    db   'ahci_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u 0x%llx sectors', 00ah, 000h
+    db   'Standby', 000h
+    db   'Suspend', 000h
+    db   'Shutdown', 000h
+    db   'APM: Unsupported function AX=%04X BX=%04X called', 00ah, 000h, 000h
+    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
+
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+    db  'VirtualBox 5.0.51', 000h
+_bios_prefix_string:                         ; 0xf0da0 LB 0x8
+    db  'BIOS: ', 000h, 000h
+_isotag:                                     ; 0xf0da8 LB 0x6
+    db  'CD001', 000h
+_eltorito:                                   ; 0xf0dae LB 0x18
+    db  'EL TORITO SPECIFICATION', 000h
+_drivetypes:                                 ; 0xf0dc6 LB 0x28
+    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
+    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
+    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
+    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
+    db  040h, 003h, 000h, 003h, 000h, 079h, 000h, 000h, 033h, 004h, 023h, 004h, 000h, 000h, 000h, 07ah
+    db  000h, 000h, 034h, 005h, 024h, 005h, 000h, 000h, 000h, 07bh, 000h, 000h, 035h, 006h, 025h, 006h
+    db  000h, 000h, 000h, 07ch, 000h, 000h, 036h, 007h, 05eh, 007h, 01eh, 007h, 000h, 07dh, 000h, 000h
+    db  037h, 008h, 026h, 008h, 000h, 000h, 000h, 07eh, 000h, 000h, 038h, 009h, 02ah, 009h, 000h, 000h
+    db  000h, 07fh, 000h, 000h, 039h, 00ah, 028h, 00ah, 000h, 000h, 000h, 080h, 000h, 000h, 030h, 00bh
+    db  029h, 00bh, 000h, 000h, 000h, 081h, 000h, 000h, 02dh, 00ch, 05fh, 00ch, 01fh, 00ch, 000h, 082h
+    db  000h, 000h, 03dh, 00dh, 02bh, 00dh, 000h, 000h, 000h, 083h, 000h, 000h, 008h, 00eh, 008h, 00eh
+    db  07fh, 00eh, 000h, 000h, 000h, 000h, 009h, 00fh, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  071h, 010h, 051h, 010h, 011h, 010h, 000h, 010h, 040h, 000h, 077h, 011h, 057h, 011h, 017h, 011h
+    db  000h, 011h, 040h, 000h, 065h, 012h, 045h, 012h, 005h, 012h, 000h, 012h, 040h, 000h, 072h, 013h
+    db  052h, 013h, 012h, 013h, 000h, 013h, 040h, 000h, 074h, 014h, 054h, 014h, 014h, 014h, 000h, 014h
+    db  040h, 000h, 079h, 015h, 059h, 015h, 019h, 015h, 000h, 015h, 040h, 000h, 075h, 016h, 055h, 016h
+    db  015h, 016h, 000h, 016h, 040h, 000h, 069h, 017h, 049h, 017h, 009h, 017h, 000h, 017h, 040h, 000h
+    db  06fh, 018h, 04fh, 018h, 00fh, 018h, 000h, 018h, 040h, 000h, 070h, 019h, 050h, 019h, 010h, 019h
+    db  000h, 019h, 040h, 000h, 05bh, 01ah, 07bh, 01ah, 01bh, 01ah, 000h, 000h, 000h, 000h, 05dh, 01bh
+    db  07dh, 01bh, 01dh, 01bh, 000h, 000h, 000h, 000h, 00dh, 01ch, 00dh, 01ch, 00ah, 01ch, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 061h, 01eh, 041h, 01eh
+    db  001h, 01eh, 000h, 01eh, 040h, 000h, 073h, 01fh, 053h, 01fh, 013h, 01fh, 000h, 01fh, 040h, 000h
+    db  064h, 020h, 044h, 020h, 004h, 020h, 000h, 020h, 040h, 000h, 066h, 021h, 046h, 021h, 006h, 021h
+    db  000h, 021h, 040h, 000h, 067h, 022h, 047h, 022h, 007h, 022h, 000h, 022h, 040h, 000h, 068h, 023h
+    db  048h, 023h, 008h, 023h, 000h, 023h, 040h, 000h, 06ah, 024h, 04ah, 024h, 00ah, 024h, 000h, 024h
+    db  040h, 000h, 06bh, 025h, 04bh, 025h, 00bh, 025h, 000h, 025h, 040h, 000h, 06ch, 026h, 04ch, 026h
+    db  00ch, 026h, 000h, 026h, 040h, 000h, 03bh, 027h, 03ah, 027h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  027h, 028h, 022h, 028h, 000h, 000h, 000h, 000h, 000h, 000h, 060h, 029h, 07eh, 029h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 02bh
+    db  07ch, 02bh, 01ch, 02bh, 000h, 000h, 000h, 000h, 07ah, 02ch, 05ah, 02ch, 01ah, 02ch, 000h, 02ch
+    db  040h, 000h, 078h, 02dh, 058h, 02dh, 018h, 02dh, 000h, 02dh, 040h, 000h, 063h, 02eh, 043h, 02eh
+    db  003h, 02eh, 000h, 02eh, 040h, 000h, 076h, 02fh, 056h, 02fh, 016h, 02fh, 000h, 02fh, 040h, 000h
+    db  062h, 030h, 042h, 030h, 002h, 030h, 000h, 030h, 040h, 000h, 06eh, 031h, 04eh, 031h, 00eh, 031h
+    db  000h, 031h, 040h, 000h, 06dh, 032h, 04dh, 032h, 00dh, 032h, 000h, 032h, 040h, 000h, 02ch, 033h
+    db  03ch, 033h, 000h, 000h, 000h, 000h, 000h, 000h, 02eh, 034h, 03eh, 034h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 02fh, 035h, 03fh, 035h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 037h, 02ah, 037h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 020h, 039h, 020h, 039h, 020h, 039h
+    db  020h, 039h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03bh
+    db  000h, 054h, 000h, 05eh, 000h, 068h, 000h, 000h, 000h, 03ch, 000h, 055h, 000h, 05fh, 000h, 069h
+    db  000h, 000h, 000h, 03dh, 000h, 056h, 000h, 060h, 000h, 06ah, 000h, 000h, 000h, 03eh, 000h, 057h
+    db  000h, 061h, 000h, 06bh, 000h, 000h, 000h, 03fh, 000h, 058h, 000h, 062h, 000h, 06ch, 000h, 000h
+    db  000h, 040h, 000h, 059h, 000h, 063h, 000h, 06dh, 000h, 000h, 000h, 041h, 000h, 05ah, 000h, 064h
+    db  000h, 06eh, 000h, 000h, 000h, 042h, 000h, 05bh, 000h, 065h, 000h, 06fh, 000h, 000h, 000h, 043h
+    db  000h, 05ch, 000h, 066h, 000h, 070h, 000h, 000h, 000h, 044h, 000h, 05dh, 000h, 067h, 000h, 071h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 047h, 037h, 047h, 000h, 077h, 000h, 000h, 020h, 000h
+    db  000h, 048h, 038h, 048h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 049h, 039h, 049h, 000h, 084h
+    db  000h, 000h, 020h, 000h, 02dh, 04ah, 02dh, 04ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04bh
+    db  034h, 04bh, 000h, 073h, 000h, 000h, 020h, 000h, 000h, 04ch, 035h, 04ch, 000h, 000h, 000h, 000h
+    db  020h, 000h, 000h, 04dh, 036h, 04dh, 000h, 074h, 000h, 000h, 020h, 000h, 02bh, 04eh, 02bh, 04eh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 04fh, 031h, 04fh, 000h, 075h, 000h, 000h, 020h, 000h
+    db  000h, 050h, 032h, 050h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 051h, 033h, 051h, 000h, 076h
+    db  000h, 000h, 020h, 000h, 000h, 052h, 030h, 052h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 053h
+    db  02eh, 053h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 056h, 07ch, 056h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
+    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
+_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
+    db  '%s: keyboard input buffer full', 00ah, 000h
+
+  ; Padding 0x478 bytes at 0xf1188
+  times 1144 db 0
+
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8905 class=CODE group=AUTO
+rom_scan_:                                   ; 0xf1600 LB 0x50
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov cx, dx                                ; 89 d1
+    cmp bx, cx                                ; 39 cb
+    jnc short 01648h                          ; 73 38
+    xor si, si                                ; 31 f6
+    mov dx, bx                                ; 89 da
+    mov es, bx                                ; 8e c3
+    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
+    jne short 01642h                          ; 75 25
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov word [bp-00ah], strict word 00003h    ; c7 46 f6 03 00
+    call far [bp-00ah]                        ; ff 5e f6
+    cli                                       ; fa
+    mov es, bx                                ; 8e c3
+    mov al, byte [es:si+002h]                 ; 26 8a 44 02
+    add AL, strict byte 003h                  ; 04 03
+    and AL, strict byte 0fch                  ; 24 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    sal dx, 002h                              ; c1 e2 02
+    db  01bh, 0c2h
+    ; sbb ax, dx                                ; 1b c2
+    sar ax, 002h                              ; c1 f8 02
+    add bx, ax                                ; 01 c3
+    jmp short 0160ch                          ; eb ca
+    add bx, 00080h                            ; 81 c3 80 00
+    jmp short 0160ch                          ; eb c4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_byte_:                                  ; 0xf1650 LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx]                      ; 26 8a 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_byte_:                                 ; 0xf165e LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov byte [es:si], bl                      ; 26 88 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_word_:                                  ; 0xf166c LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_word_:                                 ; 0xf167a LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_dword_:                                 ; 0xf1688 LB 0x12
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_dword_:                                ; 0xf169a LB 0x12
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+inb_cmos_:                                   ; 0xf16ac LB 0x1d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov AH, strict byte 070h                  ; b4 70
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 016b8h                           ; 72 02
+    mov AH, strict byte 072h                  ; b4 72
+    movzx dx, ah                              ; 0f b6 d4
+    out DX, AL                                ; ee
+    movzx dx, ah                              ; 0f b6 d4
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+outb_cmos_:                                  ; 0xf16c9 LB 0x1f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov ah, dl                                ; 88 d4
+    mov BL, strict byte 070h                  ; b3 70
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 016d7h                           ; 72 02
+    mov BL, strict byte 072h                  ; b3 72
+    movzx dx, bl                              ; 0f b6 d3
+    out DX, AL                                ; ee
+    movzx dx, bl                              ; 0f b6 d3
+    inc dx                                    ; 42
+    mov al, ah                                ; 88 e0
+    out DX, AL                                ; ee
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_dummy_isr_function:                         ; 0xf16e8 LB 0x6b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push ax                                   ; 50
+    mov CL, strict byte 0ffh                  ; b1 ff
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-002h], al                    ; 88 46 fe
+    test al, al                               ; 84 c0
+    je short 01743h                           ; 74 43
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    test al, al                               ; 84 c0
+    je short 01725h                           ; 74 16
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor ah, ah                                ; 30 e4
+    movzx bx, cl                              ; 0f b6 d9
+    or ax, bx                                 ; 09 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    jmp short 0173ah                          ; eb 15
+    mov dx, strict word 00021h                ; ba 21 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and bl, 0fbh                              ; 80 e3 fb
+    mov byte [bp-002h], bl                    ; 88 5e fe
+    xor ah, ah                                ; 30 e4
+    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
+    or ax, bx                                 ; 09 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    mov cl, byte [bp-002h]                    ; 8a 4e fe
+    movzx bx, cl                              ; 0f b6 d9
+    mov dx, strict word 0006bh                ; ba 6b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 0f ff
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_nmi_handler_msg:                            ; 0xf1753 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push 000b0h                               ; 68 b0 00
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 14 02
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int18_panic_msg:                            ; 0xf1765 LB 0x12
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push 000c4h                               ; 68 c4 00
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 02 02
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_log_bios_start:                             ; 0xf1777 LB 0x20
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 ac 01
+    push 00d8eh                               ; 68 8e 0d
+    push 000d9h                               ; 68 d9 00
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 e2 01
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_print_bios_banner:                          ; 0xf1797 LB 0x2e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 c9 fe
+    mov cx, ax                                ; 89 c1
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 ca fe
+    cmp cx, 01234h                            ; 81 f9 34 12
+    jne short 017beh                          ; 75 08
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    jmp short 017c1h                          ; eb 03
+    call 07a63h                               ; e8 a2 62
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+send_:                                       ; 0xf17c5 LB 0x3b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov bx, ax                                ; 89 c3
+    mov cl, dl                                ; 88 d1
+    test AL, strict byte 008h                 ; a8 08
+    je short 017d8h                           ; 74 06
+    mov al, dl                                ; 88 d0
+    mov dx, 00403h                            ; ba 03 04
+    out DX, AL                                ; ee
+    test bl, 004h                             ; f6 c3 04
+    je short 017e3h                           ; 74 06
+    mov al, cl                                ; 88 c8
+    mov dx, 00504h                            ; ba 04 05
+    out DX, AL                                ; ee
+    test bl, 002h                             ; f6 c3 02
+    je short 017f9h                           ; 74 11
+    cmp cl, 00ah                              ; 80 f9 0a
+    jne short 017f3h                          ; 75 06
+    mov AL, strict byte 00dh                  ; b0 0d
+    mov AH, strict byte 00eh                  ; b4 0e
+    int 010h                                  ; cd 10
+    mov al, cl                                ; 88 c8
+    mov AH, strict byte 00eh                  ; b4 0e
+    int 010h                                  ; cd 10
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_int_:                                    ; 0xf1800 LB 0x5f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov di, strict word 0000ah                ; bf 0a 00
+    mov ax, dx                                ; 89 d0
+    cwd                                       ; 99
+    idiv di                                   ; f7 ff
+    mov word [bp-006h], ax                    ; 89 46 fa
+    test ax, ax                               ; 85 c0
+    je short 01825h                           ; 74 0a
+    dec bx                                    ; 4b
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 01800h                               ; e8 dd ff
+    jmp short 01840h                          ; eb 1b
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jle short 01834h                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 93 ff
+    jmp short 01825h                          ; eb f1
+    test cx, cx                               ; 85 c9
+    je short 01840h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 85 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    sub dl, al                                ; 28 c2
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 030h                  ; 04 30
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 6d ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_uint_:                                   ; 0xf185f LB 0x60
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov di, strict word 0000ah                ; bf 0a 00
+    div di                                    ; f7 f7
+    mov word [bp-006h], ax                    ; 89 46 fa
+    test ax, ax                               ; 85 c0
+    je short 01885h                           ; 74 0a
+    dec bx                                    ; 4b
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 0185fh                               ; e8 dc ff
+    jmp short 018a0h                          ; eb 1b
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jle short 01894h                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 33 ff
+    jmp short 01885h                          ; eb f1
+    test cx, cx                               ; 85 c9
+    je short 018a0h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 25 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    sub dl, al                                ; 28 c2
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 030h                  ; 04 30
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 0d ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_luint_:                                  ; 0xf18bf LB 0x72
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov di, dx                                ; 89 d7
+    mov ax, bx                                ; 89 d8
+    mov dx, cx                                ; 89 ca
+    mov bx, strict word 0000ah                ; bb 0a 00
+    xor cx, cx                                ; 31 c9
+    call 09df0h                               ; e8 17 85
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov cx, dx                                ; 89 d1
+    mov dx, ax                                ; 89 c2
+    or dx, cx                                 ; 09 ca
+    je short 018f3h                           ; 74 0f
+    push word [bp+004h]                       ; ff 76 04
+    lea dx, [di-001h]                         ; 8d 55 ff
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 018bfh                               ; e8 ce ff
+    jmp short 01910h                          ; eb 1d
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 01902h                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 c5 fe
+    jmp short 018f3h                          ; eb f1
+    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
+    je short 01910h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 b5 fe
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    sub dl, al                                ; 28 c2
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 030h                  ; 04 30
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 9d fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+put_str_:                                    ; 0xf1931 LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    push si                                   ; 56
+    mov si, ax                                ; 89 c6
+    mov es, cx                                ; 8e c1
+    mov dl, byte [es:bx]                      ; 26 8a 17
+    test dl, dl                               ; 84 d2
+    je short 0194bh                           ; 74 0a
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017c5h                               ; e8 7d fe
+    inc bx                                    ; 43
+    jmp short 01938h                          ; eb ed
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_str_near_:                               ; 0xf1952 LB 0x20
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov cx, ax                                ; 89 c1
+    mov bx, dx                                ; 89 d3
+    mov dl, byte [bx]                         ; 8a 17
+    test dl, dl                               ; 84 d2
+    je short 0196bh                           ; 74 0a
+    xor dh, dh                                ; 30 f6
+    mov ax, cx                                ; 89 c8
+    call 017c5h                               ; e8 5d fe
+    inc bx                                    ; 43
+    jmp short 0195bh                          ; eb f0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+bios_printf_:                                ; 0xf1972 LB 0x33d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ch                ; 83 ec 1c
+    lea bx, [bp+008h]                         ; 8d 5e 08
+    mov word [bp-016h], bx                    ; 89 5e ea
+    mov [bp-014h], ss                         ; 8c 56 ec
+    xor bx, bx                                ; 31 db
+    xor di, di                                ; 31 ff
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    and ax, strict word 00007h                ; 25 07 00
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jne short 019a0h                          ; 75 0b
+    push 000deh                               ; 68 de 00
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 d5 ff
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov dl, byte [si]                         ; 8a 14
+    test dl, dl                               ; 84 d2
+    je near 01c93h                            ; 0f 84 e8 02
+    cmp dl, 025h                              ; 80 fa 25
+    jne short 019b8h                          ; 75 08
+    mov bx, strict word 00001h                ; bb 01 00
+    xor di, di                                ; 31 ff
+    jmp near 01c8dh                           ; e9 d5 02
+    test bx, bx                               ; 85 db
+    je near 01c85h                            ; 0f 84 c7 02
+    cmp dl, 030h                              ; 80 fa 30
+    jc short 019d6h                           ; 72 13
+    cmp dl, 039h                              ; 80 fa 39
+    jnbe short 019d6h                         ; 77 0e
+    movzx ax, dl                              ; 0f b6 c2
+    imul di, di, strict byte 0000ah           ; 6b ff 0a
+    sub ax, strict word 00030h                ; 2d 30 00
+    add di, ax                                ; 01 c7
+    jmp near 01c8dh                           ; e9 b7 02
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-012h], ax                    ; 89 46 ee
+    cmp dl, 078h                              ; 80 fa 78
+    je short 019f4h                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01a4ah                          ; 75 56
+    test di, di                               ; 85 ff
+    jne short 019fbh                          ; 75 03
+    mov di, strict word 00004h                ; bf 04 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01a07h                          ; 75 07
+    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
+    jmp short 01a0ch                          ; eb 05
+    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    jl near 01c81h                            ; 0f 8c 66 02
+    mov cx, ax                                ; 89 c1
+    sal cx, 002h                              ; c1 e1 02
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, CL                                ; d3 e8
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01a35h                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01a3dh                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c5h                               ; e8 80 fd
+    dec word [bp-00ch]                        ; ff 4e f4
+    jmp short 01a12h                          ; eb c8
+    cmp dl, 075h                              ; 80 fa 75
+    jne short 01a5eh                          ; 75 0f
+    xor cx, cx                                ; 31 c9
+    mov bx, di                                ; 89 fb
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0185fh                               ; e8 04 fe
+    jmp near 01c81h                           ; e9 23 02
+    cmp dl, 06ch                              ; 80 fa 6c
+    jne near 01b40h                           ; 0f 85 db 00
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    cmp dl, byte [bx+001h]                    ; 3a 57 01
+    jne near 01b40h                           ; 0f 85 d1 00
+    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov dl, byte [bx]                         ; 8a 17
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    cmp dl, 078h                              ; 80 fa 78
+    je short 01ac1h                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01b32h                          ; 75 71
+    test di, di                               ; 85 ff
+    jne short 01ac8h                          ; 75 03
+    mov di, strict word 00010h                ; bf 10 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01ad4h                          ; 75 07
+    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
+    jmp short 01ad9h                          ; eb 05
+    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    jl near 01c81h                            ; 0f 8c 99 01
+    sal ax, 002h                              ; c1 e0 02
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    xor ax, ax                                ; 31 c0
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov cx, word [bp-024h]                    ; 8b 4e dc
+    mov dx, word [bp-026h]                    ; 8b 56 da
+    mov si, word [bp-01eh]                    ; 8b 76 e2
+    call 09e6ah                               ; e8 5f 83
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01b1dh                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01b25h                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c5h                               ; e8 98 fc
+    dec word [bp-00ch]                        ; ff 4e f4
+    jmp short 01adfh                          ; eb ad
+    push 000e6h                               ; 68 e6 00
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 38 fe
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 01c81h                           ; e9 41 01
+    lea bx, [di-001h]                         ; 8d 5d ff
+    cmp dl, 06ch                              ; 80 fa 6c
+    jne near 01c09h                           ; 0f 85 bf 00
+    inc word [bp+006h]                        ; ff 46 06
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov dl, byte [si]                         ; 8a 14
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les si, [bp-016h]                         ; c4 76 ea
+    mov ax, word [es:si-002h]                 ; 26 8b 44 fe
+    mov word [bp-010h], ax                    ; 89 46 f0
+    cmp dl, 064h                              ; 80 fa 64
+    jne short 01b98h                          ; 75 2d
+    test byte [bp-00fh], 080h                 ; f6 46 f1 80
+    je short 01b86h                           ; 74 15
+    push strict byte 00001h                   ; 6a 01
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    neg cx                                    ; f7 d9
+    neg ax                                    ; f7 d8
+    sbb cx, strict byte 00000h                ; 83 d9 00
+    mov dx, bx                                ; 89 da
+    mov bx, ax                                ; 89 c3
+    jmp short 01b8fh                          ; eb 09
+    push strict byte 00000h                   ; 6a 00
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    mov dx, di                                ; 89 fa
+    mov cx, ax                                ; 89 c1
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 018bfh                               ; e8 2a fd
+    jmp near 01c81h                           ; e9 e9 00
+    cmp dl, 075h                              ; 80 fa 75
+    jne short 01b9fh                          ; 75 02
+    jmp short 01b86h                          ; eb e7
+    cmp dl, 078h                              ; 80 fa 78
+    je short 01babh                           ; 74 07
+    cmp dl, 058h                              ; 80 fa 58
+    jne near 01c81h                           ; 0f 85 d6 00
+    test di, di                               ; 85 ff
+    jne short 01bb2h                          ; 75 03
+    mov di, strict word 00008h                ; bf 08 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01bbeh                          ; 75 07
+    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
+    jmp short 01bc3h                          ; eb 05
+    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
+    jl near 01c81h                            ; 0f 8c b0 00
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov cx, word [bp-00ch]                    ; 8b 4e f4
+    sal cx, 002h                              ; c1 e1 02
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    jcxz 01be5h                               ; e3 06
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 01bdfh                               ; e2 fa
+    and ax, strict word 0000fh                ; 25 0f 00
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01bf4h                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01bfch                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c5h                               ; e8 c1 fb
+    dec word [bp-00ch]                        ; ff 4e f4
+    jmp short 01bc9h                          ; eb c0
+    cmp dl, 064h                              ; 80 fa 64
+    jne short 01c2dh                          ; 75 1f
+    test byte [bp-011h], 080h                 ; f6 46 ef 80
+    je short 01c1eh                           ; 74 0a
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    neg dx                                    ; f7 da
+    mov cx, strict word 00001h                ; b9 01 00
+    jmp short 01c25h                          ; eb 07
+    xor cx, cx                                ; 31 c9
+    mov bx, di                                ; 89 fb
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01800h                               ; e8 d5 fb
+    jmp short 01c81h                          ; eb 54
+    cmp dl, 073h                              ; 80 fa 73
+    jne short 01c3fh                          ; 75 0d
+    mov cx, ds                                ; 8c d9
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01931h                               ; e8 f4 fc
+    jmp short 01c81h                          ; eb 42
+    cmp dl, 053h                              ; 80 fa 53
+    jne short 01c65h                          ; 75 21
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov bx, ax                                ; 89 c3
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    jmp short 01c37h                          ; eb d2
+    cmp dl, 063h                              ; 80 fa 63
+    jne short 01c76h                          ; 75 0c
+    movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c5h                               ; e8 51 fb
+    jmp short 01c81h                          ; eb 0b
+    push 00107h                               ; 68 07 01
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 f4 fc
+    add sp, strict byte 00004h                ; 83 c4 04
+    xor bx, bx                                ; 31 db
+    jmp short 01c8dh                          ; eb 08
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c5h                               ; e8 38 fb
+    inc word [bp+006h]                        ; ff 46 06
+    jmp near 019a0h                           ; e9 0d fd
+    xor ax, ax                                ; 31 c0
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    je short 01ca5h                           ; 74 04
+    cli                                       ; fa
+    hlt                                       ; f4
+    jmp short 01ca2h                          ; eb fd
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_ata_init:                                   ; 0xf1caf LB 0xcd
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 b0 f9
+    mov si, 00122h                            ; be 22 01
+    mov dx, ax                                ; 89 c2
+    xor al, al                                ; 30 c0
+    jmp short 01cc9h                          ; eb 04
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc short 01cedh                          ; 73 24
+    movzx bx, al                              ; 0f b6 d8
+    imul bx, bx, strict byte 00006h           ; 6b db 06
+    mov es, dx                                ; 8e c2
+    add bx, si                                ; 01 f3
+    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
+    db  066h, 026h, 0c7h, 087h, 006h, 002h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+00206h], strict dword 000000000h ; 66 26 c7 87 06 02 00 00 00 00
+    mov byte [es:bx+00205h], 000h             ; 26 c6 87 05 02 00
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 01cc5h                          ; eb d8
+    xor al, al                                ; 30 c0
+    jmp short 01cf5h                          ; eb 04
+    cmp AL, strict byte 008h                  ; 3c 08
+    jnc short 01d49h                          ; 73 54
+    movzx bx, al                              ; 0f b6 d8
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, dx                                ; 8e c2
+    add bx, si                                ; 01 f3
+    db  066h, 026h, 0c7h, 047h, 022h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+022h], strict dword 000000000h ; 66 26 c7 47 22 00 00 00 00
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    mov word [es:bx+028h], 00200h             ; 26 c7 47 28 00 02
+    mov byte [es:bx+027h], 000h               ; 26 c6 47 27 00
+    db  066h, 026h, 0c7h, 047h, 02ah, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+02ah], strict dword 000000000h ; 66 26 c7 47 2a 00 00 00 00
+    db  066h, 026h, 0c7h, 047h, 02eh, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+02eh], strict dword 000000000h ; 66 26 c7 47 2e 00 00 00 00
+    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
+    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
+    db  066h, 026h, 0c7h, 047h, 036h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+036h], strict dword 000000000h ; 66 26 c7 47 36 00 00 00 00
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 01cf1h                          ; eb a8
+    xor al, al                                ; 30 c0
+    jmp short 01d51h                          ; eb 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jnc short 01d68h                          ; 73 17
+    movzx bx, al                              ; 0f b6 d8
+    mov es, dx                                ; 8e c2
+    add bx, si                                ; 01 f3
+    mov byte [es:bx+001e3h], 010h             ; 26 c6 87 e3 01 10
+    mov byte [es:bx+001f4h], 010h             ; 26 c6 87 f4 01 10
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 01d4dh                          ; eb e5
+    mov es, dx                                ; 8e c2
+    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
+    mov byte [es:si+001f3h], 000h             ; 26 c6 84 f3 01 00
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_reset_:                                  ; 0xf1d7c LB 0xde
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 dc f8
+    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
+    mov di, ax                                ; 89 c7
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    shr bx, 1                                 ; d1 eb
+    mov dl, byte [bp-010h]                    ; 8a 56 f0
+    and dl, 001h                              ; 80 e2 01
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    xor bh, bh                                ; 30 ff
+    imul bx, bx, strict byte 00006h           ; 6b db 06
+    mov es, ax                                ; 8e c0
+    add bx, 00122h                            ; 81 c3 22 01
+    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
+    mov si, word [es:bx+00208h]               ; 26 8b b7 08 02
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 00eh                  ; b0 0e
+    out DX, AL                                ; ee
+    mov bx, 000ffh                            ; bb ff 00
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01dd4h                          ; 76 0c
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01dc3h                           ; 74 ef
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    imul bx, word [bp-010h], strict byte 0001ch ; 6b 5e f0 1c
+    mov es, di                                ; 8e c7
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
+    je short 01e36h                           ; 74 4c
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 01df5h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 01df8h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00003h                ; 83 c2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 001h                              ; 80 fb 01
+    jne short 01e36h                          ; 75 22
+    cmp al, bl                                ; 38 d8
+    jne short 01e36h                          ; 75 1e
+    mov bx, strict word 0ffffh                ; bb ff ff
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e36h                          ; 76 16
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01e36h                           ; 74 0a
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    dec ax                                    ; 48
+    test ax, ax                               ; 85 c0
+    jnbe short 01e2fh                         ; 77 fb
+    jmp short 01e1bh                          ; eb e5
+    mov bx, strict word 00010h                ; bb 10 00
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e4ah                          ; 76 0c
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 040h                 ; a8 40
+    je short 01e39h                           ; 74 ef
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_cmd_data_in_:                            ; 0xf1e5a LB 0x2e2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00012h                ; 83 ec 12
+    push ax                                   ; 50
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov es, dx                                ; 8e c2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [es:bx+00ch]                 ; 26 8a 47 0c
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov di, word [bp-018h]                    ; 8b 7e e8
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
+    mov word [bp-010h], ax                    ; 89 46 f0
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov di, word [bp-018h]                    ; 8b 7e e8
+    add di, bx                                ; 01 df
+    mov al, byte [es:di+026h]                 ; 26 8a 45 26
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov ax, word [es:di+028h]                 ; 26 8b 45 28
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    test ax, ax                               ; 85 c0
+    jne short 01ec1h                          ; 75 14
+    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
+    jne short 01ebah                          ; 75 07
+    mov word [bp-00eh], 04000h                ; c7 46 f2 00 40
+    jmp short 01ed0h                          ; eb 16
+    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
+    jmp short 01ed0h                          ; eb 0f
+    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
+    jne short 01ecdh                          ; 75 06
+    shr word [bp-00eh], 002h                  ; c1 6e f2 02
+    jmp short 01ed0h                          ; eb 03
+    shr word [bp-00eh], 1                     ; d1 6e f2
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01eech                           ; 74 0f
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp near 02133h                           ; e9 47 02
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov di, word [bp-018h]                    ; 8b 7e e8
+    mov di, word [es:di+008h]                 ; 26 8b 7d 08
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov al, byte [es:bx+016h]                 ; 26 8a 47 16
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [es:bx+012h]                 ; 26 8b 47 12
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov bl, byte [es:bx+014h]                 ; 26 8a 5f 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    test al, al                               ; 84 c0
+    jne near 01ffeh                           ; 0f 85 e3 00
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    mov cx, word [es:si]                      ; 26 8b 0c
+    add cx, word [bp-01eh]                    ; 03 4e e2
+    adc bx, word [es:si+002h]                 ; 26 13 5c 02
+    adc dx, word [es:si+004h]                 ; 26 13 54 04
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    adc ax, word [bp-016h]                    ; 13 46 ea
+    test ax, ax                               ; 85 c0
+    jnbe short 01f50h                         ; 77 10
+    jne short 01fb4h                          ; 75 72
+    test dx, dx                               ; 85 d2
+    jnbe short 01f50h                         ; 77 0a
+    jne short 01fb4h                          ; 75 6c
+    cmp bx, 01000h                            ; 81 fb 00 10
+    jnbe short 01f50h                         ; 77 02
+    jne short 01fb4h                          ; 75 64
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 09e6ah                               ; e8 03 7f
+    xor dh, dh                                ; 30 f6
+    mov word [bp-016h], dx                    ; 89 56 ea
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00020h                ; be 20 00
+    call 09e6ah                               ; e8 e3 7e
+    mov bx, dx                                ; 89 d3
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00008h                ; be 08 00
+    call 09e6ah                               ; e8 92 7e
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov bx, word [bp-018h]                    ; 8b 5e e8
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 09e6ah                               ; e8 74 7e
+    and dx, strict byte 0000fh                ; 83 e2 0f
+    or dl, 040h                               ; 80 ca 40
+    mov bx, dx                                ; 89 d3
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    inc dx                                    ; 42
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    out DX, AL                                ; ee
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    je short 02040h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02043h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    movzx dx, bl                              ; 0f b6 d3
+    or ax, dx                                 ; 09 d0
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    cmp ax, 000c4h                            ; 3d c4 00
+    je short 02066h                           ; 74 05
+    cmp ax, strict word 00029h                ; 3d 29 00
+    jne short 02070h                          ; 75 0a
+    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov word [bp-01eh], strict word 00001h    ; c7 46 e2 01 00
+    jmp short 02073h                          ; eb 03
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02073h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 02095h                           ; 74 0f
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp near 02133h                           ; e9 9e 00
+    test dl, 008h                             ; f6 c2 08
+    jne short 020a9h                          ; 75 0f
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp near 02133h                           ; e9 8a 00
+    sti                                       ; fb
+    cmp di, 0f800h                            ; 81 ff 00 f8
+    jc short 020bdh                           ; 72 0d
+    sub di, 00800h                            ; 81 ef 00 08
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, 00080h                            ; 05 80 00
+    mov word [bp-012h], ax                    ; 89 46 ee
+    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
+    jne short 020d1h                          ; 75 0e
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov cx, word [bp-00eh]                    ; 8b 4e f2
+    mov es, [bp-012h]                         ; 8e 46 ee
+    db  0f3h, 066h, 06dh
+    ; rep insd                                  ; f3 66 6d
+    jmp short 020dch                          ; eb 0b
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov cx, word [bp-00eh]                    ; 8b 4e f2
+    mov es, [bp-012h]                         ; 8e 46 ee
+    rep insw                                  ; f3 6d
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    add word [es:si+018h], bx                 ; 26 01 5c 18
+    dec word [bp-01eh]                        ; ff 4e e2
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 020e9h                          ; 75 f1
+    cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
+    jne short 02112h                          ; 75 14
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02128h                           ; 74 24
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00004h                ; ba 04 00
+    jmp short 02133h                          ; eb 21
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 020aah                           ; 74 90
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00005h                ; ba 05 00
+    jmp short 02133h                          ; eb 0b
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor dx, dx                                ; 31 d2
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_ata_detect:                                 ; 0xf213c LB 0x65c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 00260h                            ; 81 ec 60 02
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 1e f5
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov di, 00122h                            ; bf 22 01
+    mov es, ax                                ; 8e c0
+    mov word [bp-022h], di                    ; 89 7e de
+    mov word [bp-034h], ax                    ; 89 46 cc
+    mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
+    db  066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h
+    ; mov dword [es:di+00206h], strict dword 003f001f0h ; 66 26 c7 85 06 02 f0 01 f0 03
+    mov byte [es:di+00205h], 00eh             ; 26 c6 85 05 02 0e
+    mov byte [es:di+0020ah], 000h             ; 26 c6 85 0a 02 00
+    db  066h, 026h, 0c7h, 085h, 00ch, 002h, 070h, 001h, 070h, 003h
+    ; mov dword [es:di+0020ch], strict dword 003700170h ; 66 26 c7 85 0c 02 70 01 70 03
+    mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-016h], al                    ; 88 46 ea
+    jmp near 0271ch                           ; e9 86 05
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [si+006h]                         ; 8d 54 06
+    out DX, AL                                ; ee
+    lea di, [si+002h]                         ; 8d 7c 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    lea bx, [si+003h]                         ; 8d 5c 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp cl, 055h                              ; 80 f9 55
+    jne near 0229ah                           ; 0f 85 ca 00
+    cmp AL, strict byte 0aah                  ; 3c aa
+    jne near 0229ah                           ; 0f 85 c4 00
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    call 01d7ch                               ; e8 8b fb
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 021fch                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 021ffh                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [si+006h]                         ; 8d 54 06
+    out DX, AL                                ; ee
+    lea dx, [si+002h]                         ; 8d 54 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    lea dx, [si+003h]                         ; 8d 54 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 001h                              ; 80 fb 01
+    jne near 0229ah                           ; 0f 85 82 00
+    cmp al, bl                                ; 38 d8
+    jne near 0229ah                           ; 0f 85 7c 00
+    lea dx, [si+004h]                         ; 8d 54 04
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-018h], al                    ; 88 46 e8
+    lea dx, [si+005h]                         ; 8d 54 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    mov bh, al                                ; 88 c7
+    lea dx, [si+007h]                         ; 8d 54 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 014h                              ; 80 fb 14
+    jne short 02259h                          ; 75 1b
+    cmp cl, 0ebh                              ; 80 f9 eb
+    jne short 02259h                          ; 75 16
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
+    jmp short 0229ah                          ; eb 41
+    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    jne short 0227bh                          ; 75 1c
+    test bh, bh                               ; 84 ff
+    jne short 0227bh                          ; 75 18
+    test al, al                               ; 84 c0
+    je short 0227bh                           ; 74 14
+    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    add bx, word [bp-022h]                    ; 03 5e de
+    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
+    jmp short 0229ah                          ; eb 1f
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0229ah                          ; 75 18
+    cmp bh, al                                ; 38 c7
+    jne short 0229ah                          ; 75 14
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    movzx si, byte [bp-016h]                  ; 0f b6 76 ea
+    imul si, si, strict byte 0001ch           ; 6b f6 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    add si, word [bp-022h]                    ; 03 76 de
+    mov al, byte [es:si+022h]                 ; 26 8a 44 22
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne near 024e9h                           ; 0f 85 2c 02
+    mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
+    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
+    lea dx, [bp-00264h]                       ; 8d 96 9c fd
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
+    mov cx, strict word 00001h                ; b9 01 00
+    mov bx, 000ech                            ; bb ec 00
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov dx, es                                ; 8c c2
+    call 01e5ah                               ; e8 6f fb
+    test ax, ax                               ; 85 c0
+    je short 022fah                           ; 74 0b
+    push 00124h                               ; 68 24 01
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 7b f6
+    add sp, strict byte 00004h                ; 83 c4 04
+    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    mov byte [bp-014h], al                    ; 88 46 ec
+    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov word [bp-02ah], 00200h                ; c7 46 d6 00 02
+    mov ax, word [bp-00262h]                  ; 8b 86 9e fd
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov si, word [bp-001ech]                  ; 8b b6 14 fe
+    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    xor ax, ax                                ; 31 c0
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
+    jne short 02366h                          ; 75 1e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    jne short 02366h                          ; 75 19
+    mov ax, word [bp-00196h]                  ; 8b 86 6a fe
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [bp-00198h]                  ; 8b 86 68 fe
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 02379h                           ; 72 0c
+    jbe short 02381h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 02389h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 02385h                           ; 74 0e
+    jmp short 023c6h                          ; eb 4d
+    test al, al                               ; 84 c0
+    jne short 023c6h                          ; 75 49
+    mov BL, strict byte 01eh                  ; b3 1e
+    jmp short 0238bh                          ; eb 0a
+    mov BL, strict byte 026h                  ; b3 26
+    jmp short 0238bh                          ; eb 06
+    mov BL, strict byte 067h                  ; b3 67
+    jmp short 0238bh                          ; eb 02
+    mov BL, strict byte 070h                  ; b3 70
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 18 f3
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, bl                              ; 0f b6 c3
+    call 016ach                               ; e8 0b f3
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    mov word [bp-038h], ax                    ; 89 46 c8
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 fb f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-03ah], ax                    ; 89 46 c6
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 007h                  ; 04 07
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 ed f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-036h], ax                    ; 89 46 ca
+    jmp short 023d8h                          ; eb 12
+    push word [bp-01eh]                       ; ff 76 e2
+    push word [bp-028h]                       ; ff 76 d8
+    push word [bp-02ch]                       ; ff 76 d4
+    push si                                   ; 56
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-03ah]                         ; 8d 46 c6
+    call 0593eh                               ; e8 66 35
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 4e f5
+    mov ax, word [bp-036h]                    ; 8b 46 ca
+    push ax                                   ; 50
+    mov ax, word [bp-03ah]                    ; 8b 46 c6
+    push ax                                   ; 50
+    mov ax, word [bp-038h]                    ; 8b 46 c8
+    push ax                                   ; 50
+    push dword [bp-01ch]                      ; 66 ff 76 e4
+    push word [bp-026h]                       ; ff 76 da
+    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    push ax                                   ; 50
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 0014dh                               ; 68 4d 01
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 6a f5
+    add sp, strict byte 00014h                ; 83 c4 14
+    movzx di, byte [bp-016h]                  ; 0f b6 7e ea
+    imul di, di, strict byte 0001ch           ; 6b ff 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    add di, word [bp-022h]                    ; 03 7e de
+    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov byte [es:di+024h], al                 ; 26 88 45 24
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov byte [es:di+026h], al                 ; 26 88 45 26
+    mov ax, word [bp-02ah]                    ; 8b 46 d6
+    mov word [es:di+028h], ax                 ; 26 89 45 28
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov word [es:di+030h], ax                 ; 26 89 45 30
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:di+032h], ax                 ; 26 89 45 32
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov word [es:di+034h], ax                 ; 26 89 45 34
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:di+03ch], ax                 ; 26 89 45 3c
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:di+03ah], ax                 ; 26 89 45 3a
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov word [es:di+038h], ax                 ; 26 89 45 38
+    mov word [es:di+036h], si                 ; 26 89 75 36
+    lea di, [di+02ah]                         ; 8d 7d 2a
+    push DS                                   ; 1e
+    push SS                                   ; 16
+    pop DS                                    ; 1f
+    lea si, [bp-03ah]                         ; 8d 76 c6
+    movsw                                     ; a5
+    movsw                                     ; a5
+    movsw                                     ; a5
+    pop DS                                    ; 1f
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    cmp AL, strict byte 002h                  ; 3c 02
+    jnc short 024d4h                          ; 73 60
+    test al, al                               ; 84 c0
+    jne short 0247dh                          ; 75 05
+    mov di, strict word 0003dh                ; bf 3d 00
+    jmp short 02480h                          ; eb 03
+    mov di, strict word 0004dh                ; bf 4d 00
+    mov dx, word [bp-020h]                    ; 8b 56 e0
+    mov ax, word [bp-038h]                    ; 8b 46 c8
+    mov es, dx                                ; 8e c2
+    mov word [es:di], ax                      ; 26 89 05
+    mov al, byte [bp-03ah]                    ; 8a 46 c6
+    mov byte [es:di+002h], al                 ; 26 88 45 02
+    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov byte [es:di+004h], al                 ; 26 88 45 04
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:di+009h], ax                 ; 26 89 45 09
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov byte [es:di+00bh], al                 ; 26 88 45 0b
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov byte [es:di+00eh], al                 ; 26 88 45 0e
+    xor al, al                                ; 30 c0
+    xor ah, ah                                ; 30 e4
+    jmp short 024beh                          ; eb 05
+    cmp ah, 00fh                              ; 80 fc 0f
+    jnc short 024cch                          ; 73 0e
+    movzx bx, ah                              ; 0f b6 dc
+    mov es, dx                                ; 8e c2
+    add bx, di                                ; 01 fb
+    add al, byte [es:bx]                      ; 26 02 07
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 024b9h                          ; eb ed
+    neg al                                    ; f6 d8
+    mov es, dx                                ; 8e c2
+    mov byte [es:di+00fh], al                 ; 26 88 45 0f
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    mov es, [bp-034h]                         ; 8e 46 cc
+    add bx, word [bp-022h]                    ; 03 5e de
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
+    inc byte [bp-010h]                        ; fe 46 f0
+    cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
+    jne near 0258ch                           ; 0f 85 9b 00
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    lea dx, [bp-00264h]                       ; 8d 96 9c fd
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
+    mov cx, strict word 00001h                ; b9 01 00
+    mov bx, 000a1h                            ; bb a1 00
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov dx, es                                ; 8c c2
+    call 01e5ah                               ; e8 2c f9
+    test ax, ax                               ; 85 c0
+    je short 0253dh                           ; 74 0b
+    push 00174h                               ; 68 74 01
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 38 f4
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
+    and dl, 01fh                              ; 80 e2 1f
+    test byte [bp-00264h], 080h               ; f6 86 9c fd 80
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    movzx bx, al                              ; 0f b6 d8
+    cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
+    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov si, word [bp-022h]                    ; 8b 76 de
+    add si, cx                                ; 01 ce
+    mov byte [es:si+023h], dl                 ; 26 88 54 23
+    mov byte [es:si+024h], bl                 ; 26 88 5c 24
+    mov byte [es:si+026h], al                 ; 26 88 44 26
+    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    add bx, word [bp-022h]                    ; 03 5e de
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
+    inc byte [bp-006h]                        ; fe 46 fa
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 025c4h                           ; 74 31
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne near 02627h                           ; 0f 85 8e 00
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov si, word [bp-022h]                    ; 8b 76 de
+    add si, ax                                ; 01 c6
+    mov ax, word [es:si+03ch]                 ; 26 8b 44 3c
+    mov bx, word [es:si+03ah]                 ; 26 8b 5c 3a
+    mov cx, word [es:si+038h]                 ; 26 8b 4c 38
+    mov dx, word [es:si+036h]                 ; 26 8b 54 36
+    mov si, strict word 0000bh                ; be 0b 00
+    call 09e6ah                               ; e8 ac 78
+    mov word [bp-030h], dx                    ; 89 56 d0
+    mov word [bp-02eh], cx                    ; 89 4e d2
+    movzx ax, byte [bp-001c3h]                ; 0f b6 86 3d fe
+    sal ax, 008h                              ; c1 e0 08
+    movzx dx, byte [bp-001c4h]                ; 0f b6 96 3c fe
+    or dx, ax                                 ; 09 c2
+    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
+    jmp short 025e2h                          ; eb 09
+    dec byte [bp-00ch]                        ; fe 4e f4
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jbe short 025efh                          ; 76 0d
+    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
+    mov ax, strict word 00001h                ; b8 01 00
+    sal ax, CL                                ; d3 e0
+    test dx, ax                               ; 85 c2
+    je short 025d9h                           ; 74 ea
+    xor di, di                                ; 31 ff
+    jmp short 025f8h                          ; eb 05
+    cmp di, strict byte 00014h                ; 83 ff 14
+    jnl short 0260dh                          ; 7d 15
+    mov si, di                                ; 89 fe
+    add si, di                                ; 01 fe
+    mov al, byte [bp+si-0022dh]               ; 8a 82 d3 fd
+    mov byte [bp+si-064h], al                 ; 88 42 9c
+    mov al, byte [bp+si-0022eh]               ; 8a 82 d2 fd
+    mov byte [bp+si-063h], al                 ; 88 42 9d
+    inc di                                    ; 47
+    jmp short 025f3h                          ; eb e6
+    mov byte [bp-03ch], 000h                  ; c6 46 c4 00
+    mov di, strict word 00027h                ; bf 27 00
+    jmp short 0261bh                          ; eb 05
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 02627h                          ; 7e 0c
+    cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
+    jne short 02627h                          ; 75 06
+    mov byte [bp+di-064h], 000h               ; c6 43 9c 00
+    jmp short 02616h                          ; eb ef
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 0268ah                           ; 74 5c
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0263bh                           ; 74 09
+    cmp AL, strict byte 001h                  ; 3c 01
+    je near 026f4h                            ; 0f 84 bc 00
+    jmp near 02713h                           ; e9 d8 00
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 02646h                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 02649h                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 001adh                               ; 68 ad 01
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 1b f3
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    movzx ax, byte [bp+di-064h]               ; 0f b6 43 9c
+    inc di                                    ; 47
+    test ax, ax                               ; 85 c0
+    je short 02673h                           ; 74 0e
+    push ax                                   ; 50
+    push 001b8h                               ; 68 b8 01
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 04 f3
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 0265ch                          ; eb e9
+    push dword [bp-030h]                      ; 66 ff 76 d0
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    push 001bbh                               ; 68 bb 01
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 ee f2
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 02713h                           ; e9 89 00
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 02695h                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 02698h                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 001adh                               ; 68 ad 01
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 cc f2
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    movzx ax, byte [bp+di-064h]               ; 0f b6 43 9c
+    inc di                                    ; 47
+    test ax, ax                               ; 85 c0
+    je short 026c2h                           ; 74 0e
+    push ax                                   ; 50
+    push 001b8h                               ; 68 b8 01
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 b5 f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 026abh                          ; eb e9
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    add bx, ax                                ; 01 c3
+    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
+    jne short 026e2h                          ; 75 0a
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    push 001dbh                               ; 68 db 01
+    jmp short 026eah                          ; eb 08
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    push 001f5h                               ; 68 f5 01
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 83 f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 02713h                          ; eb 1f
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 026ffh                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 02702h                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 00207h                               ; 68 07 02
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 62 f2
+    add sp, strict byte 00008h                ; 83 c4 08
+    inc byte [bp-016h]                        ; fe 46 ea
+    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
+    jnc short 0276eh                          ; 73 52
+    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov cx, ax                                ; 89 c1
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    mov word [bp-032h], dx                    ; 89 56 ce
+    mov al, byte [bp-032h]                    ; 8a 46 ce
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    movzx ax, cl                              ; 0f b6 c1
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    add bx, ax                                ; 01 c3
+    mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
+    je near 02196h                            ; 0f 84 2e fa
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp near 02199h                           ; e9 2b fa
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov es, [bp-034h]                         ; 8e 46 cc
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 cd ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_cmd_data_out_:                           ; 0xf2798 LB 0x2bc
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00022h                ; 83 ec 22
+    mov di, ax                                ; 89 c7
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp-024h], bx                    ; 89 5e dc
+    mov word [bp-01ah], cx                    ; 89 4e e6
+    mov es, dx                                ; 8e c2
+    movzx ax, byte [es:di+00ch]               ; 26 0f b6 45 0c
+    mov dx, ax                                ; 89 c2
+    shr dx, 1                                 ; d1 ea
+    mov dh, al                                ; 88 c6
+    and dh, 001h                              ; 80 e6 01
+    mov byte [bp-006h], dh                    ; 88 76 fa
+    xor dh, dh                                ; 30 f6
+    imul dx, dx, strict byte 00006h           ; 6b d2 06
+    mov bx, di                                ; 89 fb
+    add bx, dx                                ; 01 d3
+    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov dx, word [es:bx+00208h]               ; 26 8b 97 08 02
+    mov word [bp-012h], dx                    ; 89 56 ee
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+026h]                 ; 26 8a 47 26
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 027f0h                          ; 75 07
+    mov word [bp-020h], 00080h                ; c7 46 e0 80 00
+    jmp short 027f5h                          ; eb 05
+    mov word [bp-020h], 00100h                ; c7 46 e0 00 01
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 02811h                           ; 74 0f
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp near 02a4bh                           ; e9 3a 02
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [es:di+004h]                 ; 26 8b 45 04
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:di]                      ; 26 8b 05
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov ax, word [es:di+008h]                 ; 26 8b 45 08
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [es:di+016h]                 ; 26 8b 45 16
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [es:di+012h]                 ; 26 8b 45 12
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [es:di+014h]                 ; 26 8b 45 14
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    test ax, ax                               ; 85 c0
+    jne near 02922h                           ; 0f 85 c7 00
+    xor dx, dx                                ; 31 d2
+    xor bx, bx                                ; 31 db
+    mov si, word [bp-01eh]                    ; 8b 76 e2
+    add si, word [bp-01ah]                    ; 03 76 e6
+    adc dx, word [bp-016h]                    ; 13 56 ea
+    adc bx, word [bp-014h]                    ; 13 5e ec
+    adc ax, word [bp-010h]                    ; 13 46 f0
+    test ax, ax                               ; 85 c0
+    jnbe short 02882h                         ; 77 10
+    jne short 028e5h                          ; 75 71
+    test bx, bx                               ; 85 db
+    jnbe short 02882h                         ; 77 0a
+    jne short 028e5h                          ; 75 6b
+    cmp dx, 01000h                            ; 81 fa 00 10
+    jnbe short 02882h                         ; 77 02
+    jne short 028e5h                          ; 75 63
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov cx, word [bp-016h]                    ; 8b 4e ea
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov si, strict word 00018h                ; be 18 00
+    call 09e6ah                               ; e8 d6 75
+    xor dh, dh                                ; 30 f6
+    mov word [bp-01ch], dx                    ; 89 56 e4
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov cx, word [bp-016h]                    ; 8b 4e ea
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov si, strict word 00020h                ; be 20 00
+    call 09e6ah                               ; e8 bf 75
+    mov bx, dx                                ; 89 d3
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov byte [bp-015h], al                    ; 88 46 eb
+    xor ah, ah                                ; 30 e4
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov cx, word [bp-016h]                    ; 8b 4e ea
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov si, strict word 00008h                ; be 08 00
+    call 09e6ah                               ; e8 6b 75
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-01eh], dx                    ; 89 56 e2
+    mov word [bp-026h], dx                    ; 89 56 da
+    mov si, strict word 00010h                ; be 10 00
+    call 09e6ah                               ; e8 56 75
+    mov word [bp-01eh], dx                    ; 89 56 e2
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    and AL, strict byte 00fh                  ; 24 0f
+    or AL, strict byte 040h                   ; 0c 40
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 02964h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02967h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    movzx dx, byte [bp-022h]                  ; 0f b6 56 de
+    or ax, dx                                 ; 09 d0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov al, byte [bp-024h]                    ; 8a 46 dc
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 0297eh                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 029a0h                           ; 74 0f
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp near 02a4bh                           ; e9 ab 00
+    test dl, 008h                             ; f6 c2 08
+    jne short 029b4h                          ; 75 0f
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp near 02a4bh                           ; e9 97 00
+    sti                                       ; fb
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    cmp ax, 0f800h                            ; 3d 00 f8
+    jc short 029cdh                           ; 72 10
+    sub ax, 00800h                            ; 2d 00 08
+    mov dx, word [bp-018h]                    ; 8b 56 e8
+    add dx, 00080h                            ; 81 c2 80 00
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-018h], dx                    ; 89 56 e8
+    cmp byte [bp-008h], 001h                  ; 80 7e f8 01
+    jne short 029e5h                          ; 75 12
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov cx, word [bp-020h]                    ; 8b 4e e0
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    mov es, [bp-018h]                         ; 8e 46 e8
+    db  0f3h, 066h, 026h, 06fh
+    ; rep es outsd                              ; f3 66 26 6f
+    jmp short 029f4h                          ; eb 0f
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov cx, word [bp-020h]                    ; 8b 4e e0
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    mov es, [bp-018h]                         ; 8e 46 e8
+    db  0f3h, 026h, 06fh
+    ; rep es outsw                              ; f3 26 6f
+    mov word [bp-00eh], si                    ; 89 76 f2
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    inc word [es:di+018h]                     ; 26 ff 45 18
+    dec word [bp-01ah]                        ; ff 4e e6
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02a01h                          ; 75 f1
+    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
+    jne short 02a2ah                          ; 75 14
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02a40h                           ; 74 24
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00006h                ; ba 06 00
+    jmp short 02a4bh                          ; eb 21
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 029b5h                           ; 74 83
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00007h                ; ba 07 00
+    jmp short 02a4bh                          ; eb 0b
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor dx, dx                                ; 31 d2
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+@ata_read_sectors:                           ; 0xf2a54 LB 0xb5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
+    mov dx, cx                                ; 89 ca
+    sal dx, 009h                              ; c1 e2 09
+    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
+    je short 02a95h                           ; 74 1f
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov [bp-00ah], es                         ; 8c 46 f6
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov word [es:di+028h], dx                 ; 26 89 55 28
+    mov bx, 000c4h                            ; bb c4 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e5ah                               ; e8 ca f3
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    jmp short 02afah                          ; eb 65
+    xor bx, bx                                ; 31 db
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    mov di, word [es:si]                      ; 26 8b 3c
+    add di, cx                                ; 01 cf
+    mov word [bp-008h], di                    ; 89 7e f8
+    mov di, word [es:si+002h]                 ; 26 8b 7c 02
+    adc di, bx                                ; 11 df
+    mov word [bp-006h], di                    ; 89 7e fa
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    adc bx, word [bp-00ah]                    ; 13 5e f6
+    mov di, word [es:si+006h]                 ; 26 8b 7c 06
+    adc di, word [bp-00ch]                    ; 13 7e f4
+    test di, di                               ; 85 ff
+    jnbe short 02ad1h                         ; 77 11
+    jne short 02addh                          ; 75 1b
+    test bx, bx                               ; 85 db
+    jnbe short 02ad1h                         ; 77 0b
+    jne short 02addh                          ; 75 15
+    cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
+    jnbe short 02ad1h                         ; 77 02
+    jne short 02addh                          ; 75 0c
+    mov bx, strict word 00024h                ; bb 24 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e5ah                               ; e8 7f f3
+    jmp short 02b00h                          ; eb 23
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov [bp-006h], es                         ; 8c 46 fa
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov word [es:di+028h], dx                 ; 26 89 55 28
+    mov bx, 000c4h                            ; bb c4 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e5ah                               ; e8 63 f3
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@ata_write_sectors:                          ; 0xf2b09 LB 0x5b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    les si, [bp+004h]                         ; c4 76 04
+    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
+    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
+    je short 02b29h                           ; 74 0c
+    mov bx, strict word 00030h                ; bb 30 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 02798h                               ; e8 71 fc
+    jmp short 02b5bh                          ; eb 32
+    xor ax, ax                                ; 31 c0
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    mov di, word [es:si]                      ; 26 8b 3c
+    add di, cx                                ; 01 cf
+    mov word [bp-006h], di                    ; 89 7e fa
+    adc ax, word [es:si+002h]                 ; 26 13 44 02
+    adc bx, word [es:si+004h]                 ; 26 13 5c 04
+    adc dx, word [es:si+006h]                 ; 26 13 54 06
+    test dx, dx                               ; 85 d2
+    jnbe short 02b56h                         ; 77 0f
+    jne short 02b1dh                          ; 75 d4
+    test bx, bx                               ; 85 db
+    jnbe short 02b56h                         ; 77 09
+    jne short 02b1dh                          ; 75 ce
+    cmp ax, 01000h                            ; 3d 00 10
+    jnbe short 02b56h                         ; 77 02
+    jne short 02b1dh                          ; 75 c7
+    mov bx, strict word 00034h                ; bb 34 00
+    jmp short 02b20h                          ; eb c5
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+ata_cmd_packet_:                             ; 0xf2b64 LB 0x2e8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00014h                ; 83 ec 14
+    push ax                                   ; 50
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    mov di, bx                                ; 89 df
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f1 ea
+    mov word [bp-012h], 00122h                ; c7 46 ee 22 01
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    shr ax, 1                                 ; d1 e8
+    mov ah, byte [bp-01ah]                    ; 8a 66 e6
+    and ah, 001h                              ; 80 e4 01
+    mov byte [bp-006h], ah                    ; 88 66 fa
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 02bb6h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 8f ed
+    push 00221h                               ; 68 21 02
+    push 00230h                               ; 68 30 02
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 c5 ed
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp near 02e41h                           ; e9 8b 02
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    jne short 02bb0h                          ; 75 f4
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov si, word [bp-012h]                    ; 8b 76 ee
+    add si, ax                                ; 01 c6
+    mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
+    mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
+    mov word [bp-010h], ax                    ; 89 46 f0
+    imul si, word [bp-01ah], strict byte 0001ch ; 6b 76 e6 1c
+    add si, word [bp-012h]                    ; 03 76 ee
+    mov al, byte [es:si+026h]                 ; 26 8a 44 26
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    xor ax, ax                                ; 31 c0
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jnc short 02bf9h                          ; 73 06
+    mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
+    jmp short 02bffh                          ; eb 06
+    jbe short 02bffh                          ; 76 04
+    mov byte [bp-008h], 010h                  ; c6 46 f8 10
+    shr byte [bp-008h], 1                     ; d0 6e f8
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov si, word [bp-012h]                    ; 8b 76 ee
+    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
+    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
+    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
+    lea dx, [bx+007h]                         ; 8d 57 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 02c27h                           ; 74 06
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp near 02e41h                           ; e9 1a 02
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    lea dx, [bx+004h]                         ; 8d 57 04
+    mov AL, strict byte 0f0h                  ; b0 f0
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 02c47h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02c4ah                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [bx+006h]                         ; 8d 57 06
+    out DX, AL                                ; ee
+    lea dx, [bx+007h]                         ; 8d 57 07
+    mov AL, strict byte 0a0h                  ; b0 a0
+    out DX, AL                                ; ee
+    lea dx, [bx+007h]                         ; 8d 57 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02c54h                          ; 75 f4
+    test AL, strict byte 001h                 ; a8 01
+    je short 02c73h                           ; 74 0f
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp near 02e41h                           ; e9 ce 01
+    test dl, 008h                             ; f6 c2 08
+    jne short 02c87h                          ; 75 0f
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, strict word 00004h                ; ba 04 00
+    jmp near 02e41h                           ; e9 ba 01
+    sti                                       ; fb
+    mov ax, di                                ; 89 f8
+    shr ax, 004h                              ; c1 e8 04
+    add ax, cx                                ; 01 c8
+    mov si, di                                ; 89 fe
+    and si, strict byte 0000fh                ; 83 e6 0f
+    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
+    mov dx, bx                                ; 89 da
+    mov es, ax                                ; 8e c0
+    db  0f3h, 026h, 06fh
+    ; rep es outsw                              ; f3 26 6f
+    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
+    jne short 02cb0h                          ; 75 0b
+    lea dx, [bx+007h]                         ; 8d 57 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    jmp near 02e22h                           ; e9 72 01
+    lea dx, [bx+007h]                         ; 8d 57 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dl, al                                ; 88 c2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02cb0h                          ; 75 f4
+    test AL, strict byte 088h                 ; a8 88
+    je near 02e22h                            ; 0f 84 60 01
+    test AL, strict byte 001h                 ; a8 01
+    je short 02cd1h                           ; 74 0b
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp short 02c6dh                          ; eb 9c
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 02ce4h                           ; 74 0b
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp short 02c81h                          ; eb 9d
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 004h                              ; c1 e8 04
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, ax                                ; 01 c2
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    and ax, strict word 0000fh                ; 25 0f 00
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov word [bp+00eh], dx                    ; 89 56 0e
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    sal cx, 008h                              ; c1 e1 08
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    add cx, ax                                ; 01 c1
+    mov word [bp-014h], cx                    ; 89 4e ec
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    cmp ax, cx                                ; 39 c8
+    jbe short 02d24h                          ; 76 0c
+    mov ax, cx                                ; 89 c8
+    sub word [bp+004h], cx                    ; 29 4e 04
+    xor ax, cx                                ; 31 c8
+    mov word [bp-014h], ax                    ; 89 46 ec
+    jmp short 02d2eh                          ; eb 0a
+    mov cx, ax                                ; 89 c1
+    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
+    sub word [bp-014h], ax                    ; 29 46 ec
+    xor ax, ax                                ; 31 c0
+    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
+    jne short 02d57h                          ; 75 21
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    cmp dx, word [bp+006h]                    ; 3b 56 06
+    jbe short 02d57h                          ; 76 19
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    sub ax, word [bp+006h]                    ; 2b 46 06
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov word [bp-014h], ax                    ; 89 46 ec
+    xor ax, ax                                ; 31 c0
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 02d63h                          ; eb 0c
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    sub word [bp+006h], dx                    ; 29 56 06
+    sbb word [bp+008h], ax                    ; 19 46 08
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    test cl, 003h                             ; f6 c1 03
+    je short 02d70h                           ; 74 02
+    xor al, al                                ; 30 c0
+    test byte [bp-014h], 003h                 ; f6 46 ec 03
+    je short 02d78h                           ; 74 02
+    xor al, al                                ; 30 c0
+    test byte [bp-00ch], 003h                 ; f6 46 f4 03
+    je short 02d80h                           ; 74 02
+    xor al, al                                ; 30 c0
+    test byte [bp-014h], 001h                 ; f6 46 ec 01
+    je short 02d98h                           ; 74 12
+    inc word [bp-014h]                        ; ff 46 ec
+    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
+    jbe short 02d98h                          ; 76 09
+    test byte [bp-00ch], 001h                 ; f6 46 f4 01
+    je short 02d98h                           ; 74 03
+    dec word [bp-00ch]                        ; ff 4e f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 02da9h                          ; 75 0d
+    shr word [bp-014h], 002h                  ; c1 6e ec 02
+    shr cx, 002h                              ; c1 e9 02
+    shr word [bp-00ch], 002h                  ; c1 6e f4 02
+    jmp short 02db1h                          ; eb 08
+    shr word [bp-014h], 1                     ; d1 6e ec
+    shr cx, 1                                 ; d1 e9
+    shr word [bp-00ch], 1                     ; d1 6e f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 02de1h                          ; 75 2c
+    test cx, cx                               ; 85 c9
+    je short 02dc3h                           ; 74 0a
+    mov dx, bx                                ; 89 da
+    push eax                                  ; 66 50
+    in eax, DX                                ; 66 ed
+    loop 02dbdh                               ; e2 fc
+    pop eax                                   ; 66 58
+    mov dx, bx                                ; 89 da
+    mov cx, word [bp-014h]                    ; 8b 4e ec
+    les di, [bp+00ch]                         ; c4 7e 0c
+    db  0f3h, 066h, 06dh
+    ; rep insd                                  ; f3 66 6d
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    je short 02e00h                           ; 74 2b
+    mov cx, ax                                ; 89 c1
+    push eax                                  ; 66 50
+    in eax, DX                                ; 66 ed
+    loop 02dd9h                               ; e2 fc
+    pop eax                                   ; 66 58
+    jmp short 02e00h                          ; eb 1f
+    test cx, cx                               ; 85 c9
+    je short 02deah                           ; 74 05
+    mov dx, bx                                ; 89 da
+    in ax, DX                                 ; ed
+    loop 02de7h                               ; e2 fd
+    mov dx, bx                                ; 89 da
+    mov cx, word [bp-014h]                    ; 8b 4e ec
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insw                                  ; f3 6d
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    test ax, ax                               ; 85 c0
+    je short 02e00h                           ; 74 05
+    mov cx, ax                                ; 89 c1
+    in ax, DX                                 ; ed
+    loop 02dfdh                               ; e2 fd
+    add word [bp+00ch], si                    ; 01 76 0c
+    xor ax, ax                                ; 31 c0
+    add word [bp-018h], si                    ; 01 76 e8
+    adc word [bp-016h], ax                    ; 11 46 ea
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov si, word [bp-012h]                    ; 8b 76 ee
+    mov word [es:si+01ah], ax                 ; 26 89 44 1a
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    jmp near 02cb0h                           ; e9 8e fe
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02e36h                           ; 74 0c
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp near 02c81h                           ; e9 4b fe
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor dx, dx                                ; 31 d2
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+ata_soft_reset_:                             ; 0xf2e4c LB 0x80
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 0e e8
+    mov dx, bx                                ; 89 da
+    shr dx, 1                                 ; d1 ea
+    and bl, 001h                              ; 80 e3 01
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    xor dh, dh                                ; 30 f6
+    imul bx, dx, strict byte 00006h           ; 6b da 06
+    mov es, ax                                ; 8e c0
+    add bx, 00122h                            ; 81 c3 22 01
+    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
+    mov bx, word [es:bx+00208h]               ; 26 8b 9f 08 02
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 02e8eh                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02e91h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02e9fh                          ; 75 f4
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02ebch                           ; 74 0b
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02ec4h                          ; eb 08
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_diskette_ret_status_:                    ; 0xf2ecc LB 0x18
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00041h                ; ba 41 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 81 e7
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_diskette_current_cyl_:                   ; 0xf2ee4 LB 0x2d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bl, al                                ; 88 c3
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 02ef9h                          ; 76 0b
+    push 00250h                               ; 68 50 02
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 7c ea
+    add sp, strict byte 00004h                ; 83 c4 04
+    movzx ax, dl                              ; 0f b6 c2
+    movzx dx, bl                              ; 0f b6 d3
+    add dx, 00094h                            ; 81 c2 94 00
+    mov bx, ax                                ; 89 c3
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 53 e7
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_wait_for_interrupt_:                  ; 0xf2f11 LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    cli                                       ; fa
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 31 e7
+    test AL, strict byte 080h                 ; a8 80
+    je short 02f27h                           ; 74 04
+    and AL, strict byte 080h                  ; 24 80
+    jmp short 02f2ch                          ; eb 05
+    sti                                       ; fb
+    hlt                                       ; f4
+    cli                                       ; fa
+    jmp short 02f16h                          ; eb ea
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f32 LB 0x46
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    cli                                       ; fa
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ax, dx                                ; 89 d0
+    call 01650h                               ; e8 0f e7
+    test al, al                               ; 84 c0
+    jne short 02f4ah                          ; 75 05
+    sti                                       ; fb
+    xor cl, cl                                ; 30 c9
+    jmp short 02f6eh                          ; eb 24
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 fd e6
+    mov cl, al                                ; 88 c1
+    test AL, strict byte 080h                 ; a8 80
+    je short 02f69h                           ; 74 10
+    and AL, strict byte 07fh                  ; 24 7f
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 f7 e6
+    jmp short 02f6eh                          ; eb 05
+    sti                                       ; fb
+    hlt                                       ; f4
+    cli                                       ; fa
+    jmp short 02f39h                          ; eb cb
+    mov al, cl                                ; 88 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_reset_controller_:                    ; 0xf2f78 LB 0x2b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    movzx ax, bl                              ; 0f b6 c3
+    and AL, strict byte 0fbh                  ; 24 fb
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    or AL, strict byte 004h                   ; 0c 04
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    jne short 02f90h                          ; 75 f4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_prepare_controller_:                  ; 0xf2fa3 LB 0x81
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov cx, ax                                ; 89 c1
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 9b e6
+    and AL, strict byte 07fh                  ; 24 7f
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 9b e6
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 004h                  ; 24 04
+    mov byte [bp-008h], al                    ; 88 46 f8
+    test cx, cx                               ; 85 c9
+    je short 02fd6h                           ; 74 04
+    mov AL, strict byte 020h                  ; b0 20
+    jmp short 02fd8h                          ; eb 02
+    mov AL, strict byte 010h                  ; b0 10
+    or AL, strict byte 00ch                   ; 0c 0c
+    or al, cl                                 ; 08 c8
+    mov dx, 003f2h                            ; ba f2 03
+    out DX, AL                                ; ee
+    mov bx, strict word 00025h                ; bb 25 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ax, dx                                ; 89 d0
+    call 0165eh                               ; e8 73 e6
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 5c e6
+    shr al, 006h                              ; c0 e8 06
+    mov dx, 003f7h                            ; ba f7 03
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    jne short 02ffbh                          ; 75 f4
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 0301ch                          ; 75 0f
+    call 02f11h                               ; e8 01 ff
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 42 e6
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_media_known_:                         ; 0xf3024 LB 0x43
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 1c e6
+    mov ah, al                                ; 88 c4
+    test bx, bx                               ; 85 db
+    je short 0303ch                           ; 74 02
+    shr al, 1                                 ; d0 e8
+    and AL, strict byte 001h                  ; 24 01
+    jne short 03044h                          ; 75 04
+    xor ah, ah                                ; 30 e4
+    jmp short 03060h                          ; eb 1c
+    mov dx, 00090h                            ; ba 90 00
+    test bx, bx                               ; 85 db
+    je short 0304eh                           ; 74 03
+    mov dx, 00091h                            ; ba 91 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 fc e5
+    xor ah, ah                                ; 30 e4
+    sar ax, 004h                              ; c1 f8 04
+    and AL, strict byte 001h                  ; 24 01
+    je short 03040h                           ; 74 e3
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_read_id_:                             ; 0xf3067 LB 0x40
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov bx, ax                                ; 89 c3
+    call 02fa3h                               ; e8 2e ff
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    call 02f11h                               ; e8 90 fe
+    xor si, si                                ; 31 f6
+    jmp short 0308ah                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 03096h                          ; 7d 0c
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-00eh], al                 ; 88 42 f2
+    inc si                                    ; 46
+    jmp short 03085h                          ; eb ef
+    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
+    db  00fh, 094h, 0c0h
+    ; sete al                                   ; 0f 94 c0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_drive_recal_:                         ; 0xf30a7 LB 0x48
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    call 02fa3h                               ; e8 f1 fe
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    call 02f11h                               ; e8 53 fe
+    test bx, bx                               ; 85 db
+    je short 030c9h                           ; 74 07
+    or AL, strict byte 002h                   ; 0c 02
+    mov cx, 00095h                            ; b9 95 00
+    jmp short 030ceh                          ; eb 05
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, 00094h                            ; b9 94 00
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 84 e5
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 7a e5
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_media_sense_:                         ; 0xf30ef LB 0xf0
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    call 030a7h                               ; e8 ab ff
+    test ax, ax                               ; 85 c0
+    jne short 03105h                          ; 75 05
+    xor cx, cx                                ; 31 c9
+    jmp near 031d3h                           ; e9 ce 00
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 a1 e5
+    test di, di                               ; 85 ff
+    jne short 03116h                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 0311bh                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    cmp cl, 001h                              ; 80 f9 01
+    jne short 03129h                          ; 75 09
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 015h                  ; b5 15
+    mov si, strict word 00001h                ; be 01 00
+    jmp short 03167h                          ; eb 3e
+    cmp cl, 002h                              ; 80 f9 02
+    jne short 03134h                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 035h                  ; b5 35
+    jmp short 03124h                          ; eb f0
+    cmp cl, 003h                              ; 80 f9 03
+    jne short 0313fh                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 017h                  ; b5 17
+    jmp short 03124h                          ; eb e5
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 0314ah                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 017h                  ; b5 17
+    jmp short 03124h                          ; eb da
+    cmp cl, 005h                              ; 80 f9 05
+    jne short 03155h                          ; 75 06
+    mov CL, strict byte 0cch                  ; b1 cc
+    mov CH, strict byte 0d7h                  ; b5 d7
+    jmp short 03124h                          ; eb cf
+    cmp cl, 00eh                              ; 80 f9 0e
+    je short 0315fh                           ; 74 05
+    cmp cl, 00fh                              ; 80 f9 0f
+    jne short 03161h                          ; 75 02
+    jmp short 0314fh                          ; eb ee
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    xor si, si                                ; 31 f6
+    movzx bx, cl                              ; 0f b6 d9
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 eb e4
+    mov ax, di                                ; 89 f8
+    call 03067h                               ; e8 ef fe
+    test ax, ax                               ; 85 c0
+    jne short 031aeh                          ; 75 32
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    je short 031aeh                           ; 74 2a
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0319bh                           ; 74 0f
+    mov ah, cl                                ; 88 cc
+    and ah, 03fh                              ; 80 e4 3f
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 031a7h                           ; 74 12
+    test al, al                               ; 84 c0
+    je short 031a0h                           ; 74 07
+    jmp short 03167h                          ; eb cc
+    and cl, 03fh                              ; 80 e1 3f
+    jmp short 03167h                          ; eb c7
+    mov cl, ah                                ; 88 e1
+    or cl, 040h                               ; 80 c9 40
+    jmp short 03167h                          ; eb c0
+    mov cl, ah                                ; 88 e1
+    or cl, 080h                               ; 80 c9 80
+    jmp short 03167h                          ; eb b9
+    test di, di                               ; 85 ff
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    movzx di, al                              ; 0f b6 f8
+    add di, 00090h                            ; 81 c7 90 00
+    movzx bx, cl                              ; 0f b6 d9
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 98 e4
+    movzx bx, ch                              ; 0f b6 dd
+    mov dx, di                                ; 89 fa
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 8d e4
+    mov cx, si                                ; 89 f1
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_drive_exists_:                        ; 0xf31df LB 0x24
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 c1 e4
+    test dx, dx                               ; 85 d2
+    jne short 031f4h                          ; 75 05
+    shr al, 004h                              ; c0 e8 04
+    jmp short 031f6h                          ; eb 02
+    and AL, strict byte 00fh                  ; 24 0f
+    test al, al                               ; 84 c0
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int13_diskette_function:                    ; 0xf3203 LB 0x8f7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    mov si, word [bp+016h]                    ; 8b 76 16
+    and si, 000ffh                            ; 81 e6 ff 00
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    mov ah, byte [bp+014h]                    ; 8a 66 14
+    mov cl, byte [bp+016h]                    ; 8a 4e 16
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    shr dx, 008h                              ; c1 ea 08
+    mov word [bp-010h], dx                    ; 89 56 f0
+    cmp bl, 008h                              ; 80 fb 08
+    jc short 0326ah                           ; 72 38
+    mov dx, word [bp+01ch]                    ; 8b 56 1c
+    or dl, 001h                               ; 80 ca 01
+    cmp bl, 008h                              ; 80 fb 08
+    jbe near 037c0h                           ; 0f 86 81 05
+    cmp bl, 016h                              ; 80 fb 16
+    jc short 03260h                           ; 72 1c
+    or si, 00100h                             ; 81 ce 00 01
+    cmp bl, 016h                              ; 80 fb 16
+    jbe near 038f4h                           ; 0f 86 a5 06
+    cmp bl, 018h                              ; 80 fb 18
+    je near 0398ah                            ; 0f 84 34 07
+    cmp bl, 017h                              ; 80 fb 17
+    je near 03918h                            ; 0f 84 bb 06
+    jmp near 03ad7h                           ; e9 77 08
+    cmp bl, 015h                              ; 80 fb 15
+    je near 038b0h                            ; 0f 84 49 06
+    jmp near 03ad7h                           ; e9 6d 08
+    cmp bl, 001h                              ; 80 fb 01
+    jc short 03284h                           ; 72 15
+    jbe near 032fdh                           ; 0f 86 8a 00
+    cmp bl, 005h                              ; 80 fb 05
+    je near 0363ah                            ; 0f 84 c0 03
+    cmp bl, 004h                              ; 80 fb 04
+    jbe near 0331bh                           ; 0f 86 9a 00
+    jmp near 03ad7h                           ; e9 53 08
+    test bl, bl                               ; 84 db
+    jne near 03ad7h                           ; 0f 85 4d 08
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 032a8h                          ; 76 14
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02ecch                               ; e8 27 fc
+    jmp near 03616h                           ; e9 6e 03
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 fe e3
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 032bbh                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 032c0h                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    test cl, cl                               ; 84 c9
+    jne short 032d4h                          ; 75 10
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, 00080h                            ; b8 80 00
+    jmp short 032a2h                          ; eb ce
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 7f e3
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02ecch                               ; e8 e3 fb
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    xor dx, dx                                ; 31 d2
+    call 02ee4h                               ; e8 ee fb
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov dx, 00441h                            ; ba 41 04
+    xor ax, ax                                ; 31 c0
+    call 01650h                               ; e8 47 e3
+    movzx dx, al                              ; 0f b6 d0
+    sal dx, 008h                              ; c1 e2 08
+    or si, dx                                 ; 09 d6
+    mov word [bp+016h], si                    ; 89 76 16
+    test al, al                               ; 84 c0
+    je short 032f6h                           ; 74 de
+    jmp near 03616h                           ; e9 fb 02
+    mov ch, cl                                ; 88 cd
+    mov dl, byte [bp-010h]                    ; 8a 56 f0
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-00ah], ah                    ; 88 66 f6
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    shr dx, 008h                              ; c1 ea 08
+    mov byte [bp-00eh], dl                    ; 88 56 f2
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe short 03344h                         ; 77 0e
+    cmp dl, 001h                              ; 80 fa 01
+    jnbe short 03344h                         ; 77 09
+    test cl, cl                               ; 84 c9
+    je short 03344h                           ; 74 05
+    cmp cl, 048h                              ; 80 f9 48
+    jbe short 0336eh                          ; 76 2a
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 e2 e5
+    push 00275h                               ; 68 75 02
+    push 0028dh                               ; 68 8d 02
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 18 e6
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 033e4h                           ; e9 76 00
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 031dfh                               ; e8 6a fe
+    test ax, ax                               ; 85 c0
+    je near 03477h                            ; 0f 84 fc 00
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    mov ax, dx                                ; 89 d0
+    call 03024h                               ; e8 a0 fc
+    test ax, ax                               ; 85 c0
+    jne short 033a1h                          ; 75 19
+    mov ax, dx                                ; 89 d0
+    call 030efh                               ; e8 62 fd
+    test ax, ax                               ; 85 c0
+    jne short 033a1h                          ; 75 10
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp short 033e4h                          ; eb 43
+    cmp byte [bp-006h], 002h                  ; 80 7e fa 02
+    jne near 03509h                           ; 0f 85 60 01
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    shr ax, 00ch                              ; c1 e8 0c
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    sal dx, 004h                              ; c1 e2 04
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, dx                                ; 01 d3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp dx, bx                                ; 39 da
+    jbe short 033c5h                          ; 76 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    movzx bx, ch                              ; 0f b6 dd
+    sal bx, 009h                              ; c1 e3 09
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 033eeh                          ; 73 18
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 009h                               ; 80 cc 09
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00009h                ; b8 09 00
+    call 02ecch                               ; e8 e5 fa
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    jmp near 03616h                           ; e9 28 02
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    mov AL, strict byte 046h                  ; b0 46
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 02fa3h                               ; e8 70 fb
+    mov AL, strict byte 0e6h                  ; b0 e6
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
+    sal dx, 002h                              ; c1 e2 02
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    or ax, dx                                 ; 09 d0
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
+    movzx ax, ch                              ; 0f b6 c5
+    add ax, dx                                ; 01 d0
+    dec ax                                    ; 48
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    call 02f32h                               ; e8 c2 fa
+    test al, al                               ; 84 c0
+    jne short 03488h                          ; 75 14
+    call 02f78h                               ; e8 01 fb
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, 00080h                            ; b8 80 00
+    jmp near 033e4h                           ; e9 5c ff
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 034a2h                           ; 74 0e
+    push 00275h                               ; 68 75 02
+    push 002a8h                               ; 68 a8 02
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 d3 e4
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 034abh                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 034c3h                          ; 7d 18
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ah], al                 ; 88 42 e6
+    movzx bx, al                              ; 0f b6 d8
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 9e e1
+    inc si                                    ; 46
+    jmp short 034a6h                          ; eb e3
+    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
+    je short 034dah                           ; 74 11
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 020h                               ; 80 cc 20
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00020h                ; b8 20 00
+    jmp near 033e4h                           ; e9 0a ff
+    movzx ax, ch                              ; 0f b6 c5
+    sal ax, 009h                              ; c1 e0 09
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov cx, ax                                ; 89 c1
+    mov si, word [bp+010h]                    ; 8b 76 10
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    mov di, si                                ; 89 f7
+    mov es, dx                                ; 8e c2
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 02ee4h                               ; e8 e2 f9
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    jmp near 03983h                           ; e9 7a 04
+    cmp byte [bp-006h], 003h                  ; 80 7e fa 03
+    jne near 03624h                           ; 0f 85 13 01
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    shr ax, 00ch                              ; c1 e8 0c
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    sal dx, 004h                              ; c1 e2 04
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, dx                                ; 01 d3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp dx, bx                                ; 39 da
+    jbe short 0352dh                          ; 76 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    movzx bx, ch                              ; 0f b6 dd
+    sal bx, 009h                              ; c1 e3 09
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jc near 033d6h                            ; 0f 82 96 fe
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 02fa3h                               ; e8 1e fa
+    mov AL, strict byte 0c5h                  ; b0 c5
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    movzx dx, byte [bp-00eh]                  ; 0f b6 56 f2
+    sal dx, 002h                              ; c1 e2 02
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    or ax, dx                                 ; 09 d0
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    movzx dx, byte [bp-00ah]                  ; 0f b6 56 f6
+    movzx ax, ch                              ; 0f b6 c5
+    add ax, dx                                ; 01 d0
+    dec ax                                    ; 48
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    call 02f32h                               ; e8 70 f9
+    test al, al                               ; 84 c0
+    je near 03474h                            ; 0f 84 ac fe
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 035e2h                           ; 74 0e
+    push 00275h                               ; 68 75 02
+    push 002a8h                               ; 68 a8 02
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 93 e3
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 035ebh                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 03603h                          ; 7d 18
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ah], al                 ; 88 42 e6
+    movzx bx, al                              ; 0f b6 d8
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 5e e0
+    inc si                                    ; 46
+    jmp short 035e6h                          ; eb e3
+    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
+    je near 034f7h                            ; 0f 84 ec fe
+    test byte [bp-019h], 002h                 ; f6 46 e7 02
+    je short 0361dh                           ; 74 0c
+    mov word [bp+016h], 00300h                ; c7 46 16 00 03
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 032f6h                           ; e9 d9 fc
+    mov word [bp+016h], 00100h                ; c7 46 16 00 01
+    jmp short 03616h                          ; eb f2
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 02ee4h                               ; e8 b5 f8
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    jmp near 032f6h                           ; e9 bc fc
+    mov ch, byte [bp+016h]                    ; 8a 6e 16
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    shr dx, 008h                              ; c1 ea 08
+    mov byte [bp-00eh], dl                    ; 88 56 f2
+    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    cmp bl, 001h                              ; 80 fb 01
+    jnbe short 0366ch                         ; 77 12
+    cmp dl, 001h                              ; 80 fa 01
+    jnbe short 0366ch                         ; 77 0d
+    cmp AL, strict byte 04fh                  ; 3c 4f
+    jnbe short 0366ch                         ; 77 09
+    test ch, ch                               ; 84 ed
+    je short 0366ch                           ; 74 05
+    cmp ch, 012h                              ; 80 fd 12
+    jbe short 03681h                          ; 76 15
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02ecch                               ; e8 4f f8
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 031dfh                               ; e8 57 fb
+    test ax, ax                               ; 85 c0
+    je near 032c4h                            ; 0f 84 36 fc
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    mov ax, dx                                ; 89 d0
+    call 03024h                               ; e8 8d f9
+    test ax, ax                               ; 85 c0
+    jne short 036a6h                          ; 75 0b
+    mov ax, dx                                ; 89 d0
+    call 030efh                               ; e8 4f fa
+    test ax, ax                               ; 85 c0
+    je near 03391h                            ; 0f 84 eb fc
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    shr ax, 00ch                              ; c1 e8 0c
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    sal dx, 004h                              ; c1 e2 04
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, dx                                ; 01 d3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp dx, bx                                ; 39 da
+    jbe short 036c2h                          ; 76 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    movzx bx, ch                              ; 0f b6 dd
+    sal bx, 002h                              ; c1 e3 02
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jc near 033d6h                            ; 0f 82 01 fd
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    out DX, AL                                ; ee
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 02fa3h                               ; e8 89 f8
+    mov AL, strict byte 00fh                  ; b0 0f
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    sal bx, 002h                              ; c1 e3 02
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    or bx, ax                                 ; 09 c3
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov AL, strict byte 04dh                  ; b0 4d
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    out DX, AL                                ; ee
+    xor al, ch                                ; 30 e8
+    out DX, AL                                ; ee
+    mov AL, strict byte 0f6h                  ; b0 f6
+    out DX, AL                                ; ee
+    call 02f32h                               ; e8 e9 f7
+    test al, al                               ; 84 c0
+    jne short 03753h                          ; 75 06
+    call 02f78h                               ; e8 28 f8
+    jmp near 032c4h                           ; e9 71 fb
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0376dh                           ; 74 0e
+    push 00275h                               ; 68 75 02
+    push 002a8h                               ; 68 a8 02
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 08 e2
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 03776h                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 0378eh                          ; 7d 18
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ah], al                 ; 88 42 e6
+    movzx bx, al                              ; 0f b6 d8
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d3 de
+    inc si                                    ; 46
+    jmp short 03771h                          ; eb e3
+    test byte [bp-01ah], 0c0h                 ; f6 46 e6 c0
+    je short 037aah                           ; 74 16
+    test byte [bp-019h], 002h                 ; f6 46 e7 02
+    jne near 03611h                           ; 0f 85 75 fe
+    push 00275h                               ; 68 75 02
+    push 002bch                               ; 68 bc 02
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 cb e1
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02ecch                               ; e8 18 f7
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    xor dx, dx                                ; 31 d2
+    call 02ee4h                               ; e8 27 f7
+    jmp near 03983h                           ; e9 c3 01
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 037e4h                          ; 76 1d
+    xor ax, ax                                ; 31 c0
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+008h], ax                    ; 89 46 08
+    movzx ax, ch                              ; 0f b6 c5
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 03901h                           ; e9 1d 01
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 c2 de
+    mov cl, al                                ; 88 c1
+    xor ch, ch                                ; 30 ed
+    test AL, strict byte 0f0h                 ; a8 f0
+    je short 037f4h                           ; 74 02
+    mov CH, strict byte 001h                  ; b5 01
+    test cl, 00fh                             ; f6 c1 0f
+    je short 037fbh                           ; 74 02
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 03806h                          ; 75 05
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 03809h                          ; eb 03
+    and cl, 00fh                              ; 80 e1 0f
+    mov byte [bp+011h], 000h                  ; c6 46 11 00
+    movzx ax, cl                              ; 0f b6 c1
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    movzx dx, ch                              ; 0f b6 d5
+    or ax, dx                                 ; 09 d0
+    mov word [bp+012h], ax                    ; 89 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+012h], ax                    ; 89 46 12
+    cmp cl, 003h                              ; 80 f9 03
+    jc short 03847h                           ; 72 15
+    jbe short 0386eh                          ; 76 3a
+    cmp cl, 005h                              ; 80 f9 05
+    jc short 03875h                           ; 72 3c
+    jbe short 0387ch                          ; 76 41
+    cmp cl, 00fh                              ; 80 f9 0f
+    je short 0388ah                           ; 74 4a
+    cmp cl, 00eh                              ; 80 f9 0e
+    je short 03883h                           ; 74 3e
+    jmp short 03891h                          ; eb 4a
+    cmp cl, 002h                              ; 80 f9 02
+    je short 03867h                           ; 74 1b
+    cmp cl, 001h                              ; 80 f9 01
+    je short 03860h                           ; 74 0f
+    test cl, cl                               ; 84 c9
+    jne short 03891h                          ; 75 3c
+    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp short 0389fh                          ; eb 3f
+    mov word [bp+014h], 02709h                ; c7 46 14 09 27
+    jmp short 0389fh                          ; eb 38
+    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
+    jmp short 0389fh                          ; eb 31
+    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
+    jmp short 0389fh                          ; eb 2a
+    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
+    jmp short 0389fh                          ; eb 23
+    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
+    jmp short 0389fh                          ; eb 1c
+    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
+    jmp short 0389fh                          ; eb 15
+    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
+    jmp short 0389fh                          ; eb 0e
+    push 00275h                               ; 68 75 02
+    push 002cdh                               ; 68 cd 02
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 d6 e0
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    movzx ax, cl                              ; 0f b6 c1
+    call 03afah                               ; e8 50 02
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp near 03983h                           ; e9 d3 00
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 038bch                          ; 76 05
+    mov word [bp+016h], si                    ; 89 76 16
+    jmp short 03901h                          ; eb 45
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 ea dd
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 038cfh                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 038d4h                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    xor dh, dh                                ; 30 f6
+    test cl, cl                               ; 84 c9
+    je short 038eeh                           ; 74 0d
+    cmp cl, 001h                              ; 80 f9 01
+    jbe short 038ebh                          ; 76 05
+    or dh, 002h                               ; 80 ce 02
+    jmp short 038eeh                          ; eb 03
+    or dh, 001h                               ; 80 ce 01
+    mov word [bp+016h], dx                    ; 89 56 16
+    jmp near 032f6h                           ; e9 02 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03907h                          ; 76 0f
+    mov word [bp+016h], si                    ; 89 76 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02ecch                               ; e8 cb f5
+    mov word [bp+01ch], dx                    ; 89 56 1c
+    jmp near 032f6h                           ; e9 ef f9
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 006h                               ; 80 cc 06
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp near 032a2h                           ; e9 8a f9
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, cl                                ; 88 cb
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe short 038f8h                         ; 77 d7
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 031dfh                               ; e8 b7 f8
+    test ax, ax                               ; 85 c0
+    je near 032c4h                            ; 0f 84 96 f9
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    movzx dx, al                              ; 0f b6 d0
+    add dx, 00090h                            ; 81 c2 90 00
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 0b dd
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp bl, 002h                              ; 80 fb 02
+    jc short 0395bh                           ; 72 0f
+    jbe short 03967h                          ; 76 19
+    cmp bl, 004h                              ; 80 fb 04
+    je short 03963h                           ; 74 10
+    cmp bl, 003h                              ; 80 fb 03
+    je short 0396bh                           ; 74 13
+    jmp near 03294h                           ; e9 39 f9
+    cmp bl, 001h                              ; 80 fb 01
+    je short 03963h                           ; 74 03
+    jmp near 03294h                           ; e9 31 f9
+    or AL, strict byte 090h                   ; 0c 90
+    jmp short 0396dh                          ; eb 06
+    or AL, strict byte 070h                   ; 0c 70
+    jmp short 0396dh                          ; eb 02
+    or AL, strict byte 010h                   ; 0c 10
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 e5 dc
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02ecch                               ; e8 49 f5
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp near 032f6h                           ; e9 6c f9
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov ch, ah                                ; 88 e5
+    and ch, 03fh                              ; 80 e5 3f
+    movzx bx, ah                              ; 0f b6 dc
+    sar bx, 006h                              ; c1 fb 06
+    sal bx, 008h                              ; c1 e3 08
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov byte [bp-00ch], bl                    ; 88 5e f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe near 038f8h                          ; 0f 87 51 ff
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 031dfh                               ; e8 31 f8
+    test ax, ax                               ; 85 c0
+    je near 032c4h                            ; 0f 84 10 f9
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    mov ax, dx                                ; 89 d0
+    call 03024h                               ; e8 67 f6
+    test ax, ax                               ; 85 c0
+    jne short 039dbh                          ; 75 1a
+    mov ax, dx                                ; 89 d0
+    call 030efh                               ; e8 29 f7
+    test ax, ax                               ; 85 c0
+    jne short 039dbh                          ; 75 11
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp near 032a2h                           ; e9 c7 f8
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016ach                               ; e8 cb dc
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 039eeh                          ; 75 07
+    mov cl, al                                ; 88 c1
+    shr cl, 004h                              ; c0 e9 04
+    jmp short 039f3h                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    movzx dx, al                              ; 0f b6 d0
+    add dx, 00090h                            ; 81 c2 90 00
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 46 dc
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp cl, 003h                              ; 80 f9 03
+    jc short 03a2fh                           ; 72 1e
+    mov dl, al                                ; 88 c2
+    or dl, 090h                               ; 80 ca 90
+    cmp cl, 003h                              ; 80 f9 03
+    jbe short 03a6dh                          ; 76 52
+    mov ah, al                                ; 88 c4
+    or ah, 010h                               ; 80 cc 10
+    cmp cl, 005h                              ; 80 f9 05
+    je near 03a92h                            ; 0f 84 6b 00
+    cmp cl, 004h                              ; 80 f9 04
+    je short 03a7ch                           ; 74 50
+    jmp near 03aadh                           ; e9 7e 00
+    cmp cl, 002h                              ; 80 f9 02
+    je short 03a4fh                           ; 74 1b
+    cmp cl, 001h                              ; 80 f9 01
+    jne near 03aadh                           ; 0f 85 72 00
+    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
+    jne near 03aadh                           ; 0f 85 6a 00
+    cmp ch, 009h                              ; 80 fd 09
+    jne near 03aadh                           ; 0f 85 63 00
+    or AL, strict byte 090h                   ; 0c 90
+    jmp near 03aadh                           ; e9 5e 00
+    cmp byte [bp-00ch], 027h                  ; 80 7e f4 27
+    jne short 03a5eh                          ; 75 09
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a5eh                          ; 75 04
+    or AL, strict byte 070h                   ; 0c 70
+    jmp short 03aadh                          ; eb 4f
+    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
+    jne short 03aadh                          ; 75 49
+    cmp ch, 00fh                              ; 80 fd 0f
+    jne short 03aadh                          ; 75 44
+    or AL, strict byte 010h                   ; 0c 10
+    jmp short 03aadh                          ; eb 40
+    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
+    jne short 03aadh                          ; 75 3a
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03aadh                          ; 75 35
+    mov al, dl                                ; 88 d0
+    jmp short 03aadh                          ; eb 31
+    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
+    jne short 03aadh                          ; 75 2b
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a89h                          ; 75 02
+    jmp short 03a78h                          ; eb ef
+    cmp ch, 012h                              ; 80 fd 12
+    jne short 03aadh                          ; 75 1f
+    mov al, ah                                ; 88 e0
+    jmp short 03aadh                          ; eb 1b
+    cmp byte [bp-00ch], 04fh                  ; 80 7e f4 4f
+    jne short 03aadh                          ; 75 15
+    cmp ch, 009h                              ; 80 fd 09
+    jne short 03a9fh                          ; 75 02
+    jmp short 03a78h                          ; eb d9
+    cmp ch, 012h                              ; 80 fd 12
+    jne short 03aa6h                          ; 75 02
+    jmp short 03a8eh                          ; eb e8
+    cmp ch, 024h                              ; 80 fd 24
+    jne short 03aadh                          ; 75 02
+    or AL, strict byte 0d0h                   ; 0c d0
+    movzx dx, al                              ; 0f b6 d0
+    sar dx, 004h                              ; c1 fa 04
+    test dl, 001h                             ; f6 c2 01
+    je near 039cah                            ; 0f 84 10 ff
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 98 db
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    movzx ax, cl                              ; 0f b6 c1
+    call 03afah                               ; e8 29 00
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp near 03979h                           ; e9 a2 fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 4f de
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 00275h                               ; 68 75 02
+    push 002e2h                               ; 68 e2 02
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 7e de
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 03294h                           ; e9 9a f7
+get_floppy_dpt_:                             ; 0xf3afa LB 0x2f
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dl, al                                ; 88 c2
+    xor ax, ax                                ; 31 c0
+    jmp short 03b0bh                          ; eb 06
+    inc ax                                    ; 40
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jnc short 03b22h                          ; 73 17
+    mov bx, ax                                ; 89 c3
+    add bx, ax                                ; 01 c3
+    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
+    jne short 03b05h                          ; 75 f0
+    movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
+    imul ax, ax, strict byte 0000dh           ; 6b c0 0d
+    add ax, strict word 00000h                ; 05 00 00
+    jmp short 03b25h                          ; eb 03
+    mov ax, strict word 00041h                ; b8 41 00
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+dummy_soft_reset_:                           ; 0xf3b29 LB 0x7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    xor ax, ax                                ; 31 c0
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_init:                                 ; 0xf3b30 LB 0x18
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 30 db
+    xor bx, bx                                ; 31 db
+    mov dx, 00366h                            ; ba 66 03
+    call 0165eh                               ; e8 1a db
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_isactive:                             ; 0xf3b48 LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 18 db
+    mov dx, 00366h                            ; ba 66 03
+    call 01650h                               ; e8 f6 da
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_emulated_drive:                       ; 0xf3b5e LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 02 db
+    mov dx, 00368h                            ; ba 68 03
+    call 01650h                               ; e8 e0 da
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int13_eltorito:                             ; 0xf3b74 LB 0x189
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 ea da
+    mov si, 00366h                            ; be 66 03
+    mov di, ax                                ; 89 c7
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 0004bh                ; 3d 4b 00
+    jc short 03b9ch                           ; 72 0a
+    jbe short 03bc2h                          ; 76 2e
+    cmp ax, strict word 0004dh                ; 3d 4d 00
+    jbe short 03ba3h                          ; 76 0a
+    jmp near 03cc1h                           ; e9 25 01
+    cmp ax, strict word 0004ah                ; 3d 4a 00
+    jne near 03cc1h                           ; 0f 85 1e 01
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 83 dd
+    push word [bp+016h]                       ; ff 76 16
+    push 002fch                               ; 68 fc 02
+    push 0030bh                               ; 68 0b 03
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 b6 dd
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 03cdch                           ; e9 1a 01
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov bx, strict word 00013h                ; bb 13 00
+    call 0165eh                               ; e8 90 da
+    mov es, di                                ; 8e c7
+    movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    inc dx                                    ; 42
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 7f da
+    mov es, di                                ; 8e c7
+    movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 6d da
+    mov es, di                                ; 8e c7
+    movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 5a da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
+    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0169ah                               ; e8 80 da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 4e da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000ah                ; 83 c2 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 3c da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 2a da
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ah                               ; e8 18 da
+    mov es, di                                ; 8e c7
+    movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00010h                ; 83 c2 10
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 e9 d9
+    mov es, di                                ; 8e c7
+    movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00011h                ; 83 c2 11
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 d6 d9
+    mov es, di                                ; 8e c7
+    movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00012h                ; 83 c2 12
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0165eh                               ; e8 c3 d9
+    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
+    jne short 03ca7h                          ; 75 06
+    mov es, di                                ; 8e c7
+    mov byte [es:si], 000h                    ; 26 c6 04 00
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 a8 d9
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 65 dc
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 002fch                               ; 68 fc 02
+    push 00333h                               ; 68 33 03
+    jmp near 03bb7h                           ; e9 db fe
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, ax                                ; 89 c3
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 67 d9
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 03cbah                          ; eb bd
+device_is_cdrom_:                            ; 0xf3cfd LB 0x35
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 5f d9
+    cmp bl, 010h                              ; 80 fb 10
+    jc short 03d16h                           ; 72 04
+    xor ax, ax                                ; 31 c0
+    jmp short 03d2bh                          ; eb 15
+    xor bh, bh                                ; 30 ff
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, ax                                ; 8e c0
+    add bx, 00122h                            ; 81 c3 22 01
+    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
+    jne short 03d12h                          ; 75 ea
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+cdrom_boot_:                                 ; 0xf3d32 LB 0x416
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 0081ch                            ; 81 ec 1c 08
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 25 d9
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov si, 00366h                            ; be 66 03
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-014h], 00122h                ; c7 46 ec 22 01
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    jmp short 03d67h                          ; eb 09
+    inc byte [bp-00ch]                        ; fe 46 f4
+    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
+    jnc short 03d72h                          ; 73 0b
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    call 03cfdh                               ; e8 8f ff
+    test ax, ax                               ; 85 c0
+    je short 03d5eh                           ; 74 ec
+    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
+    jc short 03d7eh                           ; 72 06
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 040e5h                           ; e9 67 03
+    mov cx, strict word 0000ch                ; b9 0c 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-026h]                         ; 8d 46 da
+    call 09e7ah                               ; e8 ef 60
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    mov ax, strict word 00011h                ; b8 11 00
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, strict word 00001h                ; b8 01 00
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    les bx, [bp-014h]                         ; c4 5e ec
+    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 008h
+    ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    jmp short 03dc3h                          ; eb 09
+    inc byte [bp-00eh]                        ; fe 46 f2
+    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
+    jnbe short 03dfah                         ; 77 37
+    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
+    imul di, di, strict byte 0001ch           ; 6b ff 1c
+    mov es, [bp-012h]                         ; 8e 46 ee
+    add di, word [bp-014h]                    ; 03 7e ec
+    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
+    add di, di                                ; 01 ff
+    lea dx, [bp-00826h]                       ; 8d 96 da f7
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00001h                   ; 6a 01
+    push strict byte 00000h                   ; 6a 00
+    push 00800h                               ; 68 00 08
+    push strict byte 00000h                   ; 6a 00
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    test ax, ax                               ; 85 c0
+    jne short 03dbah                          ; 75 c0
+    test ax, ax                               ; 85 c0
+    je short 03e04h                           ; 74 06
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 040e5h                           ; e9 e1 02
+    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
+    je short 03e11h                           ; 74 06
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp near 040e5h                           ; e9 d4 02
+    xor di, di                                ; 31 ff
+    jmp short 03e1bh                          ; eb 06
+    inc di                                    ; 47
+    cmp di, strict byte 00005h                ; 83 ff 05
+    jnc short 03e2bh                          ; 73 10
+    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
+    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    je short 03e15h                           ; 74 f0
+    mov ax, strict word 00005h                ; b8 05 00
+    jmp near 040e5h                           ; e9 ba 02
+    xor di, di                                ; 31 ff
+    jmp short 03e35h                          ; eb 06
+    inc di                                    ; 47
+    cmp di, strict byte 00017h                ; 83 ff 17
+    jnc short 03e45h                          ; 73 10
+    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    je short 03e2fh                           ; 74 f0
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp near 040e5h                           ; e9 a0 02
+    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
+    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, strict word 00001h                ; b8 01 00
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
+    imul di, di, strict byte 0001ch           ; 6b ff 1c
+    mov es, [bp-012h]                         ; 8e 46 ee
+    add di, word [bp-014h]                    ; 03 7e ec
+    movzx di, byte [es:di+022h]               ; 26 0f b6 7d 22
+    add di, di                                ; 01 ff
+    lea dx, [bp-00826h]                       ; 8d 96 da f7
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00001h                   ; 6a 01
+    push strict byte 00000h                   ; 6a 00
+    push 00800h                               ; 68 00 08
+    push strict byte 00000h                   ; 6a 00
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    test ax, ax                               ; 85 c0
+    je short 03ea2h                           ; 74 06
+    mov ax, strict word 00007h                ; b8 07 00
+    jmp near 040e5h                           ; e9 43 02
+    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
+    je short 03eafh                           ; 74 06
+    mov ax, strict word 00008h                ; b8 08 00
+    jmp near 040e5h                           ; e9 36 02
+    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
+    je short 03ebch                           ; 74 06
+    mov ax, strict word 00009h                ; b8 09 00
+    jmp near 040e5h                           ; e9 29 02
+    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
+    je short 03ec9h                           ; 74 06
+    mov ax, strict word 0000ah                ; b8 0a 00
+    jmp near 040e5h                           ; e9 1c 02
+    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
+    jne short 03ec3h                          ; 75 f3
+    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
+    je short 03eddh                           ; 74 06
+    mov ax, strict word 0000bh                ; b8 0b 00
+    jmp near 040e5h                           ; e9 08 02
+    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov byte [es:si+001h], al                 ; 26 88 44 01
+    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
+    jne short 03ef6h                          ; 75 07
+    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
+    jmp short 03f09h                          ; eb 13
+    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
+    jnc short 03f04h                          ; 73 07
+    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
+    jmp short 03f09h                          ; eb 05
+    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
+    movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
+    mov ax, di                                ; 89 f8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov byte [es:si+003h], al                 ; 26 88 44 03
+    mov ax, di                                ; 89 f8
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    mov word [es:si+004h], dx                 ; 26 89 54 04
+    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
+    mov word [bp-016h], ax                    ; 89 46 ea
+    test ax, ax                               ; 85 c0
+    jne short 03f37h                          ; 75 05
+    mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov word [es:si+00ch], ax                 ; 26 89 44 0c
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov di, word [bp-00800h]                  ; 8b be 00 f8
+    mov word [es:si+00eh], di                 ; 26 89 7c 0e
+    test di, di                               ; 85 ff
+    je short 03f59h                           ; 74 06
+    cmp di, 00400h                            ; 81 ff 00 04
+    jbe short 03f5fh                          ; 76 06
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp near 040e5h                           ; e9 86 01
+    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
+    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    lea dx, [di-001h]                         ; 8d 55 ff
+    shr dx, 002h                              ; c1 ea 02
+    inc dx                                    ; 42
+    mov ax, dx                                ; 89 d0
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    les bx, [bp-014h]                         ; c4 5e ec
+    mov word [es:bx+00eh], dx                 ; 26 89 57 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov ax, di                                ; 89 f8
+    sal ax, 009h                              ; c1 e0 09
+    mov dx, 00800h                            ; ba 00 08
+    sub dx, ax                                ; 29 c2
+    mov ax, dx                                ; 89 d0
+    and ah, 007h                              ; 80 e4 07
+    mov word [es:bx+020h], ax                 ; 26 89 47 20
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    add bx, ax                                ; 01 c3
+    movzx ax, byte [es:bx+022h]               ; 26 0f b6 47 22
+    add ax, ax                                ; 01 c0
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    push word [bp-016h]                       ; ff 76 ea
+    push dword 000000001h                     ; 66 6a 01
+    mov ax, di                                ; 89 f8
+    xor di, di                                ; 31 ff
+    mov cx, strict word 00009h                ; b9 09 00
+    sal ax, 1                                 ; d1 e0
+    rcl di, 1                                 ; d1 d7
+    loop 03fcdh                               ; e2 fa
+    push di                                   ; 57
+    push ax                                   ; 50
+    push strict byte 00000h                   ; 6a 00
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov di, word [bp-01ah]                    ; 8b 7e e6
+    call word [word di+0006ah]                ; ff 95 6a 00
+    les bx, [bp-014h]                         ; c4 5e ec
+    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
+    test ax, ax                               ; 85 c0
+    je short 03ffdh                           ; 74 06
+    mov ax, strict word 0000dh                ; b8 0d 00
+    jmp near 040e5h                           ; e9 e8 00
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov al, byte [es:si+001h]                 ; 26 8a 44 01
+    cmp AL, strict byte 002h                  ; 3c 02
+    jc short 04015h                           ; 72 0d
+    jbe short 0402dh                          ; 76 23
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 04043h                           ; 74 35
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 04038h                           ; 74 26
+    jmp near 0408eh                           ; e9 79 00
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 0408eh                          ; 75 75
+    mov es, [bp-010h]                         ; 8e 46 f0
+    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
+    ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
+    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
+    jmp short 0408eh                          ; eb 61
+    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
+    ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
+    jmp short 04025h                          ; eb ed
+    db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
+    ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
+    jmp short 04025h                          ; eb e2
+    mov dx, 001c4h                            ; ba c4 01
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    call 01650h                               ; e8 04 d6
+    and AL, strict byte 03fh                  ; 24 3f
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov word [es:si+014h], ax                 ; 26 89 44 14
+    mov dx, 001c4h                            ; ba c4 01
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    call 01650h                               ; e8 f0 d5
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 002h                              ; c1 e3 02
+    mov dx, 001c5h                            ; ba c5 01
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    call 01650h                               ; e8 e1 d5
+    xor ah, ah                                ; 30 e4
+    add ax, bx                                ; 01 d8
+    inc ax                                    ; 40
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov word [es:si+012h], ax                 ; 26 89 44 12
+    mov dx, 001c3h                            ; ba c3 01
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    call 01650h                               ; e8 cc d5
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov word [es:si+010h], ax                 ; 26 89 44 10
+    mov es, [bp-010h]                         ; 8e 46 f0
+    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
+    je short 040cch                           ; 74 34
+    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
+    jne short 040b5h                          ; 75 16
+    mov dx, strict word 00010h                ; ba 10 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 a8 d5
+    or AL, strict byte 041h                   ; 0c 41
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00010h                ; ba 10 00
+    mov ax, strict word 00040h                ; b8 40 00
+    jmp short 040c9h                          ; eb 14
+    mov dx, 00304h                            ; ba 04 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    call 01650h                               ; e8 92 d5
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00304h                            ; ba 04 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    call 0165eh                               ; e8 92 d5
+    mov es, [bp-010h]                         ; 8e 46 f0
+    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
+    je short 040dah                           ; 74 04
+    mov byte [es:si], 001h                    ; 26 c6 04 01
+    mov es, [bp-010h]                         ; 8e 46 f0
+    movzx ax, byte [es:si+002h]               ; 26 0f b6 44 02
+    sal ax, 008h                              ; c1 e0 08
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e0h, 044h, 0eeh
+    db  041h, 038h, 042h, 060h, 042h, 02dh, 042h, 060h, 042h, 02dh, 042h, 036h, 044h, 013h, 042h, 0e0h
+    db  044h, 0e0h, 044h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 0d7h, 044h, 013h
+    db  042h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h
+    db  044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h
+_int13_cdemu:                                ; 0xf4148 LB 0x434
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0002ah                ; 83 ec 2a
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 13 d5
+    mov di, 00366h                            ; bf 66 03
+    mov cx, ax                                ; 89 c1
+    mov si, di                                ; 89 fe
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:di+003h]                 ; 26 8a 45 03
+    add al, al                                ; 00 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, byte [es:di+004h]                 ; 26 8a 45 04
+    add byte [bp-006h], al                    ; 00 46 fa
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d6 d4
+    mov es, cx                                ; 8e c1
+    cmp byte [es:di], 000h                    ; 26 80 3d 00
+    je short 0419eh                           ; 74 0e
+    movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp dx, ax                                ; 39 c2
+    je short 041c7h                           ; 74 29
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 88 d7
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0034ch                               ; 68 4c 03
+    push 00358h                               ; 68 58 03
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 b1 d7
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 04500h                           ; e9 39 03
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 00050h                ; 3d 50 00
+    jnbe near 044e0h                          ; 0f 87 0c 03
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov di, 040efh                            ; bf ef 40
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+0410ch]               ; 2e 8b 85 0c 41
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    xor bh, bh                                ; 30 ff
+    jmp ax                                    ; ff e0
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    movzx bx, byte [es:bx+022h]               ; 26 0f b6 5f 22
+    add bx, bx                                ; 01 db
+    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
+    je near 04213h                            ; 0f 84 08 00
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    call word [word bx+00076h]                ; ff 97 76 00
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 3c d4
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    jmp near 04508h                           ; e9 d0 02
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 0f d4
+    mov cl, al                                ; 88 c1
+    movzx ax, cl                              ; 0f b6 c1
+    sal ax, 008h                              ; c1 e0 08
+    or bx, ax                                 ; 09 c3
+    mov word [bp+016h], bx                    ; 89 5e 16
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 05 d4
+    test cl, cl                               ; 84 c9
+    je short 04217h                           ; 74 ba
+    jmp near 0451ch                           ; e9 bc 02
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov di, word [es:si+014h]                 ; 26 8b 7c 14
+    mov dx, word [es:si+012h]                 ; 26 8b 54 12
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    mov ax, word [es:si+008h]                 ; 26 8b 44 08
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    and ax, strict word 0003fh                ; 25 3f 00
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov cx, word [bp+014h]                    ; 8b 4e 14
+    and cx, 000c0h                            ; 81 e1 c0 00
+    sal cx, 002h                              ; c1 e1 02
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    shr ax, 008h                              ; c1 e8 08
+    or ax, cx                                 ; 09 c8
+    mov si, word [bp+012h]                    ; 8b 76 12
+    shr si, 008h                              ; c1 ee 08
+    mov cx, word [bp+016h]                    ; 8b 4e 16
+    xor ch, ch                                ; 30 ed
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    test cx, cx                               ; 85 c9
+    jne short 042adh                          ; 75 03
+    jmp near 04213h                           ; e9 66 ff
+    cmp di, word [bp-010h]                    ; 3b 7e f0
+    jc near 04500h                            ; 0f 82 4c 02
+    cmp ax, dx                                ; 39 d0
+    jnc near 04500h                           ; 0f 83 46 02
+    cmp si, bx                                ; 39 de
+    jnc near 04500h                           ; 0f 83 40 02
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    shr dx, 008h                              ; c1 ea 08
+    cmp dx, strict byte 00004h                ; 83 fa 04
+    jne short 042ceh                          ; 75 03
+    jmp near 04213h                           ; e9 45 ff
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    shr dx, 004h                              ; c1 ea 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    add cx, dx                                ; 01 d1
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    and dx, strict byte 0000fh                ; 83 e2 0f
+    mov word [bp-01ch], dx                    ; 89 56 e4
+    xor dl, dl                                ; 30 d2
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 3d 5b
+    xor bx, bx                                ; 31 db
+    add ax, si                                ; 01 f0
+    adc dx, bx                                ; 11 da
+    mov bx, di                                ; 89 fb
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 30 5b
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    dec ax                                    ; 48
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    xor bl, bl                                ; 30 db
+    mov cx, word [bp-00ah]                    ; 8b 4e f6
+    or cx, bx                                 ; 09 d9
+    mov word [bp+016h], cx                    ; 89 4e 16
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    mov word [bp-01eh], di                    ; 89 7e e2
+    mov di, ax                                ; 89 c7
+    and di, strict byte 00003h                ; 83 e7 03
+    xor bh, bh                                ; 30 ff
+    add ax, word [bp-00ah]                    ; 03 46 f6
+    adc dx, bx                                ; 11 da
+    add ax, strict word 0ffffh                ; 05 ff ff
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov word [bp-020h], dx                    ; 89 56 e0
+    shr word [bp-020h], 1                     ; d1 6e e0
+    rcr word [bp-022h], 1                     ; d1 5e de
+    shr word [bp-020h], 1                     ; d1 6e e0
+    rcr word [bp-022h], 1                     ; d1 5e de
+    mov cx, strict word 0000ch                ; b9 0c 00
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02eh]                         ; 8d 46 d2
+    call 09e7ah                               ; e8 2a 5b
+    mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    add ax, si                                ; 01 f0
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    adc dx, word [bp-01eh]                    ; 13 56 e2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov word [bp-02ah], dx                    ; 89 56 d6
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    sub ax, si                                ; 29 f0
+    inc ax                                    ; 40
+    xchg ah, al                               ; 86 c4
+    mov word [bp-027h], ax                    ; 89 46 d9
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov ax, di                                ; 89 f8
+    sal ax, 009h                              ; c1 e0 09
+    mov word [es:bx+01eh], ax                 ; 26 89 47 1e
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    mov bx, strict word 00004h                ; bb 04 00
+    sub bx, dx                                ; 29 d3
+    mov dx, bx                                ; 89 da
+    sub dx, di                                ; 29 fa
+    sal dx, 009h                              ; c1 e2 09
+    and dh, 007h                              ; 80 e6 07
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov word [es:bx+020h], dx                 ; 26 89 57 20
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    add bx, dx                                ; 01 d3
+    movzx dx, byte [es:bx+022h]               ; 26 0f b6 57 22
+    add dx, dx                                ; 01 d2
+    mov word [bp-01ah], dx                    ; 89 56 e6
+    push word [bp-016h]                       ; ff 76 ea
+    push word [bp-01ch]                       ; ff 76 e4
+    push strict byte 00001h                   ; 6a 01
+    mov si, word [bp-00ah]                    ; 8b 76 f6
+    xor di, di                                ; 31 ff
+    mov cx, strict word 00009h                ; b9 09 00
+    sal si, 1                                 ; d1 e6
+    rcl di, 1                                 ; d1 d7
+    loop 043d0h                               ; e2 fa
+    push di                                   ; 57
+    push si                                   ; 56
+    push ax                                   ; 50
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-02eh]                         ; 8d 5e d2
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov si, word [bp-01ah]                    ; 8b 76 e6
+    call word [word si+0006ah]                ; ff 94 6a 00
+    mov dx, ax                                ; 89 c2
+    les bx, [bp-00eh]                         ; c4 5e f2
+    db  066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
+    test al, al                               ; 84 c0
+    je near 04213h                            ; 0f 84 13 fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 26 d5
+    movzx ax, dl                              ; 0f b6 c2
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0034ch                               ; 68 4c 03
+    push 0038eh                               ; 68 8e 03
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 51 d5
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 002h                               ; 80 cc 02
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    jmp near 0450bh                           ; e9 d5 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov di, word [es:si+014h]                 ; 26 8b 7c 14
+    mov dx, word [es:si+012h]                 ; 26 8b 54 12
+    dec dx                                    ; 4a
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    dec bx                                    ; 4b
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor al, al                                ; 30 c0
+    mov cx, word [bp+014h]                    ; 8b 4e 14
+    xor ch, ch                                ; 30 ed
+    mov word [bp-01ah], cx                    ; 89 4e e6
+    mov cx, dx                                ; 89 d1
+    xor ch, dh                                ; 30 f5
+    sal cx, 008h                              ; c1 e1 08
+    mov word [bp-018h], cx                    ; 89 4e e8
+    mov cx, word [bp-01ah]                    ; 8b 4e e6
+    or cx, word [bp-018h]                     ; 0b 4e e8
+    mov word [bp+014h], cx                    ; 89 4e 14
+    shr dx, 002h                              ; c1 ea 02
+    xor dh, dh                                ; 30 f6
+    and dl, 0c0h                              ; 80 e2 c0
+    and di, strict byte 0003fh                ; 83 e7 3f
+    or dx, di                                 ; 09 fa
+    xor cl, cl                                ; 30 c9
+    or cx, dx                                 ; 09 d1
+    mov word [bp+014h], cx                    ; 89 4e 14
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    sal bx, 008h                              ; c1 e3 08
+    or dx, bx                                 ; 09 da
+    mov word [bp+012h], dx                    ; 89 56 12
+    xor dl, dl                                ; 30 d2
+    or dl, 002h                               ; 80 ca 02
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov dl, byte [es:si+001h]                 ; 26 8a 54 01
+    mov word [bp+010h], ax                    ; 89 46 10
+    cmp dl, 003h                              ; 80 fa 03
+    je short 044bah                           ; 74 1a
+    cmp dl, 002h                              ; 80 fa 02
+    je short 044b6h                           ; 74 11
+    cmp dl, 001h                              ; 80 fa 01
+    jne short 044beh                          ; 75 14
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor al, al                                ; 30 c0
+    or AL, strict byte 002h                   ; 0c 02
+    mov word [bp+010h], ax                    ; 89 46 10
+    jmp short 044beh                          ; eb 08
+    or AL, strict byte 004h                   ; 0c 04
+    jmp short 044b1h                          ; eb f7
+    or AL, strict byte 005h                   ; 0c 05
+    jmp short 044b1h                          ; eb f3
+    mov es, [bp-008h]                         ; 8e 46 f8
+    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
+    jnc near 04213h                           ; 0f 83 49 fd
+    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    jmp near 04213h                           ; e9 3c fd
+    or bh, 003h                               ; 80 cf 03
+    mov word [bp+016h], bx                    ; 89 5e 16
+    jmp near 04217h                           ; e9 37 fd
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 46 d4
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0034ch                               ; 68 4c 03
+    push 003afh                               ; 68 af 03
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 75 d4
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 42 d1
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 04226h                           ; e9 03 fd
+    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c1h, 04ah, 03dh
+    db  048h, 029h, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 03dh, 048h, 0c1h
+    db  04ah, 0c1h, 04ah, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 053h, 046h, 03dh
+    db  048h, 0c1h, 04ah, 05ch, 046h, 06fh, 046h, 01eh, 046h, 06fh, 046h, 09dh, 047h, 057h, 048h, 06fh
+    db  046h, 07eh, 048h, 07ah, 04ah, 082h, 04ah, 0c1h, 04ah
+_int13_cdrom:                                ; 0xf457c LB 0x562
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00028h                ; 83 ec 28
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 df d0
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 bd d0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    cmp ax, 000e0h                            ; 3d e0 00
+    jc short 045b0h                           ; 72 05
+    cmp ax, 000f0h                            ; 3d f0 00
+    jc short 045ceh                           ; 72 1e
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 003ebh                               ; 68 eb 03
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 aa d3
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 04a9eh                           ; e9 d0 04
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 045f7h                           ; 72 10
+    push ax                                   ; 50
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 00416h                               ; 68 16 04
+    jmp short 045c3h                          ; eb cc
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 00050h                ; 3d 50 00
+    jnbe near 04ac1h                          ; 0f 87 bd 04
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov di, 04523h                            ; bf 23 45
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+04540h]               ; 2e 8b 85 40 45
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    xor bh, bh                                ; 30 ff
+    jmp ax                                    ; ff e0
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    jmp near 04aa6h                           ; e9 7d 04
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 1e d0
+    mov cl, al                                ; 88 c1
+    movzx ax, cl                              ; 0f b6 c1
+    sal ax, 008h                              ; c1 e0 08
+    or bx, ax                                 ; 09 c3
+    mov word [bp+018h], bx                    ; 89 5e 18
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 14 d0
+    test cl, cl                               ; 84 c9
+    je near 04841h                            ; 0f 84 f1 01
+    jmp near 04abah                           ; e9 67 04
+    or bh, 002h                               ; 80 cf 02
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp near 04aa9h                           ; e9 4d 04
+    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
+    or bh, 030h                               ; 80 cf 30
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
+    jmp near 04841h                           ; e9 d2 01
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov [bp-012h], es                         ; 8c 46 ee
+    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
+    or di, ax                                 ; 09 c7
+    je short 046b7h                           ; 74 18
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 00448h                               ; 68 48 04
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 c1 d2
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 04a9eh                           ; e9 e7 03
+    les bx, [bp-014h]                         ; c4 5e ec
+    mov ax, word [es:bx+008h]                 ; 26 8b 47 08
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov di, bx                                ; 89 df
+    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-016h], ax                    ; 89 46 ea
+    cmp ax, strict word 00044h                ; 3d 44 00
+    je near 0483dh                            ; 0f 84 66 01
+    cmp ax, strict word 00047h                ; 3d 47 00
+    je near 0483dh                            ; 0f 84 5f 01
+    mov cx, strict word 0000ch                ; b9 0c 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02ch]                         ; 8d 46 d4
+    call 09e7ah                               ; e8 8f 57
+    mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov dx, di                                ; 89 fa
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov word [bp-028h], dx                    ; 89 56 d8
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    xchg ah, al                               ; 86 c4
+    mov word [bp-025h], ax                    ; 89 46 db
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00800h             ; 26 c7 44 10 00 08
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    add bx, si                                ; 01 f3
+    movzx di, byte [es:bx+022h]               ; 26 0f b6 7f 22
+    add di, di                                ; 01 ff
+    push word [bp-01ch]                       ; ff 76 e4
+    push word [bp-020h]                       ; ff 76 e0
+    push strict byte 00001h                   ; 6a 01
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0000bh                ; b9 0b 00
+    sal ax, 1                                 ; d1 e0
+    rcl bx, 1                                 ; d1 d3
+    loop 04735h                               ; e2 fa
+    push bx                                   ; 53
+    push ax                                   ; 50
+    push strict byte 00000h                   ; 6a 00
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-02ch]                         ; 8d 5e d4
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    mov dx, ax                                ; 89 c2
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov di, word [es:si+01ch]                 ; 26 8b 7c 1c
+    mov cx, strict word 0000bh                ; b9 0b 00
+    shr di, 1                                 ; d1 ef
+    rcr ax, 1                                 ; d1 d8
+    loop 0475fh                               ; e2 fa
+    les bx, [bp-014h]                         ; c4 5e ec
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    test dl, dl                               ; 84 d2
+    je near 0483dh                            ; 0f 84 cb 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 b4 d1
+    movzx ax, dl                              ; 0f b6 c2
+    push ax                                   ; 50
+    push word [bp-016h]                       ; ff 76 ea
+    push 003dfh                               ; 68 df 03
+    push 00471h                               ; 68 71 04
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 e3 d1
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 04aa6h                           ; e9 09 03
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    jnbe near 04a9eh                          ; 0f 87 fa 02
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov al, byte [es:di+025h]                 ; 26 8a 45 25
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    je short 0482eh                           ; 74 73
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    je short 047fbh                           ; 74 3b
+    test bx, bx                               ; 85 db
+    jne near 0483dh                           ; 0f 85 77 00
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 047dch                          ; 75 12
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 0b4h                               ; 80 cc b4
+    mov word [bp+018h], ax                    ; 89 46 18
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    jmp near 04aa6h                           ; e9 ca 02
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, dx                                ; 01 d6
+    mov byte [es:si+025h], al                 ; 26 88 44 25
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov word [bp+018h], ax                    ; 89 46 18
+    jmp near 0483dh                           ; e9 42 00
+    test al, al                               ; 84 c0
+    jne short 0480bh                          ; 75 0c
+    or bh, 0b0h                               ; 80 cf b0
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov byte [bp+018h], al                    ; 88 46 18
+    jmp near 04aa9h                           ; e9 9e 02
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, dx                                ; 01 d6
+    mov byte [es:si+025h], al                 ; 26 88 44 25
+    test al, al                               ; 84 c0
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor al, al                                ; 30 c0
+    or ax, dx                                 ; 09 d0
+    jmp short 047f5h                          ; eb c7
+    test al, al                               ; 84 c0
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    mov dl, al                                ; 88 c2
+    mov word [bp+018h], dx                    ; 89 56 18
+    mov byte [bp+019h], 000h                  ; c6 46 19 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 12 ce
+    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, ax                                ; 01 c6
+    mov al, byte [es:si+025h]                 ; 26 8a 44 25
+    test al, al                               ; 84 c0
+    je short 04871h                           ; 74 06
+    or bh, 0b1h                               ; 80 cf b1
+    jmp near 04656h                           ; e9 e5 fd
+    je short 0483dh                           ; 74 ca
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 0b1h                               ; 80 cc b1
+    jmp near 04aa6h                           ; e9 28 02
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    mov bx, dx                                ; 89 d3
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov es, cx                                ; 8e c1
+    mov di, dx                                ; 89 d7
+    mov ax, word [es:di]                      ; 26 8b 05
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    cmp ax, strict word 0001ah                ; 3d 1a 00
+    jc near 04a9eh                            ; 0f 82 04 02
+    jc short 048ebh                           ; 72 4f
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+028h]                 ; 26 8b 45 28
+    mov es, cx                                ; 8e c1
+    mov di, dx                                ; 89 d7
+    db  066h, 026h, 0c7h, 005h, 01ah, 000h, 074h, 000h
+    ; mov dword [es:di], strict dword 00074001ah ; 66 26 c7 05 1a 00 74 00
+    db  066h, 026h, 0c7h, 045h, 004h, 0ffh, 0ffh, 0ffh, 0ffh
+    ; mov dword [es:di+004h], strict dword 0ffffffffh ; 66 26 c7 45 04 ff ff ff ff
+    db  066h, 026h, 0c7h, 045h, 008h, 0ffh, 0ffh, 0ffh, 0ffh
+    ; mov dword [es:di+008h], strict dword 0ffffffffh ; 66 26 c7 45 08 ff ff ff ff
+    db  066h, 026h, 0c7h, 045h, 00ch, 0ffh, 0ffh, 0ffh, 0ffh
+    ; mov dword [es:di+00ch], strict dword 0ffffffffh ; 66 26 c7 45 0c ff ff ff ff
+    mov word [es:di+018h], ax                 ; 26 89 45 18
+    db  066h, 026h, 0c7h, 045h, 010h, 0ffh, 0ffh, 0ffh, 0ffh
+    ; mov dword [es:di+010h], strict dword 0ffffffffh ; 66 26 c7 45 10 ff ff ff ff
+    db  066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh
+    ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
+    cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
+    jc near 049c2h                            ; 0f 82 cf 00
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
+    mov word [es:bx+01ah], 00356h             ; 26 c7 47 1a 56 03
+    movzx cx, byte [bp-008h]                  ; 0f b6 4e f8
+    mov ax, cx                                ; 89 c8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    movzx di, al                              ; 0f b6 f8
+    imul di, di, strict byte 00006h           ; 6b ff 06
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add di, si                                ; 01 f7
+    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov dx, word [es:di+00208h]               ; 26 8b 95 08 02
+    mov al, byte [es:di+00205h]               ; 26 8a 85 05 02
+    mov byte [bp-006h], al                    ; 88 46 fa
+    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
+    mov di, si                                ; 89 f7
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di+026h]                 ; 26 8a 45 26
+    cmp AL, strict byte 001h                  ; 3c 01
+    db  00fh, 094h, 0c0h
+    ; sete al                                   ; 0f 94 c0
+    xor ah, ah                                ; 30 e4
+    or AL, strict byte 070h                   ; 0c 70
+    mov di, ax                                ; 89 c7
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:si+00234h], ax               ; 26 89 84 34 02
+    mov word [es:si+00236h], dx               ; 26 89 94 36 02
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cwd                                       ; 99
+    mov cx, strict word 00002h                ; b9 02 00
+    idiv cx                                   ; f7 f9
+    or dl, 00eh                               ; 80 ca 0e
+    mov ax, dx                                ; 89 d0
+    sal ax, 004h                              ; c1 e0 04
+    mov byte [es:si+00238h], al               ; 26 88 84 38 02
+    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
+    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
+    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
+    mov word [es:si+0023eh], di               ; 26 89 bc 3e 02
+    mov word [es:si+00240h], strict word 00000h ; 26 c7 84 40 02 00 00
+    mov byte [es:si+00242h], 011h             ; 26 c6 84 42 02 11
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    jmp short 049a5h                          ; eb 05
+    cmp ch, 00fh                              ; 80 fd 0f
+    jnc short 049b8h                          ; 73 13
+    movzx dx, ch                              ; 0f b6 d5
+    add dx, 00356h                            ; 81 c2 56 03
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 01650h                               ; e8 9e cc
+    add cl, al                                ; 00 c1
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    jmp short 049a0h                          ; eb e8
+    neg cl                                    ; f6 d9
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
+    cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
+    jc near 0483dh                            ; 0f 82 73 fe
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add si, ax                                ; 01 c6
+    mov al, byte [es:si+00204h]               ; 26 8a 84 04 02
+    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx], strict word 00042h      ; 26 c7 07 42 00
+    db  066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h
+    ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00
+    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
+    test al, al                               ; 84 c0
+    jne short 04a0bh                          ; 75 09
+    db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
+    ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    db  066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h
+    ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20
+    db  066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h
+    ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
+    test al, al                               ; 84 c0
+    jne short 04a37h                          ; 75 13
+    mov word [es:bx+030h], dx                 ; 26 89 57 30
+    db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00
+    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    and AL, strict byte 001h                  ; 24 01
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:bx+038h], ax                 ; 26 89 47 38
+    db  066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00
+    mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00
+    xor al, al                                ; 30 c0
+    mov AH, strict byte 01eh                  ; b4 1e
+    jmp short 04a5fh                          ; eb 05
+    cmp ah, 040h                              ; 80 fc 40
+    jnc short 04a6eh                          ; 73 0f
+    movzx si, ah                              ; 0f b6 f4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    add si, bx                                ; 01 de
+    add al, byte [es:si]                      ; 26 02 04
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    jmp short 04a5ah                          ; eb ec
+    neg al                                    ; f6 d8
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:bx+041h], al                 ; 26 88 47 41
+    jmp near 0483dh                           ; e9 c3 fd
+    or bh, 006h                               ; 80 cf 06
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp short 04abah                          ; eb 38
+    cmp bx, strict byte 00006h                ; 83 fb 06
+    je near 0483dh                            ; 0f 84 b4 fd
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    jc short 04a9eh                           ; 72 10
+    jbe near 0483dh                           ; 0f 86 ab fd
+    cmp bx, strict byte 00003h                ; 83 fb 03
+    jc short 04a9eh                           ; 72 07
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jbe near 0483dh                           ; 0f 86 9f fd
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+018h], ax                    ; 89 46 18
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 a4 cb
+    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
+    jmp near 04850h                           ; e9 8f fd
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 65 ce
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 003dfh                               ; 68 df 03
+    push 00333h                               ; 68 33 03
+    push strict byte 00004h                   ; 6a 04
+    jmp near 046aeh                           ; e9 d0 fb
+print_boot_device_:                          ; 0xf4ade LB 0x4b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    test al, al                               ; 84 c0
+    je short 04aebh                           ; 74 05
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp short 04b05h                          ; eb 1a
+    test dl, dl                               ; 84 d2
+    je short 04af4h                           ; 74 05
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp short 04b05h                          ; eb 11
+    test bl, 080h                             ; f6 c3 80
+    jne short 04afdh                          ; 75 04
+    xor dh, dh                                ; 30 f6
+    jmp short 04b05h                          ; eb 08
+    test bl, 080h                             ; f6 c3 80
+    je short 04b23h                           ; 74 21
+    mov dx, strict word 00001h                ; ba 01 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 21 ce
+    imul dx, dx, strict byte 0000ah           ; 6b d2 0a
+    add dx, 00dc6h                            ; 81 c2 c6 0d
+    push dx                                   ; 52
+    push 00494h                               ; 68 94 04
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 52 ce
+    add sp, strict byte 00006h                ; 83 c4 06
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+print_boot_failure_:                         ; 0xf4b29 LB 0x93
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    mov dh, cl                                ; 88 ce
+    mov ah, bl                                ; 88 dc
+    and ah, 07fh                              ; 80 e4 7f
+    movzx si, ah                              ; 0f b6 f4
+    test al, al                               ; 84 c0
+    je short 04b56h                           ; 74 1b
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 eb cd
+    push 00ddah                               ; 68 da 0d
+    push 004a8h                               ; 68 a8 04
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 21 ce
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 04b9ah                          ; eb 44
+    test dl, dl                               ; 84 d2
+    je short 04b6ah                           ; 74 10
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 cc cd
+    push 00de4h                               ; 68 e4 0d
+    jmp short 04b49h                          ; eb df
+    test bl, 080h                             ; f6 c3 80
+    je short 04b80h                           ; 74 11
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 b7 cd
+    push si                                   ; 56
+    push 00dd0h                               ; 68 d0 0d
+    jmp short 04b8fh                          ; eb 0f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 a6 cd
+    push si                                   ; 56
+    push 00dc6h                               ; 68 c6 0d
+    push 004bdh                               ; 68 bd 04
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 db cd
+    add sp, strict byte 00008h                ; 83 c4 08
+    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
+    jne short 04bb4h                          ; 75 14
+    test dh, dh                               ; 84 f6
+    jne short 04ba9h                          ; 75 05
+    push 004d5h                               ; 68 d5 04
+    jmp short 04bach                          ; eb 03
+    push 004ffh                               ; 68 ff 04
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 c1 cd
+    add sp, strict byte 00004h                ; 83 c4 04
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+print_cdromboot_failure_:                    ; 0xf4bbc LB 0x27
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 62 cd
+    push dx                                   ; 52
+    push 00534h                               ; 68 34 05
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 9a cd
+    add sp, strict byte 00006h                ; 83 c4 06
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int19_function:                             ; 0xf4be3 LB 0x256
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 78 ca
+    mov bx, ax                                ; 89 c3
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    mov ax, strict word 0003dh                ; b8 3d 00
+    call 016ach                               ; e8 a9 ca
+    movzx si, al                              ; 0f b6 f0
+    mov ax, strict word 00038h                ; b8 38 00
+    call 016ach                               ; e8 a0 ca
+    and AL, strict byte 0f0h                  ; 24 f0
+    xor ah, ah                                ; 30 e4
+    sal ax, 004h                              ; c1 e0 04
+    or si, ax                                 ; 09 c6
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 016ach                               ; e8 91 ca
+    and AL, strict byte 00fh                  ; 24 0f
+    xor ah, ah                                ; 30 e4
+    sal ax, 00ch                              ; c1 e0 0c
+    or si, ax                                 ; 09 c6
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, bx                                ; 89 d8
+    call 01650h                               ; e8 24 ca
+    test al, al                               ; 84 c0
+    je short 04c3bh                           ; 74 0b
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, bx                                ; 89 d8
+    call 01650h                               ; e8 18 ca
+    movzx si, al                              ; 0f b6 f0
+    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
+    jne short 04c51h                          ; 75 10
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 016ach                               ; e8 65 ca
+    and AL, strict byte 0f0h                  ; 24 f0
+    xor ah, ah                                ; 30 e4
+    sar ax, 004h                              ; c1 f8 04
+    call 07c87h                               ; e8 36 30
+    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
+    jne short 04c5ah                          ; 75 03
+    shr si, 004h                              ; c1 ee 04
+    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
+    jne short 04c63h                          ; 75 03
+    shr si, 008h                              ; c1 ee 08
+    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
+    jne short 04c6ch                          ; 75 03
+    shr si, 00ch                              ; c1 ee 0c
+    cmp si, strict byte 00010h                ; 83 fe 10
+    jnc short 04c75h                          ; 73 04
+    mov byte [bp-008h], 001h                  ; c6 46 f8 01
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 a6 cc
+    push si                                   ; 56
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    push ax                                   ; 50
+    push 00554h                               ; 68 54 05
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 d9 cc
+    add sp, strict byte 00008h                ; 83 c4 08
+    and si, strict byte 0000fh                ; 83 e6 0f
+    cmp si, strict byte 00002h                ; 83 fe 02
+    jc short 04cb2h                           ; 72 0e
+    jbe short 04cc1h                          ; 76 1b
+    cmp si, strict byte 00004h                ; 83 fe 04
+    je short 04cdfh                           ; 74 34
+    cmp si, strict byte 00003h                ; 83 fe 03
+    je short 04cd5h                           ; 74 25
+    jmp short 04d0ch                          ; eb 5a
+    cmp si, strict byte 00001h                ; 83 fe 01
+    jne short 04d0ch                          ; 75 55
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    jmp short 04d24h                          ; eb 63
+    mov dx, 0037ch                            ; ba 7c 03
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    call 01650h                               ; e8 86 c9
+    add AL, strict byte 080h                  ; 04 80
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
+    jmp short 04d24h                          ; eb 4f
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
+    jmp short 04ce9h                          ; eb 0a
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 04d24h                           ; 74 3b
+    call 03d32h                               ; e8 46 f0
+    mov bx, ax                                ; 89 c3
+    test AL, strict byte 0ffh                 ; a8 ff
+    je short 04d13h                           ; 74 21
+    call 04bbch                               ; e8 c7 fe
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    mov cx, strict word 00001h                ; b9 01 00
+    call 04b29h                               ; e8 1d fe
+    xor ax, ax                                ; 31 c0
+    xor dx, dx                                ; 31 d2
+    jmp near 04e32h                           ; e9 1f 01
+    mov dx, 00372h                            ; ba 72 03
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    call 0166ch                               ; e8 50 c9
+    mov di, ax                                ; 89 c7
+    shr bx, 008h                              ; c1 eb 08
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
+    jne near 04da0h                           ; 0f 85 74 00
+    xor si, si                                ; 31 f6
+    mov ax, 0e200h                            ; b8 00 e2
+    mov es, ax                                ; 8e c0
+    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
+    jne short 04cf5h                          ; 75 bb
+    mov cx, ax                                ; 89 c1
+    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
+    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
+    jne short 04cf5h                          ; 75 ad
+    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
+    jne short 04cf5h                          ; 75 a6
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov dx, word [es:di]                      ; 26 8b 15
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    cmp ax, 06568h                            ; 3d 68 65
+    jne short 04d7eh                          ; 75 1f
+    cmp dx, 07445h                            ; 81 fa 45 74
+    jne short 04d7eh                          ; 75 19
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    call 04adeh                               ; e8 6a fd
+    mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
+    mov word [bp-010h], cx                    ; 89 4e f0
+    jmp short 04d9ah                          ; eb 1c
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    call 04adeh                               ; e8 51 fd
+    sti                                       ; fb
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    call far [bp-012h]                        ; ff 5e ee
+    jmp near 04cf5h                           ; e9 55 ff
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 04dcch                          ; 75 26
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 04dcch                          ; 75 20
+    mov di, 007c0h                            ; bf c0 07
+    mov es, di                                ; 8e c7
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    mov ax, 00201h                            ; b8 01 02
+    mov DH, strict byte 000h                  ; b6 00
+    mov cx, strict word 00001h                ; b9 01 00
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    int 013h                                  ; cd 13
+    mov ax, strict word 00000h                ; b8 00 00
+    sbb ax, strict byte 00000h                ; 83 d8 00
+    test ax, ax                               ; 85 c0
+    jne near 04cf5h                           ; 0f 85 29 ff
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    db  00fh, 094h, 0c1h
+    ; sete cl                                   ; 0f 94 c1
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 04ddbh                           ; 74 02
+    mov CL, strict byte 001h                  ; b1 01
+    xor dx, dx                                ; 31 d2
+    mov ax, di                                ; 89 f8
+    call 0166ch                               ; e8 8a c8
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00002h                ; ba 02 00
+    mov ax, di                                ; 89 f8
+    call 0166ch                               ; e8 80 c8
+    cmp bx, ax                                ; 39 c3
+    je short 04e01h                           ; 74 11
+    test cl, cl                               ; 84 c9
+    jne short 04e17h                          ; 75 23
+    mov dx, 001feh                            ; ba fe 01
+    mov ax, di                                ; 89 f8
+    call 0166ch                               ; e8 70 c8
+    cmp ax, 0aa55h                            ; 3d 55 aa
+    je short 04e17h                           ; 74 16
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    xor cx, cx                                ; 31 c9
+    jmp near 04d09h                           ; e9 f2 fe
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    call 04adeh                               ; e8 b8 fc
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    xor dx, dx                                ; 31 d2
+    xor ax, ax                                ; 31 c0
+    add ax, di                                ; 01 f8
+    adc dx, bx                                ; 11 da
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+keyboard_panic_:                             ; 0xf4e39 LB 0x13
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push ax                                   ; 50
+    push 00574h                               ; 68 74 05
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 2d cb
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_keyboard_init:                              ; 0xf4e4c LB 0x26a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04e6fh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04e6fh                          ; 76 08
+    xor al, al                                ; 30 c0
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04e58h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04e78h                          ; 75 05
+    xor ax, ax                                ; 31 c0
+    call 04e39h                               ; e8 c1 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04e92h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04e92h                          ; 76 08
+    mov AL, strict byte 001h                  ; b0 01
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04e7bh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04e9ch                          ; 75 06
+    mov ax, strict word 00001h                ; b8 01 00
+    call 04e39h                               ; e8 9d ff
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, strict word 00055h                ; 3d 55 00
+    je short 04eadh                           ; 74 06
+    mov ax, 003dfh                            ; b8 df 03
+    call 04e39h                               ; e8 8c ff
+    mov AL, strict byte 0abh                  ; b0 ab
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04ecdh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04ecdh                          ; 76 08
+    mov AL, strict byte 010h                  ; b0 10
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04eb6h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04ed7h                          ; 75 06
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 04e39h                               ; e8 62 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04ef1h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04ef1h                          ; 76 08
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04edah                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04efbh                          ; 75 06
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 04e39h                               ; e8 3e ff
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test ax, ax                               ; 85 c0
+    je short 04f0bh                           ; 74 06
+    mov ax, 003e0h                            ; b8 e0 03
+    call 04e39h                               ; e8 2e ff
+    mov AL, strict byte 0ffh                  ; b0 ff
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04f2bh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04f2bh                          ; 76 08
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f14h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04f35h                          ; 75 06
+    mov ax, strict word 00014h                ; b8 14 00
+    call 04e39h                               ; e8 04 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04f4fh                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04f4fh                          ; 76 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f38h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04f59h                          ; 75 06
+    mov ax, strict word 00015h                ; b8 15 00
+    call 04e39h                               ; e8 e0 fe
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 04f6ah                           ; 74 06
+    mov ax, 003e1h                            ; b8 e1 03
+    call 04e39h                               ; e8 cf fe
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04f7ch                          ; 75 08
+    mov AL, strict byte 031h                  ; b0 31
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f6ah                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000aah                            ; 3d aa 00
+    je short 04f95h                           ; 74 0e
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000aah                            ; 3d aa 00
+    je short 04f95h                           ; 74 06
+    mov ax, 003e2h                            ; b8 e2 03
+    call 04e39h                               ; e8 a4 fe
+    mov AL, strict byte 0f5h                  ; b0 f5
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 04fb5h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04fb5h                          ; 76 08
+    mov AL, strict byte 040h                  ; b0 40
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04f9eh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04fbfh                          ; 75 06
+    mov ax, strict word 00028h                ; b8 28 00
+    call 04e39h                               ; e8 7a fe
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 04fd9h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 04fd9h                          ; 76 08
+    mov AL, strict byte 041h                  ; b0 41
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04fc2h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 04fe3h                          ; 75 06
+    mov ax, strict word 00029h                ; b8 29 00
+    call 04e39h                               ; e8 56 fe
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 04ff4h                           ; 74 06
+    mov ax, 003e3h                            ; b8 e3 03
+    call 04e39h                               ; e8 45 fe
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 05014h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05014h                          ; 76 08
+    mov AL, strict byte 050h                  ; b0 50
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04ffdh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 0501eh                          ; 75 06
+    mov ax, strict word 00032h                ; b8 32 00
+    call 04e39h                               ; e8 1b fe
+    mov AL, strict byte 065h                  ; b0 65
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 0503eh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0503eh                          ; 76 08
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05027h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05048h                          ; 75 06
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 04e39h                               ; e8 f1 fd
+    mov AL, strict byte 0f4h                  ; b0 f4
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 05068h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05068h                          ; 76 08
+    mov AL, strict byte 070h                  ; b0 70
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05051h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05072h                          ; 75 06
+    mov ax, strict word 00046h                ; b8 46 00
+    call 04e39h                               ; e8 c7 fd
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0508ch                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0508ch                          ; 76 08
+    mov AL, strict byte 071h                  ; b0 71
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05075h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05096h                          ; 75 06
+    mov ax, strict word 00046h                ; b8 46 00
+    call 04e39h                               ; e8 a3 fd
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 050a7h                           ; 74 06
+    mov ax, 003e4h                            ; b8 e4 03
+    call 04e39h                               ; e8 92 fd
+    mov AL, strict byte 0a8h                  ; b0 a8
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    call 064b6h                               ; e8 04 14
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+enqueue_key_:                                ; 0xf50b6 LB 0x99
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov bl, dl                                ; 88 d3
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 a0 c5
+    mov di, ax                                ; 89 c7
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 95 c5
+    mov si, ax                                ; 89 c6
+    lea cx, [si+002h]                         ; 8d 4c 02
+    cmp cx, strict byte 0003eh                ; 83 f9 3e
+    jc short 050e4h                           ; 72 03
+    mov cx, strict word 0001eh                ; b9 1e 00
+    cmp cx, di                                ; 39 f9
+    jne short 050ech                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 05111h                          ; eb 25
+    xor bh, bh                                ; 30 ff
+    mov dx, si                                ; 89 f2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 68 c5
+    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
+    lea dx, [si+001h]                         ; 8d 54 01
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 5b c5
+    mov bx, cx                                ; 89 cb
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 6c c5
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    aam 0c6h                                  ; d4 c6
+    lds di, [bp+si-04948h]                    ; c5 ba b8 b6
+    stosb                                     ; aa
+    popfw                                     ; 9d
+    push sp                                   ; 54
+    push bx                                   ; 53
+    inc si                                    ; 46
+    inc bp                                    ; 45
+    cmp bh, byte [bx+si]                      ; 3a 38
+    sub bl, byte [ss:di]                      ; 36 2a 1d
+    jnbe short 05181h                         ; 77 54
+    inc ax                                    ; 40
+    push dx                                   ; 52
+    call 03983h                               ; e8 51 e8
+    push cx                                   ; 51
+    leave                                     ; c9
+    push dx                                   ; 52
+    mov si, 04751h                            ; be 51 47
+    push bx                                   ; 53
+    mov CH, strict byte 053h                  ; b5 53
+    pop bp                                    ; 5d
+    push sp                                   ; 54
+    cmp word [si-07ch], dx                    ; 39 54 84
+    push dx                                   ; 52
+    call 03995h                               ; e8 51 e8
+    push cx                                   ; 51
+    or byte [bp+di-026h], dl                  ; 08 53 da
+    push cx                                   ; 51
+    xchg si, ax                               ; 96
+    push bx                                   ; 53
+    sbb dl, byte [si+056h]                    ; 1a 54 56
+    push sp                                   ; 54
+_int09_function:                             ; 0xf514f LB 0x474
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov al, byte [bp+014h]                    ; 8a 46 14
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    test al, al                               ; 84 c0
+    jne short 05179h                          ; 75 19
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 c6 c7
+    push 00587h                               ; 68 87 05
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 ff c7
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 0523ah                           ; e9 c1 00
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 ce c4
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 bf c4
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 b0 c4
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00012h                ; b9 12 00
+    mov di, 0511ah                            ; bf 1a 51
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+0512bh]               ; 2e 8b 85 2b 51
+    jmp ax                                    ; ff e0
+    xor byte [bp-008h], 040h                  ; 80 76 f8 40
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 8f c4
+    or byte [bp-00ah], 040h                   ; 80 4e f6 40
+    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
+    jmp near 0544ah                           ; e9 70 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0bfh                  ; 24 bf
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    jmp near 0544ah                           ; e9 62 02
+    test byte [bp-004h], 002h                 ; f6 46 fc 02
+    jne near 0521ch                           ; 0f 85 2c 00
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    and AL, strict byte 07fh                  ; 24 7f
+    cmp AL, strict byte 02ah                  ; 3c 2a
+    db  00fh, 094h, 0c0h
+    ; sete al                                   ; 0f 94 c0
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov dl, al                                ; 88 c2
+    test byte [bp-00ch], 080h                 ; f6 46 f4 80
+    je short 0520ch                           ; 74 07
+    not al                                    ; f6 d0
+    and byte [bp-008h], al                    ; 20 46 f8
+    jmp short 0520fh                          ; eb 03
+    or byte [bp-008h], al                     ; 08 46 f8
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 42 c4
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    and AL, strict byte 07fh                  ; 24 7f
+    cmp AL, strict byte 01dh                  ; 3c 1d
+    je short 05229h                           ; 74 04
+    and byte [bp-004h], 0feh                  ; 80 66 fc fe
+    and byte [bp-004h], 0fdh                  ; 80 66 fc fd
+    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 24 c4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    test byte [bp-00eh], 001h                 ; f6 46 f2 01
+    jne short 0521ch                          ; 75 d6
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-008h], al                    ; 88 46 f8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 04 c4
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test AL, strict byte 002h                 ; a8 02
+    je short 0526eh                           ; 74 0d
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-004h], al                    ; 88 46 fc
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 0527ch                          ; eb 0e
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 001h                   ; 0c 01
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 dc c3
+    jmp short 0521ch                          ; eb 98
+    test byte [bp-00eh], 001h                 ; f6 46 f2 01
+    jne short 0521ch                          ; 75 92
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0fbh                  ; 24 fb
+    mov byte [bp-008h], al                    ; 88 46 f8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c0 c3
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test AL, strict byte 002h                 ; a8 02
+    je short 052b2h                           ; 74 0d
+    and AL, strict byte 0fbh                  ; 24 fb
+    mov byte [bp-004h], al                    ; 88 46 fc
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 052c0h                          ; eb 0e
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0feh                  ; 24 fe
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 98 c3
+    jmp near 0521ch                           ; e9 53 ff
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-008h], al                    ; 88 46 f8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 81 c3
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test AL, strict byte 002h                 ; a8 02
+    je short 052f1h                           ; 74 0d
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-004h], al                    ; 88 46 fc
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 052ffh                          ; eb 0e
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 002h                   ; 0c 02
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 59 c3
+    jmp near 0521ch                           ; e9 14 ff
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 0f7h                  ; 24 f7
+    mov byte [bp-008h], al                    ; 88 46 f8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 42 c3
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test AL, strict byte 002h                 ; a8 02
+    je short 05330h                           ; 74 0d
+    and AL, strict byte 0f7h                  ; 24 f7
+    mov byte [bp-004h], al                    ; 88 46 fc
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 0533eh                          ; eb 0e
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0fdh                  ; 24 fd
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 1a c3
+    jmp near 0521ch                           ; e9 d5 fe
+    test byte [bp-00eh], 003h                 ; f6 46 f2 03
+    jne short 05369h                          ; 75 1c
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 020h                   ; 0c 20
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 fd c2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor AL, strict byte 020h                  ; 34 20
+    jmp near 05408h                           ; e9 9f 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 e1 c2
+    mov AL, strict byte 0aeh                  ; b0 ae
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    call 0e034h                               ; e8 ae 8c
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 c1 c2
+    test AL, strict byte 008h                 ; a8 08
+    jne short 05386h                          ; 75 f3
+    jmp near 0521ch                           ; e9 86 fe
+    test byte [bp-00eh], 003h                 ; f6 46 f2 03
+    jne near 0521ch                           ; 0f 85 7e fe
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0dfh                  ; 24 df
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 ac c2
+    jmp near 0521ch                           ; e9 67 fe
+    test byte [bp-00eh], 002h                 ; f6 46 f2 02
+    je short 053efh                           ; 74 34
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 a8 c2
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 ab c2
+    mov bx, 00080h                            ; bb 80 00
+    mov dx, strict word 00071h                ; ba 71 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 83 c2
+    mov AL, strict byte 0aeh                  ; b0 ae
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    push bp                                   ; 55
+    int 01bh                                  ; cd 1b
+    pop bp                                    ; 5d
+    xor dx, dx                                ; 31 d2
+    xor ax, ax                                ; 31 c0
+    call 050b6h                               ; e8 ca fc
+    jmp near 0521ch                           ; e9 2d fe
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 010h                   ; 0c 10
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 5b c2
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor AL, strict byte 010h                  ; 34 10
+    mov byte [bp-008h], al                    ; 88 46 f8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 47 c2
+    jmp near 0521ch                           ; e9 02 fe
+    test byte [bp-00eh], 002h                 ; f6 46 f2 02
+    jne near 0521ch                           ; 0f 85 fa fd
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0efh                  ; 24 ef
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 28 c2
+    jmp near 0521ch                           ; e9 e3 fd
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    test AL, strict byte 004h                 ; a8 04
+    jne near 0521ch                           ; 0f 85 da fd
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 0b c2
+    jmp near 0521ch                           ; e9 c6 fd
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0fbh                  ; 24 fb
+    jmp short 05444h                          ; eb e7
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 00ch                  ; 24 0c
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jne short 05477h                          ; 75 11
+    mov bx, 01234h                            ; bb 34 12
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 08 c2
+    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
+    test byte [bp-00ah], 008h                 ; f6 46 f6 08
+    je short 0548bh                           ; 74 0e
+    and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
+    movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
+    mov dx, strict word 00018h                ; ba 18 00
+    jmp near 05234h                           ; e9 a9 fd
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    test AL, strict byte 080h                 ; a8 80
+    je short 054c9h                           ; 74 37
+    cmp AL, strict byte 0fah                  ; 3c fa
+    jne short 054a6h                          ; 75 10
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 b1 c1
+    mov dl, al                                ; 88 c2
+    or dl, 010h                               ; 80 ca 10
+    jmp short 054bah                          ; eb 14
+    cmp AL, strict byte 0feh                  ; 3c fe
+    jne near 0521ch                           ; 0f 85 70 fd
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 9b c1
+    mov dl, al                                ; 88 c2
+    or dl, 020h                               ; 80 ca 20
+    movzx bx, dl                              ; 0f b6 da
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 98 c1
+    jmp near 0521ch                           ; e9 53 fd
+    cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
+    jbe short 054edh                          ; 76 1e
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 57 c4
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    push 005a1h                               ; 68 a1 05
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 8b c4
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 0523ah                           ; e9 4d fd
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    test AL, strict byte 008h                 ; a8 08
+    je short 05506h                           ; 74 12
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    imul bx, bx, strict byte 0000ah           ; 6b db 0a
+    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
+    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
+    jmp near 05594h                           ; e9 8e 00
+    test AL, strict byte 004h                 ; a8 04
+    je short 0551ch                           ; 74 12
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    imul bx, bx, strict byte 0000ah           ; 6b db 0a
+    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
+    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
+    jmp near 05594h                           ; e9 78 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 002h                  ; 24 02
+    test al, al                               ; 84 c0
+    jbe short 0553ah                          ; 76 15
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    cmp AL, strict byte 047h                  ; 3c 47
+    jc short 0553ah                           ; 72 0e
+    cmp AL, strict byte 053h                  ; 3c 53
+    jnbe short 0553ah                         ; 77 0a
+    mov DL, strict byte 0e0h                  ; b2 e0
+    movzx bx, al                              ; 0f b6 d8
+    imul bx, bx, strict byte 0000ah           ; 6b db 0a
+    jmp short 05590h                          ; eb 56
+    test byte [bp-008h], 003h                 ; f6 46 f8 03
+    je short 0556eh                           ; 74 2e
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    imul bx, bx, strict byte 0000ah           ; 6b db 0a
+    movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    test dx, ax                               ; 85 c2
+    je short 0555eh                           ; 74 0a
+    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
+    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    jmp short 05566h                          ; eb 08
+    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
+    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    jmp short 0559ah                          ; eb 2c
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    imul bx, bx, strict byte 0000ah           ; 6b db 0a
+    movzx ax, byte [bx+00df6h]                ; 0f b6 87 f6 0d
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    test dx, ax                               ; 85 c2
+    je short 0558ch                           ; 74 0a
+    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
+    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    jmp short 05594h                          ; eb 08
+    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
+    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 055bah                          ; 75 1a
+    test dl, dl                               ; 84 d2
+    jne short 055bah                          ; 75 16
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 82 c3
+    push 005d8h                               ; 68 d8 05
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 bb c3
+    add sp, strict byte 00004h                ; 83 c4 04
+    xor dh, dh                                ; 30 f6
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    jmp near 053e9h                           ; e9 26 fe
+dequeue_key_:                                ; 0xf55c3 LB 0x94
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov di, ax                                ; 89 c7
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov si, bx                                ; 89 de
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 8f c0
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 84 c0
+    cmp bx, ax                                ; 39 c3
+    je short 05629h                           ; 74 3d
+    mov dx, bx                                ; 89 da
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 5c c0
+    mov cl, al                                ; 88 c1
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 51 c0
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov byte [es:si], cl                      ; 26 88 0c
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov byte [es:di], al                      ; 26 88 05
+    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
+    je short 05624h                           ; 74 13
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    cmp bx, strict byte 0003eh                ; 83 fb 3e
+    jc short 0561bh                           ; 72 03
+    mov bx, strict word 0001eh                ; bb 1e 00
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 56 c0
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0562bh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+    mov byte [01292h], AL                     ; a2 92 12
+    adc word [bx+si], dx                      ; 11 10
+    or cl, byte [bx+di]                       ; 0a 09
+    add ax, 00102h                            ; 05 02 01
+    add ch, dh                                ; 00 f5
+    pop ax                                    ; 58
+    or dx, word [bx+052h]                     ; 0b 57 52
+    push di                                   ; 57
+    sahf                                      ; 9e
+    push di                                   ; 57
+    scasb                                     ; ae
+    push di                                   ; 57
+    fcom dword [bx-01fh]                      ; d8 57 e1
+    push di                                   ; 57
+    push dx                                   ; 52
+    pop ax                                    ; 58
+    sbb word [bx+si-050h], strict byte 00058h ; 83 58 b0 58
+    db  0eah
+    pop ax                                    ; 58
+    db  038h
+    pop cx                                    ; 59
+_int16_function:                             ; 0xf5657 LB 0x2e7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 e9 bf
+    mov cl, al                                ; 88 c1
+    mov bh, al                                ; 88 c7
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 dc bf
+    mov bl, al                                ; 88 c3
+    movzx dx, cl                              ; 0f b6 d1
+    sar dx, 004h                              ; c1 fa 04
+    and dl, 007h                              ; 80 e2 07
+    and AL, strict byte 007h                  ; 24 07
+    xor ah, ah                                ; 30 e4
+    xor al, dl                                ; 30 d0
+    test ax, ax                               ; 85 c0
+    je short 056e9h                           ; 74 60
+    cli                                       ; fa
+    mov AL, strict byte 0edh                  ; b0 ed
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 056a2h                          ; 75 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05690h                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    jne short 056e8h                          ; 75 3b
+    and bl, 0c8h                              ; 80 e3 c8
+    movzx ax, bh                              ; 0f b6 c7
+    sar ax, 004h                              ; c1 f8 04
+    and ax, strict word 00007h                ; 25 07 00
+    movzx cx, bl                              ; 0f b6 cb
+    or cx, ax                                 ; 09 c1
+    mov bl, cl                                ; 88 cb
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 007h                  ; 24 07
+    out DX, AL                                ; ee
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 056d7h                          ; 75 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 056c5h                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor bh, bh                                ; 30 ff
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 76 bf
+    sti                                       ; fb
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, 000a2h                            ; 3d a2 00
+    jnbe near 058f5h                          ; 0f 87 ff 01
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0000ch                ; b9 0c 00
+    mov di, 05634h                            ; bf 34 56
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+0563fh]               ; 2e 8b 85 3f 56
+    jmp ax                                    ; ff e0
+    push strict byte 00001h                   ; 6a 01
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 055c3h                               ; e8 a9 fe
+    test ax, ax                               ; 85 c0
+    jne short 05729h                          ; 75 0b
+    push 0060fh                               ; 68 0f 06
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 4c c2
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 05735h                           ; 74 06
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    je short 0573bh                           ; 74 06
+    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
+    jne short 0573fh                          ; 75 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp near 05938h                           ; e9 e6 01
+    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
+    push strict byte 00000h                   ; 6a 00
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 055c3h                               ; e8 5d fe
+    test ax, ax                               ; 85 c0
+    jne short 05771h                          ; 75 07
+    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
+    jmp near 05938h                           ; e9 c7 01
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 0577dh                           ; 74 06
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    je short 05783h                           ; 74 06
+    cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
+    jne short 05787h                          ; 75 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
+    jmp near 05938h                           ; e9 9a 01
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 a9 be
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    jmp short 0574ch                          ; eb 9e
+    mov al, byte [bp+010h]                    ; 8a 46 10
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, 008h                              ; c1 e8 08
+    xor ah, ah                                ; 30 e4
+    call 050b6h                               ; e8 f7 f8
+    test ax, ax                               ; 85 c0
+    jne short 057d0h                          ; 75 0d
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 05938h                           ; e9 68 01
+    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
+    jmp near 05938h                           ; e9 60 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 030h                   ; 0c 30
+    jmp short 057cah                          ; eb e9
+    mov byte [bp-004h], 002h                  ; c6 46 fc 02
+    xor cx, cx                                ; 31 c9
+    cli                                       ; fa
+    mov AL, strict byte 0f2h                  ; b0 f2
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05808h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05808h                          ; 76 08
+    mov dx, 00080h                            ; ba 80 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 057f1h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jbe short 0584ch                          ; 76 40
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    jne short 0584ch                          ; 75 35
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05831h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05831h                          ; 76 08
+    mov dx, 00080h                            ; ba 80 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 0581ah                          ; eb e9
+    test bx, bx                               ; 85 db
+    jbe short 05843h                          ; 76 0e
+    shr cx, 008h                              ; c1 e9 08
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    sal ax, 008h                              ; c1 e0 08
+    or cx, ax                                 ; 09 c1
+    dec byte [bp-004h]                        ; fe 4e fc
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jnbe short 05817h                         ; 77 cb
+    mov word [bp+00ch], cx                    ; 89 4e 0c
+    jmp near 05938h                           ; e9 e6 00
+    push strict byte 00001h                   ; 6a 01
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 055c3h                               ; e8 62 fd
+    test ax, ax                               ; 85 c0
+    jne short 05870h                          ; 75 0b
+    push 0060fh                               ; 68 0f 06
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 05 c1
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je near 0573fh                            ; 0f 84 c7 fe
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    je near 0573bh                            ; 0f 84 bb fe
+    jmp near 0573fh                           ; e9 bc fe
+    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
+    push strict byte 00000h                   ; 6a 00
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-008h]                         ; 8d 5e f8
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 055c3h                               ; e8 2c fd
+    test ax, ax                               ; 85 c0
+    je near 0576ah                            ; 0f 84 cd fe
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je near 05787h                            ; 0f 84 e2 fe
+    cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
+    je near 05783h                            ; 0f 84 d6 fe
+    jmp near 05787h                           ; e9 d7 fe
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 97 bd
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 86 bd
+    mov bh, al                                ; 88 c7
+    and bh, 073h                              ; 80 e7 73
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 78 bd
+    and AL, strict byte 00ch                  ; 24 0c
+    or bh, al                                 ; 08 c7
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    movzx ax, bh                              ; 0f b6 c7
+    sal ax, 008h                              ; c1 e0 08
+    jmp near 0574ah                           ; e9 60 fe
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    jmp near 057cah                           ; e9 d5 fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 31 c0
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 00633h                               ; 68 33 06
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 63 c0
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 14 c0
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    push ax                                   ; 50
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    push ax                                   ; 50
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    push ax                                   ; 50
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    push ax                                   ; 50
+    push 0065bh                               ; 68 5b 06
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 3d c0
+    add sp, strict byte 0000ch                ; 83 c4 0c
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_geom_lba_:                               ; 0xf593e LB 0xe5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    enter 00008h, 000h                        ; c8 08 00 00
+    mov di, ax                                ; 89 c7
+    mov es, dx                                ; 8e c2
+    mov dword [bp-008h], strict dword 0007e0000h ; 66 c7 46 f8 00 00 7e 00
+    mov word [bp-002h], 000ffh                ; c7 46 fe ff 00
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov cx, word [bp+00eh]                    ; 8b 4e 0e
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov si, strict word 00020h                ; be 20 00
+    call 09e6ah                               ; e8 01 45
+    test ax, ax                               ; 85 c0
+    jne short 05979h                          ; 75 0c
+    test bx, bx                               ; 85 db
+    jne short 05979h                          ; 75 08
+    test cx, cx                               ; 85 c9
+    jne short 05979h                          ; 75 04
+    test dx, dx                               ; 85 d2
+    je short 05980h                           ; 74 07
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov si, bx                                ; 89 de
+    jmp short 05986h                          ; eb 06
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov si, word [bp+00eh]                    ; 8b 76 0e
+    mov word [bp-004h], bx                    ; 89 5e fc
+    xor bx, bx                                ; 31 db
+    jmp short 05992h                          ; eb 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jnl short 059b5h                          ; 7d 23
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    cmp si, ax                                ; 39 c6
+    jc short 059a3h                           ; 72 0a
+    jne short 059ach                          ; 75 11
+    mov ax, word [bp-004h]                    ; 8b 46 fc
+    cmp ax, word [bp-008h]                    ; 3b 46 f8
+    jnbe short 059ach                         ; 77 09
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    inc ax                                    ; 40
+    shr ax, 1                                 ; d1 e8
+    mov word [bp-002h], ax                    ; 89 46 fe
+    shr word [bp-006h], 1                     ; d1 6e fa
+    rcr word [bp-008h], 1                     ; d1 5e f8
+    inc bx                                    ; 43
+    jmp short 0598dh                          ; eb d8
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    xor dx, dx                                ; 31 d2
+    mov bx, strict word 0003fh                ; bb 3f 00
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 67 44
+    mov bx, ax                                ; 89 c3
+    mov cx, dx                                ; 89 d1
+    mov ax, word [bp-004h]                    ; 8b 46 fc
+    mov dx, si                                ; 89 f2
+    call 09df0h                               ; e8 22 44
+    mov word [es:di+002h], ax                 ; 26 89 45 02
+    cmp ax, 00400h                            ; 3d 00 04
+    jbe short 059ddh                          ; 76 06
+    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    mov word [es:di], ax                      ; 26 89 05
+    mov word [es:di+004h], strict word 0003fh ; 26 c7 45 04 3f 00
+    leave                                     ; c9
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn 00008h                               ; c2 08 00
+    lodsw                                     ; ad
+    pop dx                                    ; 5a
+    rcr word [byte bp+si+000h], CL            ; d3 5a 00
+    pop bx                                    ; 5b
+    add byte [byte bp+di+000h], bl            ; 00 5b 00
+    pop bx                                    ; 5b
+    loope 05a59h                              ; e1 5c
+    divps xmm1, oword [bx]                    ; 0f 5e 0f
+    pop si                                    ; 5e
+    cli                                       ; fa
+    pop sp                                    ; 5c
+    in AL, DX                                 ; ec
+    pop bp                                    ; 5d
+    divps xmm1, oword [bx]                    ; 0f 5e 0f
+    pop si                                    ; 5e
+    in AL, DX                                 ; ec
+    pop bp                                    ; 5d
+    in AL, DX                                 ; ec
+    pop bp                                    ; 5d
+    divps xmm1, oword [bx]                    ; 0f 5e 0f
+    pop si                                    ; 5e
+    jo short 05a70h                           ; 70 5d
+    in AL, DX                                 ; ec
+    pop bp                                    ; 5d
+    divps xmm1, oword [bx]                    ; 0f 5e 0f
+    pop si                                    ; 5e
+    in AL, DX                                 ; ec
+    pop bp                                    ; 5d
+    mov AL, byte [00f5dh]                     ; a0 5d 0f
+    pop si                                    ; 5e
+    divps xmm1, oword [bx]                    ; 0f 5e 0f
+    pop si                                    ; 5e
+_int13_harddisk:                             ; 0xf5a23 LB 0x44a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00010h                ; 83 ec 10
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 3a bc
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-004h], ax                    ; 89 46 fc
+    xor bx, bx                                ; 31 db
+    mov dx, 0008eh                            ; ba 8e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 1b bc
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    cmp ax, 00080h                            ; 3d 80 00
+    jc short 05a52h                           ; 72 05
+    cmp ax, 00090h                            ; 3d 90 00
+    jc short 05a70h                           ; 72 1e
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 0068dh                               ; 68 8d 06
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 08 bf
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 05e2ah                           ; e9 ba 03
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
+    mov byte [bp-002h], dl                    ; 88 56 fe
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 05a99h                           ; 72 10
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 006b8h                               ; 68 b8 06
+    jmp short 05a65h                          ; eb cc
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jnbe near 05e0fh                          ; 0f 87 69 03
+    add bx, bx                                ; 01 db
+    jmp word [cs:bx+059f1h]                   ; 2e ff a7 f1 59
+    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
+    jnc near 05abch                           ; 0f 83 07 00
+    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
+    call 01d7ch                               ; e8 c0 c2
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 93 bb
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 74 bb
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    xor dh, dh                                ; 30 f6
+    movzx ax, cl                              ; 0f b6 c1
+    sal ax, 008h                              ; c1 e0 08
+    or dx, ax                                 ; 09 c2
+    mov word [bp+016h], dx                    ; 89 56 16
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 65 bb
+    test cl, cl                               ; 84 c9
+    je short 05ac0h                           ; 74 c3
+    jmp near 05e46h                           ; e9 46 03
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov di, word [bp+014h]                    ; 8b 7e 14
+    shr di, 008h                              ; c1 ef 08
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor ah, ah                                ; 30 e4
+    sal ax, 002h                              ; c1 e0 02
+    xor al, al                                ; 30 c0
+    and ah, 003h                              ; 80 e4 03
+    or di, ax                                 ; 09 c7
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    and ax, strict word 0003fh                ; 25 3f 00
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    cmp ax, 00080h                            ; 3d 80 00
+    jnbe short 05b3bh                         ; 77 04
+    test ax, ax                               ; 85 c0
+    jne short 05b5eh                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 eb bd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 006eah                               ; 68 ea 06
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 1a be
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 05e2ah                           ; e9 cc 02
+    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+02ch]                 ; 26 8b 47 2c
+    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
+    mov dx, word [es:bx+02eh]                 ; 26 8b 57 2e
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    cmp di, ax                                ; 39 c7
+    jnc short 05b8bh                          ; 73 0c
+    cmp cx, word [bp-008h]                    ; 3b 4e f8
+    jbe short 05b8bh                          ; 76 07
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    cmp ax, dx                                ; 39 d0
+    jbe short 05bb9h                          ; 76 2e
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 9b bd
+    push dword [bp-008h]                      ; 66 ff 76 f8
+    push di                                   ; 57
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 00712h                               ; 68 12 07
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 bf bd
+    add sp, strict byte 00010h                ; 83 c4 10
+    jmp near 05e2ah                           ; e9 71 02
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, strict word 00004h                ; 3d 04 00
+    jne short 05bc7h                          ; 75 03
+    jmp near 05abch                           ; e9 f5 fe
+    movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add bx, si                                ; 01 f3
+    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
+    jne short 05be8h                          ; 75 0f
+    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
+    cmp ax, word [bp-00ah]                    ; 3b 46 f6
+    jne short 05be8h                          ; 75 06
+    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
+    jc short 05c18h                           ; 72 30
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    mov bx, cx                                ; 89 cb
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 36 42
+    xor bx, bx                                ; 31 db
+    add ax, word [bp-008h]                    ; 03 46 f8
+    adc dx, bx                                ; 11 da
+    mov bx, word [bp-00ah]                    ; 8b 5e f6
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 27 42
+    xor bx, bx                                ; 31 db
+    add ax, word [bp-006h]                    ; 03 46 fa
+    adc dx, bx                                ; 11 da
+    add ax, strict word 0ffffh                ; 05 ff ff
+    mov word [bp-010h], ax                    ; 89 46 f0
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov es, [bp-004h]                         ; 8e 46 fc
+    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
+    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
+    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov word [es:si], ax                      ; 26 89 04
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
+    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
+    mov word [es:si+012h], di                 ; 26 89 7c 12
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov word [es:si+014h], ax                 ; 26 89 44 14
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    mov word [es:si+016h], ax                 ; 26 89 44 16
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov byte [es:si+00ch], al                 ; 26 88 44 0c
+    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    movzx ax, byte [es:bx+022h]               ; 26 0f b6 47 22
+    mov bx, ax                                ; 89 c3
+    sal bx, 002h                              ; c1 e3 02
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    add ax, ax                                ; 01 c0
+    add bx, ax                                ; 01 c3
+    push ES                                   ; 06
+    push si                                   ; 56
+    call word [word bx+0007eh]                ; ff 97 7e 00
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor al, al                                ; 30 c0
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, word [es:si+018h]                 ; 26 8b 5c 18
+    or bx, ax                                 ; 09 c3
+    mov word [bp+016h], bx                    ; 89 5e 16
+    test dl, dl                               ; 84 d2
+    je near 05abch                            ; 0f 84 0a fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 74 bc
+    movzx ax, dl                              ; 0f b6 c2
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 00759h                               ; 68 59 07
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 9f bc
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 05e32h                           ; e9 51 01
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 45 bc
+    push 0077ah                               ; 68 7a 07
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 7e bc
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 05abch                           ; e9 c2 fd
+    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov di, word [es:bx+02ch]                 ; 26 8b 7f 2c
+    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
+    mov ax, word [es:bx+02eh]                 ; 26 8b 47 2e
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    movzx ax, byte [es:si+001e2h]             ; 26 0f b6 84 e2 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    xor dh, dh                                ; 30 f6
+    dec di                                    ; 4f
+    mov ax, di                                ; 89 f8
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    or dx, ax                                 ; 09 c2
+    mov word [bp+014h], dx                    ; 89 56 14
+    shr di, 002h                              ; c1 ef 02
+    and di, 000c0h                            ; 81 e7 c0 00
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 03fh                  ; 24 3f
+    or di, ax                                 ; 09 c7
+    mov ax, dx                                ; 89 d0
+    xor al, dl                                ; 30 d0
+    or ax, di                                 ; 09 f8
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    mov ax, cx                                ; 89 c8
+    sal ax, 008h                              ; c1 e0 08
+    sub ax, 00100h                            ; 2d 00 01
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov ax, dx                                ; 89 d0
+    xor al, dl                                ; 30 d0
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp near 05abch                           ; e9 4c fd
+    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add si, ax                                ; 01 c6
+    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 040h                  ; 3c 40
+    jne short 05d95h                          ; 75 03
+    jmp near 05abch                           ; e9 27 fd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 0aah                               ; 80 cc aa
+    jmp near 05e32h                           ; e9 92 00
+    movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add si, ax                                ; 01 c6
+    mov di, word [es:si+032h]                 ; 26 8b 7c 32
+    mov ax, word [es:si+030h]                 ; 26 8b 44 30
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov ax, word [es:si+034h]                 ; 26 8b 44 34
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 5f 40
+    mov bx, word [bp-006h]                    ; 8b 5e fa
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 57 40
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov word [bp+014h], dx                    ; 89 56 14
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp near 05ac0h                           ; e9 d4 fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 3a bb
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 00794h                               ; 68 94 07
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 69 bb
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 05abch                           ; e9 ad fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 17 bb
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 0067eh                               ; 68 7e 06
+    push 007c7h                               ; 68 c7 07
+    jmp near 05b53h                           ; e9 29 fd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 18 b8
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 05acfh                           ; e9 82 fc
+    or bx, word [bx+023h]                     ; 0b 5f 23
+    pop di                                    ; 5f
+    and bx, word [bx+023h]                    ; 23 5f 23
+    pop di                                    ; 5f
+    mul word [bp+si+078h]                     ; f7 62 78
+    pushaw                                    ; 60
+    and bx, word [bx+07eh]                    ; 23 5f 7e
+    pushaw                                    ; 60
+    mul word [bp+si+046h]                     ; f7 62 46
+    arpl [bp+063h], ax                        ; 63 46 63
+    inc si                                    ; 46
+    arpl [bp+063h], ax                        ; 63 46 63
+    push CS                                   ; 0e
+    arpl [bp+063h], ax                        ; 63 46 63
+    inc si                                    ; 46
+    db  063h
+_int13_harddisk_ext:                         ; 0xf5e6d LB 0x4f4
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00026h                ; 83 ec 26
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f0 b7
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 e4 b7
+    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
+    mov word [bp-006h], ax                    ; 89 46 fa
+    xor bx, bx                                ; 31 db
+    mov dx, 0008eh                            ; ba 8e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 c3 b7
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    cmp ax, 00080h                            ; 3d 80 00
+    jc short 05eaah                           ; 72 05
+    cmp ax, 00090h                            ; 3d 90 00
+    jc short 05ec8h                           ; 72 1e
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 0068dh                               ; 68 8d 06
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 b0 ba
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 06324h                           ; e9 5c 04
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
+    mov byte [bp-004h], dl                    ; 88 56 fc
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 05eefh                           ; 72 10
+    push ax                                   ; 50
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 006b8h                               ; 68 b8 06
+    jmp short 05ebdh                          ; eb ce
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    sub bx, strict byte 00041h                ; 83 eb 41
+    cmp bx, strict byte 0000fh                ; 83 fb 0f
+    jnbe near 06346h                          ; 0f 87 47 04
+    add bx, bx                                ; 01 db
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    jmp word [cs:bx+05e4dh]                   ; 2e ff a7 4d 5e
+    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 030h                               ; 80 cc 30
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
+    jmp near 062fbh                           ; e9 d8 03
+    mov di, word [bp+00ah]                    ; 8b 7e 0a
+    mov es, [bp+004h]                         ; 8e 46 04
+    mov word [bp-01ch], di                    ; 89 7e e4
+    mov [bp-01ah], es                         ; 8c 46 e6
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:di+004h]                 ; 26 8b 45 04
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
+    mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
+    xor ax, ax                                ; 31 c0
+    xor bx, bx                                ; 31 db
+    mov si, strict word 00020h                ; be 20 00
+    call 09e5ah                               ; e8 04 3f
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov bx, word [es:di+008h]                 ; 26 8b 5d 08
+    mov di, word [es:di+00ah]                 ; 26 8b 7d 0a
+    or dx, bx                                 ; 09 da
+    or cx, di                                 ; 09 f9
+    movzx bx, byte [bp-004h]                  ; 0f b6 5e fc
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    les di, [bp-008h]                         ; c4 7e f8
+    add di, bx                                ; 01 df
+    mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
+    cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
+    jnbe short 05f9dh                         ; 77 22
+    jne short 05fc0h                          ; 75 43
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
+    jnbe short 05f9dh                         ; 77 17
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
+    jne short 05fc0h                          ; 75 31
+    cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
+    jnbe short 05f9dh                         ; 77 08
+    jne short 05fc0h                          ; 75 29
+    cmp dx, word [es:di+036h]                 ; 26 3b 55 36
+    jc short 05fc0h                           ; 72 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 89 b9
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 00808h                               ; 68 08 08
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 b8 b9
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 06324h                           ; e9 64 03
+    mov di, word [bp+016h]                    ; 8b 7e 16
+    shr di, 008h                              ; c1 ef 08
+    cmp di, strict byte 00044h                ; 83 ff 44
+    je near 062f7h                            ; 0f 84 2a 03
+    cmp di, strict byte 00047h                ; 83 ff 47
+    je near 062f7h                            ; 0f 84 23 03
+    les si, [bp-008h]                         ; c4 76 f8
+    db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
+    ; mov dword [es:si+018h], strict dword 000000000h ; 66 26 c7 44 18 00 00 00 00
+    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
+    mov word [es:si+006h], ax                 ; 26 89 44 06
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov word [es:si+004h], ax                 ; 26 89 44 04
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    mov word [es:si], dx                      ; 26 89 14
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
+    mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    mov byte [es:si+00ch], al                 ; 26 88 44 0c
+    mov dx, di                                ; 89 fa
+    add dx, di                                ; 01 fa
+    movzx ax, bl                              ; 0f b6 c3
+    mov bx, ax                                ; 89 c3
+    sal bx, 002h                              ; c1 e3 02
+    add bx, dx                                ; 01 d3
+    push ES                                   ; 06
+    push si                                   ; 56
+    call word [word bx-00002h]                ; ff 97 fe ff
+    mov dx, ax                                ; 89 c2
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+018h]                 ; 26 8b 47 18
+    mov word [bp-012h], ax                    ; 89 46 ee
+    les bx, [bp-01ch]                         ; c4 5e e4
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    test dl, dl                               ; 84 d2
+    je near 062f7h                            ; 0f 84 a8 02
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 d7 b8
+    movzx ax, dl                              ; 0f b6 c2
+    push ax                                   ; 50
+    push di                                   ; 57
+    push 007f5h                               ; 68 f5 07
+    push 00759h                               ; 68 59 07
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 08 b9
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 0632ch                           ; e9 b4 02
+    or ah, 0b2h                               ; 80 cc b2
+    jmp near 0632ch                           ; e9 ae 02
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov di, bx                                ; 89 df
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp-010h], ax                    ; 89 46 f0
+    cmp ax, strict word 0001ah                ; 3d 1a 00
+    jc near 06324h                            ; 0f 82 89 02
+    jc near 0613ah                            ; 0f 82 9b 00
+    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [es:bx+030h]                 ; 26 8b 47 30
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [es:bx+03ch]                 ; 26 8b 47 3c
+    mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
+    mov dx, word [es:bx+036h]                 ; 26 8b 57 36
+    mov bx, word [es:bx+028h]                 ; 26 8b 5f 28
+    mov word [bp-022h], bx                    ; 89 5e de
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov bx, di                                ; 89 fb
+    db  066h, 026h, 0c7h, 007h, 01ah, 000h, 002h, 000h
+    ; mov dword [es:bx], strict dword 00002001ah ; 66 26 c7 07 1a 00 02 00
+    mov bx, word [bp-026h]                    ; 8b 5e da
+    mov si, di                                ; 89 fe
+    mov word [es:si+004h], bx                 ; 26 89 5c 04
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov bx, word [bp-020h]                    ; 8b 5e e0
+    mov word [es:si+008h], bx                 ; 26 89 5c 08
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
+    mov bx, word [bp-024h]                    ; 8b 5e dc
+    mov word [es:si+00ch], bx                 ; 26 89 5c 0c
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov word [es:si+018h], bx                 ; 26 89 5c 18
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+010h], dx                 ; 26 89 57 10
+    mov word [es:bx+012h], cx                 ; 26 89 4f 12
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov si, strict word 00020h                ; be 20 00
+    call 09e6ah                               ; e8 3a 3d
+    mov bx, di                                ; 89 fb
+    mov word [es:bx+014h], dx                 ; 26 89 57 14
+    mov word [es:bx+016h], cx                 ; 26 89 4f 16
+    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
+    jc near 0623fh                            ; 0f 82 fd 00
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:di+01ch], ax                 ; 26 89 45 1c
+    mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
+    movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
+    mov ax, cx                                ; 89 c8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    movzx bx, al                              ; 0f b6 d8
+    imul bx, bx, strict byte 00006h           ; 6b db 06
+    mov es, [bp-006h]                         ; 8e 46 fa
+    add bx, word [bp-008h]                    ; 03 5e f8
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov dx, word [es:bx+00208h]               ; 26 8b 97 08 02
+    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
+    mov byte [bp-002h], al                    ; 88 46 fe
+    imul bx, cx, strict byte 0001ch           ; 6b d9 1c
+    add bx, word [bp-008h]                    ; 03 5e f8
+    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
+    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
+    test al, al                               ; 84 c0
+    jne short 06199h                          ; 75 04
+    xor bx, bx                                ; 31 db
+    jmp short 0619ch                          ; eb 03
+    mov bx, strict word 00008h                ; bb 08 00
+    or bl, 010h                               ; 80 cb 10
+    cmp ah, 001h                              ; 80 fc 01
+    db  00fh, 094h, 0c4h
+    ; sete ah                                   ; 0f 94 c4
+    movzx cx, ah                              ; 0f b6 cc
+    or bx, cx                                 ; 09 cb
+    cmp AL, strict byte 001h                  ; 3c 01
+    db  00fh, 094h, 0c4h
+    ; sete ah                                   ; 0f 94 c4
+    movzx cx, ah                              ; 0f b6 cc
+    or bx, cx                                 ; 09 cb
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 061bdh                          ; 75 05
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp short 061bfh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    or bx, ax                                 ; 09 c3
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    les si, [bp-008h]                         ; c4 76 f8
+    mov word [es:si+00234h], ax               ; 26 89 84 34 02
+    mov word [es:si+00236h], dx               ; 26 89 94 36 02
+    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
+    cwd                                       ; 99
+    mov cx, strict word 00002h                ; b9 02 00
+    idiv cx                                   ; f7 f9
+    or dl, 00eh                               ; 80 ca 0e
+    mov ax, dx                                ; 89 d0
+    sal ax, 004h                              ; c1 e0 04
+    mov byte [es:si+00238h], al               ; 26 88 84 38 02
+    mov byte [es:si+00239h], 0cbh             ; 26 c6 84 39 02 cb
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov byte [es:si+0023ah], al               ; 26 88 84 3a 02
+    mov word [es:si+0023bh], strict word 00001h ; 26 c7 84 3b 02 01 00
+    mov byte [es:si+0023dh], 000h             ; 26 c6 84 3d 02 00
+    mov word [es:si+0023eh], bx               ; 26 89 9c 3e 02
+    mov bx, si                                ; 89 f3
+    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
+    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
+    xor bl, bl                                ; 30 db
+    xor bh, bh                                ; 30 ff
+    jmp short 06222h                          ; eb 05
+    cmp bh, 00fh                              ; 80 ff 0f
+    jnc short 06235h                          ; 73 13
+    movzx dx, bh                              ; 0f b6 d7
+    add dx, 00356h                            ; 81 c2 56 03
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    call 01650h                               ; e8 21 b4
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 0621dh                          ; eb e8
+    neg bl                                    ; f6 db
+    les si, [bp-008h]                         ; c4 76 f8
+    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
+    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
+    jc near 062f7h                            ; 0f 82 b0 00
+    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 00006h           ; 6b c0 06
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+00204h]               ; 26 8a 87 04 02
+    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di], strict word 00042h      ; 26 c7 05 42 00
+    db  066h, 026h, 0c7h, 045h, 01eh, 0ddh, 0beh, 024h, 000h
+    ; mov dword [es:di+01eh], strict dword 00024beddh ; 66 26 c7 45 1e dd be 24 00
+    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
+    test al, al                               ; 84 c0
+    jne short 06288h                          ; 75 09
+    db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
+    ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    db  066h, 026h, 0c7h, 045h, 028h, 041h, 054h, 041h, 020h
+    ; mov dword [es:di+028h], strict dword 020415441h ; 66 26 c7 45 28 41 54 41 20
+    db  066h, 026h, 0c7h, 045h, 02ch, 020h, 020h, 020h, 020h
+    ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
+    test al, al                               ; 84 c0
+    jne short 062b4h                          ; 75 13
+    mov word [es:di+030h], dx                 ; 26 89 55 30
+    db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
+    ; mov dword [es:di+032h], strict dword 000000000h ; 66 26 c7 45 32 00 00 00 00
+    mov word [es:di+036h], strict word 00000h ; 26 c7 45 36 00 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 001h                  ; 24 01
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+038h], ax                 ; 26 89 45 38
+    db  066h, 026h, 0c7h, 045h, 03ah, 000h, 000h, 000h, 000h
+    ; mov dword [es:di+03ah], strict dword 000000000h ; 66 26 c7 45 3a 00 00 00 00
+    mov word [es:di+03eh], strict word 00000h ; 26 c7 45 3e 00 00
+    xor bl, bl                                ; 30 db
+    mov BH, strict byte 01eh                  ; b7 1e
+    jmp short 062dch                          ; eb 05
+    cmp bh, 040h                              ; 80 ff 40
+    jnc short 062eeh                          ; 73 12
+    movzx dx, bh                              ; 0f b6 d7
+    add dx, word [bp+00ah]                    ; 03 56 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01650h                               ; e8 68 b3
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 062d7h                          ; eb e9
+    neg bl                                    ; f6 db
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+041h], bl                 ; 26 88 5d 41
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 58 b3
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    cmp ax, strict word 00006h                ; 3d 06 00
+    je short 062f7h                           ; 74 e4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 06324h                           ; 72 0c
+    jbe short 062f7h                          ; 76 dd
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jc short 06324h                           ; 72 05
+    cmp ax, strict word 00004h                ; 3d 04 00
+    jbe short 062f7h                          ; 76 d3
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    shr bx, 008h                              ; c1 eb 08
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 1e b3
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 0630ah                          ; eb c4
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 e0 b5
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    shr ax, 008h                              ; c1 e8 08
+    push ax                                   ; 50
+    push 007f5h                               ; 68 f5 07
+    push 007c7h                               ; 68 c7 07
+    jmp near 05fb5h                           ; e9 54 fc
+_int14_function:                             ; 0xf6361 LB 0x155
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sti                                       ; fb
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, dx                                ; 01 d2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 fb b2
+    mov si, ax                                ; 89 c6
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, strict byte 0007ch                ; 83 c2 7c
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 cf b2
+    mov cl, al                                ; 88 c1
+    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
+    jnc near 064ach                           ; 0f 83 21 01
+    test si, si                               ; 85 f6
+    jbe near 064ach                           ; 0f 86 1b 01
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 063a9h                           ; 72 11
+    jbe short 063fdh                          ; 76 63
+    cmp AL, strict byte 003h                  ; 3c 03
+    je near 06495h                            ; 0f 84 f5 00
+    cmp AL, strict byte 002h                  ; 3c 02
+    je near 0644bh                            ; 0f 84 a5 00
+    jmp near 064a6h                           ; e9 fd 00
+    test al, al                               ; 84 c0
+    jne near 064a6h                           ; 0f 85 f7 00
+    lea dx, [bx+003h]                         ; 8d 57 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    or AL, strict byte 080h                   ; 0c 80
+    out DX, AL                                ; ee
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    and AL, strict byte 0e0h                  ; 24 e0
+    movzx cx, al                              ; 0f b6 c8
+    sar cx, 005h                              ; c1 f9 05
+    mov ax, 00600h                            ; b8 00 06
+    sar ax, CL                                ; d3 f8
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    shr ax, 008h                              ; c1 e8 08
+    lea dx, [bx+001h]                         ; 8d 57 01
+    out DX, AL                                ; ee
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    and AL, strict byte 01fh                  ; 24 1f
+    lea dx, [bx+003h]                         ; 8d 57 03
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    lea dx, [bx+006h]                         ; 8d 57 06
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+012h], al                    ; 88 46 12
+    jmp near 06487h                           ; e9 97 00
+    mov AL, strict byte 017h                  ; b0 17
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov AL, strict byte 004h                  ; b0 04
+    out DX, AL                                ; ee
+    jmp short 063d2h                          ; eb d5
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 66 b2
+    mov si, ax                                ; 89 c6
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00060h                ; 25 60 00
+    cmp ax, strict word 00060h                ; 3d 60 00
+    je short 0642dh                           ; 74 17
+    test cl, cl                               ; 84 c9
+    je short 0642dh                           ; 74 13
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 49 b2
+    cmp ax, si                                ; 39 f0
+    je short 06408h                           ; 74 e1
+    mov si, ax                                ; 89 c6
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    jmp short 06408h                          ; eb db
+    test cl, cl                               ; 84 c9
+    je short 06437h                           ; 74 06
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    test cl, cl                               ; 84 c9
+    jne short 06487h                          ; 75 43
+    or AL, strict byte 080h                   ; 0c 80
+    mov byte [bp+013h], al                    ; 88 46 13
+    jmp short 06487h                          ; eb 3c
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 18 b2
+    mov si, ax                                ; 89 c6
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 06477h                          ; 75 17
+    test cl, cl                               ; 84 c9
+    je short 06477h                           ; 74 13
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 ff b1
+    cmp ax, si                                ; 39 f0
+    je short 06456h                           ; 74 e5
+    mov si, ax                                ; 89 c6
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    jmp short 06456h                          ; eb df
+    test cl, cl                               ; 84 c9
+    je short 0648dh                           ; 74 12
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+012h], al                    ; 88 46 12
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp short 064b0h                          ; eb 23
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 06446h                          ; eb b1
+    lea dx, [si+005h]                         ; 8d 54 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    lea dx, [si+006h]                         ; 8d 54 06
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 06484h                          ; eb de
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 064b0h                          ; eb 04
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_enable_a20_:                             ; 0xf64b6 LB 0x2c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov dx, 00092h                            ; ba 92 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cl, al                                ; 88 c1
+    test bx, bx                               ; 85 db
+    je short 064cfh                           ; 74 05
+    or AL, strict byte 002h                   ; 0c 02
+    out DX, AL                                ; ee
+    jmp short 064d2h                          ; eb 03
+    and AL, strict byte 0fdh                  ; 24 fd
+    out DX, AL                                ; ee
+    test cl, 002h                             ; f6 c1 02
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_e820_range_:                             ; 0xf64e2 LB 0x8c
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov es, ax                                ; 8e c0
+    mov si, dx                                ; 89 d6
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    movzx ax, byte [bp+00ah]                  ; 0f b6 46 0a
+    mov word [es:si+004h], ax                 ; 26 89 44 04
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    sub word [bp+006h], bx                    ; 29 5e 06
+    sbb word [bp+008h], cx                    ; 19 4e 08
+    mov al, byte [bp+00ah]                    ; 8a 46 0a
+    sub byte [bp+00ch], al                    ; 28 46 0c
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    movzx ax, byte [bp+00ch]                  ; 0f b6 46 0c
+    mov word [es:si+00ch], ax                 ; 26 89 44 0c
+    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:si+010h], ax                 ; 26 89 44 10
+    mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn 0000ah                               ; c2 0a 00
+    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
+    db  000h, 00dh, 06ah, 0adh, 065h, 0c0h, 065h, 055h, 066h, 05bh, 066h, 060h, 066h, 065h, 066h, 007h
+    db  067h, 0a4h, 068h, 0cah, 068h, 04eh, 066h, 04eh, 066h, 097h, 069h, 0bfh, 069h, 0d2h, 069h, 0e1h
+    db  069h, 055h, 066h, 0e8h, 069h
+_int15_function:                             ; 0xf656e LB 0x4d1
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, 008h                              ; c1 e8 08
+    cmp ax, 000ech                            ; 3d ec 00
+    jnbe near 06a0dh                          ; 0f 87 8b 04
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00012h                ; b9 12 00
+    mov di, 06539h                            ; bf 39 65
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov si, word [cs:di+0654ah]               ; 2e 8b b5 4a 65
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    mov cx, word [bp+018h]                    ; 8b 4e 18
+    and cl, 0feh                              ; 80 e1 fe
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    or bl, 001h                               ; 80 cb 01
+    mov dx, ax                                ; 89 c2
+    or dh, 086h                               ; 80 ce 86
+    jmp si                                    ; ff e6
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, 000c0h                            ; 3d c0 00
+    jne near 06a0dh                           ; 0f 85 54 04
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    jmp near 069b6h                           ; e9 f6 03
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 065d5h                           ; 72 0e
+    jbe short 065e9h                          ; 76 20
+    cmp ax, strict word 00003h                ; 3d 03 00
+    je short 06616h                           ; 74 48
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 065f9h                           ; 74 26
+    jmp short 06623h                          ; eb 4e
+    test ax, ax                               ; 85 c0
+    jne short 06623h                          ; 75 4a
+    xor ax, ax                                ; 31 c0
+    call 064b6h                               ; e8 d8 fe
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp near 0664eh                           ; e9 65 00
+    mov ax, strict word 00001h                ; b8 01 00
+    call 064b6h                               ; e8 c7 fe
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], dh                    ; 88 76 13
+    jmp near 0664eh                           ; e9 55 00
+    mov dx, 00092h                            ; ba 92 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    shr ax, 1                                 ; d1 e8
+    and ax, strict word 00001h                ; 25 01 00
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], ah                    ; 88 66 13
+    jmp near 0664eh                           ; e9 38 00
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], ah                    ; 88 66 13
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    jmp near 0664eh                           ; e9 2b 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 03 b3
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push 0082eh                               ; 68 2e 08
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 36 b3
+    add sp, strict byte 00006h                ; 83 c4 06
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    mov word [bp+012h], ax                    ; 89 46 12
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp near 06701h                           ; e9 a6 00
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp short 0664eh                          ; eb ee
+    mov word [bp+018h], cx                    ; 89 4e 18
+    jmp short 0664bh                          ; eb e6
+    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
+    jne short 066d7h                          ; 75 6c
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 dc af
+    test AL, strict byte 001h                 ; a8 01
+    jne near 069adh                           ; 0f 85 33 03
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 d8 af
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    mov dx, 00098h                            ; ba 98 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 e8 af
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, 0009ah                            ; ba 9a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 dc af
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 d0 af
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dx, 0009eh                            ; ba 9e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ah                               ; e8 c4 af
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 e3 af
+    or AL, strict byte 040h                   ; 0c 40
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 f5 af
+    jmp near 0664eh                           ; e9 77 ff
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jne short 066f5h                          ; 75 19
+    xor bx, bx                                ; 31 db
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 77 af
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 bb af
+    and AL, strict byte 0bfh                  ; 24 bf
+    jmp short 066cbh                          ; eb d6
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    xor dl, dl                                ; 30 d2
+    dec ax                                    ; 48
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp near 0664eh                           ; e9 47 ff
+    cli                                       ; fa
+    mov ax, strict word 00001h                ; b8 01 00
+    call 064b6h                               ; e8 a8 fd
+    mov di, ax                                ; 89 c7
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    sal ax, 004h                              ; c1 e0 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    add cx, ax                                ; 01 c1
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    shr dx, 00ch                              ; c1 ea 0c
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    cmp cx, ax                                ; 39 c1
+    jnc short 0672dh                          ; 73 05
+    db  0feh, 0c2h
+    ; inc dl                                    ; fe c2
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0002fh                ; bb 2f 00
+    call 0167ah                               ; e8 3e af
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000ah                ; 83 c2 0a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, cx                                ; 89 cb
+    call 0167ah                               ; e8 30 af
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 0165eh                               ; e8 04 af
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000dh                ; 83 c2 0d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 00093h                            ; bb 93 00
+    call 0165eh                               ; e8 f5 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 03 af
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00020h                ; 83 c2 20
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ah                               ; e8 f4 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00022h                ; 83 c2 22
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 e6 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00024h                ; 83 c2 24
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0000fh                ; bb 0f 00
+    call 0165eh                               ; e8 bb ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00025h                ; 83 c2 25
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 0009bh                            ; bb 9b 00
+    call 0165eh                               ; e8 ac ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00026h                ; 83 c2 26
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 ba ae
+    mov ax, ss                                ; 8c d0
+    mov cx, ax                                ; 89 c1
+    sal cx, 004h                              ; c1 e1 04
+    shr ax, 00ch                              ; c1 e8 0c
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00028h                ; 83 c2 28
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ah                               ; e8 9e ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, cx                                ; 89 cb
+    call 0167ah                               ; e8 90 ae
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002ch                ; 83 c2 2c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 0165eh                               ; e8 64 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002dh                ; 83 c2 2d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 00093h                            ; bb 93 00
+    call 0165eh                               ; e8 55 ae
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002eh                ; 83 c2 2e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 63 ae
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov es, [bp+014h]                         ; 8e 46 14
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    push DS                                   ; 1e
+    push eax                                  ; 66 50
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    mov ds, ax                                ; 8e d8
+    mov word [00467h], sp                     ; 89 26 67 04
+    mov [00469h], ss                          ; 8c 16 69 04
+    call 06833h                               ; e8 00 00
+    pop di                                    ; 5f
+    add di, strict byte 0001bh                ; 83 c7 1b
+    push strict byte 00020h                   ; 6a 20
+    push di                                   ; 57
+    lgdt [es:si+008h]                         ; 26 0f 01 54 08
+    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
+    mov eax, cr0                              ; 0f 20 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov cr0, eax                              ; 0f 22 c0
+    retf                                      ; cb
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ss, ax                                ; 8e d0
+    mov ax, strict word 00010h                ; b8 10 00
+    mov ds, ax                                ; 8e d8
+    mov ax, strict word 00018h                ; b8 18 00
+    mov es, ax                                ; 8e c0
+    db  033h, 0f6h
+    ; xor si, si                                ; 33 f6
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    cld                                       ; fc
+    rep movsw                                 ; f3 a5
+    call 06867h                               ; e8 00 00
+    pop ax                                    ; 58
+    push 0f000h                               ; 68 00 f0
+    add ax, strict byte 00018h                ; 83 c0 18
+    push ax                                   ; 50
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    mov eax, cr0                              ; 0f 20 c0
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cr0, eax                              ; 0f 22 c0
+    retf                                      ; cb
+    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    lss sp, [00467h]                          ; 0f b2 26 67 04
+    pop eax                                   ; 66 58
+    pop DS                                    ; 1f
+    mov ax, di                                ; 89 f8
+    call 064b6h                               ; e8 1e fc
+    sti                                       ; fb
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    jmp near 0664eh                           ; e9 aa fd
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016ach                               ; e8 02 ae
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016ach                               ; e8 f5 ad
+    xor ah, ah                                ; 30 e4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    cmp dx, strict byte 0ffc0h                ; 83 fa c0
+    jbe short 0689dh                          ; 76 da
+    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
+    jmp short 0689dh                          ; eb d3
+    cli                                       ; fa
+    mov ax, strict word 00001h                ; b8 01 00
+    call 064b6h                               ; e8 e5 fb
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00038h                ; 83 c2 38
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ah                               ; e8 9a ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003ah                ; 83 c2 3a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 8c ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003ch                ; 83 c2 3c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0000fh                ; bb 0f 00
+    call 0165eh                               ; e8 61 ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003dh                ; 83 c2 3d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 0009bh                            ; bb 9b 00
+    call 0165eh                               ; e8 52 ad
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003eh                ; 83 c2 3e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ah                               ; e8 60 ad
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, 008h                              ; c1 e8 08
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 004h                  ; b0 04
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 001h                  ; b0 01
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov si, word [bp+006h]                    ; 8b 76 06
+    call 0695bh                               ; e8 00 00
+    pop di                                    ; 5f
+    add di, strict byte 00018h                ; 83 c7 18
+    push strict byte 00038h                   ; 6a 38
+    push di                                   ; 57
+    lgdt [es:si+008h]                         ; 26 0f 01 54 08
+    lidt [es:si+010h]                         ; 26 0f 01 5c 10
+    mov ax, strict word 00001h                ; b8 01 00
+    lmsw ax                                   ; 0f 01 f0
+    retf                                      ; cb
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ss, ax                                ; 8e d0
+    mov ax, strict word 00018h                ; b8 18 00
+    mov ds, ax                                ; 8e d8
+    mov ax, strict word 00020h                ; b8 20 00
+    mov es, ax                                ; 8e c0
+    lea ax, [bp+004h]                         ; 8d 46 04
+    db  08bh, 0e0h
+    ; mov sp, ax                                ; 8b e0
+    popaw                                     ; 61
+    add sp, strict byte 00006h                ; 83 c4 06
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    pop ax                                    ; 58
+    mov ax, strict word 00030h                ; b8 30 00
+    push ax                                   ; 50
+    push cx                                   ; 51
+    retf                                      ; cb
+    jmp near 0664eh                           ; e9 b7 fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 8f af
+    push 0086eh                               ; 68 6e 08
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 c8 af
+    add sp, strict byte 00004h                ; 83 c4 04
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 0664eh                           ; e9 8f fc
+    mov word [bp+018h], cx                    ; 89 4e 18
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
+    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
+    jmp near 0664eh                           ; e9 7c fc
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 91 ac
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 0689dh                           ; e9 bc fe
+    push 0089dh                               ; 68 9d 08
+    push strict byte 00008h                   ; 6a 08
+    jmp short 069a7h                          ; eb bf
+    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
+    jne short 06a0dh                          ; 75 1f
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 06a06h                           ; 72 0b
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jnbe short 06a06h                         ; 77 06
+    mov word [bp+018h], cx                    ; 89 4e 18
+    jmp near 0664eh                           ; e9 48 fc
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    jmp near 0664eh                           ; e9 41 fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 19 af
+    push word [bp+00ch]                       ; ff 76 0c
+    push word [bp+012h]                       ; ff 76 12
+    push 008b4h                               ; 68 b4 08
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 4c af
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp short 069adh                          ; eb 82
+    in ax, 06bh                               ; e5 6b
+    pop ES                                    ; 07
+    insb                                      ; 6c
+    sub ch, byte [si+04ch]                    ; 2a 6c 4c
+    insb                                      ; 6c
+    insb                                      ; 6c
+    insb                                      ; 6c
+    mov bp, word [si-051h]                    ; 8b 6c af
+    insb                                      ; 6c
+    shr word [si+012h], CL                    ; d3 6c 12
+    insw                                      ; 6d
+    db  03eh, 06dh
+    ; ds insw                                   ; 3e 6d
+_int15_function32:                           ; 0xf6a3f LB 0x3c2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    shr ax, 008h                              ; c1 e8 08
+    mov bx, word [bp+028h]                    ; 8b 5e 28
+    and bl, 0feh                              ; 80 e3 fe
+    mov dx, word [bp+020h]                    ; 8b 56 20
+    xor dh, dh                                ; 30 f6
+    cmp ax, 000e8h                            ; 3d e8 00
+    je near 06b09h                            ; 0f 84 ab 00
+    cmp ax, 000d0h                            ; 3d d0 00
+    je short 06aa4h                           ; 74 41
+    cmp ax, 00086h                            ; 3d 86 00
+    jne near 06dd1h                           ; 0f 85 67 03
+    sti                                       ; fb
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    div ebx                                   ; 66 f7 f3
+    db  066h, 08bh, 0c8h
+    ; mov ecx, eax                              ; 66 8b c8
+    in AL, strict byte 061h                   ; e4 61
+    and AL, strict byte 010h                  ; 24 10
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    db  066h, 00bh, 0c9h
+    ; or ecx, ecx                               ; 66 0b c9
+    je near 06aa1h                            ; 0f 84 0e 00
+    in AL, strict byte 061h                   ; e4 61
+    and AL, strict byte 010h                  ; 24 10
+    db  03ah, 0c4h
+    ; cmp al, ah                                ; 3a c4
+    je short 06a93h                           ; 74 f8
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    dec ecx                                   ; 66 49
+    jne short 06a93h                          ; 75 f2
+    jmp near 06dfbh                           ; e9 57 03
+    cmp dx, strict byte 0004fh                ; 83 fa 4f
+    jne near 06dd1h                           ; 0f 85 26 03
+    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
+    jne near 06dd1h                           ; 0f 85 1d 03
+    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
+    jne near 06dd1h                           ; 0f 85 14 03
+    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
+    jne near 06dd1h                           ; 0f 85 0b 03
+    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
+    jne near 06dd1h                           ; 0f 85 02 03
+    mov ax, word [bp+00ah]                    ; 8b 46 0a
+    or ax, word [bp+008h]                     ; 0b 46 08
+    jne near 06dd1h                           ; 0f 85 f8 02
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    or ax, word [bp+004h]                     ; 0b 46 04
+    jne near 06dd1h                           ; 0f 85 ee 02
+    mov word [bp+028h], bx                    ; 89 5e 28
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov word [bp+008h], ax                    ; 89 46 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    mov word [bp+00ah], ax                    ; 89 46 0a
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov word [bp+004h], ax                    ; 89 46 04
+    mov ax, word [bp+01eh]                    ; 8b 46 1e
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
+    jmp near 06dfbh                           ; e9 f2 02
+    cmp dx, strict byte 00020h                ; 83 fa 20
+    je short 06b18h                           ; 74 0a
+    cmp dx, strict byte 00001h                ; 83 fa 01
+    je near 06d85h                            ; 0f 84 70 02
+    jmp near 06dd1h                           ; e9 b9 02
+    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
+    jne near 06dd1h                           ; 0f 85 b0 02
+    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
+    jne near 06dd1h                           ; 0f 85 a7 02
+    mov ax, strict word 00035h                ; b8 35 00
+    call 016ach                               ; e8 7c ab
+    movzx bx, al                              ; 0f b6 d8
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06b38h                               ; e2 fa
+    mov ax, strict word 00034h                ; b8 34 00
+    call 016ach                               ; e8 68 ab
+    xor ah, ah                                ; 30 e4
+    mov dx, bx                                ; 89 da
+    or dx, ax                                 ; 09 c2
+    xor bx, bx                                ; 31 db
+    add bx, bx                                ; 01 db
+    adc dx, 00100h                            ; 81 d2 00 01
+    cmp dx, 00100h                            ; 81 fa 00 01
+    jc short 06b5eh                           ; 72 06
+    jne short 06b8bh                          ; 75 31
+    test bx, bx                               ; 85 db
+    jnbe short 06b8bh                         ; 77 2d
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016ach                               ; e8 48 ab
+    movzx bx, al                              ; 0f b6 d8
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06b6ch                               ; e2 fa
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016ach                               ; e8 34 ab
+    xor ah, ah                                ; 30 e4
+    or bx, ax                                 ; 09 c3
+    mov cx, strict word 0000ah                ; b9 0a 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06b7fh                               ; e2 fa
+    add bx, strict byte 00000h                ; 83 c3 00
+    adc dx, strict byte 00010h                ; 83 d2 10
+    mov ax, strict word 00062h                ; b8 62 00
+    call 016ach                               ; e8 1b ab
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    xor al, al                                ; 30 c0
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov cx, strict word 00008h                ; b9 08 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 06b9eh                               ; e2 f8
+    mov ax, strict word 00061h                ; b8 61 00
+    call 016ach                               ; e8 00 ab
+    xor ah, ah                                ; 30 e4
+    or word [bp-00ah], ax                     ; 09 46 f6
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    mov ax, strict word 00063h                ; b8 63 00
+    call 016ach                               ; e8 ea aa
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe near 06dd1h                          ; 0f 87 ff 01
+    mov si, ax                                ; 89 c6
+    add si, ax                                ; 01 c6
+    mov ax, bx                                ; 89 d8
+    add ax, strict word 00000h                ; 05 00 00
+    mov cx, dx                                ; 89 d1
+    adc cx, strict byte 0ffffh                ; 83 d1 ff
+    jmp word [cs:si+06a2bh]                   ; 2e ff a4 2b 6a
+    push strict byte 00001h                   ; 6a 01
+    push dword 000000000h                     ; 66 6a 00
+    push strict byte 00009h                   ; 6a 09
+    push 0fc00h                               ; 68 00 fc
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 064e2h                               ; e8 e6 f8
+    mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
+    jmp near 06d6fh                           ; e9 68 01
+    push strict byte 00002h                   ; 6a 02
+    push dword 000000000h                     ; 66 6a 00
+    push strict byte 0000ah                   ; 6a 0a
+    push strict byte 00000h                   ; 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    mov bx, 0fc00h                            ; bb 00 fc
+    mov cx, strict word 00009h                ; b9 09 00
+    call 064e2h                               ; e8 c3 f8
+    mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
+    jmp near 06d6fh                           ; e9 45 01
+    push strict byte 00002h                   ; 6a 02
+    push dword 000000000h                     ; 66 6a 00
+    push strict byte 00010h                   ; 6a 10
+    push strict byte 00000h                   ; 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0000fh                ; b9 0f 00
+    call 064e2h                               ; e8 a1 f8
+    mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
+    jmp near 06d6fh                           ; e9 23 01
+    push strict byte 00001h                   ; 6a 01
+    push dword 000000000h                     ; 66 6a 00
+    push cx                                   ; 51
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 00010h                ; b9 10 00
+    call 064e2h                               ; e8 81 f8
+    mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
+    jmp near 06d6fh                           ; e9 03 01
+    push strict byte 00003h                   ; 6a 03
+    push dword 000000000h                     ; 66 6a 00
+    push dx                                   ; 52
+    push bx                                   ; 53
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov si, word [bp+024h]                    ; 8b 76 24
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 064e2h                               ; e8 62 f8
+    mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
+    jmp near 06d6fh                           ; e9 e4 00
+    push strict byte 00002h                   ; 6a 02
+    push dword 000000000h                     ; 66 6a 00
+    push 0fec0h                               ; 68 c0 fe
+    push 01000h                               ; 68 00 10
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, 0fec0h                            ; b9 c0 fe
+    call 064e2h                               ; e8 3e f8
+    mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
+    jmp near 06d6fh                           ; e9 c0 00
+    push strict byte 00002h                   ; 6a 02
+    push dword 000000000h                     ; 66 6a 00
+    push 0fee0h                               ; 68 e0 fe
+    push 01000h                               ; 68 00 10
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, 0fee0h                            ; b9 e0 fe
+    call 064e2h                               ; e8 1a f8
+    mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
+    jmp near 06d6fh                           ; e9 9c 00
+    push strict byte 00002h                   ; 6a 02
+    push dword 000000000h                     ; 66 6a 00
+    push dword 000000000h                     ; 66 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0fffch                ; b9 fc ff
+    call 064e2h                               ; e8 f9 f7
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jne short 06cf6h                          ; 75 07
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    test ax, ax                               ; 85 c0
+    je short 06d0ah                           ; 74 14
+    mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
+    jmp short 06d6fh                          ; eb 6f
+    mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
+    jmp short 06d6fh                          ; eb 65
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp short 06d6fh                          ; eb 5d
+    push strict byte 00002h                   ; 6a 02
+    push dword 000000000h                     ; 66 6a 00
+    push dword 000000000h                     ; 66 6a 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 064e2h                               ; e8 bb f7
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jne short 06d34h                          ; 75 07
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    test ax, ax                               ; 85 c0
+    je short 06d36h                           ; 74 02
+    jmp short 06cf6h                          ; eb c0
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp short 06d6fh                          ; eb 31
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jne short 06d4ah                          ; 75 06
+    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
+    je short 06d6fh                           ; 74 25
+    push strict byte 00001h                   ; 6a 01
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push strict byte 00001h                   ; 6a 01
+    push dword [bp-00ah]                      ; 66 ff 76 f6
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 064e2h                               ; e8 7b f7
+    xor ax, ax                                ; 31 c0
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov dword [bp+020h], strict dword 0534d4150h ; 66 c7 46 20 50 41 4d 53
+    mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
+    and byte [bp+028h], 0feh                  ; 80 66 28 fe
+    jmp short 06dfbh                          ; eb 76
+    mov word [bp+028h], bx                    ; 89 5e 28
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016ach                               ; e8 1e a9
+    movzx dx, al                              ; 0f b6 d0
+    sal dx, 008h                              ; c1 e2 08
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016ach                               ; e8 12 a9
+    xor ah, ah                                ; 30 e4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+01ch], dx                    ; 89 56 1c
+    cmp dx, 03c00h                            ; 81 fa 00 3c
+    jbe short 06dach                          ; 76 05
+    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
+    mov ax, strict word 00035h                ; b8 35 00
+    call 016ach                               ; e8 fa a8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 008h                              ; c1 e2 08
+    mov ax, strict word 00034h                ; b8 34 00
+    call 016ach                               ; e8 ed a8
+    xor ah, ah                                ; 30 e4
+    or dx, ax                                 ; 09 c2
+    mov word [bp+018h], dx                    ; 89 56 18
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov word [bp+020h], ax                    ; 89 46 20
+    mov word [bp+014h], dx                    ; 89 56 14
+    jmp short 06dfbh                          ; eb 2a
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 55 ab
+    push word [bp+014h]                       ; ff 76 14
+    push word [bp+020h]                       ; ff 76 20
+    push 008b4h                               ; 68 b4 08
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 88 ab
+    add sp, strict byte 00008h                ; 83 c4 08
+    or byte [bp+028h], 001h                   ; 80 4e 28 01
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor al, al                                ; 30 c0
+    or AL, strict byte 086h                   ; 0c 86
+    mov word [bp+020h], ax                    ; 89 46 20
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_inv_op_handler:                             ; 0xf6e01 LB 0x195
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    les bx, [bp+018h]                         ; c4 5e 18
+    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
+    jne short 06e17h                          ; 75 06
+    inc word [bp+018h]                        ; ff 46 18
+    jmp near 06f8fh                           ; e9 78 01
+    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
+    jne near 06f8bh                           ; 0f 85 6b 01
+    mov si, 00800h                            ; be 00 08
+    xor ax, ax                                ; 31 c0
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov es, ax                                ; 8e c0
+    mov bx, word [es:si+02ch]                 ; 26 8b 5c 2c
+    sub bx, strict byte 00006h                ; 83 eb 06
+    mov dx, word [es:si+020h]                 ; 26 8b 54 20
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov es, dx                                ; 8e c2
+    mov word [es:bx], ax                      ; 26 89 07
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov ax, word [es:si+022h]                 ; 26 8b 44 22
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov ax, word [es:si+018h]                 ; 26 8b 44 18
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+004h], ax                 ; 26 89 47 04
+    mov es, [bp-006h]                         ; 8e 46 fa
+    movzx bx, byte [es:si+038h]               ; 26 0f b6 5c 38
+    mov di, word [es:si+036h]                 ; 26 8b 7c 36
+    mov ax, word [es:si+024h]                 ; 26 8b 44 24
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 06e70h                               ; e2 fa
+    cmp bx, dx                                ; 39 d3
+    jne short 06e7eh                          ; 75 04
+    cmp di, ax                                ; 39 c7
+    je short 06e83h                           ; 74 05
+    mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
+    mov es, [bp-006h]                         ; 8e 46 fa
+    movzx di, byte [es:si+04ah]               ; 26 0f b6 7c 4a
+    mov bx, word [es:si+048h]                 ; 26 8b 5c 48
+    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 06e98h                               ; e2 fa
+    cmp di, dx                                ; 39 d7
+    jne short 06ea6h                          ; 75 04
+    cmp bx, ax                                ; 39 c3
+    je short 06eaah                           ; 74 04
+    or byte [bp-008h], 002h                   ; 80 4e f8 02
+    push strict byte 00000h                   ; 6a 00
+    push 00800h                               ; 68 00 08
+    push strict byte 0001fh                   ; 6a 1f
+    db  08bh, 0dch
+    ; mov bx, sp                                ; 8b dc
+    lgdt [ss:bx]                              ; 36 0f 01 17
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov ax, word [es:si+03ah]                 ; 26 8b 44 3a
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [es:si+036h]                 ; 26 8b 44 36
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    movzx dx, byte [es:si+039h]               ; 26 0f b6 54 39
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, byte [es:si+038h]               ; 26 0f b6 44 38
+    or dx, ax                                 ; 09 c2
+    mov word [es:si+00ch], dx                 ; 26 89 54 0c
+    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
+    mov ax, word [es:si+04ch]                 ; 26 8b 44 4c
+    mov word [es:si], ax                      ; 26 89 04
+    mov ax, word [es:si+048h]                 ; 26 8b 44 48
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    movzx dx, byte [es:si+04bh]               ; 26 0f b6 54 4b
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, byte [es:si+04ah]               ; 26 0f b6 44 4a
+    or dx, ax                                 ; 09 c2
+    mov word [es:si+004h], dx                 ; 26 89 54 04
+    movzx ax, byte [es:si+05ch]               ; 26 0f b6 44 5c
+    mov dx, word [es:si+05ah]                 ; 26 8b 54 5a
+    push ax                                   ; 50
+    push dx                                   ; 52
+    push word [es:si+05eh]                    ; 26 ff 74 5e
+    db  08bh, 0dch
+    ; mov bx, sp                                ; 8b dc
+    lidt [ss:bx]                              ; 36 0f 01 1f
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov cx, word [bp-008h]                    ; 8b 4e f8
+    mov ax, 00080h                            ; b8 80 00
+    mov ss, ax                                ; 8e d0
+    mov ax, word [ss:0001eh]                  ; 36 a1 1e 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [ss:00024h]                  ; 36 a1 24 00
+    mov es, ax                                ; 8e c0
+    smsw ax                                   ; 0f 01 e0
+    inc ax                                    ; 40
+    lmsw ax                                   ; 0f 01 f0
+    mov ax, strict word 00008h                ; b8 08 00
+    test cx, strict word 00001h               ; f7 c1 01 00
+    je near 06f48h                            ; 0f 84 02 00
+    mov es, ax                                ; 8e c0
+    test cx, strict word 00002h               ; f7 c1 02 00
+    je near 06f70h                            ; 0f 84 20 00
+    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
+    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
+    mov bx, word [word ss:00002h]             ; 36 8b 1e 02 00
+    mov word [word ss:0000ah], bx             ; 36 89 1e 0a 00
+    mov bx, word [word ss:00004h]             ; 36 8b 1e 04 00
+    mov word [word ss:0000ch], bx             ; 36 89 1e 0c 00
+    mov ds, ax                                ; 8e d8
+    mov eax, cr0                              ; 0f 20 c0
+    dec ax                                    ; 48
+    mov cr0, eax                              ; 0f 22 c0
+    mov sp, strict word 00026h                ; bc 26 00
+    popaw                                     ; 61
+    mov sp, word [word ss:0002ch]             ; 36 8b 26 2c 00
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
+    iret                                      ; cf
+    jmp short 06f8fh                          ; eb 04
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 06f8ch                          ; eb fd
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+init_rtc_:                                   ; 0xf6f96 LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 016c9h                               ; e8 26 a7
+    mov dx, strict word 00002h                ; ba 02 00
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 1d a7
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 016ach                               ; e8 fa a6
+    mov ax, strict word 0000dh                ; b8 0d 00
+    call 016ach                               ; e8 f4 a6
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+rtc_updating_:                               ; 0xf6fbe LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, 061a8h                            ; ba a8 61
+    dec dx                                    ; 4a
+    je short 06fd6h                           ; 74 0e
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 016ach                               ; e8 de a6
+    test AL, strict byte 080h                 ; a8 80
+    jne short 06fc5h                          ; 75 f3
+    xor ax, ax                                ; 31 c0
+    jmp short 06fd9h                          ; eb 03
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int70_function:                             ; 0xf6fdf LB 0xbe
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 c2 a6
+    mov dl, al                                ; 88 c2
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 016ach                               ; e8 b7 a6
+    mov dh, al                                ; 88 c6
+    test dl, 060h                             ; f6 c2 60
+    je near 07084h                            ; 0f 84 86 00
+    test AL, strict byte 020h                 ; a8 20
+    je short 07006h                           ; 74 04
+    sti                                       ; fb
+    int 04ah                                  ; cd 4a
+    cli                                       ; fa
+    test dh, 040h                             ; f6 c6 40
+    je near 07084h                            ; 0f 84 77 00
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 3a a6
+    test al, al                               ; 84 c0
+    je short 07084h                           ; 74 6a
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01688h                               ; e8 65 a6
+    test dx, dx                               ; 85 d2
+    jne short 07070h                          ; 75 49
+    cmp ax, 003d1h                            ; 3d d1 03
+    jnc short 07070h                          ; 73 44
+    mov dx, 00098h                            ; ba 98 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 37 a6
+    mov si, ax                                ; 89 c6
+    mov dx, 0009ah                            ; ba 9a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 2c a6
+    mov cx, ax                                ; 89 c1
+    xor bx, bx                                ; 31 db
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 11 a6
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 037h                  ; 24 37
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 6e a6
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 01650h                               ; e8 ee a5
+    or AL, strict byte 080h                   ; 0c 80
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 f0 a5
+    jmp short 07084h                          ; eb 14
+    mov bx, ax                                ; 89 c3
+    add bx, 0fc2fh                            ; 81 c3 2f fc
+    mov cx, dx                                ; 89 d1
+    adc cx, strict byte 0ffffh                ; 83 d1 ff
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0169ah                               ; e8 16 a6
+    call 0e030h                               ; e8 a9 6f
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov AH, strict byte 070h                  ; b4 70
+    fnsave [bx+si+002h]                       ; dd 70 02
+    jno short 070c8h                          ; 71 34
+    jno short 07019h                          ; 71 83
+    jno short 07053h                          ; 71 bb
+    jno short 07098h                          ; 71 fe
+    jno short 070f1h                          ; 71 55
+    db  072h
+_int1a_function:                             ; 0xf709d LB 0x1c8
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sti                                       ; fb
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe near 070d9h                          ; 0f 87 2f 00
+    movzx bx, al                              ; 0f b6 d8
+    add bx, bx                                ; 01 db
+    jmp word [cs:bx+0708dh]                   ; 2e ff a7 8d 70
+    cli                                       ; fa
+    mov bx, 0046eh                            ; bb 6e 04
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov bx, 0046ch                            ; bb 6c 04
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    mov bx, 00470h                            ; bb 70 04
+    mov al, byte [es:bx]                      ; 26 8a 07
+    mov byte [bp+012h], al                    ; 88 46 12
+    mov byte [es:bx], 000h                    ; 26 c6 07 00
+    sti                                       ; fb
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    cli                                       ; fa
+    mov bx, 0046eh                            ; bb 6e 04
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    mov word [es:bx], ax                      ; 26 89 07
+    mov bx, 0046ch                            ; bb 6c 04
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:bx], ax                      ; 26 89 07
+    mov bx, 00470h                            ; bb 70 04
+    mov byte [es:bx], 000h                    ; 26 c6 07 00
+    sti                                       ; fb
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp short 070d9h                          ; eb d7
+    call 06fbeh                               ; e8 b9 fe
+    test ax, ax                               ; 85 c0
+    je short 0710bh                           ; 74 02
+    jmp short 070d9h                          ; eb ce
+    xor ax, ax                                ; 31 c0
+    call 016ach                               ; e8 9c a5
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    mov ax, strict word 00002h                ; b8 02 00
+    call 016ach                               ; e8 93 a5
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov ax, strict word 00004h                ; b8 04 00
+    call 016ach                               ; e8 8a a5
+    mov bl, al                                ; 88 c3
+    mov byte [bp+011h], al                    ; 88 46 11
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 7f a5
+    and AL, strict byte 001h                  ; 24 01
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    jmp short 07179h                          ; eb 45
+    call 06fbeh                               ; e8 87 fe
+    test ax, ax                               ; 85 c0
+    je short 0713eh                           ; 74 03
+    call 06f96h                               ; e8 58 fe
+    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
+    xor ax, ax                                ; 31 c0
+    call 016c9h                               ; e8 82 a5
+    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
+    mov ax, strict word 00002h                ; b8 02 00
+    call 016c9h                               ; e8 78 a5
+    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
+    mov ax, strict word 00004h                ; b8 04 00
+    call 016c9h                               ; e8 6e a5
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 4b a5
+    mov bl, al                                ; 88 c3
+    and bl, 060h                              ; 80 e3 60
+    or bl, 002h                               ; 80 cb 02
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    and AL, strict byte 001h                  ; 24 01
+    or bl, al                                 ; 08 c3
+    movzx dx, bl                              ; 0f b6 d3
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 50 a5
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov byte [bp+012h], bl                    ; 88 5e 12
+    jmp near 070d9h                           ; e9 56 ff
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    call 06fbeh                               ; e8 34 fe
+    test ax, ax                               ; 85 c0
+    je short 07191h                           ; 74 03
+    jmp near 070d9h                           ; e9 48 ff
+    mov ax, strict word 00009h                ; b8 09 00
+    call 016ach                               ; e8 15 a5
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov ax, strict word 00008h                ; b8 08 00
+    call 016ach                               ; e8 0c a5
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    mov ax, strict word 00007h                ; b8 07 00
+    call 016ach                               ; e8 03 a5
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    mov ax, strict word 00032h                ; b8 32 00
+    call 016ach                               ; e8 fa a4
+    mov byte [bp+011h], al                    ; 88 46 11
+    mov byte [bp+012h], al                    ; 88 46 12
+    jmp near 070d9h                           ; e9 1e ff
+    call 06fbeh                               ; e8 00 fe
+    test ax, ax                               ; 85 c0
+    je short 071c8h                           ; 74 06
+    call 06f96h                               ; e8 d1 fd
+    jmp near 070d9h                           ; e9 11 ff
+    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
+    mov ax, strict word 00009h                ; b8 09 00
+    call 016c9h                               ; e8 f7 a4
+    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
+    mov ax, strict word 00008h                ; b8 08 00
+    call 016c9h                               ; e8 ed a4
+    movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
+    mov ax, strict word 00007h                ; b8 07 00
+    call 016c9h                               ; e8 e3 a4
+    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
+    mov ax, strict word 00032h                ; b8 32 00
+    call 016c9h                               ; e8 d9 a4
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 b6 a4
+    mov bl, al                                ; 88 c3
+    and bl, 07fh                              ; 80 e3 7f
+    jmp near 07170h                           ; e9 72 ff
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 a8 a4
+    mov bl, al                                ; 88 c3
+    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
+    test AL, strict byte 020h                 ; a8 20
+    je short 07212h                           ; 74 03
+    jmp near 070d9h                           ; e9 c7 fe
+    call 06fbeh                               ; e8 a9 fd
+    test ax, ax                               ; 85 c0
+    je short 0721ch                           ; 74 03
+    call 06f96h                               ; e8 7a fd
+    movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
+    mov ax, strict word 00001h                ; b8 01 00
+    call 016c9h                               ; e8 a3 a4
+    movzx dx, byte [bp+010h]                  ; 0f b6 56 10
+    mov ax, strict word 00003h                ; b8 03 00
+    call 016c9h                               ; e8 99 a4
+    movzx dx, byte [bp+011h]                  ; 0f b6 56 11
+    mov ax, strict word 00005h                ; b8 05 00
+    call 016c9h                               ; e8 8f a4
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 05fh                  ; 24 5f
+    or AL, strict byte 020h                   ; 0c 20
+    movzx dx, al                              ; 0f b6 d0
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 77 a4
+    jmp near 070d9h                           ; e9 84 fe
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016ach                               ; e8 51 a4
+    mov bl, al                                ; 88 c3
+    and AL, strict byte 057h                  ; 24 57
+    movzx dx, al                              ; 0f b6 d0
+    jmp near 07173h                           ; e9 0e ff
+send_to_mouse_ctrl_:                         ; 0xf7265 LB 0x34
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 07284h                           ; 74 0e
+    push 008eeh                               ; 68 ee 08
+    push 01168h                               ; 68 68 11
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 f1 a6
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov AL, strict byte 0d4h                  ; b0 d4
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    xor al, bl                                ; 30 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_mouse_data_:                             ; 0xf7299 LB 0x5c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov es, dx                                ; 8e c2
+    mov cx, 02710h                            ; b9 10 27
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00021h                ; 25 21 00
+    cmp ax, strict word 00021h                ; 3d 21 00
+    je short 072dbh                           ; 74 27
+    test cx, cx                               ; 85 c9
+    je short 072dbh                           ; 74 23
+    mov dx, strict word 00061h                ; ba 61 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 010h                  ; 24 10
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov dx, strict word 00061h                ; ba 61 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, ax                                ; 89 c2
+    xor dh, ah                                ; 30 e6
+    and dl, 010h                              ; 80 e2 10
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    cmp dx, ax                                ; 39 c2
+    je short 072c3h                           ; 74 eb
+    dec cx                                    ; 49
+    jmp short 072a6h                          ; eb cb
+    test cx, cx                               ; 85 c9
+    jne short 072e3h                          ; 75 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 072eeh                          ; eb 0b
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [es:bx], al                      ; 26 88 07
+    xor al, al                                ; 30 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_kbd_command_byte_:                       ; 0xf72f5 LB 0x32
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 07314h                           ; 74 0e
+    push 008f8h                               ; 68 f8 08
+    push 01168h                               ; 68 68 11
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 61 a6
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int74_function:                             ; 0xf7327 LB 0xca
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 36 a3
+    mov cx, ax                                ; 89 c1
+    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 021h                  ; 24 21
+    cmp AL, strict byte 021h                  ; 3c 21
+    jne near 073ddh                           ; 0f 85 92 00
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 f5 a2
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 ea a2
+    mov byte [bp-008h], al                    ; 88 46 f8
+    test AL, strict byte 080h                 ; a8 80
+    je short 073ddh                           ; 74 70
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    and AL, strict byte 007h                  ; 24 07
+    mov byte [bp-002h], al                    ; 88 46 fe
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 007h                  ; 24 07
+    mov byte [bp-004h], al                    ; 88 46 fc
+    xor bh, bh                                ; 30 ff
+    movzx dx, al                              ; 0f b6 d0
+    add dx, strict byte 00028h                ; 83 c2 28
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 d4 a2
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    cmp al, byte [bp-002h]                    ; 3a 46 fe
+    jc short 073ceh                           ; 72 3c
+    mov dx, strict word 00028h                ; ba 28 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 b6 a2
+    xor ah, ah                                ; 30 e4
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov dx, strict word 00029h                ; ba 29 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 a9 a2
+    xor ah, ah                                ; 30 e4
+    mov word [bp+00ah], ax                    ; 89 46 0a
+    mov dx, strict word 0002ah                ; ba 2a 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 9c a2
+    xor ah, ah                                ; 30 e4
+    mov word [bp+008h], ax                    ; 89 46 08
+    xor al, al                                ; 30 c0
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov byte [bp-006h], ah                    ; 88 66 fa
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 073d1h                           ; 74 0a
+    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
+    jmp short 073d1h                          ; eb 03
+    inc byte [bp-006h]                        ; fe 46 fa
+    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 81 a2
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    xor ax, 0ab74h                            ; 35 74 ab
+    je short 07414h                           ; 74 2e
+    jne short 073a7h                          ; 75 bf
+    jne short 07417h                          ; 75 2d
+    jbe short 0736dh                          ; 76 81
+    je short 07443h                           ; 74 55
+    jbe short 0740ah                          ; 76 1a
+    db  077h
+_int15_function_mouse:                       ; 0xf73f1 LB 0x38b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 6b a2
+    mov cx, ax                                ; 89 c1
+    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
+    jbe short 07414h                          ; 76 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    jmp near 07776h                           ; e9 62 03
+    mov ax, strict word 00065h                ; b8 65 00
+    call 072f5h                               ; e8 db fe
+    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe near 0775dh                          ; 0f 87 32 03
+    movzx si, al                              ; 0f b6 f0
+    add si, si                                ; 01 f6
+    jmp word [cs:si+073e1h]                   ; 2e ff a4 e1 73
+    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
+    jnbe near 07768h                          ; 0f 87 2b 03
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 0b a2
+    test AL, strict byte 080h                 ; a8 80
+    jne short 07454h                          ; 75 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 005h                  ; c6 46 13 05
+    jmp near 07770h                           ; e9 1c 03
+    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
+    db  00fh, 094h, 0c0h
+    ; sete al                                   ; 0f 94 c0
+    add AL, strict byte 0f4h                  ; 04 f4
+    xor ah, ah                                ; 30 e4
+    call 07265h                               ; e8 03 fe
+    test al, al                               ; 84 c0
+    jne near 076f6h                           ; 0f 85 8e 02
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 29 fe
+    test al, al                               ; 84 c0
+    je near 07770h                            ; 0f 84 fa 02
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    jne near 076f6h                           ; 0f 85 78 02
+    jmp near 07770h                           ; e9 ef 02
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 0748ch                           ; 72 04
+    cmp AL, strict byte 008h                  ; 3c 08
+    jbe short 0748fh                          ; 76 03
+    jmp near 07622h                           ; e9 93 01
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 b9 a1
+    mov ah, byte [bp+00dh]                    ; 8a 66 0d
+    db  0feh, 0cch
+    ; dec ah                                    ; fe cc
+    and AL, strict byte 0f8h                  ; 24 f8
+    or al, ah                                 ; 08 e0
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 b3 a1
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 9d a1
+    and AL, strict byte 0f8h                  ; 24 f8
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 9e a1
+    mov ax, 000ffh                            ; b8 ff 00
+    call 07265h                               ; e8 9f fd
+    test al, al                               ; 84 c0
+    jne near 076f6h                           ; 0f 85 2a 02
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 07299h                               ; e8 c5 fd
+    mov cl, al                                ; 88 c1
+    cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
+    jne short 074e7h                          ; 75 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 004h                  ; c6 46 13 04
+    jmp near 07770h                           ; e9 89 02
+    cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
+    je short 074fdh                           ; 74 10
+    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
+    push ax                                   ; 50
+    push 00903h                               ; 68 03 09
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 78 a4
+    add sp, strict byte 00006h                ; 83 c4 06
+    test cl, cl                               ; 84 c9
+    jne near 076f6h                           ; 0f 85 f3 01
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 8e fd
+    test al, al                               ; 84 c0
+    jne near 076f6h                           ; 0f 85 e5 01
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 07299h                               ; e8 80 fd
+    test al, al                               ; 84 c0
+    jne near 076f6h                           ; 0f 85 d7 01
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp+00ch], al                    ; 88 46 0c
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp+00dh], al                    ; 88 46 0d
+    jmp near 07770h                           ; e9 42 02
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 07545h                           ; 72 10
+    jbe short 07563h                          ; 76 2c
+    cmp AL, strict byte 006h                  ; 3c 06
+    je short 07575h                           ; 74 3a
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0756fh                           ; 74 30
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 07569h                           ; 74 26
+    jmp short 0757bh                          ; eb 36
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 0755dh                           ; 74 14
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 07557h                           ; 74 0a
+    test al, al                               ; 84 c0
+    jne short 0757bh                          ; 75 2a
+    mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
+    jmp short 0757fh                          ; eb 28
+    mov byte [bp-008h], 014h                  ; c6 46 f8 14
+    jmp short 0757fh                          ; eb 22
+    mov byte [bp-008h], 028h                  ; c6 46 f8 28
+    jmp short 0757fh                          ; eb 1c
+    mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
+    jmp short 0757fh                          ; eb 16
+    mov byte [bp-008h], 050h                  ; c6 46 f8 50
+    jmp short 0757fh                          ; eb 10
+    mov byte [bp-008h], 064h                  ; c6 46 f8 64
+    jmp short 0757fh                          ; eb 0a
+    mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
+    jmp short 0757fh                          ; eb 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jbe short 075b4h                          ; 76 2f
+    mov ax, 000f3h                            ; b8 f3 00
+    call 07265h                               ; e8 da fc
+    test al, al                               ; 84 c0
+    jne short 075a9h                          ; 75 1a
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 07299h                               ; e8 02 fd
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    call 07265h                               ; e8 c7 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 07299h                               ; e8 f3 fc
+    jmp near 07770h                           ; e9 c7 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 07770h                           ; e9 bc 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 002h                  ; c6 46 13 02
+    jmp near 07770h                           ; e9 b1 01
+    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
+    jnc short 07622h                          ; 73 5d
+    mov ax, 000e8h                            ; b8 e8 00
+    call 07265h                               ; e8 9a fc
+    test al, al                               ; 84 c0
+    jne short 07617h                          ; 75 48
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 c2 fc
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 075edh                           ; 74 10
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 0092eh                               ; 68 2e 09
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 88 a3
+    add sp, strict byte 00006h                ; 83 c4 06
+    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
+    call 07265h                               ; e8 71 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 9d fc
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je near 07770h                            ; 0f 84 6c 01
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 0092eh                               ; 68 2e 09
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 61 a3
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 07770h                           ; e9 59 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 07770h                           ; e9 4e 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 002h                  ; c6 46 13 02
+    jmp near 07770h                           ; e9 43 01
+    mov ax, 000f2h                            ; b8 f2 00
+    call 07265h                               ; e8 32 fc
+    test al, al                               ; 84 c0
+    jne short 0764ah                          ; 75 13
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 5a fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 07299h                               ; e8 52 fc
+    jmp near 07525h                           ; e9 db fe
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 07770h                           ; e9 1b 01
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    test al, al                               ; 84 c0
+    jbe short 07663h                          ; 76 07
+    cmp AL, strict byte 002h                  ; 3c 02
+    jbe short 076cch                          ; 76 6c
+    jmp near 07700h                           ; e9 9d 00
+    mov ax, 000e9h                            ; b8 e9 00
+    call 07265h                               ; e8 fc fb
+    test al, al                               ; 84 c0
+    jne near 076f6h                           ; 0f 85 87 00
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 22 fc
+    mov cl, al                                ; 88 c1
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 0768fh                           ; 74 10
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 0092eh                               ; 68 2e 09
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 e6 a2
+    add sp, strict byte 00006h                ; 83 c4 06
+    test cl, cl                               ; 84 c9
+    jne short 076f6h                          ; 75 63
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 fe fb
+    test al, al                               ; 84 c0
+    jne short 076f6h                          ; 75 57
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 07299h                               ; e8 f2 fb
+    test al, al                               ; 84 c0
+    jne short 076f6h                          ; 75 4b
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 07299h                               ; e8 e6 fb
+    test al, al                               ; 84 c0
+    jne short 076f6h                          ; 75 3f
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp+00ch], al                    ; 88 46 0c
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    jmp near 07770h                           ; e9 a4 00
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 076d5h                          ; 75 05
+    mov ax, 000e6h                            ; b8 e6 00
+    jmp short 076d8h                          ; eb 03
+    mov ax, 000e7h                            ; b8 e7 00
+    call 07265h                               ; e8 8a fb
+    mov cl, al                                ; 88 c1
+    test cl, cl                               ; 84 c9
+    jne short 076f0h                          ; 75 0f
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 07299h                               ; e8 b0 fb
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    db  00fh, 095h, 0c1h
+    ; setne cl                                  ; 0f 95 c1
+    test cl, cl                               ; 84 c9
+    je near 07770h                            ; 0f 84 7a 00
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp short 07770h                          ; eb 70
+    movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
+    push ax                                   ; 50
+    push 0095ah                               ; 68 5a 09
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 65 a2
+    add sp, strict byte 00006h                ; 83 c4 06
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    jmp short 07770h                          ; eb 56
+    mov si, word [bp+00ch]                    ; 8b 76 0c
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00022h                ; ba 22 00
+    mov ax, cx                                ; 89 c8
+    call 0167ah                               ; e8 53 9f
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    mov dx, strict word 00024h                ; ba 24 00
+    mov ax, cx                                ; 89 c8
+    call 0167ah                               ; e8 48 9f
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01650h                               ; e8 16 9f
+    mov ah, al                                ; 88 c4
+    test si, si                               ; 85 f6
+    jne short 0774eh                          ; 75 0e
+    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
+    jne short 0774eh                          ; 75 08
+    test AL, strict byte 080h                 ; a8 80
+    je short 07750h                           ; 74 06
+    and AL, strict byte 07fh                  ; 24 7f
+    jmp short 07750h                          ; eb 02
+    or AL, strict byte 080h                   ; 0c 80
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 0165eh                               ; e8 03 9f
+    jmp short 07770h                          ; eb 13
+    push 00974h                               ; 68 74 09
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 0d a2
+    add sp, strict byte 00004h                ; 83 c4 04
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    mov ax, strict word 00047h                ; b8 47 00
+    call 072f5h                               ; e8 7f fb
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int17_function:                             ; 0xf777c LB 0xb3
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push ax                                   ; 50
+    sti                                       ; fb
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, dx                                ; 01 d2
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 dc 9e
+    mov bx, ax                                ; 89 c3
+    mov si, ax                                ; 89 c6
+    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
+    jnc near 07825h                           ; 0f 83 89 00
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jnc near 07825h                           ; 0f 83 7f 00
+    test bx, bx                               ; 85 db
+    jbe near 07825h                           ; 0f 86 79 00
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00078h                ; 83 c2 78
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 99 9e
+    movzx cx, al                              ; 0f b6 c8
+    sal cx, 008h                              ; c1 e1 08
+    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
+    jne short 077f0h                          ; 75 2d
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-004h], ax                    ; 89 46 fc
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    or AL, strict byte 001h                   ; 0c 01
+    out DX, AL                                ; ee
+    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    lea dx, [si+001h]                         ; 8d 54 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 040h                 ; a8 40
+    je short 077f0h                           ; 74 07
+    test cx, cx                               ; 85 c9
+    je short 077f0h                           ; 74 03
+    dec cx                                    ; 49
+    jmp short 077dfh                          ; eb ef
+    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
+    jne short 0780ch                          ; 75 16
+    lea dx, [si+002h]                         ; 8d 54 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-004h], ax                    ; 89 46 fc
+    movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
+    and AL, strict byte 0fbh                  ; 24 fb
+    out DX, AL                                ; ee
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    or AL, strict byte 004h                   ; 0c 04
+    out DX, AL                                ; ee
+    lea dx, [si+001h]                         ; 8d 54 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor AL, strict byte 048h                  ; 34 48
+    mov byte [bp+013h], al                    ; 88 46 13
+    test cx, cx                               ; 85 c9
+    jne short 0781fh                          ; 75 04
+    or byte [bp+013h], 001h                   ; 80 4e 13 01
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp short 07829h                          ; eb 04
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+wait_:                                       ; 0xf782f LB 0xb2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-00ah], 000h                  ; c6 46 f6 00
+    pushfw                                    ; 9c
+    pop ax                                    ; 58
+    mov word [bp-010h], ax                    ; 89 46 f0
+    sti                                       ; fb
+    xor cx, cx                                ; 31 c9
+    mov dx, 0046ch                            ; ba 6c 04
+    xor ax, ax                                ; 31 c0
+    call 01688h                               ; e8 36 9e
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov bx, dx                                ; 89 d3
+    hlt                                       ; f4
+    mov dx, 0046ch                            ; ba 6c 04
+    xor ax, ax                                ; 31 c0
+    call 01688h                               ; e8 28 9e
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov di, dx                                ; 89 d7
+    cmp dx, bx                                ; 39 da
+    jnbe short 07870h                         ; 77 07
+    jne short 07877h                          ; 75 0c
+    cmp ax, word [bp-00eh]                    ; 3b 46 f2
+    jbe short 07877h                          ; 76 07
+    sub ax, word [bp-00eh]                    ; 2b 46 f2
+    sbb dx, bx                                ; 19 da
+    jmp short 07882h                          ; eb 0b
+    cmp dx, bx                                ; 39 da
+    jc short 07882h                           ; 72 07
+    jne short 07886h                          ; 75 09
+    cmp ax, word [bp-00eh]                    ; 3b 46 f2
+    jnc short 07886h                          ; 73 04
+    sub si, ax                                ; 29 c6
+    sbb cx, dx                                ; 19 d1
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov bx, di                                ; 89 fb
+    mov ax, 00100h                            ; b8 00 01
+    int 016h                                  ; cd 16
+    je near 0789ch                            ; 0f 84 05 00
+    mov AL, strict byte 001h                  ; b0 01
+    jmp near 0789eh                           ; e9 02 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    test al, al                               ; 84 c0
+    je short 078c6h                           ; 74 24
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    int 016h                                  ; cd 16
+    xchg ah, al                               ; 86 c4
+    mov dl, al                                ; 88 c2
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    movzx ax, dl                              ; 0f b6 c2
+    push ax                                   ; 50
+    push 00996h                               ; 68 96 09
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 b9 a0
+    add sp, strict byte 00006h                ; 83 c4 06
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 078c6h                           ; 74 04
+    mov al, dl                                ; 88 d0
+    jmp short 078d8h                          ; eb 12
+    test cx, cx                               ; 85 c9
+    jnle short 07857h                         ; 7f 8d
+    jne short 078d0h                          ; 75 04
+    test si, si                               ; 85 f6
+    jnbe short 07857h                         ; 77 87
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    push ax                                   ; 50
+    popfw                                     ; 9d
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_logo_byte_:                             ; 0xf78e1 LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_logo_word_:                             ; 0xf78f7 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+print_detected_harddisks_:                   ; 0xf790b LB 0x130
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 4e 9d
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    mov dx, 00304h                            ; ba 04 03
+    call 01650h                               ; e8 22 9d
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor bl, bl                                ; 30 db
+    cmp bl, byte [bp-00eh]                    ; 3a 5e f2
+    jnc near 07a0dh                           ; 0f 83 d3 00
+    movzx dx, bl                              ; 0f b6 d3
+    add dx, 00305h                            ; 81 c2 05 03
+    mov ax, si                                ; 89 f0
+    call 01650h                               ; e8 0a 9d
+    mov bh, al                                ; 88 c7
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jc short 07970h                           ; 72 24
+    test cl, cl                               ; 84 c9
+    jne short 0795dh                          ; 75 0d
+    push 009a7h                               ; 68 a7 09
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 1a a0
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CL, strict byte 001h                  ; b1 01
+    movzx ax, bl                              ; 0f b6 c3
+    inc ax                                    ; 40
+    push ax                                   ; 50
+    push 009bch                               ; 68 bc 09
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 08 a0
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 07a08h                           ; e9 98 00
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 07987h                           ; 72 13
+    test ch, ch                               ; 84 ed
+    jne short 07985h                          ; 75 0d
+    push 009cfh                               ; 68 cf 09
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 f2 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CH, strict byte 001h                  ; b5 01
+    jmp short 0795dh                          ; eb d6
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc short 079a2h                          ; 73 17
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 079a2h                          ; 75 11
+    push 009e4h                               ; 68 e4 09
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 d9 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    jmp short 079b8h                          ; eb 16
+    cmp bh, 004h                              ; 80 ff 04
+    jc short 079b8h                           ; 72 11
+    test cl, cl                               ; 84 c9
+    jne short 079b8h                          ; 75 0d
+    push 009f6h                               ; 68 f6 09
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 bf 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CL, strict byte 001h                  ; b1 01
+    movzx ax, bl                              ; 0f b6 c3
+    inc ax                                    ; 40
+    push ax                                   ; 50
+    push 00a0ah                               ; 68 0a 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 ad 9f
+    add sp, strict byte 00006h                ; 83 c4 06
+    cmp bh, 004h                              ; 80 ff 04
+    jc short 079d0h                           ; 72 03
+    sub bh, 004h                              ; 80 ef 04
+    movzx ax, bh                              ; 0f b6 c7
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    test ax, ax                               ; 85 c0
+    je short 079e1h                           ; 74 05
+    push 00a14h                               ; 68 14 0a
+    jmp short 079e4h                          ; eb 03
+    push 00a1fh                               ; 68 1f 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 89 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    movzx ax, bh                              ; 0f b6 c7
+    mov di, strict word 00002h                ; bf 02 00
+    cwd                                       ; 99
+    idiv di                                   ; f7 ff
+    test dx, dx                               ; 85 d2
+    je short 079feh                           ; 74 05
+    push 00a28h                               ; 68 28 0a
+    jmp short 07a01h                          ; eb 03
+    push 00a2eh                               ; 68 2e 0a
+    push di                                   ; 57
+    call 01972h                               ; e8 6d 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    jmp near 07933h                           ; e9 26 ff
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07a26h                          ; 75 13
+    test cl, cl                               ; 84 c9
+    jne short 07a26h                          ; 75 0f
+    test ch, ch                               ; 84 ed
+    jne short 07a26h                          ; 75 0b
+    push 00a35h                               ; 68 35 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 4f 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    push 00a49h                               ; 68 49 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 44 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_boot_drive_:                             ; 0xf7a3b LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 21 9c
+    mov dx, 00304h                            ; ba 04 03
+    call 01650h                               ; e8 ff 9b
+    sub bl, 002h                              ; 80 eb 02
+    cmp bl, al                                ; 38 c3
+    jc short 07a5ah                           ; 72 02
+    mov BL, strict byte 0ffh                  ; b3 ff
+    mov al, bl                                ; 88 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+show_logo_:                                  ; 0xf7a63 LB 0x224
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 f5 9b
+    mov si, ax                                ; 89 c6
+    xor cl, cl                                ; 30 c9
+    xor dx, dx                                ; 31 d2
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 0d3h                  ; b0 d3
+    out strict byte 040h, AL                  ; e6 40
+    mov AL, strict byte 048h                  ; b0 48
+    out strict byte 040h, AL                  ; e6 40
+    movzx ax, dl                              ; 0f b6 c2
+    call 078f7h                               ; e8 68 fe
+    cmp ax, 066bbh                            ; 3d bb 66
+    jne near 07b67h                           ; 0f 85 d1 00
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    lea di, [bp-016h]                         ; 8d 7e ea
+    mov ax, 04f03h                            ; b8 03 4f
+    int 010h                                  ; cd 10
+    mov word [es:di], bx                      ; 26 89 1d
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    jne near 07b67h                           ; 0f 85 bd 00
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 004h                  ; 04 04
+    xor ah, ah                                ; 30 e4
+    call 078e1h                               ; e8 2e fe
+    mov ch, al                                ; 88 c5
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 005h                  ; 04 05
+    xor ah, ah                                ; 30 e4
+    call 078e1h                               ; e8 20 fe
+    mov dh, al                                ; 88 c6
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 078f7h                               ; e8 28 fe
+    mov bx, ax                                ; 89 c3
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 006h                  ; 04 06
+    xor ah, ah                                ; 30 e4
+    call 078e1h                               ; e8 04 fe
+    mov byte [bp-012h], al                    ; 88 46 ee
+    test ch, ch                               ; 84 ed
+    jne short 07aeeh                          ; 75 0a
+    test dh, dh                               ; 84 f6
+    jne short 07aeeh                          ; 75 06
+    test bx, bx                               ; 85 db
+    je near 07b67h                            ; 0f 84 79 00
+    mov bx, 00142h                            ; bb 42 01
+    mov ax, 04f02h                            ; b8 02 4f
+    int 010h                                  ; cd 10
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 07b1fh                           ; 74 23
+    xor bx, bx                                ; 31 db
+    jmp short 07b06h                          ; eb 06
+    inc bx                                    ; 43
+    cmp bx, strict byte 00010h                ; 83 fb 10
+    jnbe short 07b26h                         ; 77 20
+    mov ax, bx                                ; 89 d8
+    or ah, 002h                               ; 80 cc 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 0782fh                               ; e8 18 fd
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07b00h                          ; 75 e5
+    mov CL, strict byte 001h                  ; b1 01
+    jmp short 07b26h                          ; eb 07
+    mov ax, 00210h                            ; b8 10 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    test cl, cl                               ; 84 c9
+    jne short 07b3ch                          ; 75 12
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    shr ax, 004h                              ; c1 e8 04
+    mov dx, strict word 00001h                ; ba 01 00
+    call 0782fh                               ; e8 f9 fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07b3ch                          ; 75 02
+    mov CL, strict byte 001h                  ; b1 01
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    je short 07b67h                           ; 74 25
+    test cl, cl                               ; 84 c9
+    jne short 07b67h                          ; 75 21
+    mov bx, strict word 00010h                ; bb 10 00
+    jmp short 07b50h                          ; eb 05
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 07b67h                          ; 76 17
+    mov ax, bx                                ; 89 d8
+    or ah, 002h                               ; 80 cc 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 0782fh                               ; e8 ce fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07b4bh                          ; 75 e6
+    mov CL, strict byte 001h                  ; b1 01
+    xor bx, bx                                ; 31 db
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 ed 9a
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    je near 07c68h                            ; 0f 84 e9 00
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07bb5h                          ; 75 30
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    jne short 07bb5h                          ; 75 2a
+    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
+    jne short 07bb5h                          ; 75 24
+    cmp byte [bp-012h], 002h                  ; 80 7e ee 02
+    jne short 07ba2h                          ; 75 0b
+    push 00a4bh                               ; 68 4b 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 d3 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    test cl, cl                               ; 84 c9
+    jne short 07bb5h                          ; 75 0f
+    mov dx, strict word 00001h                ; ba 01 00
+    mov ax, 000c0h                            ; b8 c0 00
+    call 0782fh                               ; e8 80 fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07bb5h                          ; 75 02
+    mov CL, strict byte 001h                  ; b1 01
+    test cl, cl                               ; 84 c9
+    je near 07c68h                            ; 0f 84 ad 00
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    mov ax, 00100h                            ; b8 00 01
+    mov cx, 01000h                            ; b9 00 10
+    int 010h                                  ; cd 10
+    mov ax, 00700h                            ; b8 00 07
+    mov BH, strict byte 007h                  ; b7 07
+    db  033h, 0c9h
+    ; xor cx, cx                                ; 33 c9
+    mov dx, 0184fh                            ; ba 4f 18
+    int 010h                                  ; cd 10
+    mov ax, 00200h                            ; b8 00 02
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    int 010h                                  ; cd 10
+    push 00a6dh                               ; 68 6d 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 8e 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    call 0790bh                               ; e8 21 fd
+    push 00ab1h                               ; 68 b1 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 80 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov dx, strict word 00001h                ; ba 01 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0782fh                               ; e8 31 fc
+    mov bl, al                                ; 88 c3
+    test al, al                               ; 84 c0
+    je short 07bf5h                           ; 74 f1
+    cmp AL, strict byte 030h                  ; 3c 30
+    je short 07c56h                           ; 74 4e
+    cmp bl, 002h                              ; 80 fb 02
+    jc short 07c2fh                           ; 72 22
+    cmp bl, 009h                              ; 80 fb 09
+    jnbe short 07c2fh                         ; 77 1d
+    movzx ax, bl                              ; 0f b6 c3
+    call 07a3bh                               ; e8 23 fe
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 07c1eh                          ; 75 02
+    jmp short 07bf5h                          ; eb d7
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, 0037ch                            ; ba 7c 03
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 35 9a
+    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
+    jmp short 07c56h                          ; eb 27
+    cmp bl, 02eh                              ; 80 fb 2e
+    je short 07c44h                           ; 74 10
+    cmp bl, 026h                              ; 80 fb 26
+    je short 07c4ah                           ; 74 11
+    cmp bl, 021h                              ; 80 fb 21
+    jne short 07c50h                          ; 75 12
+    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
+    jmp short 07c56h                          ; eb 12
+    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
+    jmp short 07c56h                          ; eb 0c
+    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
+    jmp short 07c56h                          ; eb 06
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 07bf5h                           ; 74 9f
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, si                                ; 89 f0
+    call 0165eh                               ; e8 fc 99
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    mov ds, ax                                ; 8e d8
+    call 0edbfh                               ; e8 45 71
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+delay_boot_:                                 ; 0xf7c87 LB 0x67
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    test ax, ax                               ; 85 c0
+    je short 07ce7h                           ; 74 55
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 0d3h                  ; b0 d3
+    out strict byte 040h, AL                  ; e6 40
+    mov AL, strict byte 048h                  ; b0 48
+    out strict byte 040h, AL                  ; e6 40
+    push dx                                   ; 52
+    push 00afbh                               ; 68 fb 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 cb 9c
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov bx, dx                                ; 89 d3
+    test bx, bx                               ; 85 db
+    jbe short 07cc7h                          ; 76 17
+    push bx                                   ; 53
+    push 00b19h                               ; 68 19 0b
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 b9 9c
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0782fh                               ; e8 6b fb
+    dec bx                                    ; 4b
+    jmp short 07cach                          ; eb e5
+    push 00a49h                               ; 68 49 0a
+    push strict byte 00002h                   ; 6a 02
+    call 01972h                               ; e8 a3 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    mov ds, ax                                ; 8e d8
+    call 0edbfh                               ; e8 db 70
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+scsi_cmd_data_in_:                           ; 0xf7cee LB 0xd5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07d04h                          ; 75 f7
+    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
+    jne short 07d17h                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 07d1bh                          ; eb 04
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    mov di, ax                                ; 89 c7
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07d25h                               ; e2 fa
+    mov cx, ax                                ; 89 c1
+    and cx, 000f0h                            ; 81 e1 f0 00
+    or cx, di                                 ; 09 f9
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07d4ah                               ; e2 fa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp cx, ax                                ; 39 c1
+    jnc short 07d6bh                          ; 73 0e
+    les di, [bp-00ah]                         ; c4 7e f6
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di]                      ; 26 8a 05
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 07d55h                          ; eb ea
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07d6bh                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 07d86h                           ; 74 0e
+    lea dx, [si+003h]                         ; 8d 54 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov di, strict word 00004h                ; bf 04 00
+    jmp short 07db8h                          ; eb 32
+    lea dx, [si+001h]                         ; 8d 54 01
+    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
+    jne short 07d95h                          ; 75 06
+    cmp bx, 08000h                            ; 81 fb 00 80
+    jbe short 07dafh                          ; 76 1a
+    mov cx, 08000h                            ; b9 00 80
+    les di, [bp+006h]                         ; c4 7e 06
+    rep insb                                  ; f3 6c
+    add bx, 08000h                            ; 81 c3 00 80
+    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 07d86h                          ; eb d7
+    mov cx, bx                                ; 89 d9
+    les di, [bp+006h]                         ; c4 7e 06
+    rep insb                                  ; f3 6c
+    xor di, di                                ; 31 ff
+    mov ax, di                                ; 89 f8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ah                               ; c2 0a 00
+scsi_cmd_data_out_:                          ; 0xf7dc3 LB 0xd5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov di, ax                                ; 89 c7
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07dd9h                          ; 75 f7
+    cmp byte [bp+004h], 010h                  ; 80 7e 04 10
+    jne short 07dech                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 07df0h                          ; eb 04
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07dfah                               ; e2 fa
+    mov cx, ax                                ; 89 c1
+    and cx, 000f0h                            ; 81 e1 f0 00
+    or cx, si                                 ; 09 f1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 001h                  ; b0 01
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 07e1fh                               ; e2 fa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    movzx ax, byte [bp+004h]                  ; 0f b6 46 04
+    cmp cx, ax                                ; 39 c1
+    jnc short 07e40h                          ; 73 0e
+    les si, [bp-00ah]                         ; c4 76 f6
+    add si, cx                                ; 01 ce
+    mov al, byte [es:si]                      ; 26 8a 04
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 07e2ah                          ; eb ea
+    lea dx, [di+001h]                         ; 8d 55 01
+    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
+    jne short 07e4fh                          ; 75 06
+    cmp bx, 08000h                            ; 81 fb 00 80
+    jbe short 07e6ah                          ; 76 1b
+    mov cx, 08000h                            ; b9 00 80
+    les si, [bp+006h]                         ; c4 76 06
+    db  0f3h, 026h, 06eh
+    ; rep es outsb                              ; f3 26 6e
+    add bx, 08000h                            ; 81 c3 00 80
+    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 07e40h                          ; eb d6
+    mov cx, bx                                ; 89 d9
+    les si, [bp+006h]                         ; c4 76 06
+    db  0f3h, 026h, 06eh
+    ; rep es outsb                              ; f3 26 6e
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07e72h                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 07e8dh                           ; 74 0e
+    lea dx, [di+003h]                         ; 8d 55 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 07e8fh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ah                               ; c2 0a 00
+@scsi_read_sectors:                          ; 0xf7e98 LB 0xdb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    sub AL, strict byte 008h                  ; 2c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 07ec6h                          ; 76 13
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    push ax                                   ; 50
+    push 00b1eh                               ; 68 1e 0b
+    push 00b30h                               ; 68 30 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 af 9a
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov word [bp-01ah], 00088h                ; c7 46 e6 88 00
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    sal ax, 002h                              ; c1 e0 02
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
+    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov cx, strict word 00009h                ; b9 09 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 07f2fh                               ; e2 f8
+    push dword [bp-00ah]                      ; 66 ff 76 f6
+    db  066h, 026h, 0ffh, 074h, 008h
+    ; push dword [es:si+008h]                   ; 66 26 ff 74 08
+    push strict byte 00010h                   ; 6a 10
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-01ah]                         ; 8d 5e e6
+    call 07ceeh                               ; e8 a2 fd
+    mov ah, al                                ; 88 c4
+    test al, al                               ; 84 c0
+    jne short 07f67h                          ; 75 15
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    movzx ax, ah                              ; 0f b6 c4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@scsi_write_sectors:                         ; 0xf7f73 LB 0xdb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    sub AL, strict byte 008h                  ; 2c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 07fa1h                          ; 76 13
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    push ax                                   ; 50
+    push 00b4fh                               ; 68 4f 0b
+    push 00b30h                               ; 68 30 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 d4 99
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov word [bp-01ah], 0008ah                ; c7 46 e6 8a 00
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    sal ax, 002h                              ; c1 e0 02
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
+    mov dl, byte [es:bx+0021eh]               ; 26 8a 97 1e 02
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov cx, strict word 00009h                ; b9 09 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 0800ah                               ; e2 f8
+    push dword [bp-00ah]                      ; 66 ff 76 f6
+    db  066h, 026h, 0ffh, 074h, 008h
+    ; push dword [es:si+008h]                   ; 66 26 ff 74 08
+    push strict byte 00010h                   ; 6a 10
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-01ah]                         ; 8d 5e e6
+    call 07dc3h                               ; e8 9c fd
+    mov ah, al                                ; 88 c4
+    test al, al                               ; 84 c0
+    jne short 08042h                          ; 75 15
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    movzx ax, ah                              ; 0f b6 c4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+scsi_cmd_packet_:                            ; 0xf804e LB 0x166
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov di, ax                                ; 89 c7
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ch], bx                    ; 89 5e f4
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 02 96
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 08095h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 b0 98
+    push 00b62h                               ; 68 62 0b
+    push 00b72h                               ; 68 72 0b
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 e6 98
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp near 081a9h                           ; e9 14 01
+    sub di, strict byte 00008h                ; 83 ef 08
+    sal di, 002h                              ; c1 e7 02
+    sub byte [bp-006h], 002h                  ; 80 6e fa 02
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    add di, si                                ; 01 f7
+    mov bx, word [es:di+0021ch]               ; 26 8b 9d 1c 02
+    mov al, byte [es:di+0021eh]               ; 26 8a 85 1e 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 080b1h                          ; 75 f7
+    xor ax, ax                                ; 31 c0
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, word [bp+004h]                    ; 03 56 04
+    adc ax, word [bp+008h]                    ; 13 46 08
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
+    xor di, di                                ; 31 ff
+    add cx, dx                                ; 01 d1
+    mov word [bp-010h], cx                    ; 89 4e f0
+    adc di, ax                                ; 11 c7
+    mov ax, cx                                ; 89 c8
+    mov dx, di                                ; 89 fa
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 080dch                               ; e2 fa
+    and ax, 000f0h                            ; 25 f0 00
+    movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
+    or cx, ax                                 ; 09 c1
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    out DX, AL                                ; ee
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, di                                ; 89 fa
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 08103h                               ; e2 fa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    cmp cx, ax                                ; 39 c1
+    jnc short 08124h                          ; 73 0e
+    les di, [bp-00ch]                         ; c4 7e f4
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di]                      ; 26 8a 05
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 0810eh                          ; eb ea
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 08124h                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 0813fh                           ; 74 0e
+    lea dx, [bx+003h]                         ; 8d 57 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp short 081a9h                          ; eb 6a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    test ax, ax                               ; 85 c0
+    je short 0814eh                           ; 74 08
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov cx, ax                                ; 89 c1
+    in AL, DX                                 ; ec
+    loop 0814bh                               ; e2 fd
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov word [es:si+01ah], ax                 ; 26 89 44 1a
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    lea ax, [bx+001h]                         ; 8d 47 01
+    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
+    jne short 0816fh                          ; 75 07
+    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
+    jbe short 0818ch                          ; 76 1d
+    mov dx, ax                                ; 89 c2
+    mov cx, 08000h                            ; b9 00 80
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insb                                  ; f3 6c
+    add word [bp+006h], 08000h                ; 81 46 06 00 80
+    adc word [bp+008h], strict byte 0ffffh    ; 83 56 08 ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    jmp short 0815fh                          ; eb d3
+    mov dx, ax                                ; 89 c2
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insb                                  ; f3 6c
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
+    je short 081a7h                           ; 74 07
+    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
+    in AL, DX                                 ; ec
+    loop 081a4h                               ; e2 fd
+    xor dx, dx                                ; 31 d2
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+scsi_enumerate_attached_devices_:            ; 0xf81b4 LB 0x482
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 0023ch                            ; 81 ec 3c 02
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 a2 94
+    mov di, 00122h                            ; bf 22 01
+    mov word [bp-02eh], ax                    ; 89 46 d2
+    mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
+    jmp near 085b8h                           ; e9 e0 03
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc near 0862ch                           ; 0f 83 4e 04
+    mov cx, strict word 00010h                ; b9 10 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-046h]                         ; 8d 46 ba
+    call 09e7ah                               ; e8 8f 1c
+    mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
+    mov byte [bp-045h], 010h                  ; c6 46 bb 10
+    mov byte [bp-039h], 020h                  ; c6 46 c7 20
+    push dword 000000020h                     ; 66 6a 20
+    lea dx, [bp-00246h]                       ; 8d 96 ba fd
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00010h                   ; 6a 10
+    movzx dx, byte [bp-01eh]                  ; 0f b6 56 e2
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-046h]                         ; 8d 5e ba
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    call 07ceeh                               ; e8 dc fa
+    test al, al                               ; 84 c0
+    je short 08224h                           ; 74 0e
+    push 00b92h                               ; 68 92 0b
+    push 00bcbh                               ; 68 cb 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 51 97
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
+    mov bx, word [bp-00242h]                  ; 8b 9e be fd
+    mov cx, word [bp-00244h]                  ; 8b 8e bc fd
+    mov dx, word [bp-00246h]                  ; 8b 96 ba fd
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    add dx, strict byte 00001h                ; 83 c2 01
+    mov word [bp-016h], dx                    ; 89 56 ea
+    adc cx, strict byte 00000h                ; 83 d1 00
+    mov word [bp-012h], cx                    ; 89 4e ee
+    adc bx, strict byte 00000h                ; 83 d3 00
+    mov word [bp-030h], bx                    ; 89 5e d0
+    adc ax, strict word 00000h                ; 15 00 00
+    mov word [bp-010h], ax                    ; 89 46 f0
+    movzx ax, byte [bp-0023eh]                ; 0f b6 86 c2 fd
+    sal ax, 008h                              ; c1 e0 08
+    movzx si, byte [bp-0023dh]                ; 0f b6 b6 c3 fd
+    xor bx, bx                                ; 31 db
+    or si, ax                                 ; 09 c6
+    movzx ax, byte [bp-0023ch]                ; 0f b6 86 c4 fd
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 08272h                               ; e2 fa
+    or bx, ax                                 ; 09 c3
+    or dx, si                                 ; 09 f2
+    movzx ax, byte [bp-0023bh]                ; 0f b6 86 c5 fd
+    or bx, ax                                 ; 09 c3
+    mov word [bp-024h], bx                    ; 89 5e dc
+    test dx, dx                               ; 85 d2
+    jne short 08290h                          ; 75 06
+    cmp bx, 00200h                            ; 81 fb 00 02
+    je short 082b0h                           ; 74 20
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 96 96
+    push dx                                   ; 52
+    push word [bp-024h]                       ; ff 76 dc
+    push word [bp-01eh]                       ; ff 76 e2
+    push 00beah                               ; 68 ea 0b
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 c8 96
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 085afh                           ; e9 ff 02
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 082c3h                           ; 72 0c
+    jbe short 082cbh                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 082d3h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 082cfh                           ; 74 0e
+    jmp short 0831ch                          ; eb 59
+    test al, al                               ; 84 c0
+    jne short 0831ch                          ; 75 55
+    mov BL, strict byte 090h                  ; b3 90
+    jmp short 082d5h                          ; eb 0a
+    mov BL, strict byte 098h                  ; b3 98
+    jmp short 082d5h                          ; eb 06
+    mov BL, strict byte 0a0h                  ; b3 a0
+    jmp short 082d5h                          ; eb 02
+    mov BL, strict byte 0a8h                  ; b3 a8
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 007h                  ; 04 07
+    movzx cx, al                              ; 0f b6 c8
+    mov ax, cx                                ; 89 c8
+    call 016ach                               ; e8 cb 93
+    test al, al                               ; 84 c0
+    je short 0831ch                           ; 74 37
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 be 93
+    movzx dx, al                              ; 0f b6 d0
+    sal dx, 008h                              ; c1 e2 08
+    movzx ax, bl                              ; 0f b6 c3
+    call 016ach                               ; e8 b2 93
+    xor ah, ah                                ; 30 e4
+    add ax, dx                                ; 01 d0
+    cwd                                       ; 99
+    mov si, ax                                ; 89 c6
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 a2 93
+    xor ah, ah                                ; 30 e4
+    mov word [bp-034h], ax                    ; 89 46 cc
+    mov ax, cx                                ; 89 c8
+    call 016ach                               ; e8 98 93
+    xor ah, ah                                ; 30 e4
+    mov word [bp-032h], ax                    ; 89 46 ce
+    jmp near 08405h                           ; e9 e9 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov bx, word [bp-030h]                    ; 8b 5e d0
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    mov si, strict word 0000ch                ; be 0c 00
+    call 09e6ah                               ; e8 3c 1b
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-036h], cx                    ; 89 4e ca
+    mov word [bp-020h], dx                    ; 89 56 e0
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    test ax, ax                               ; 85 c0
+    jnbe short 08357h                         ; 77 16
+    jne near 083cah                           ; 0f 85 85 00
+    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
+    jnbe short 08357h                         ; 77 0c
+    jne near 083cah                           ; 0f 85 7b 00
+    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
+    jnbe short 08357h                         ; 77 02
+    jne short 083cah                          ; 75 73
+    mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
+    mov bx, word [bp-030h]                    ; 8b 5e d0
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    mov si, strict word 00006h                ; be 06 00
+    call 09e6ah                               ; e8 fc 1a
+    mov si, word [bp-020h]                    ; 8b 76 e0
+    add si, dx                                ; 01 d6
+    mov word [bp-02ah], si                    ; 89 76 d6
+    mov dx, word [bp-036h]                    ; 8b 56 ca
+    adc dx, cx                                ; 11 ca
+    mov word [bp-028h], dx                    ; 89 56 d8
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    adc dx, bx                                ; 11 da
+    mov word [bp-01ch], dx                    ; 89 56 e4
+    mov dx, word [bp-018h]                    ; 8b 56 e8
+    adc dx, ax                                ; 11 c2
+    mov word [bp-026h], dx                    ; 89 56 da
+    mov ax, dx                                ; 89 d0
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov cx, word [bp-028h]                    ; 8b 4e d8
+    mov dx, si                                ; 89 f2
+    mov si, strict word 00008h                ; be 08 00
+    call 09e6ah                               ; e8 cc 1a
+    mov word [bp-022h], bx                    ; 89 5e de
+    mov word [bp-02ch], cx                    ; 89 4e d4
+    mov word [bp-01ah], dx                    ; 89 56 e6
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov cx, word [bp-028h]                    ; 8b 4e d8
+    mov dx, word [bp-02ah]                    ; 8b 56 d6
+    mov si, strict word 00010h                ; be 10 00
+    call 09e6ah                               ; e8 b1 1a
+    mov si, word [bp-01ah]                    ; 8b 76 e6
+    add si, dx                                ; 01 d6
+    mov dx, word [bp-02ch]                    ; 8b 56 d4
+    adc dx, cx                                ; 11 ca
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    adc ax, bx                                ; 11 d8
+    jmp short 08405h                          ; eb 3b
+    test ax, ax                               ; 85 c0
+    jnbe short 083e0h                         ; 77 12
+    jne short 083eah                          ; 75 1a
+    cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
+    jnbe short 083e0h                         ; 77 0a
+    jne short 083eah                          ; 75 12
+    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
+    jnbe short 083e0h                         ; 77 02
+    jne short 083eah                          ; 75 0a
+    mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
+    jmp short 08401h                          ; eb 17
+    mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
+    mov bx, word [bp-030h]                    ; 8b 5e d0
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    mov si, strict word 0000bh                ; be 0b 00
+    call 09e6ah                               ; e8 69 1a
+    mov si, dx                                ; 89 d6
+    mov dx, cx                                ; 89 ca
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 008h                  ; 04 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    sal ax, 002h                              ; c1 e0 02
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
+    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    db  066h, 026h, 0c7h, 047h, 022h, 004h, 0ffh, 000h, 000h
+    ; mov dword [es:bx+022h], strict dword 00000ff04h ; 66 26 c7 47 22 04 ff 00 00
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov word [es:bx+028h], ax                 ; 26 89 47 28
+    mov byte [es:bx+027h], 001h               ; 26 c6 47 27 01
+    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
+    mov ax, word [bp-032h]                    ; 8b 46 ce
+    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
+    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov word [es:bx+030h], ax                 ; 26 89 47 30
+    mov ax, word [bp-032h]                    ; 8b 46 ce
+    mov word [es:bx+034h], ax                 ; 26 89 47 34
+    test dx, dx                               ; 85 d2
+    jne short 08472h                          ; 75 06
+    cmp si, 00400h                            ; 81 fe 00 04
+    jbe short 08480h                          ; 76 0e
+    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
+    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
+    jmp short 08488h                          ; eb 08
+    mov word [es:bx+02ch], si                 ; 26 89 77 2c
+    mov word [es:bx+032h], si                 ; 26 89 77 32
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 9e 94
+    push word [bp-010h]                       ; ff 76 f0
+    push word [bp-030h]                       ; ff 76 d0
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-016h]                       ; ff 76 ea
+    push dword [bp-034h]                      ; 66 ff 76 cc
+    push dx                                   ; 52
+    push si                                   ; 56
+    push word [bp-01eh]                       ; ff 76 e2
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    push 00c18h                               ; 68 18 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 bd 94
+    add sp, strict byte 00018h                ; 83 c4 18
+    movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    add bx, di                                ; 01 fb
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov word [es:bx+03ch], ax                 ; 26 89 47 3c
+    mov ax, word [bp-030h]                    ; 8b 46 d0
+    mov word [es:bx+03ah], ax                 ; 26 89 47 3a
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:bx+038h], ax                 ; 26 89 47 38
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov word [es:bx+036h], ax                 ; 26 89 47 36
+    mov al, byte [es:di+001e2h]               ; 26 8a 85 e2 01
+    mov ah, byte [bp-00ch]                    ; 8a 66 f4
+    add ah, 008h                              ; 80 c4 08
+    movzx bx, al                              ; 0f b6 d8
+    add bx, di                                ; 01 fb
+    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [es:di+001e2h], al               ; 26 88 85 e2 01
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 4b 91
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 4b 91
+    inc byte [bp-00ch]                        ; fe 46 f4
+    jmp near 085a4h                           ; e9 8b 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 0d 94
+    push word [bp-01eh]                       ; ff 76 e2
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    push ax                                   ; 50
+    push 00c46h                               ; 68 46 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 3e 94
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 008h                  ; 04 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    test byte [bp-00245h], 080h               ; f6 86 bb fd 80
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    sal ax, 002h                              ; c1 e0 02
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
+    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov word [es:bx+022h], 00504h             ; 26 c7 47 22 04 05
+    mov byte [es:bx+024h], dl                 ; 26 88 57 24
+    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
+    mov al, byte [es:di+001f3h]               ; 26 8a 85 f3 01
+    mov ah, byte [bp-00ch]                    ; 8a 66 f4
+    add ah, 008h                              ; 80 c4 08
+    movzx bx, al                              ; 0f b6 d8
+    add bx, di                                ; 01 fb
+    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [es:di+001f3h], al               ; 26 88 85 f3 01
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov byte [es:di+0022ch], al               ; 26 88 85 2c 02
+    inc word [bp-01eh]                        ; ff 46 e2
+    cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
+    jnl short 0862ch                          ; 7d 74
+    mov byte [bp-046h], 012h                  ; c6 46 ba 12
+    xor al, al                                ; 30 c0
+    mov byte [bp-045h], al                    ; 88 46 bb
+    mov byte [bp-044h], al                    ; 88 46 bc
+    mov byte [bp-043h], al                    ; 88 46 bd
+    mov byte [bp-042h], 005h                  ; c6 46 be 05
+    mov byte [bp-041h], al                    ; 88 46 bf
+    push dword 000000005h                     ; 66 6a 05
+    lea dx, [bp-00246h]                       ; 8d 96 ba fd
+    push SS                                   ; 16
+    push dx                                   ; 52
+    push strict byte 00006h                   ; 6a 06
+    movzx dx, byte [bp-01eh]                  ; 0f b6 56 e2
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-046h]                         ; 8d 5e ba
+    mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
+    call 07ceeh                               ; e8 05 f7
+    test al, al                               ; 84 c0
+    je short 085fbh                           ; 74 0e
+    push 00b92h                               ; 68 92 0b
+    push 00bb2h                               ; 68 b2 0b
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 7a 93
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov al, byte [es:di+0022ch]               ; 26 8a 85 2c 02
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
+    jne short 08616h                          ; 75 09
+    test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
+    je near 081d8h                            ; 0f 84 c2 fb
+    test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
+    jne short 085a4h                          ; 75 87
+    mov al, byte [bp-00246h]                  ; 8a 86 ba fd
+    and AL, strict byte 01fh                  ; 24 1f
+    cmp AL, strict byte 005h                  ; 3c 05
+    je near 08519h                            ; 0f 84 f0 fe
+    jmp near 085a4h                           ; e9 78 ff
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_scsi_init:                                  ; 0xf8636 LB 0x66
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 2a 90
+    mov bx, 00122h                            ; bb 22 01
+    mov es, ax                                ; 8e c0
+    mov byte [es:bx+0022ch], 000h             ; 26 c6 87 2c 02 00
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 00432h                            ; ba 32 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 08666h                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 00433h                            ; ba 33 04
+    out DX, AL                                ; ee
+    mov ax, 00430h                            ; b8 30 04
+    call 081b4h                               ; e8 4e fb
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 00436h                            ; ba 36 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 0867fh                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 00437h                            ; ba 37 04
+    out DX, AL                                ; ee
+    mov ax, 00434h                            ; b8 34 04
+    call 081b4h                               ; e8 35 fb
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 0043ah                            ; ba 3a 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 08698h                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 0043bh                            ; ba 3b 04
+    out DX, AL                                ; ee
+    mov ax, 00438h                            ; b8 38 04
+    call 081b4h                               ; e8 1c fb
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_ctrl_extract_bits_:                     ; 0xf869c LB 0x1b
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, bx                                ; 89 de
+    and ax, bx                                ; 21 d8
+    and dx, cx                                ; 21 ca
+    movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
+    jcxz 086b2h                               ; e3 06
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 086ach                               ; e2 fa
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn 00002h                               ; c2 02 00
+ahci_addr_to_phys_:                          ; 0xf86b7 LB 0x1e
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 086c5h                               ; e2 fa
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    pop bp                                    ; 5d
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+ahci_port_cmd_sync_:                         ; 0xf86d5 LB 0x14b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov cx, dx                                ; 89 d1
+    mov al, bl                                ; 88 d8
+    mov es, dx                                ; 8e c2
+    mov ah, byte [es:si+00262h]               ; 26 8a a4 62 02
+    mov byte [bp-008h], ah                    ; 88 66 f8
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    cmp ah, 0ffh                              ; 80 fc ff
+    je near 08818h                            ; 0f 84 20 01
+    movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
+    xor di, di                                ; 31 ff
+    or di, 00080h                             ; 81 cf 80 00
+    xor ah, ah                                ; 30 e4
+    or di, ax                                 ; 09 c7
+    mov word [es:si], di                      ; 26 89 3c
+    mov word [es:si+002h], dx                 ; 26 89 54 02
+    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
+    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
+    lea ax, [si+00080h]                       ; 8d 84 80 00
+    mov dx, cx                                ; 89 ca
+    call 086b7h                               ; e8 96 ff
+    mov es, cx                                ; 8e c1
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
+    sal di, 007h                              ; c1 e7 07
+    lea ax, [di+00118h]                       ; 8d 85 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea si, [bx+004h]                         ; 8d 77 04
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 011h                   ; 0c 11
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [di+00138h]                       ; 8d 85 38 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, strict word 00001h                ; b8 01 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00110h                            ; 05 10 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test dh, 040h                             ; f6 c6 40
+    jne short 087aeh                          ; 75 04
+    test AL, strict byte 001h                 ; a8 01
+    je short 087b2h                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 087b4h                          ; eb 02
+    xor al, al                                ; 30 c0
+    test al, al                               ; 84 c0
+    je short 08782h                           ; 74 ca
+    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
+    sal di, 007h                              ; c1 e7 07
+    lea ax, [di+00110h]                       ; 8d 85 10 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea si, [bx+004h]                         ; 8d 77 04
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [di+00118h]                       ; 8d 85 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_cmd_data_:                              ; 0xf8820 LB 0x262
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    xor di, di                                ; 31 ff
+    mov es, dx                                ; 8e c2
+    mov bx, ax                                ; 89 c3
+    mov ax, word [es:bx+00232h]               ; 26 8b 87 32 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], di                    ; 89 7e f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:bx+010h]                 ; 26 8b 47 10
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov ax, 00080h                            ; b8 80 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09e7ah                               ; e8 1c 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:di+00082h], al               ; 26 88 85 82 00
+    mov byte [es:di+00083h], 000h             ; 26 c6 85 83 00 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00084h], al               ; 26 88 85 84 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00008h                ; be 08 00
+    call 09e6ah                               ; e8 c8 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00010h                ; be 10 00
+    call 09e6ah                               ; e8 a2 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
+    mov byte [es:di+00087h], 040h             ; 26 c6 85 87 00 40
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 09e6ah                               ; e8 76 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00020h                ; be 20 00
+    call 09e6ah                               ; e8 50 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00028h                ; be 28 00
+    call 09e6ah                               ; e8 2a 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
+    mov byte [es:di+0008bh], 000h             ; 26 c6 85 8b 00 00
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov byte [es:di+0008ch], al               ; 26 88 85 8c 00
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [es:di+0008dh], al               ; 26 88 85 8d 00
+    mov word [es:di+00276h], strict word 00010h ; 26 c7 85 76 02 10 00
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    xor dx, dx                                ; 31 d2
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    xor cx, cx                                ; 31 c9
+    call 09e29h                               ; e8 b4 14
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov bx, word [es:bx+008h]                 ; 26 8b 5f 08
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
+    mov ax, 0026ah                            ; b8 6a 02
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09d43h                               ; e8 b2 13
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
+    add ax, strict word 0ffffh                ; 05 ff ff
+    mov dx, word [es:di+00280h]               ; 26 8b 95 80 02
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
+    sal bx, 004h                              ; c1 e3 04
+    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
+    mov word [es:bx+0010eh], dx               ; 26 89 97 0e 01
+    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
+    sal bx, 004h                              ; c1 e3 04
+    mov ax, word [es:di+0027ah]               ; 26 8b 85 7a 02
+    mov dx, word [es:di+0027ch]               ; 26 8b 95 7c 02
+    mov word [es:bx+00100h], ax               ; 26 89 87 00 01
+    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
+    test ax, ax                               ; 85 c0
+    je short 08a1fh                           ; 74 39
+    dec ax                                    ; 48
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
+    sal bx, 004h                              ; c1 e3 04
+    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
+    mov word [es:bx+0010eh], di               ; 26 89 bf 0e 01
+    movzx bx, byte [es:di+00263h]             ; 26 0f b6 9d 63 02
+    sal bx, 004h                              ; c1 e3 04
+    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
+    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
+    mov word [es:bx+00100h], dx               ; 26 89 97 00 01
+    mov word [es:bx+00102h], ax               ; 26 89 87 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 035h                  ; 3c 35
+    jne short 08a2ch                          ; 75 06
+    mov byte [bp-008h], 040h                  ; c6 46 f8 40
+    jmp short 08a43h                          ; eb 17
+    cmp AL, strict byte 0a0h                  ; 3c a0
+    jne short 08a3fh                          ; 75 0f
+    or byte [bp-008h], 020h                   ; 80 4e f8 20
+    les bx, [bp-00eh]                         ; c4 5e f2
+    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
+    jmp short 08a43h                          ; eb 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    or byte [bp-008h], 005h                   ; 80 4e f8 05
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    call 086d5h                               ; e8 81 fc
+    mov cx, word [bp-00ch]                    ; 8b 4e f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    add bx, 00240h                            ; 81 c3 40 02
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, 0026ah                            ; 05 6a 02
+    mov dx, cx                                ; 89 ca
+    call 09dbch                               ; e8 53 13
+    mov es, cx                                ; 8e c1
+    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
+    test al, al                               ; 84 c0
+    je short 08a78h                           ; 74 05
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 08a7ah                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_port_deinit_current_:                   ; 0xf8a82 LB 0x17f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov di, ax                                ; 89 c7
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov es, dx                                ; 8e c2
+    mov si, word [es:di+00260h]               ; 26 8b b5 60 02
+    mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je near 08bf8h                            ; 0f 84 52 01
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0eeh                  ; 24 ee
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test ax, 0c011h                           ; a9 11 c0
+    je short 08b06h                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08b08h                          ; eb 02
+    xor al, al                                ; 30 c0
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 08adah                           ; 74 ce
+    mov cx, strict word 00020h                ; b9 20 00
+    xor bx, bx                                ; 31 db
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    call 09e7ah                               ; e8 61 13
+    lea ax, [di+00080h]                       ; 8d 85 80 00
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    call 09e7ah                               ; e8 52 13
+    lea ax, [di+00200h]                       ; 8d 85 00 02
+    mov cx, strict word 00060h                ; b9 60 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    call 09e7ah                               ; e8 43 13
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    sal ax, 007h                              ; c1 e0 07
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    add ax, 00108h                            ; 05 08 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, 0010ch                            ; 05 0c 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, 00104h                            ; 05 04 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, 00114h                            ; 05 14 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov byte [es:di+00262h], 0ffh             ; 26 c6 85 62 02 ff
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_port_init_:                             ; 0xf8c01 LB 0x24a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    call 08a82h                               ; e8 6d fe
+    movzx ax, bl                              ; 0f b6 c3
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    add bx, strict byte 00004h                ; 83 c3 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0eeh                  ; 24 ee
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    sal ax, 007h                              ; c1 e0 07
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test ax, 0c011h                           ; a9 11 c0
+    je short 08c84h                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08c86h                          ; eb 02
+    xor al, al                                ; 30 c0
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 08c50h                           ; 74 c6
+    mov cx, strict word 00020h                ; b9 20 00
+    xor bx, bx                                ; 31 db
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09e7ah                               ; e8 e3 11
+    lea ax, [si+00080h]                       ; 8d 84 80 00
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09e7ah                               ; e8 d4 11
+    lea di, [si+00200h]                       ; 8d bc 00 02
+    mov cx, strict word 00060h                ; b9 60 00
+    xor bx, bx                                ; 31 db
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09e7ah                               ; e8 c3 11
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    sal bx, 007h                              ; c1 e3 07
+    lea ax, [bx+00108h]                       ; 8d 87 08 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov cx, word [es:si+00260h]               ; 26 8b 8c 60 02
+    mov word [bp-00ch], cx                    ; 89 4e f4
+    mov cx, dx                                ; 89 d1
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 086b7h                               ; e8 d3 f9
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+0010ch]                       ; 8d 87 0c 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00100h]                       ; 8d 87 00 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 086b7h                               ; e8 67 f9
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00104h]                       ; 8d 87 04 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00114h]                       ; 8d 87 14 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00110h]                       ; 8d 87 10 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00130h]                       ; 8d 87 30 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:si+00262h], al               ; 26 88 84 62 02
+    mov byte [es:si+00263h], 000h             ; 26 c6 84 63 02 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+@ahci_read_sectors:                          ; 0xf8e4b LB 0xa6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    les di, [bp+004h]                         ; c4 7e 04
+    movzx di, byte [es:di+00ch]               ; 26 0f b6 7d 0c
+    sub di, strict byte 0000ch                ; 83 ef 0c
+    cmp di, strict byte 00004h                ; 83 ff 04
+    jbe short 08e70h                          ; 76 0f
+    push di                                   ; 57
+    push 00c62h                               ; 68 62 0c
+    push 00c74h                               ; 68 74 0c
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 05 8b
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor bx, bx                                ; 31 db
+    les si, [bp+004h]                         ; c4 76 04
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
+    mov es, [bp+006h]                         ; 8e 46 06
+    add di, si                                ; 01 f7
+    movzx bx, byte [es:di+0022dh]             ; 26 0f b6 9d 2d 02
+    mov di, si                                ; 89 f7
+    mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
+    xor ax, ax                                ; 31 c0
+    call 08c01h                               ; e8 65 fd
+    mov bx, strict word 00025h                ; bb 25 00
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    call 08820h                               ; e8 79 f9
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
+    mov word [es:bx+018h], ax                 ; 26 89 47 18
+    mov cx, ax                                ; 89 c1
+    sal cx, 009h                              ; c1 e1 09
+    shr cx, 1                                 ; d1 e9
+    mov di, word [es:di+008h]                 ; 26 8b 7d 08
+    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
+    mov si, di                                ; 89 fe
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    xor bx, bx                                ; 31 db
+    les di, [bp+004h]                         ; c4 7e 04
+    mov es, [es:di+00232h]                    ; 26 8e 85 32 02
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@ahci_write_sectors:                         ; 0xf8ef1 LB 0x84
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    mov es, cx                                ; 8e c1
+    movzx dx, byte [es:si+00ch]               ; 26 0f b6 54 0c
+    sub dx, strict byte 0000ch                ; 83 ea 0c
+    cmp dx, strict byte 00004h                ; 83 fa 04
+    jbe short 08f1ah                          ; 76 0f
+    push dx                                   ; 52
+    push 00c93h                               ; 68 93 0c
+    push 00c74h                               ; 68 74 0c
+    push strict byte 00007h                   ; 6a 07
+    call 01972h                               ; e8 5b 8a
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor bx, bx                                ; 31 db
+    mov es, cx                                ; 8e c1
+    mov di, word [es:si+00232h]               ; 26 8b bc 32 02
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, di                                ; 8e c7
+    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
+    mov es, cx                                ; 8e c1
+    mov bx, si                                ; 89 f3
+    add bx, dx                                ; 01 d3
+    movzx bx, byte [es:bx+0022dh]             ; 26 0f b6 9f 2d 02
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    xor ax, ax                                ; 31 c0
+    call 08c01h                               ; e8 bd fc
+    mov bx, strict word 00035h                ; bb 35 00
+    mov ax, si                                ; 89 f0
+    mov dx, cx                                ; 89 ca
+    call 08820h                               ; e8 d2 f8
+    mov dx, ax                                ; 89 c2
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
+    mov word [es:si+018h], ax                 ; 26 89 44 18
+    xor bx, bx                                ; 31 db
+    mov es, [es:si+00232h]                    ; 26 8e 84 32 02
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+ahci_cmd_packet_:                            ; 0xf8f75 LB 0x183
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    push ax                                   ; 50
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-012h], bx                    ; 89 5e ee
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 dc 86
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-008h], ax                    ; 89 46 f8
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 08fbbh                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 8a 89
+    push 00ca6h                               ; 68 a6 0c
+    push 00cb6h                               ; 68 b6 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 c0 89
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 090efh                           ; e9 34 01
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    jne short 08fb5h                          ; 75 f4
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    mov cx, strict word 00008h                ; b9 08 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 08fcah                               ; e2 fa
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si], ax                      ; 26 89 04
+    mov word [es:si+002h], dx                 ; 26 89 54 02
+    db  066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h
+    ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    xor cx, cx                                ; 31 c9
+    call 09df0h                               ; e8 f0 0d
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    xor di, di                                ; 31 ff
+    mov ax, word [es:si+00232h]               ; 26 8b 84 32 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], di                    ; 89 7e f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    sub word [bp-014h], strict byte 0000ch    ; 83 6e ec 0c
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+00268h], ax               ; 26 89 85 68 02
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    add bx, si                                ; 01 f3
+    movzx bx, byte [es:bx+0022dh]             ; 26 0f b6 9f 2d 02
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    xor ax, ax                                ; 31 c0
+    call 08c01h                               ; e8 c5 fb
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
+    push ax                                   ; 50
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov ax, 000c0h                            ; b8 c0 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 09e87h                               ; e8 37 0e
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov word [es:si+01ah], di                 ; 26 89 7c 1a
+    mov word [es:si+01ch], di                 ; 26 89 7c 1c
+    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
+    test ax, ax                               ; 85 c0
+    je short 0908eh                           ; 74 27
+    dec ax                                    ; 48
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+0010ch], ax               ; 26 89 85 0c 01
+    mov word [es:di+0010eh], di               ; 26 89 bd 0e 01
+    mov dx, word [es:di+00264h]               ; 26 8b 95 64 02
+    mov ax, word [es:di+00266h]               ; 26 8b 85 66 02
+    mov word [es:di+00100h], dx               ; 26 89 95 00 01
+    mov word [es:di+00102h], ax               ; 26 89 85 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov bx, 000a0h                            ; bb a0 00
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    call 08820h                               ; e8 87 f7
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
+    mov dx, word [es:bx+006h]                 ; 26 8b 57 06
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si+01ah], ax                 ; 26 89 44 1a
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    mov bx, word [es:si+01ah]                 ; 26 8b 5c 1a
+    mov cx, dx                                ; 89 d1
+    shr cx, 1                                 ; d1 e9
+    rcr bx, 1                                 ; d1 db
+    mov di, word [es:si+008h]                 ; 26 8b 7c 08
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov cx, bx                                ; 89 d9
+    mov si, di                                ; 89 fe
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    or ax, word [es:bx+004h]                  ; 26 0b 47 04
+    jne short 090edh                          ; 75 05
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 090efh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+ahci_port_detect_device_:                    ; 0xf90f8 LB 0x4b1
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 00224h                            ; 81 ec 24 02
+    mov si, ax                                ; 89 c6
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    movzx di, bl                              ; 0f b6 fb
+    mov bx, di                                ; 89 fb
+    call 08c01h                               ; e8 ef fa
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 51 85
+    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    sal di, 007h                              ; c1 e7 07
+    mov word [bp-024h], di                    ; 89 7e dc
+    lea ax, [di+0012ch]                       ; 8d 85 2c 01
+    cwd                                       ; 99
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    mov cx, di                                ; 89 f9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 00001h                ; b8 01 00
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    mov ax, bx                                ; 89 d8
+    mov cx, di                                ; 89 f9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    add ax, 00128h                            ; 05 28 01
+    cwd                                       ; 99
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    call 0869ch                               ; e8 d7 f4
+    test ax, ax                               ; 85 c0
+    je near 095a1h                            ; 0f 84 d6 03
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    sal ax, 007h                              ; c1 e0 07
+    mov word [bp-018h], ax                    ; 89 46 e8
+    add ax, 00128h                            ; 05 28 01
+    cwd                                       ; 99
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov di, ax                                ; 89 c7
+    mov word [bp-022h], dx                    ; 89 56 de
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    call 0869ch                               ; e8 8b f4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 091cbh                           ; 74 b5
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-022h]                    ; 8b 56 de
+    call 0869ch                               ; e8 77 f4
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jne near 095a1h                           ; 0f 85 75 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    add ax, 00130h                            ; 05 30 01
+    cwd                                       ; 99
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    les bx, [bp-010h]                         ; c4 5e f0
+    mov al, byte [es:bx+00231h]               ; 26 8a 87 31 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc near 095a1h                           ; 0f 83 2f 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    add bx, strict byte 00004h                ; 83 c3 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 010h                   ; 0c 10
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    add ax, 00124h                            ; 05 24 01
+    cwd                                       ; 99
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov di, ax                                ; 89 c7
+    mov ax, dx                                ; 89 d0
+    mov cl, byte [bp-008h]                    ; 8a 4e f8
+    add cl, 00ch                              ; 80 c1 0c
+    test dx, dx                               ; 85 d2
+    jne near 094f7h                           ; 0f 85 0d 02
+    cmp di, 00101h                            ; 81 ff 01 01
+    jne near 094f7h                           ; 0f 85 05 02
+    les bx, [bp-010h]                         ; c4 5e f0
+    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00
+    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
+    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h
+    ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02
+    mov bx, 000ech                            ; bb ec 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, es                                ; 8c c2
+    call 08820h                               ; e8 fa f4
+    mov byte [bp-00ch], cl                    ; 88 4e f4
+    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp-00228h]                  ; 8b 96 d8 fd
+    mov word [bp-020h], dx                    ; 89 56 e0
+    mov dx, word [bp-00224h]                  ; 8b 96 dc fd
+    mov word [bp-01ch], dx                    ; 89 56 e4
+    mov dx, word [bp-0021eh]                  ; 8b 96 e2 fd
+    mov word [bp-01eh], dx                    ; 89 56 e2
+    mov dx, word [bp-001b2h]                  ; 8b 96 4e fe
+    mov word [bp-01ah], dx                    ; 89 56 e6
+    mov di, word [bp-001b0h]                  ; 8b be 50 fe
+    mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
+    cmp di, 00fffh                            ; 81 ff ff 0f
+    jne short 0937fh                          ; 75 1e
+    cmp dx, strict byte 0ffffh                ; 83 fa ff
+    jne short 0937fh                          ; 75 19
+    mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov dx, word [bp-0015eh]                  ; 8b 96 a2 fe
+    mov word [bp-016h], dx                    ; 89 56 ea
+    mov di, word [bp-00160h]                  ; 8b be a0 fe
+    mov dx, word [bp-00162h]                  ; 8b 96 9e fe
+    mov word [bp-01ah], dx                    ; 89 56 e6
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov ah, byte [bp-00ah]                    ; 8a 66 f6
+    mov byte [es:bx+0022dh], ah               ; 26 88 a7 2d 02
+    movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
+    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
+    mov si, word [bp-010h]                    ; 8b 76 f0
+    add si, dx                                ; 01 d6
+    mov word [es:si+022h], 0ff05h             ; 26 c7 44 22 05 ff
+    mov byte [es:si+024h], al                 ; 26 88 44 24
+    mov byte [es:si+025h], 000h               ; 26 c6 44 25 00
+    mov word [es:si+028h], 00200h             ; 26 c7 44 28 00 02
+    mov byte [es:si+027h], 001h               ; 26 c6 44 27 01
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:si+03ch], ax                 ; 26 89 44 3c
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov word [es:si+03ah], ax                 ; 26 89 44 3a
+    mov word [es:si+038h], di                 ; 26 89 7c 38
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov word [es:si+036h], ax                 ; 26 89 44 36
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov word [es:si+030h], ax                 ; 26 89 44 30
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:si+032h], ax                 ; 26 89 44 32
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:si+034h], ax                 ; 26 89 44 34
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 093f8h                           ; 72 0c
+    jbe short 09400h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 09408h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 09404h                           ; 74 0e
+    jmp short 09451h                          ; eb 59
+    test al, al                               ; 84 c0
+    jne short 09451h                          ; 75 55
+    mov DL, strict byte 040h                  ; b2 40
+    jmp short 0940ah                          ; eb 0a
+    mov DL, strict byte 048h                  ; b2 48
+    jmp short 0940ah                          ; eb 06
+    mov DL, strict byte 050h                  ; b2 50
+    jmp short 0940ah                          ; eb 02
+    mov DL, strict byte 058h                  ; b2 58
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 007h                  ; 04 07
+    movzx bx, al                              ; 0f b6 d8
+    mov ax, bx                                ; 89 d8
+    call 016ach                               ; e8 96 82
+    test al, al                               ; 84 c0
+    je short 09451h                           ; 74 37
+    mov al, dl                                ; 88 d0
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 89 82
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    sal si, 008h                              ; c1 e6 08
+    movzx ax, dl                              ; 0f b6 c2
+    call 016ach                               ; e8 7c 82
+    xor ah, ah                                ; 30 e4
+    add ax, si                                ; 01 f0
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016ach                               ; e8 6c 82
+    xor ah, ah                                ; 30 e4
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov ax, bx                                ; 89 d8
+    call 016ach                               ; e8 62 82
+    xor ah, ah                                ; 30 e4
+    mov word [bp-026h], ax                    ; 89 46 da
+    jmp short 09461h                          ; eb 10
+    push dword [bp-016h]                      ; 66 ff 76 ea
+    push di                                   ; 57
+    push word [bp-01ah]                       ; ff 76 e6
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02ah]                         ; 8d 46 d6
+    call 0593eh                               ; e8 dd c4
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 c5 84
+    push dword [bp-016h]                      ; 66 ff 76 ea
+    push di                                   ; 57
+    push word [bp-01ah]                       ; ff 76 e6
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    push ax                                   ; 50
+    mov ax, word [bp-02ah]                    ; 8b 46 d6
+    push ax                                   ; 50
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    push ax                                   ; 50
+    push word [bp-01eh]                       ; ff 76 e2
+    push word [bp-01ch]                       ; ff 76 e4
+    push word [bp-020h]                       ; ff 76 e0
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    push ax                                   ; 50
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    push ax                                   ; 50
+    push 00cd6h                               ; 68 d6 0c
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 d7 84
+    add sp, strict byte 0001ch                ; 83 c4 1c
+    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov di, word [bp-010h]                    ; 8b 7e f0
+    add di, ax                                ; 01 c7
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    lea di, [di+02ah]                         ; 8d 7d 2a
+    push DS                                   ; 1e
+    push SS                                   ; 16
+    pop DS                                    ; 1f
+    lea si, [bp-02ah]                         ; 8d 76 d6
+    movsw                                     ; a5
+    movsw                                     ; a5
+    movsw                                     ; a5
+    pop DS                                    ; 1f
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov al, byte [es:bx+001e2h]               ; 26 8a 87 e2 01
+    mov ah, byte [bp-008h]                    ; 8a 66 f8
+    add ah, 00ch                              ; 80 c4 0c
+    movzx bx, al                              ; 0f b6 d8
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01650h                               ; e8 6a 81
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0165eh                               ; e8 6a 81
+    jmp near 09593h                           ; e9 9c 00
+    cmp dx, 0eb14h                            ; 81 fa 14 eb
+    jne near 09593h                           ; 0f 85 94 00
+    cmp di, 00101h                            ; 81 ff 01 01
+    jne near 09593h                           ; 0f 85 8c 00
+    les bx, [bp-010h]                         ; c4 5e f0
+    db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00
+    db  066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h
+    ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00
+    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    db  066h, 026h, 0c7h, 047h, 00eh, 001h, 000h, 000h, 002h
+    ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02
+    mov bx, 000a1h                            ; bb a1 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, es                                ; 8c c2
+    call 08820h                               ; e8 e5 f2
+    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
+    db  00fh, 095h, 0c0h
+    ; setne al                                  ; 0f 95 c0
+    xor ah, ah                                ; 30 e4
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov ah, byte [bp-00ah]                    ; 8a 66 f6
+    mov byte [es:bx+0022dh], ah               ; 26 88 a7 2d 02
+    movzx si, cl                              ; 0f b6 f1
+    imul si, si, strict byte 0001ch           ; 6b f6 1c
+    add si, word [bp-010h]                    ; 03 76 f0
+    mov word [es:si+022h], 00505h             ; 26 c7 44 22 05 05
+    mov byte [es:si+024h], al                 ; 26 88 44 24
+    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov al, byte [es:bx+001f3h]               ; 26 8a 87 f3 01
+    mov ah, byte [bp-008h]                    ; 8a 66 f8
+    add ah, 00ch                              ; 80 c4 0c
+    movzx bx, al                              ; 0f b6 d8
+    add bx, word [bp-010h]                    ; 03 5e f0
+    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
+    inc byte [bp-008h]                        ; fe 46 f8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    les bx, [bp-010h]                         ; c4 5e f0
+    mov byte [es:bx+00231h], al               ; 26 88 87 31 02
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_mem_alloc_:                             ; 0xf95a9 LB 0x43
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, 00413h                            ; ba 13 04
+    xor ax, ax                                ; 31 c0
+    call 0166ch                               ; e8 b3 80
+    test ax, ax                               ; 85 c0
+    je short 095e2h                           ; 74 25
+    dec ax                                    ; 48
+    mov bx, ax                                ; 89 c3
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 0000ah                ; b9 0a 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 095c5h                               ; e2 fa
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    mov cx, strict word 00004h                ; b9 04 00
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    loop 095d2h                               ; e2 fa
+    mov dx, 00413h                            ; ba 13 04
+    xor ax, ax                                ; 31 c0
+    call 0167ah                               ; e8 9a 80
+    mov ax, si                                ; 89 f0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_hba_init_:                              ; 0xf95ec LB 0x166
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166ch                               ; e8 6a 80
+    mov bx, 00122h                            ; bb 22 01
+    mov di, ax                                ; 89 c7
+    mov ax, strict word 00010h                ; b8 10 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    call 095a9h                               ; e8 83 ff
+    mov word [bp-010h], ax                    ; 89 46 f0
+    test ax, ax                               ; 85 c0
+    je near 09731h                            ; 0f 84 02 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, di                                ; 8e c7
+    mov word [es:bx+00232h], ax               ; 26 89 87 32 02
+    mov byte [es:bx+00231h], 000h             ; 26 c6 87 31 02 00
+    xor bx, bx                                ; 31 db
+    mov es, ax                                ; 8e c0
+    mov byte [es:bx+00262h], 0ffh             ; 26 c6 87 62 02 ff
+    mov word [es:bx+00260h], si               ; 26 89 b7 60 02
+    db  066h, 026h, 0c7h, 087h, 064h, 002h, 000h, 0c0h, 00ch, 000h
+    ; mov dword [es:bx+00264h], strict dword 0000cc000h ; 66 26 c7 87 64 02 00 c0 0c 00
+    mov ax, strict word 00004h                ; b8 04 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, strict word 00004h                ; b8 04 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test AL, strict byte 001h                 ; a8 01
+    jne short 09685h                          ; 75 de
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    push strict byte 00000h                   ; 6a 00
+    mov bx, strict word 0001fh                ; bb 1f 00
+    xor cx, cx                                ; 31 c9
+    call 0869ch                               ; e8 d1 ef
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    jmp short 096f6h                          ; eb 20
+    xor al, al                                ; 30 c0
+    test al, al                               ; 84 c0
+    je short 096edh                           ; 74 11
+    movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
+    xor ax, ax                                ; 31 c0
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    call 090f8h                               ; e8 10 fa
+    dec byte [bp-00eh]                        ; fe 4e f2
+    je short 0972fh                           ; 74 42
+    inc byte [bp-00ch]                        ; fe 46 f4
+    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
+    jnc short 0972fh                          ; 73 39
+    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
+    mov bx, strict word 00001h                ; bb 01 00
+    xor di, di                                ; 31 ff
+    jcxz 09707h                               ; e3 06
+    sal bx, 1                                 ; d1 e3
+    rcl di, 1                                 ; d1 d7
+    loop 09701h                               ; e2 fa
+    mov ax, strict word 0000ch                ; b8 0c 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test dx, di                               ; 85 fa
+    jne short 0972bh                          ; 75 04
+    test ax, bx                               ; 85 d8
+    je short 096d6h                           ; 74 ab
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 096d8h                          ; eb a9
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 021h, 098h, 0ffh, 097h, 005h, 098h, 00bh, 098h, 011h
+    db  098h, 017h, 098h, 01dh, 098h, 021h, 098h
+_ahci_init:                                  ; 0xf9752 LB 0xfe
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov ax, 00601h                            ; b8 01 06
+    mov dx, strict word 00001h                ; ba 01 00
+    call 09c70h                               ; e8 0d 05
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    je near 09849h                            ; 0f 84 dd 00
+    xor al, al                                ; 30 c0
+    shr ax, 008h                              ; c1 e8 08
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    xor dh, dh                                ; 30 f6
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 00034h                ; bb 34 00
+    call 09c9bh                               ; e8 1a 05
+    mov cl, al                                ; 88 c1
+    test cl, cl                               ; 84 c9
+    je short 097aah                           ; 74 23
+    movzx bx, cl                              ; 0f b6 d9
+    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
+    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
+    mov dx, di                                ; 89 fa
+    mov ax, si                                ; 89 f0
+    call 09c9bh                               ; e8 02 05
+    cmp AL, strict byte 012h                  ; 3c 12
+    je short 097aah                           ; 74 0d
+    mov al, cl                                ; 88 c8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, di                                ; 89 fa
+    mov ax, si                                ; 89 f0
+    jmp short 0977eh                          ; eb d4
+    test cl, cl                               ; 84 c9
+    je near 09849h                            ; 0f 84 99 00
+    add cl, 002h                              ; 80 c1 02
+    movzx bx, cl                              ; 0f b6 d9
+    movzx di, byte [bp-008h]                  ; 0f b6 7e f8
+    movzx si, byte [bp-00ah]                  ; 0f b6 76 f6
+    mov dx, di                                ; 89 fa
+    mov ax, si                                ; 89 f0
+    call 09c9bh                               ; e8 d6 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne near 09849h                           ; 0f 85 7e 00
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    mov al, cl                                ; 88 c8
+    add AL, strict byte 002h                  ; 04 02
+    movzx bx, al                              ; 0f b6 d8
+    mov dx, di                                ; 89 fa
+    mov ax, si                                ; 89 f0
+    call 09cbfh                               ; e8 e2 04
+    mov dx, ax                                ; 89 c2
+    and ax, strict word 0000fh                ; 25 0f 00
+    sub ax, strict word 00004h                ; 2d 04 00
+    cmp ax, strict word 0000bh                ; 3d 0b 00
+    jnbe short 09821h                         ; 77 37
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00008h                ; b9 08 00
+    mov di, 0973bh                            ; bf 3b 97
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di-068beh]               ; 2e 8b 85 42 97
+    jmp ax                                    ; ff e0
+    mov byte [bp-006h], 010h                  ; c6 46 fa 10
+    jmp short 09821h                          ; eb 1c
+    mov byte [bp-006h], 014h                  ; c6 46 fa 14
+    jmp short 09821h                          ; eb 16
+    mov byte [bp-006h], 018h                  ; c6 46 fa 18
+    jmp short 09821h                          ; eb 10
+    mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
+    jmp short 09821h                          ; eb 0a
+    mov byte [bp-006h], 020h                  ; c6 46 fa 20
+    jmp short 09821h                          ; eb 04
+    mov byte [bp-006h], 024h                  ; c6 46 fa 24
+    mov si, dx                                ; 89 d6
+    shr si, 004h                              ; c1 ee 04
+    sal si, 002h                              ; c1 e6 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    test al, al                               ; 84 c0
+    je short 09849h                           ; 74 19
+    movzx bx, al                              ; 0f b6 d8
+    movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
+    movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
+    call 09ce1h                               ; e8 a3 04
+    test AL, strict byte 001h                 ; a8 01
+    je short 09849h                           ; 74 07
+    and AL, strict byte 0f0h                  ; 24 f0
+    add ax, si                                ; 01 f0
+    call 095ech                               ; e8 a3 fd
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+apm_out_str_:                                ; 0xf9850 LB 0x39
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    cmp byte [bx], 000h                       ; 80 3f 00
+    je short 09865h                           ; 74 0a
+    mov al, byte [bx]                         ; 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [bx]                         ; 8a 07
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    jne short 0985dh                          ; 75 f8
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    lodsb                                     ; ac
+    cbw                                       ; 98
+    js short 09808h                           ; 78 99
+    mov si, 0d998h                            ; be 98 d9
+    cbw                                       ; 98
+    js short 0980eh                           ; 78 99
+    add AL, strict byte 099h                  ; 04 99
+    js short 09812h                           ; 78 99
+    or word [bx+di-066b3h], bx                ; 09 99 4d 99
+    dec bp                                    ; 4d
+    cwd                                       ; 99
+    dec bp                                    ; 4d
+    cwd                                       ; 99
+    dec ax                                    ; 48
+    cwd                                       ; 99
+    dec bp                                    ; 4d
+    cwd                                       ; 99
+    dec bp                                    ; 4d
+    cwd                                       ; 99
+    inc cx                                    ; 41
+    cwd                                       ; 99
+_apm_function:                               ; 0xf9889 LB 0xf5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 0000eh                ; 3d 0e 00
+    jnbe near 0994dh                          ; 0f 87 b0 00
+    mov bx, ax                                ; 89 c3
+    add bx, ax                                ; 01 c3
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    or dl, 001h                               ; 80 ca 01
+    jmp word [cs:bx-06795h]                   ; 2e ff a7 6b 98
+    mov word [bp+012h], 00102h                ; c7 46 12 02 01
+    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
+    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
+    jmp near 09978h                           ; e9 ba 00
+    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
+    mov word [bp+00ch], 09ef4h                ; c7 46 0c f4 9e
+    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
+    mov ax, strict word 0fff0h                ; b8 f0 ff
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+004h], ax                    ; 89 46 04
+    jmp near 09978h                           ; e9 9f 00
+    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
+    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    mov ax, strict word 0fff0h                ; b8 f0 ff
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+004h], ax                    ; 89 46 04
+    xor bx, bx                                ; 31 db
+    sal ebx, 010h                             ; 66 c1 e3 10
+    mov si, ax                                ; 89 c6
+    sal esi, 010h                             ; 66 c1 e6 10
+    jmp near 09978h                           ; e9 74 00
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp near 09978h                           ; e9 6f 00
+    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
+    je short 0992eh                           ; 74 1f
+    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
+    je short 09926h                           ; 74 11
+    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
+    jne short 09936h                          ; 75 1b
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d10h                            ; b8 10 0d
+    call 09850h                               ; e8 2c ff
+    jmp short 09978h                          ; eb 52
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d18h                            ; b8 18 0d
+    jmp short 09921h                          ; eb f3
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d20h                            ; b8 20 0d
+    jmp short 09921h                          ; eb eb
+    or ah, 00ah                               ; 80 cc 0a
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp short 09978h                          ; eb 37
+    mov word [bp+012h], 00102h                ; c7 46 12 02 01
+    jmp short 09978h                          ; eb 30
+    or ah, 080h                               ; 80 cc 80
+    jmp short 09939h                          ; eb ec
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 d9 7f
+    push word [bp+00ch]                       ; ff 76 0c
+    push word [bp+012h]                       ; ff 76 12
+    push 00d29h                               ; 68 29 0d
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 0c 80
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+012h], ax                    ; 89 46 12
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci16_select_reg_:                           ; 0xf997e LB 0x24
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    and dl, 0fch                              ; 80 e2 fc
+    mov bx, dx                                ; 89 d3
+    mov dx, 00cf8h                            ; ba f8 0c
+    movzx eax, ax                             ; 66 0f b7 c0
+    sal eax, 008h                             ; 66 c1 e0 08
+    or eax, strict dword 080000000h           ; 66 0d 00 00 00 80
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, eax                               ; 66 ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci16_find_device_:                          ; 0xf99a2 LB 0xf7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov si, bx                                ; 89 de
+    mov di, cx                                ; 89 cf
+    test cx, cx                               ; 85 c9
+    xor bx, bx                                ; 31 db
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    test bl, 007h                             ; f6 c3 07
+    jne short 099eah                          ; 75 2d
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, bx                                ; 89 d8
+    call 0997eh                               ; e8 b9 ff
+    mov dx, 00cfeh                            ; ba fe 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 099d8h                          ; 75 06
+    add bx, strict byte 00008h                ; 83 c3 08
+    jmp near 09a6bh                           ; e9 93 00
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 099e5h                           ; 74 07
+    mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
+    jmp short 099eah                          ; eb 05
+    mov word [bp-00ah], strict word 00008h    ; c7 46 f6 08 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 007h                  ; 24 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 09a12h                          ; 75 1f
+    mov ax, bx                                ; 89 d8
+    shr ax, 008h                              ; c1 e8 08
+    test ax, ax                               ; 85 c0
+    jne short 09a12h                          ; 75 16
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, bx                                ; 89 d8
+    call 0997eh                               ; e8 7a ff
+    mov dx, 00cfeh                            ; ba fe 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp al, byte [bp-008h]                    ; 3a 46 f8
+    jbe short 09a12h                          ; 76 03
+    mov byte [bp-008h], al                    ; 88 46 f8
+    test di, di                               ; 85 ff
+    je short 09a1bh                           ; 74 05
+    mov dx, strict word 00008h                ; ba 08 00
+    jmp short 09a1dh                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    mov ax, bx                                ; 89 d8
+    call 0997eh                               ; e8 5c ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
+    test di, di                               ; 85 ff
+    je short 09a4ch                           ; 74 0f
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 09a40h                               ; e2 fa
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-00ch], dx                    ; 89 56 f4
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jne short 09a5ch                          ; 75 08
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    je short 09a62h                           ; 74 06
+    cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
+    je short 09a68h                           ; 74 06
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 09a7ah                           ; 74 12
+    add bx, word [bp-00ah]                    ; 03 5e f6
+    mov dx, bx                                ; 89 da
+    shr dx, 008h                              ; c1 ea 08
+    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    cmp dx, ax                                ; 39 c2
+    jbe near 099b8h                           ; 0f 86 3e ff
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    jne short 09a83h                          ; 75 04
+    mov ax, bx                                ; 89 d8
+    jmp short 09a86h                          ; eb 03
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    jnp short 09a2ah                          ; 7b 9b
+    xchg bp, ax                               ; 95
+    wait                                      ; 9b
+    test AL, strict byte 09bh                 ; a8 9b
+    mov bp, 0d09bh                            ; bd 9b d0
+    wait                                      ; 9b
+    jcxz 09a34h                               ; e3 9b
+_pci16_function:                             ; 0xf9a99 LB 0x1d7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    and word [bp+020h], 000ffh                ; 81 66 20 ff 00
+    and word [bp+02ch], strict byte 0fffeh    ; 83 66 2c fe
+    mov bx, word [bp+020h]                    ; 8b 5e 20
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    cmp bx, strict byte 00003h                ; 83 fb 03
+    jc short 09ad2h                           ; 72 1a
+    jbe short 09b2ah                          ; 76 70
+    cmp bx, strict byte 0000eh                ; 83 fb 0e
+    je near 09bf7h                            ; 0f 84 36 01
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jc near 09c3ch                            ; 0f 82 74 01
+    cmp bx, strict byte 0000dh                ; 83 fb 0d
+    jbe near 09b4fh                           ; 0f 86 80 00
+    jmp near 09c3ch                           ; e9 6a 01
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    je short 09afah                           ; 74 23
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    jne near 09c3ch                           ; 0f 85 5e 01
+    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
+    mov word [bp+014h], 00210h                ; c7 46 14 10 02
+    mov word [bp+01ch], strict word 00000h    ; c7 46 1c 00 00
+    mov word [bp+018h], 04350h                ; c7 46 18 50 43
+    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
+    jmp near 09c69h                           ; e9 6f 01
+    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
+    jne short 09b06h                          ; 75 06
+    or ah, 083h                               ; 80 cc 83
+    jmp near 09c62h                           ; e9 5c 01
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov dx, word [bp+01ch]                    ; 8b 56 1c
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor cx, cx                                ; 31 c9
+    call 099a2h                               ; e8 8e fe
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 09b24h                          ; 75 0b
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 09c62h                           ; e9 3e 01
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 09c69h                           ; e9 3f 01
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+01eh]                    ; 8b 56 1e
+    mov cx, strict word 00001h                ; b9 01 00
+    call 099a2h                               ; e8 69 fe
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 09b49h                          ; 75 0b
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 09c62h                           ; e9 19 01
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 09c69h                           ; e9 1a 01
+    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
+    jc short 09b5ch                           ; 72 06
+    or ah, 087h                               ; 80 cc 87
+    jmp near 09c62h                           ; e9 06 01
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 0997eh                               ; e8 19 fe
+    mov bx, word [bp+020h]                    ; 8b 5e 20
+    xor bh, bh                                ; 30 ff
+    sub bx, strict byte 00008h                ; 83 eb 08
+    cmp bx, strict byte 00005h                ; 83 fb 05
+    jnbe near 09c69h                          ; 0f 87 f5 00
+    add bx, bx                                ; 01 db
+    jmp word [cs:bx-06573h]                   ; 2e ff a7 8d 9a
+    mov bx, word [bp+01ch]                    ; 8b 5e 1c
+    xor bl, bl                                ; 30 db
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    and dx, strict byte 00003h                ; 83 e2 03
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    or bx, ax                                 ; 09 c3
+    mov word [bp+01ch], bx                    ; 89 5e 1c
+    jmp near 09c69h                           ; e9 d4 00
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    in ax, DX                                 ; ed
+    mov word [bp+01ch], ax                    ; 89 46 1c
+    jmp near 09c69h                           ; e9 c1 00
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp+01ch], ax                    ; 89 46 1c
+    mov word [bp+01eh], dx                    ; 89 56 1e
+    jmp near 09c69h                           ; e9 ac 00
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    out DX, AL                                ; ee
+    jmp near 09c69h                           ; e9 99 00
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    out DX, ax                                ; ef
+    jmp near 09c69h                           ; e9 86 00
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov cx, word [bp+01eh]                    ; 8b 4e 1e
+    mov dx, 00cfch                            ; ba fc 0c
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    jmp short 09c69h                          ; eb 72
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov es, [bp+026h]                         ; 8e 46 26
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov [bp-006h], es                         ; 8c 46 fa
+    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
+    cmp cx, word [es:bx]                      ; 26 3b 0f
+    jbe short 09c1dh                          ; 76 11
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 089h                               ; 80 cc 89
+    mov word [bp+020h], ax                    ; 89 46 20
+    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
+    jmp short 09c31h                          ; eb 14
+    les di, [es:bx+002h]                      ; 26 c4 7f 02
+    mov si, 0f2c0h                            ; be c0 f2
+    mov dx, ds                                ; 8c da
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
+    mov ax, word [0f4a0h]                     ; a1 a0 f4
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov word [es:bx], ax                      ; 26 89 07
+    jmp short 09c69h                          ; eb 2d
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01931h                               ; e8 ea 7c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    push ax                                   ; 50
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    push ax                                   ; 50
+    push 00d5ch                               ; 68 5c 0d
+    push strict byte 00004h                   ; 6a 04
+    call 01972h                               ; e8 1b 7d
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 081h                               ; 80 cc 81
+    mov word [bp+020h], ax                    ; 89 46 20
+    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_find_classcode_:                         ; 0xf9c70 LB 0x2b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    mov cx, dx                                ; 89 d1
+    xor si, si                                ; 31 f6
+    mov dx, ax                                ; 89 c2
+    mov ax, 0b103h                            ; b8 03 b1
+    sal ecx, 010h                             ; 66 c1 e1 10
+    db  08bh, 0cah
+    ; mov cx, dx                                ; 8b ca
+    int 01ah                                  ; cd 1a
+    cmp ah, 000h                              ; 80 fc 00
+    je near 09c91h                            ; 0f 84 03 00
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_byte_:                       ; 0xf9c9b LB 0x24
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    movzx di, bl                              ; 0f b6 fb
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 008h                              ; c1 e3 08
+    movzx ax, dl                              ; 0f b6 c2
+    or bx, ax                                 ; 09 c3
+    mov ax, 0b108h                            ; b8 08 b1
+    int 01ah                                  ; cd 1a
+    movzx ax, cl                              ; 0f b6 c1
+    xor dx, dx                                ; 31 d2
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_word_:                       ; 0xf9cbf LB 0x22
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    movzx di, bl                              ; 0f b6 fb
+    xor ah, ah                                ; 30 e4
+    sal ax, 008h                              ; c1 e0 08
+    movzx bx, dl                              ; 0f b6 da
+    or bx, ax                                 ; 09 c3
+    mov ax, 0b109h                            ; b8 09 b1
+    int 01ah                                  ; cd 1a
+    mov ax, cx                                ; 89 c8
+    xor dx, dx                                ; 31 d2
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_dword_:                      ; 0xf9ce1 LB 0x27
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    movzx di, bl                              ; 0f b6 fb
+    movzx bx, al                              ; 0f b6 d8
+    sal bx, 008h                              ; c1 e3 08
+    movzx ax, dl                              ; 0f b6 c2
+    or bx, ax                                 ; 09 c3
+    mov ax, 0b10ah                            ; b8 0a b1
+    int 01ah                                  ; cd 1a
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    shr ecx, 010h                             ; 66 c1 e9 10
+    mov dx, cx                                ; 89 ca
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vds_is_present_:                             ; 0xf9d08 LB 0x1d
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, strict word 0007bh                ; bb 7b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    mov es, ax                                ; 8e c0
+    test byte [es:bx], 020h                   ; 26 f6 07 20
+    je short 09d20h                           ; 74 06
+    mov ax, strict word 00001h                ; b8 01 00
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    xor ax, ax                                ; 31 c0
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+vds_real_to_lin_:                            ; 0xf9d25 LB 0x1e
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 09d33h                               ; e2 fa
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    pop bp                                    ; 5d
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+vds_build_sg_list_:                          ; 0xf9d43 LB 0x79
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    mov ax, bx                                ; 89 d8
+    mov dx, cx                                ; 89 ca
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov es, si                                ; 8e c6
+    mov word [es:di], bx                      ; 26 89 1d
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov word [es:di+002h], bx                 ; 26 89 5d 02
+    call 09d25h                               ; e8 c3 ff
+    mov es, si                                ; 8e c6
+    mov word [es:di+004h], ax                 ; 26 89 45 04
+    mov word [es:di+006h], dx                 ; 26 89 55 06
+    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
+    call 09d08h                               ; e8 93 ff
+    test ax, ax                               ; 85 c0
+    je short 09d8ch                           ; 74 13
+    mov es, si                                ; 8e c6
+    mov ax, 08105h                            ; b8 05 81
+    mov dx, strict word 00000h                ; ba 00 00
+    int 04bh                                  ; cd 4b
+    jc near 09d89h                            ; 0f 82 02 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    cbw                                       ; 98
+    jmp short 09db3h                          ; eb 27
+    mov es, si                                ; 8e c6
+    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
+    mov dx, word [es:di+004h]                 ; 26 8b 55 04
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [es:di+010h], dx                 ; 26 89 55 10
+    mov word [es:di+012h], ax                 ; 26 89 45 12
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov word [es:di+014h], ax                 ; 26 89 45 14
+    mov ax, bx                                ; 89 d8
+    mov word [es:di+016h], bx                 ; 26 89 5d 16
+    xor ax, bx                                ; 31 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vds_free_sg_list_:                           ; 0xf9dbc LB 0x34
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push di                                   ; 57
+    mov bx, ax                                ; 89 c3
+    call 09d08h                               ; e8 42 ff
+    test ax, ax                               ; 85 c0
+    je short 09dddh                           ; 74 13
+    mov di, bx                                ; 89 df
+    mov es, dx                                ; 8e c2
+    mov ax, 08106h                            ; b8 06 81
+    mov dx, strict word 00000h                ; ba 00 00
+    int 04bh                                  ; cd 4b
+    jc near 09ddch                            ; 0f 82 02 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    cbw                                       ; 98
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    times 0x4 db 0
+__U4D:                                       ; 0xf9df0 LB 0x39
+    pushfw                                    ; 9c
+    push eax                                  ; 66 50
+    push edx                                  ; 66 52
+    push ecx                                  ; 66 51
+    rol eax, 010h                             ; 66 c1 c0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    shr ecx, 010h                             ; 66 c1 e9 10
+    db  08bh, 0cbh
+    ; mov cx, bx                                ; 8b cb
+    div ecx                                   ; 66 f7 f1
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    pop ecx                                   ; 66 59
+    shr edx, 010h                             ; 66 c1 ea 10
+    db  08bh, 0cah
+    ; mov cx, dx                                ; 8b ca
+    pop edx                                   ; 66 5a
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    add sp, strict byte 00002h                ; 83 c4 02
+    pop ax                                    ; 58
+    rol eax, 010h                             ; 66 c1 c0 10
+    popfw                                     ; 9d
+    retn                                      ; c3
+__U4M:                                       ; 0xf9e29 LB 0x31
+    pushfw                                    ; 9c
+    push eax                                  ; 66 50
+    push edx                                  ; 66 52
+    push ecx                                  ; 66 51
+    rol eax, 010h                             ; 66 c1 c0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    shr ecx, 010h                             ; 66 c1 e9 10
+    db  08bh, 0cbh
+    ; mov cx, bx                                ; 8b cb
+    mul ecx                                   ; 66 f7 e1
+    pop ecx                                   ; 66 59
+    pop edx                                   ; 66 5a
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    add sp, strict byte 00002h                ; 83 c4 02
+    pop ax                                    ; 58
+    rol eax, 010h                             ; 66 c1 c0 10
+    popfw                                     ; 9d
+    retn                                      ; c3
+__U8LS:                                      ; 0xf9e5a LB 0x10
+    test si, si                               ; 85 f6
+    je short 09e69h                           ; 74 0b
+    sal dx, 1                                 ; d1 e2
+    rcl cx, 1                                 ; d1 d1
+    rcl bx, 1                                 ; d1 d3
+    rcl ax, 1                                 ; d1 d0
+    dec si                                    ; 4e
+    jne short 09e5eh                          ; 75 f5
+    retn                                      ; c3
+__U8RS:                                      ; 0xf9e6a LB 0x10
+    test si, si                               ; 85 f6
+    je short 09e79h                           ; 74 0b
+    shr ax, 1                                 ; d1 e8
+    rcr bx, 1                                 ; d1 db
+    rcr cx, 1                                 ; d1 d9
+    rcr dx, 1                                 ; d1 da
+    dec si                                    ; 4e
+    jne short 09e6eh                          ; 75 f5
+    retn                                      ; c3
+_fmemset_:                                   ; 0xf9e7a LB 0xd
+    push di                                   ; 57
+    mov es, dx                                ; 8e c2
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    xchg al, bl                               ; 86 d8
+    rep stosb                                 ; f3 aa
+    xchg al, bl                               ; 86 d8
+    pop di                                    ; 5f
+    retn                                      ; c3
+_fmemcpy_:                                   ; 0xf9e87 LB 0x33
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    push di                                   ; 57
+    push DS                                   ; 1e
+    push si                                   ; 56
+    mov es, dx                                ; 8e c2
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    mov ds, cx                                ; 8e d9
+    db  08bh, 0f3h
+    ; mov si, bx                                ; 8b f3
+    mov cx, word [bp+004h]                    ; 8b 4e 04
+    rep movsb                                 ; f3 a4
+    pop si                                    ; 5e
+    pop DS                                    ; 1f
+    pop di                                    ; 5f
+    leave                                     ; c9
+    retn                                      ; c3
+    add al, dl                                ; 00 d0
+    sahf                                      ; 9e
+    rcr byte [bp-0612ah], CL                  ; d2 9e d6 9e
+    db  0d6h
+    sahf                                      ; 9e
+    db  0d6h
+    sahf                                      ; 9e
+    fcomp dword [bp-06128h]                   ; d8 9e d8 9e
+    ficomp dword [bp-06122h]                  ; da 9e de 9e
+    ficomp word [bp-06120h]                   ; de 9e e0 9e
+    in ax, 09eh                               ; e5 9e
+    out 09eh, ax                              ; e7 9e
+apm_worker:                                  ; 0xf9eba LB 0x3a
+    sti                                       ; fb
+    push ax                                   ; 50
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    sub AL, strict byte 004h                  ; 2c 04
+    db  08bh, 0e8h
+    ; mov bp, ax                                ; 8b e8
+    sal bp, 1                                 ; d1 e5
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    pop ax                                    ; 58
+    mov AH, strict byte 053h                  ; b4 53
+    jnc short 09ef0h                          ; 73 25
+    jmp word [cs:bp-06160h]                   ; 2e ff a6 a0 9e
+    jmp short 09eeeh                          ; eb 1c
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 09eeeh                          ; eb 18
+    jmp short 09eeeh                          ; eb 16
+    jmp short 09ef0h                          ; eb 16
+    mov AH, strict byte 080h                  ; b4 80
+    jmp short 09ef2h                          ; eb 14
+    jmp short 09ef0h                          ; eb 10
+    mov ax, 00102h                            ; b8 02 01
+    jmp short 09eeeh                          ; eb 09
+    jmp short 09eeeh                          ; eb 07
+    mov BL, strict byte 000h                  ; b3 00
+    mov cx, strict word 00000h                ; b9 00 00
+    jmp short 09eeeh                          ; eb 00
+    clc                                       ; f8
+    retn                                      ; c3
+    mov AH, strict byte 009h                  ; b4 09
+    stc                                       ; f9
+    retn                                      ; c3
+apm_pm16_entry:                              ; 0xf9ef4 LB 0x11
+    mov AH, strict byte 002h                  ; b4 02
+    push DS                                   ; 1e
+    push bp                                   ; 55
+    push CS                                   ; 0e
+    pop bp                                    ; 5d
+    add bp, strict byte 00008h                ; 83 c5 08
+    mov ds, bp                                ; 8e dd
+    call 09ebah                               ; e8 b8 ff
+    pop bp                                    ; 5d
+    pop DS                                    ; 1f
+    retf                                      ; cb
+
+  ; Padding 0x3afb bytes at 0xf9f05
+  times 15099 db 0
+
+section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
+bios32_service:                              ; 0xfda00 LB 0x26
+    pushfw                                    ; 9c
+    cmp bl, 000h                              ; 80 fb 00
+    jne short 0da22h                          ; 75 1c
+    cmp ax, 05024h                            ; 3d 24 50
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    mov AL, strict byte 080h                  ; b0 80
+    jne short 0da20h                          ; 75 11
+    mov bx, strict word 00000h                ; bb 00 00
+    db  00fh
+    add byte [bx+di-01000h], bh               ; 00 b9 00 f0
+    add byte [bx+si], al                      ; 00 00
+    mov dx, 0da26h                            ; ba 26 da
+    add byte [bx+si], al                      ; 00 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    popfw                                     ; 9d
+    retf                                      ; cb
+    mov AL, strict byte 081h                  ; b0 81
+    jmp short 0da20h                          ; eb fa
+pcibios32_entry:                             ; 0xfda26 LB 0x1a
+    pushfw                                    ; 9c
+    cld                                       ; fc
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    call 0db78h                               ; e8 4b 01
+    add byte [bx+si], al                      ; 00 00
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    popfw                                     ; 9d
+    retf                                      ; cb
+    times 0xd db 0
+apm_pm32_entry:                              ; 0xfda40 LB 0x21
+    push bp                                   ; 55
+    mov ebp, cs                               ; 66 8c cd
+    push ebp                                  ; 66 55
+    mov bp, 0da5fh                            ; bd 5f da
+    add byte [bx+si], al                      ; 00 00
+    push ebp                                  ; 66 55
+    push CS                                   ; 0e
+    pop bp                                    ; 5d
+    add bp, strict byte 00008h                ; 83 c5 08
+    push ebp                                  ; 66 55
+    mov bp, 09ef6h                            ; bd f6 9e
+    add byte [bx+si], al                      ; 00 00
+    push ebp                                  ; 66 55
+    mov AH, strict byte 003h                  ; b4 03
+    db  066h, 0cbh
+    ; retf                                      ; 66 cb
+    pop bp                                    ; 5d
+    retf                                      ; cb
+pci32_select_reg_:                           ; 0xfda61 LB 0x22
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    and dl, 0fch                              ; 80 e2 fc
+    mov bx, dx                                ; 89 d3
+    mov dx, 00cf8h                            ; ba f8 0c
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 0c0h
+    ; movzx ax, ax                              ; 0f b7 c0
+    sal ax, 008h                              ; c1 e0 08
+    or ax, strict word 00000h                 ; 0d 00 00
+    add byte [bx+si-03c76h], al               ; 00 80 8a c3
+    out DX, ax                                ; ef
+    lea sp, [di-004h]                         ; 8d 65 fc
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci32_find_device_:                          ; 0xfda83 LB 0xf7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00014h                ; 83 ec 14
+    push ax                                   ; 50
+    mov cx, dx                                ; 89 d1
+    mov si, bx                                ; 89 de
+    test bx, bx                               ; 85 db
+    xor bx, bx                                ; 31 db
+    mov byte [di-010h], 000h                  ; c6 45 f0 00
+    test bl, 007h                             ; f6 c3 07
+    jne short 0dad4h                          ; 75 36
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da5fh                               ; e8 b6 ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfeh                            ; ba fe 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    mov byte [di-014h], al                    ; 88 45 ec
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0dac2h                          ; 75 08
+    add bx, strict byte 00008h                ; 83 c3 08
+    jmp near 0db4ah                           ; e9 8a 00
+    add byte [bx+si], al                      ; 00 00
+    test byte [di-014h], 080h                 ; f6 45 ec 80
+    je short 0dacfh                           ; 74 07
+    mov di, strict word 00001h                ; bf 01 00
+    add byte [bx+si], al                      ; 00 00
+    jmp short 0dad4h                          ; eb 05
+    mov di, strict word 00008h                ; bf 08 00
+    add byte [bx+si], al                      ; 00 00
+    mov al, byte [di-014h]                    ; 8a 45 ec
+    and AL, strict byte 007h                  ; 24 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 0db03h                          ; 75 26
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    mov dx, ax                                ; 89 c2
+    sar dx, 008h                              ; c1 fa 08
+    test dx, dx                               ; 85 d2
+    jne short 0db03h                          ; 75 1a
+    mov dx, strict word 0001ah                ; ba 1a 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da5fh                               ; e8 6e ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfeh                            ; ba fe 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    cmp al, byte [di-010h]                    ; 3a 45 f0
+    jbe short 0db03h                          ; 76 03
+    mov byte [di-010h], al                    ; 88 45 f0
+    test si, si                               ; 85 f6
+    je short 0db0eh                           ; 74 07
+    mov ax, strict word 00008h                ; b8 08 00
+    add byte [bx+si], al                      ; 00 00
+    jmp short 0db10h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    call 0da5fh                               ; e8 46 ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    in ax, DX                                 ; ed
+    mov word [di-018h], ax                    ; 89 45 e8
+    mov word [di-020h], strict word 00000h    ; c7 45 e0 00 00
+    add byte [bx+si], al                      ; 00 00
+    test si, si                               ; 85 f6
+    je short 0db35h                           ; 74 06
+    shr ax, 008h                              ; c1 e8 08
+    mov word [di-018h], ax                    ; 89 45 e8
+    mov ax, word [di-018h]                    ; 8b 45 e8
+    cmp ax, word [di-024h]                    ; 3b 45 dc
+    je short 0db43h                           ; 74 06
+    cmp word [di-020h], strict byte 00000h    ; 83 7d e0 00
+    je short 0db4ah                           ; 74 07
+    dec cx                                    ; 49
+    cmp ecx, strict byte 0ffffffffh           ; 66 83 f9 ff
+    je short 0db62h                           ; 74 18
+    add bx, di                                ; 01 fb
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    sar ax, 008h                              ; c1 f8 08
+    mov word [di-01ch], ax                    ; 89 45 e4
+    movzx ax, byte [di-010h]                  ; 0f b6 45 f0
+    cmp ax, word [di-01ch]                    ; 3b 45 e4
+    jnl near 0da97h                           ; 0f 8d 37 ff
+    db  0ffh
+    jmp word [bp-07dh]                        ; ff 66 83
+    stc                                       ; f9
+    push word [di+005h]                       ; ff 75 05
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    jmp short 0db72h                          ; eb 05
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    add byte [bx+si], al                      ; 00 00
+    lea sp, [di-00ch]                         ; 8d 65 f4
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_pci32_function:                             ; 0xfdb7a LB 0x251
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    and dword [di+024h], strict dword 0658100ffh ; 66 81 65 24 ff 00 81 65
+    sub AL, strict byte 0feh                  ; 2c fe
+    inc word [bx+si]                          ; ff 00
+    add byte [bp+di+02445h], cl               ; 00 8b 45 24
+    xor ah, ah                                ; 30 e4
+    cmp eax, strict dword 029720003h          ; 66 3d 03 00 72 29
+    jbe near 0dc37h                           ; 0f 86 99 00
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 0840f000eh          ; 66 3d 0e 00 0f 84
+    test ax, strict word 00001h               ; a9 01 00
+    add byte [bp+03dh], ah                    ; 00 66 3d
+    or byte [bx+si], al                       ; 08 00
+    jc near 0ddb1h                            ; 0f 82 ff 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 0860f000dh          ; 66 3d 0d 00 0f 86
+    test AL, strict byte 000h                 ; a8 00
+    add byte [bx+si], al                      ; 00 00
+    jmp near 0ddb1h                           ; e9 f0 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 028740002h          ; 66 3d 02 00 74 28
+    cmp eax, strict dword 0850f0001h          ; 66 3d 01 00 0f 85
+    loopne 0dbd2h                             ; e0 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+024h], strict dword 0c7660001h ; 66 c7 45 24 01 00 66 c7
+    inc bp                                    ; 45
+    sbb byte [bx+si], dl                      ; 18 10
+    add dh, byte [bx+di]                      ; 02 31
+    sal byte [bp-077h], 045h                  ; c0 66 89 45
+    and bh, al                                ; 20 c7
+    inc bp                                    ; 45
+    sbb AL, strict byte 050h                  ; 1c 50
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    and cl, ch                                ; 20 e9
+    rol byte [bx+di], CL                      ; d2 01
+    add byte [bx+si], al                      ; 00 00
+    cmp dword [di+01ch], strict byte 0ffffffffh ; 66 83 7d 1c ff
+    jne short 0dc05h                          ; 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 083h                               ; 80 cc 83
+    jmp near 0ddb9h                           ; e9 b6 01
+    add byte [bx+si], al                      ; 00 00
+    xor bx, bx                                ; 31 db
+    db  00fh, 0b7h, 055h, 00ch
+    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
+    db  00fh, 0b7h, 045h, 020h
+    ; movzx ax, [di+020h]                       ; 0f b7 45 20
+    sal ax, 010h                              ; c1 e0 10
+    db  00fh, 0b7h, 04dh, 01ch
+    ; movzx cx, [di+01ch]                       ; 0f b7 4d 1c
+    or ax, cx                                 ; 09 c8
+    call 0da81h                               ; e8 66 fe
+    db  0ffh
+    jmp word [bp+03dh]                        ; ff 66 3d
+    db  0ffh
+    push word [di+00dh]                       ; ff 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0ddb9h                           ; e9 8b 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+018h], eax                  ; 66 89 45 18
+    jmp near 0ddc1h                           ; e9 8a 01
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 055h, 00ch
+    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov bx, strict word 00001h                ; bb 01 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da81h                               ; e8 39 fe
+    db  0ffh
+    jmp word [bp+03dh]                        ; ff 66 3d
+    db  0ffh
+    push word [di+00dh]                       ; ff 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0ddb9h                           ; e9 5e 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+018h], eax                  ; 66 89 45 18
+    jmp near 0ddc1h                           ; e9 5d 01
+    add byte [bx+si], al                      ; 00 00
+    cmp dword [di+008h], strict dword 00d720100h ; 66 81 7d 08 00 01 72 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 087h                               ; 80 cc 87
+    jmp near 0ddb9h                           ; e9 40 01
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 055h, 008h
+    ; movzx dx, [di+008h]                       ; 0f b7 55 08
+    db  00fh, 0b7h, 045h, 018h
+    ; movzx ax, [di+018h]                       ; 0f b7 45 18
+    call 0da5fh                               ; e8 d9 fd
+    db  0ffh
+    dec word [bp+di+02445h]                   ; ff 8b 45 24
+    xor ah, ah                                ; 30 e4
+    cmp eax, strict dword 02172000ah          ; 66 3d 0a 00 72 21
+    jbe short 0dd04h                          ; 76 6f
+    cmp eax, strict dword 0840f000dh          ; 66 3d 0d 00 0f 84
+    test ax, strict word 00000h               ; a9 00 00
+    add byte [bp+03dh], ah                    ; 00 66 3d
+    or AL, strict byte 000h                   ; 0c 00
+    je near 0dd2ah                            ; 0f 84 83 00
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 06374000bh          ; 66 3d 0b 00 74 63
+    jmp near 0ddc1h                           ; e9 0f 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 02d740009h          ; 66 3d 09 00 74 2d
+    cmp eax, strict dword 0850f0008h          ; 66 3d 08 00 0f 85
+    inc word [bx+si]                          ; ff 00
+    add byte [bx+si], al                      ; 00 00
+    mov bx, word [di+020h]                    ; 8b 5d 20
+    xor bl, bl                                ; 30 db
+    mov ax, word [di+008h]                    ; 8b 45 08
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 003h                  ; 24 03
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    or bx, ax                                 ; 09 c3
+    mov dword [di+020h], ebx                  ; 66 89 5d 20
+    jmp near 0ddc1h                           ; e9 dc 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+008h]                    ; 8b 45 08
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 002h                  ; 24 02
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in eax, DX                                ; 66 ed
+    mov dword [di+020h], eax                  ; 66 89 45 20
+    jmp near 0ddc1h                           ; e9 bf 00
+    add byte [bx+si], al                      ; 00 00
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    in ax, DX                                 ; ed
+    mov word [di+020h], ax                    ; 89 45 20
+    jmp near 0ddc1h                           ; e9 b1 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov dx, word [di+008h]                    ; 8b 55 08
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    db  00fh, 0b7h, 0d2h
+    ; movzx dx, dx                              ; 0f b7 d2
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, AL                                ; ee
+    jmp near 0ddc1h                           ; e9 97 00
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 045h, 020h
+    ; movzx ax, [di+020h]                       ; 0f b7 45 20
+    mov dx, word [di+008h]                    ; 8b 55 08
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    db  00fh, 0b7h, 0d2h
+    ; movzx dx, dx                              ; 0f b7 d2
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, eax                               ; 66 ef
+    jmp near 0ddc1h                           ; e9 7b 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, ax                                ; ef
+    jmp short 0ddc3h                          ; eb 70
+    db  00fh, 0b7h, 045h, 008h
+    ; movzx ax, [di+008h]                       ; 0f b7 45 08
+    mov es, [di+028h]                         ; 8e 45 28
+    mov [di-010h], es                         ; 8c 45 f0
+    mov bx, ax                                ; 89 c3
+    mov edx, dword [di]                       ; 66 8b 15
+    mov AL, byte [000f4h]                     ; a0 f4 00
+    add byte [bp+026h], ah                    ; 00 66 26
+    cmp dx, word [bx+si]                      ; 3b 10
+    jbe short 0dd7eh                          ; 76 12
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 089h                               ; 80 cc 89
+    mov dword [di+024h], eax                  ; 66 89 45 24
+    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
+    jmp short 0dda4h                          ; eb 26
+    db  00fh, 0b7h, 0cah
+    ; movzx cx, dx                              ; 0f b7 ca
+    db  066h, 026h, 08bh, 050h, 006h
+    ; mov edx, dword [es:bx+si+006h]            ; 66 26 8b 50 06
+    mov word [di-014h], dx                    ; 89 55 ec
+    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
+    mov dx, ds                                ; 8c da
+    mov si, 0f2c0h                            ; be c0 f2
+    add byte [bx+si], al                      ; 00 00
+    mov es, [di-014h]                         ; 8e 45 ec
+    push DS                                   ; 1e
+    db  066h, 08eh, 0dah
+    ; mov ds, edx                               ; 66 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
+    mov AL, byte [000f4h]                     ; a0 f4 00
+    add byte [bp-00fbbh], cl                  ; 00 8e 45 f0
+    db  066h, 026h, 089h, 003h
+    ; mov dword [es:bp+di], eax                 ; 66 26 89 03
+    jmp short 0ddc3h                          ; eb 10
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 081h                               ; 80 cc 81
+    mov dword [di+024h], eax                  ; 66 89 45 24
+    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
+    lea sp, [di-00ch]                         ; 8d 65 f4
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+
+  ; Padding 0x1 bytes at 0xfddcb
+  times 1 db 0
+
+section BIOS32CONST progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+section BIOS32CONST2 progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+section BIOS32_DATA progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+  ; Padding 0x234 bytes at 0xfddcc
+  times 564 db 0
+
+section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
+eoi_both_pics:                               ; 0xfe030 LB 0x4
+    mov AL, strict byte 020h                  ; b0 20
+    out strict byte 0a0h, AL                  ; e6 a0
+eoi_master_pic:                              ; 0xfe034 LB 0x5
+    mov AL, strict byte 020h                  ; b0 20
+    out strict byte 020h, AL                  ; e6 20
+    retn                                      ; c3
+set_int_vects:                               ; 0xfe039 LB 0xb
+    mov word [bx], ax                         ; 89 07
+    mov word [bx+002h], dx                    ; 89 57 02
+    add bx, strict byte 00004h                ; 83 c3 04
+    loop 0e039h                               ; e2 f6
+    retn                                      ; c3
+eoi_jmp_post:                                ; 0xfe044 LB 0x17
+    call 0e030h                               ; e8 e9 ff
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    jmp far [00467h]                          ; ff 2e 67 04
+    times 0xa db 0
+    db  'XM'
+post:                                        ; 0xfe05b LB 0x69
+    cli                                       ; fa
+    smsw ax                                   ; 0f 01 e0
+    test ax, strict word 00001h               ; a9 01 00
+    je short 0e06ah                           ; 74 06
+    mov AL, strict byte 001h                  ; b0 01
+    out strict byte 092h, AL                  ; e6 92
+    jmp short 0e068h                          ; eb fe
+    mov AL, strict byte 00fh                  ; b0 0f
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    xchg ah, al                               ; 86 c4
+    in AL, strict byte 064h                   ; e4 64
+    test AL, strict byte 004h                 ; a8 04
+    je short 0e089h                           ; 74 11
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    jne short 0e089h                          ; 75 0b
+    push strict byte 00040h                   ; 6a 40
+    pop DS                                    ; 1f
+    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
+    jne short 0e064h                          ; 75 db
+    mov AL, strict byte 00fh                  ; b0 0f
+    out strict byte 070h, AL                  ; e6 70
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 071h, AL                  ; e6 71
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    cmp AL, strict byte 009h                  ; 3c 09
+    je short 0e0a9h                           ; 74 12
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 0e0a9h                           ; 74 0e
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    out strict byte 00dh, AL                  ; e6 0d
+    out strict byte 0dah, AL                  ; e6 da
+    mov AL, strict byte 0c0h                  ; b0 c0
+    out strict byte 0d6h, AL                  ; e6 d6
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 0d4h, AL                  ; e6 d4
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0e0c4h                           ; 74 15
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    jnc short 0e0c4h                          ; 73 11
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 0e0bah                          ; 75 03
+    jmp near 0e366h                           ; e9 ac 02
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0e044h                           ; 74 86
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 0e047h                           ; 74 85
+    jmp short 0e0c4h                          ; eb 00
+normal_post:                                 ; 0xfe0c4 LB 0x1ff
+    mov ax, 07800h                            ; b8 00 78
+    db  08bh, 0e0h
+    ; mov sp, ax                                ; 8b e0
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov ss, ax                                ; 8e d0
+    mov es, ax                                ; 8e c0
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    cld                                       ; fc
+    mov cx, 00239h                            ; b9 39 02
+    rep stosw                                 ; f3 ab
+    inc di                                    ; 47
+    inc di                                    ; 47
+    mov cx, 005c6h                            ; b9 c6 05
+    rep stosw                                 ; f3 ab
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    add bx, 01000h                            ; 81 c3 00 10
+    cmp bx, 09000h                            ; 81 fb 00 90
+    jnc short 0e0f7h                          ; 73 0b
+    mov es, bx                                ; 8e c3
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    mov cx, 08000h                            ; b9 00 80
+    rep stosw                                 ; f3 ab
+    jmp short 0e0e2h                          ; eb eb
+    mov es, bx                                ; 8e c3
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    mov cx, 07ff8h                            ; b9 f8 7f
+    rep stosw                                 ; f3 ab
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01777h                               ; e8 6f 36
+    call 0e8e0h                               ; e8 d5 07
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov ds, bx                                ; 8e db
+    mov cx, strict word 00060h                ; b9 60 00
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov dx, 0f000h                            ; ba 00 f0
+    call 0e039h                               ; e8 1e ff
+    mov bx, 001a0h                            ; bb a0 01
+    mov cx, strict word 00010h                ; b9 10 00
+    call 0e039h                               ; e8 15 ff
+    mov ax, 0027fh                            ; b8 7f 02
+    mov word [00413h], ax                     ; a3 13 04
+    mov ax, 0e9d6h                            ; b8 d6 e9
+    mov word [00018h], ax                     ; a3 18 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0001ah], ax                     ; a3 1a 00
+    mov ax, 0f84dh                            ; b8 4d f8
+    mov word [00044h], ax                     ; a3 44 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00046h], ax                     ; a3 46 00
+    mov ax, 0f841h                            ; b8 41 f8
+    mov word [00048h], ax                     ; a3 48 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0004ah], ax                     ; a3 4a 00
+    mov ax, 0f859h                            ; b8 59 f8
+    mov word [00054h], ax                     ; a3 54 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00056h], ax                     ; a3 56 00
+    mov ax, 0efd4h                            ; b8 d4 ef
+    mov word [0005ch], ax                     ; a3 5c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0005eh], ax                     ; a3 5e 00
+    mov ax, 0f0a4h                            ; b8 a4 f0
+    mov word [00060h], ax                     ; a3 60 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00062h], ax                     ; a3 62 00
+    mov ax, 0e6f2h                            ; b8 f2 e6
+    mov word [00064h], ax                     ; a3 64 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00066h], ax                     ; a3 66 00
+    mov ax, 0efedh                            ; b8 ed ef
+    mov word [00070h], ax                     ; a3 70 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00072h], ax                     ; a3 72 00
+    call 0e778h                               ; e8 eb 05
+    call 0f13ch                               ; e8 ac 0f
+    call 0f1c1h                               ; e8 2e 10
+    mov ax, 0fe6eh                            ; b8 6e fe
+    mov word [00068h], ax                     ; a3 68 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0006ah], ax                     ; a3 6a 00
+    mov ax, 0fea5h                            ; b8 a5 fe
+    mov word [00020h], ax                     ; a3 20 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00022h], ax                     ; a3 22 00
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    mov ax, 0f065h                            ; b8 65 f0
+    mov word [00040h], ax                     ; a3 40 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00042h], ax                     ; a3 42 00
+    mov ax, 0e987h                            ; b8 87 e9
+    mov word [00024h], ax                     ; a3 24 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00026h], ax                     ; a3 26 00
+    mov ax, 0e82eh                            ; b8 2e e8
+    mov word [00058h], ax                     ; a3 58 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0005ah], ax                     ; a3 5a 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov byte [00417h], AL                     ; a2 17 04
+    mov byte [00418h], AL                     ; a2 18 04
+    mov byte [00419h], AL                     ; a2 19 04
+    mov byte [00471h], AL                     ; a2 71 04
+    mov byte [00497h], AL                     ; a2 97 04
+    mov AL, strict byte 010h                  ; b0 10
+    mov byte [00496h], AL                     ; a2 96 04
+    mov bx, strict word 0001eh                ; bb 1e 00
+    mov word [0041ah], bx                     ; 89 1e 1a 04
+    mov word [0041ch], bx                     ; 89 1e 1c 04
+    mov word [00480h], bx                     ; 89 1e 80 04
+    mov bx, strict word 0003eh                ; bb 3e 00
+    mov word [00482h], bx                     ; 89 1e 82 04
+    mov AL, strict byte 014h                  ; b0 14
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    mov byte [00410h], AL                     ; a2 10 04
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    mov ax, 0c000h                            ; b8 00 c0
+    mov dx, 0c800h                            ; ba 00 c8
+    call 01600h                               ; e8 e3 33
+    call 04e4ch                               ; e8 2c 6c
+    pop DS                                    ; 1f
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov word [0003ch], ax                     ; a3 3c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003eh], ax                     ; a3 3e 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov CL, strict byte 014h                  ; b1 14
+    mov dx, 00378h                            ; ba 78 03
+    call 0ecedh                               ; e8 b2 0a
+    mov dx, 00278h                            ; ba 78 02
+    call 0ecedh                               ; e8 ac 0a
+    sal bx, 00eh                              ; c1 e3 0e
+    mov ax, word [00410h]                     ; a1 10 04
+    and ax, 03fffh                            ; 25 ff 3f
+    db  00bh, 0c3h
+    ; or ax, bx                                 ; 0b c3
+    mov word [00410h], ax                     ; a3 10 04
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [0002ch], ax                     ; a3 2c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0002eh], ax                     ; a3 2e 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [00030h], ax                     ; a3 30 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00032h], ax                     ; a3 32 00
+    mov ax, 0e739h                            ; b8 39 e7
+    mov word [00050h], ax                     ; a3 50 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00052h], ax                     ; a3 52 00
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov CL, strict byte 00ah                  ; b1 0a
+    mov dx, 003f8h                            ; ba f8 03
+    call 0ed0bh                               ; e8 8e 0a
+    mov dx, 002f8h                            ; ba f8 02
+    call 0ed0bh                               ; e8 88 0a
+    mov dx, 003e8h                            ; ba e8 03
+    call 0ed0bh                               ; e8 82 0a
+    mov dx, 002e8h                            ; ba e8 02
+    call 0ed0bh                               ; e8 7c 0a
+    sal bx, 009h                              ; c1 e3 09
+    mov ax, word [00410h]                     ; a1 10 04
+    and ax, 0f1ffh                            ; 25 ff f1
+    db  00bh, 0c3h
+    ; or ax, bx                                 ; 0b c3
+    mov word [00410h], ax                     ; a3 10 04
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov word [00128h], ax                     ; a3 28 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0012ah], ax                     ; a3 2a 01
+    mov ax, 0fe8fh                            ; b8 8f fe
+    mov word [001c0h], ax                     ; a3 c0 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001c2h], ax                     ; a3 c2 01
+    call 0edbfh                               ; e8 07 0b
+    jmp short 0e31bh                          ; eb 61
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si+04dh], bl                 ; 00 58 4d
+nmi:                                         ; 0xfe2c3 LB 0x7
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01753h                               ; e8 8a 34
+    iret                                      ; cf
+int75_handler:                               ; 0xfe2ca LB 0x8
+    out strict byte 0f0h, AL                  ; e6 f0
+    call 0e030h                               ; e8 61 fd
+    int 002h                                  ; cd 02
+    iret                                      ; cf
+hard_drive_post:                             ; 0xfe2d2 LB 0x12c
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov byte [00474h], AL                     ; a2 74 04
+    mov byte [00477h], AL                     ; a2 77 04
+    mov byte [0048ch], AL                     ; a2 8c 04
+    mov byte [0048dh], AL                     ; a2 8d 04
+    mov byte [0048eh], AL                     ; a2 8e 04
+    mov AL, strict byte 0c0h                  ; b0 c0
+    mov byte [00476h], AL                     ; a2 76 04
+    mov ax, 0e3feh                            ; b8 fe e3
+    mov word [0004ch], ax                     ; a3 4c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0004eh], ax                     ; a3 4e 00
+    mov ax, 0f8d7h                            ; b8 d7 f8
+    mov word [001d8h], ax                     ; a3 d8 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001dah], ax                     ; a3 da 01
+    mov ax, strict word 0003dh                ; b8 3d 00
+    mov word [00104h], ax                     ; a3 04 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov word [00106h], ax                     ; a3 06 01
+    mov ax, strict word 0004dh                ; b8 4d 00
+    mov word [00118h], ax                     ; a3 18 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov word [0011ah], ax                     ; a3 1a 01
+    retn                                      ; c3
+    mov ax, 0f8a9h                            ; b8 a9 f8
+    mov word [001d0h], ax                     ; a3 d0 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001d2h], ax                     ; a3 d2 01
+    mov ax, 0e2cah                            ; b8 ca e2
+    mov word [001d4h], ax                     ; a3 d4 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001d6h], ax                     ; a3 d6 01
+    call 0e753h                               ; e8 1d 04
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01cafh                               ; e8 73 39
+    call 0213ch                               ; e8 fd 3d
+    call 09752h                               ; e8 10 b4
+    call 08636h                               ; e8 f1 a2
+    call 0ed2fh                               ; e8 e7 09
+    call 0e2d2h                               ; e8 87 ff
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    mov ax, 0c800h                            ; b8 00 c8
+    mov dx, 0f000h                            ; ba 00 f0
+    call 01600h                               ; e8 a9 32
+    call 01797h                               ; e8 3d 34
+    call 03b30h                               ; e8 d3 57
+    sti                                       ; fb
+    int 019h                                  ; cd 19
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 0e361h                          ; eb fd
+    cli                                       ; fa
+    hlt                                       ; f4
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ss, [word 00069h]                     ; 8e 16 69 00
+    mov sp, word [word 00067h]                ; 8b 26 67 00
+    in AL, strict byte 092h                   ; e4 92
+    and AL, strict byte 0fdh                  ; 24 fd
+    out strict byte 092h, AL                  ; e6 92
+    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    in AL, strict byte 080h                   ; e4 80
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    db  03ah, 0e0h
+    ; cmp ah, al                                ; 3a e0
+    popaw                                     ; 61
+    sti                                       ; fb
+    retf 00002h                               ; ca 02 00
+    times 0x6d db 0
+    db  'XM'
+int13_handler:                               ; 0xfe3fe LB 0x3
+    jmp near 0ec5bh                           ; e9 5a 08
+rom_fdpt:                                    ; 0xfe401 LB 0x2f1
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h
+    db  04dh
+int19_handler:                               ; 0xfe6f2 LB 0x3
+    jmp near 0f0ach                           ; e9 b7 09
+biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
+    or word [bx+si], ax                       ; 09 00
+    cld                                       ; fc
+    add byte [bx+di], al                      ; 00 01
+    je short 0e73ch                           ; 74 40
+    times 0x2b db 0
+    db  'XM'
+biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
+    times 0xe db 0
+    db  'XM'
+biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 06361h                               ; e8 1f 7c
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 016e8h                               ; e8 99 2f
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+init_pic:                                    ; 0xfe753 LB 0x25
+    mov AL, strict byte 011h                  ; b0 11
+    out strict byte 020h, AL                  ; e6 20
+    out strict byte 0a0h, AL                  ; e6 a0
+    mov AL, strict byte 008h                  ; b0 08
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 070h                  ; b0 70
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 004h                  ; b0 04
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 001h                  ; b0 01
+    out strict byte 021h, AL                  ; e6 21
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 0b8h                  ; b0 b8
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 08fh                  ; b0 8f
+    out strict byte 0a1h, AL                  ; e6 a1
+    retn                                      ; c3
+ebda_post:                                   ; 0xfe778 LB 0xb6
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [00034h], ax                     ; a3 34 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00036h], ax                     ; a3 36 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [0003ch], ax                     ; a3 3c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003eh], ax                     ; a3 3e 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [001c8h], ax                     ; a3 c8 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001cah], ax                     ; a3 ca 01
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [001dch], ax                     ; a3 dc 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001deh], ax                     ; a3 de 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov ds, ax                                ; 8e d8
+    mov byte [word 00000h], 001h              ; c6 06 00 00 01
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
+    retn                                      ; c3
+    times 0x6f db 0
+    db  'XM'
+biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x36
+    sti                                       ; fb
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    cmp ah, 000h                              ; 80 fc 00
+    je short 0e846h                           ; 74 0f
+    cmp ah, 010h                              ; 80 fc 10
+    je short 0e846h                           ; 74 0a
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 05657h                               ; e8 15 6e
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    mov bx, strict word 00040h                ; bb 40 00
+    mov ds, bx                                ; 8e db
+    cli                                       ; fa
+    mov bx, word [word 0001ah]                ; 8b 1e 1a 00
+    cmp bx, word [word 0001ch]                ; 3b 1e 1c 00
+    jne short 0e85ah                          ; 75 04
+    sti                                       ; fb
+    nop                                       ; 90
+    jmp short 0e84bh                          ; eb f1
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 05657h                               ; e8 f7 6d
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+pmode_enter:                                 ; 0xfe864 LB 0x1b
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    lgdt [cs:0e892h]                          ; 2e 0f 01 16 92 e8
+    mov eax, cr0                              ; 0f 20 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov cr0, eax                              ; 0f 22 c0
+    jmp far 00020h:0e879h                     ; ea 79 e8 20 00
+    mov ax, strict word 00018h                ; b8 18 00
+    mov ds, ax                                ; 8e d8
+    retn                                      ; c3
+pmode_exit:                                  ; 0xfe87f LB 0x13
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov eax, cr0                              ; 0f 20 c0
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cr0, eax                              ; 0f 22 c0
+    jmp far 0f000h:0e891h                     ; ea 91 e8 00 f0
+    retn                                      ; c3
+pmbios_gdt_desc:                             ; 0xfe892 LB 0x6
+    db  047h, 000h, 098h, 0e8h, 00fh, 000h
+pmbios_gdt:                                  ; 0xfe898 LB 0x48
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 000h, 000h, 000h, 09bh, 0cfh, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 0cfh, 000h
+    db  0ffh, 0ffh, 000h, 000h, 00fh, 09bh, 000h, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0ffh, 0ffh, 000h, 004h, 000h, 093h, 000h, 000h
+pmode_setup:                                 ; 0xfe8e0 LB 0xa7
+    push eax                                  ; 66 50
+    push esi                                  ; 66 56
+    pushfw                                    ; 9c
+    cli                                       ; fa
+    call 0e864h                               ; e8 7b ff
+    mov eax, cr0                              ; 0f 20 c0
+    and eax, strict dword 09fffffffh          ; 66 25 ff ff ff 9f
+    mov cr0, eax                              ; 0f 22 c0
+    mov esi, strict dword 0fee000f0h          ; 66 be f0 00 e0 fe
+    mov eax, strict dword 00000010fh          ; 66 b8 0f 01 00 00
+    mov dword [esi], eax                      ; 67 66 89 06
+    mov esi, strict dword 0fee00350h          ; 66 be 50 03 e0 fe
+    mov eax, dword [esi]                      ; 67 66 8b 06
+    and eax, strict dword 0fffe00ffh          ; 66 25 ff 00 fe ff
+    or ah, 007h                               ; 80 cc 07
+    mov dword [esi], eax                      ; 67 66 89 06
+    mov esi, strict dword 0fee00360h          ; 66 be 60 03 e0 fe
+    mov eax, dword [esi]                      ; 67 66 8b 06
+    and eax, strict dword 0fffe00ffh          ; 66 25 ff 00 fe ff
+    or ah, 004h                               ; 80 cc 04
+    mov dword [esi], eax                      ; 67 66 89 06
+    call 0e87fh                               ; e8 49 ff
+    popfw                                     ; 9d
+    pop esi                                   ; 66 5e
+    pop eax                                   ; 66 58
+    retn                                      ; c3
+    times 0x49 db 0
+    db  'XM'
+biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
+    cli                                       ; fa
+    push ax                                   ; 50
+    mov AL, strict byte 0adh                  ; b0 ad
+    out strict byte 064h, AL                  ; e6 64
+    mov AL, strict byte 00bh                  ; b0 0b
+    out strict byte 020h, AL                  ; e6 20
+    in AL, strict byte 020h                   ; e4 20
+    and AL, strict byte 002h                  ; 24 02
+    je short 0e9d0h                           ; 74 39
+    in AL, strict byte 060h                   ; e4 60
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    cld                                       ; fc
+    mov AH, strict byte 04fh                  ; b4 4f
+    stc                                       ; f9
+    int 015h                                  ; cd 15
+    jnc short 0e9cah                          ; 73 27
+    sti                                       ; fb
+    cmp AL, strict byte 0e0h                  ; 3c e0
+    jne short 0e9b3h                          ; 75 0b
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    or byte [00496h], 002h                    ; 80 0e 96 04 02
+    jmp short 0e9cah                          ; eb 17
+    cmp AL, strict byte 0e1h                  ; 3c e1
+    jne short 0e9c2h                          ; 75 0b
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    or byte [00496h], 001h                    ; 80 0e 96 04 01
+    jmp short 0e9cah                          ; eb 08
+    push ES                                   ; 06
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0514fh                               ; e8 86 67
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    cli                                       ; fa
+    call 0e034h                               ; e8 64 f6
+    mov AL, strict byte 0aeh                  ; b0 ae
+    out strict byte 064h, AL                  ; e6 64
+    pop ax                                    ; 58
+    iret                                      ; cf
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 06e01h                               ; e8 22 84
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+    times 0x274 db 0
+    db  'XM'
+biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
+    jmp short 0ecb0h                          ; eb 55
+int13_relocated:                             ; 0xfec5b LB 0x55
+    cmp ah, 04ah                              ; 80 fc 4a
+    jc short 0ec71h                           ; 72 11
+    cmp ah, 04dh                              ; 80 fc 4d
+    jnbe short 0ec71h                         ; 77 0c
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 03b74h                           ; e9 03 4f
+    push ES                                   ; 06
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    call 03b48h                               ; e8 cf 4e
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0ecabh                           ; 74 2e
+    call 03b5eh                               ; e8 de 4e
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  03ah, 0c2h
+    ; cmp al, dl                                ; 3a c2
+    jne short 0ec97h                          ; 75 11
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 04148h                           ; e9 b1 54
+    and dl, 0e0h                              ; 80 e2 e0
+    db  03ah, 0c2h
+    ; cmp al, dl                                ; 3a c2
+    jne short 0ecabh                          ; 75 0d
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    db  0feh, 0cah
+    ; dec dl                                    ; fe ca
+    jmp short 0ecb4h                          ; eb 09
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+int13_noeltorito:                            ; 0xfecb0 LB 0x4
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+int13_legacy:                                ; 0xfecb4 LB 0x14
+    push dx                                   ; 52
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    test dl, 080h                             ; f6 c2 80
+    jne short 0ecc8h                          ; 75 06
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 03203h                           ; e9 3b 45
+int13_notfloppy:                             ; 0xfecc8 LB 0x14
+    cmp dl, 0e0h                              ; 80 fa e0
+    jc short 0ecdch                           ; 72 0f
+    shr ebx, 010h                             ; 66 c1 eb 10
+    push bx                                   ; 53
+    call 0457ch                               ; e8 a7 58
+    pop bx                                    ; 5b
+    sal ebx, 010h                             ; 66 c1 e3 10
+    jmp short 0ece9h                          ; eb 0d
+int13_disk:                                  ; 0xfecdc LB 0xd
+    cmp ah, 040h                              ; 80 fc 40
+    jnbe short 0ece6h                         ; 77 05
+    call 05a23h                               ; e8 3f 6d
+    jmp short 0ece9h                          ; eb 03
+    call 05e6dh                               ; e8 84 71
+int13_out:                                   ; 0xfece9 LB 0x4
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+detect_parport:                              ; 0xfeced LB 0x1e
+    push dx                                   ; 52
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    and AL, strict byte 0dfh                  ; 24 df
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    mov AL, strict byte 0aah                  ; b0 aa
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 0aah                  ; 3c aa
+    jne short 0ed0ah                          ; 75 0d
+    push bx                                   ; 53
+    sal bx, 1                                 ; d1 e3
+    mov word [bx+00408h], dx                  ; 89 97 08 04
+    pop bx                                    ; 5b
+    mov byte [bx+00478h], cl                  ; 88 8f 78 04
+    inc bx                                    ; 43
+    retn                                      ; c3
+detect_serial:                               ; 0xfed0b LB 0x24
+    push dx                                   ; 52
+    inc dx                                    ; 42
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0ed2dh                          ; 75 18
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0ed2dh                          ; 75 12
+    dec dx                                    ; 4a
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    pop dx                                    ; 5a
+    push bx                                   ; 53
+    sal bx, 1                                 ; d1 e3
+    mov word [bx+00400h], dx                  ; 89 97 00 04
+    pop bx                                    ; 5b
+    mov byte [bx+0047ch], cl                  ; 88 8f 7c 04
+    inc bx                                    ; 43
+    retn                                      ; c3
+    pop dx                                    ; 5a
+    retn                                      ; c3
+floppy_post:                                 ; 0xfed2f LB 0x87
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov AL, strict byte 000h                  ; b0 00
+    mov byte [0043eh], AL                     ; a2 3e 04
+    mov byte [0043fh], AL                     ; a2 3f 04
+    mov byte [00440h], AL                     ; a2 40 04
+    mov byte [00441h], AL                     ; a2 41 04
+    mov byte [00442h], AL                     ; a2 42 04
+    mov byte [00443h], AL                     ; a2 43 04
+    mov byte [00444h], AL                     ; a2 44 04
+    mov byte [00445h], AL                     ; a2 45 04
+    mov byte [00446h], AL                     ; a2 46 04
+    mov byte [00447h], AL                     ; a2 47 04
+    mov byte [00448h], AL                     ; a2 48 04
+    mov byte [0048bh], AL                     ; a2 8b 04
+    mov AL, strict byte 010h                  ; b0 10
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    shr al, 004h                              ; c0 e8 04
+    je short 0ed6ah                           ; 74 04
+    mov BL, strict byte 007h                  ; b3 07
+    jmp short 0ed6ch                          ; eb 02
+    mov BL, strict byte 000h                  ; b3 00
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    and AL, strict byte 00fh                  ; 24 0f
+    je short 0ed75h                           ; 74 03
+    or bl, 070h                               ; 80 cb 70
+    mov byte [0048fh], bl                     ; 88 1e 8f 04
+    mov AL, strict byte 000h                  ; b0 00
+    mov byte [00490h], AL                     ; a2 90 04
+    mov byte [00491h], AL                     ; a2 91 04
+    mov byte [00492h], AL                     ; a2 92 04
+    mov byte [00493h], AL                     ; a2 93 04
+    mov byte [00494h], AL                     ; a2 94 04
+    mov byte [00495h], AL                     ; a2 95 04
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 00ah, AL                  ; e6 0a
+    mov ax, 0efc7h                            ; b8 c7 ef
+    mov word [00078h], ax                     ; a3 78 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0007ah], ax                     ; a3 7a 00
+    mov ax, 0ec59h                            ; b8 59 ec
+    mov word [00100h], ax                     ; a3 00 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00102h], ax                     ; a3 02 01
+    mov ax, 0ef57h                            ; b8 57 ef
+    mov word [00038h], ax                     ; a3 38 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003ah], ax                     ; a3 3a 00
+    retn                                      ; c3
+bcd_to_bin:                                  ; 0xfedb6 LB 0x9
+    sal ax, 004h                              ; c1 e0 04
+    shr al, 004h                              ; c0 e8 04
+    aad 00ah                                  ; d5 0a
+    retn                                      ; c3
+rtc_post:                                    ; 0xfedbf LB 0x198
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 eb ff
+    mov edx, strict dword 00115cf2bh          ; 66 ba 2b cf 15 01
+    mul edx                                   ; 66 f7 e2
+    mov ebx, strict dword 0000f4240h          ; 66 bb 40 42 0f 00
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    div ebx                                   ; 66 f7 f3
+    db  066h, 08bh, 0c8h
+    ; mov ecx, eax                              ; 66 8b c8
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 c7 ff
+    mov edx, strict dword 000a6af80h          ; 66 ba 80 af a6 00
+    mul edx                                   ; 66 f7 e2
+    mov ebx, strict dword 000002710h          ; 66 bb 10 27 00 00
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    div ebx                                   ; 66 f7 f3
+    db  066h, 003h, 0c8h
+    ; add ecx, eax                              ; 66 03 c8
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    mov AL, strict byte 004h                  ; b0 04
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 a3 ff
+    mov edx, strict dword 003e81d03h          ; 66 ba 03 1d e8 03
+    mul edx                                   ; 66 f7 e2
+    mov ebx, strict dword 0000003e8h          ; 66 bb e8 03 00 00
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    div ebx                                   ; 66 f7 f3
+    db  066h, 003h, 0c8h
+    ; add ecx, eax                              ; 66 03 c8
+    mov dword [0046ch], ecx                   ; 66 89 0e 6c 04
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    mov byte [00470h], AL                     ; a2 70 04
+    retn                                      ; c3
+    times 0x11f db 0
+    db  'XM'
+int0e_handler:                               ; 0xfef57 LB 0x70
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0ef81h                           ; 74 1e
+    mov dx, 003f5h                            ; ba f5 03
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    jne short 0ef69h                          ; 75 f6
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0ef73h                           ; 74 f2
+    push DS                                   ; 1e
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    call 0e034h                               ; e8 ab f0
+    or byte [0043eh], 080h                    ; 80 0e 3e 04 80
+    pop DS                                    ; 1f
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    iret                                      ; cf
+    times 0x33 db 0
+    db  'XM'
+_diskette_param_table:                       ; 0xfefc7 LB 0xb
+    scasw                                     ; af
+    add ah, byte [di]                         ; 02 25
+    add dl, byte [bp+si]                      ; 02 12
+    db  01bh, 0ffh
+    ; sbb di, di                                ; 1b ff
+    insb                                      ; 6c
+    db  0f6h
+    invd                                      ; 0f 08
+biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
+    jmp short 0efd4h                          ; eb 00
+int17_handler:                               ; 0xfefd4 LB 0xd
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0777ch                               ; e8 9f 87
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+_pmode_IDT:                                  ; 0xfefe1 LB 0x6
+    db  000h, 000h, 000h, 000h, 00fh, 000h
+_rmode_IDT:                                  ; 0xfefe7 LB 0x6
+    db  0ffh, 003h, 000h, 000h, 000h, 000h
+int1c_handler:                               ; 0xfefed LB 0x58
+    iret                                      ; cf
+    times 0x55 db 0
+    db  'XM'
+biosorg_check_0F045h:                        ; 0xff045 LB 0x20
+    iret                                      ; cf
+    times 0x1d db 0
+    db  'XM'
+int10_handler:                               ; 0xff065 LB 0x3f
+    iret                                      ; cf
+    times 0x3c db 0
+    db  'XM'
+biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01765h                               ; e8 bb 26
+    hlt                                       ; f4
+    iret                                      ; cf
+int19_relocated:                             ; 0xff0ac LB 0x90
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, word [bp+002h]                    ; 8b 46 02
+    cmp ax, 0f000h                            ; 3d 00 f0
+    je short 0f0c3h                           ; 74 0d
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov ax, 01234h                            ; b8 34 12
+    mov word [001d8h], ax                     ; a3 d8 01
+    jmp near 0e05bh                           ; e9 98 ef
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    call 04be3h                               ; e8 13 5b
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 28
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 04be3h                               ; e8 06 5b
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 1b
+    mov ax, strict word 00003h                ; b8 03 00
+    push strict byte 00003h                   ; 6a 03
+    call 04be3h                               ; e8 f8 5a
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 0d
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 04be3h                               ; e8 eb 5a
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    je short 0f0a4h                           ; 74 a6
+    sal eax, 004h                             ; 66 c1 e0 04
+    mov word [bp+002h], ax                    ; 89 46 02
+    shr eax, 004h                             ; 66 c1 e8 04
+    and ax, 0f000h                            ; 25 00 f0
+    mov word [bp+004h], ax                    ; 89 46 04
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    mov word [byte bp+000h], ax               ; 89 46 00
+    mov ax, 0aa55h                            ; b8 55 aa
+    pop bp                                    ; 5d
+    iret                                      ; cf
+    or cx, word [bp+si]                       ; 0b 0a
+    or word [bp+di], cx                       ; 09 0b
+    push eax                                  ; 66 50
+    mov eax, strict dword 000800000h          ; 66 b8 00 00 80 00
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    sal eax, 008h                             ; 66 c1 e0 08
+    and dl, 0fch                              ; 80 e2 fc
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov dx, 00cf8h                            ; ba f8 0c
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    retn                                      ; c3
+pcibios_init_iomem_bases:                    ; 0xff13c LB 0x16
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov eax, strict dword 0e0000000h          ; 66 b8 00 00 00 e0
+    push eax                                  ; 66 50
+    mov ax, 0d000h                            ; b8 00 d0
+    push ax                                   ; 50
+    mov ax, strict word 00010h                ; b8 10 00
+    push ax                                   ; 50
+    mov bx, strict word 00008h                ; bb 08 00
+pci_init_io_loop1:                           ; 0xff152 LB 0xe
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f121h                               ; e8 ca ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    cmp ax, strict byte 0ffffh                ; 83 f8 ff
+    je short 0f199h                           ; 74 39
+enable_iomem_space:                          ; 0xff160 LB 0x39
+    mov DL, strict byte 004h                  ; b2 04
+    call 0f121h                               ; e8 bc ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in AL, DX                                 ; ec
+    or AL, strict byte 007h                   ; 0c 07
+    out DX, AL                                ; ee
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f121h                               ; e8 b0 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
+    jne short 0f199h                          ; 75 1b
+    mov DL, strict byte 010h                  ; b2 10
+    call 0f121h                               ; e8 9e ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    and ax, strict byte 0fffch                ; 83 e0 fc
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    db  08bh, 0d1h
+    ; mov dx, cx                                ; 8b d1
+    add dx, strict byte 00014h                ; 83 c2 14
+    in ax, DX                                 ; ed
+    db  08bh, 0d1h
+    ; mov dx, cx                                ; 8b d1
+    add dx, strict byte 00018h                ; 83 c2 18
+    in eax, DX                                ; 66 ed
+next_pci_dev:                                ; 0xff199 LB 0xf
+    mov byte [bp-008h], 010h                  ; c6 46 f8 10
+    inc bx                                    ; 43
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jne short 0f152h                          ; 75 ae
+    db  08bh, 0e5h
+    ; mov sp, bp                                ; 8b e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pcibios_init_set_elcr:                       ; 0xff1a8 LB 0xc
+    push ax                                   ; 50
+    push cx                                   ; 51
+    mov dx, 004d0h                            ; ba d0 04
+    test AL, strict byte 008h                 ; a8 08
+    je short 0f1b4h                           ; 74 03
+    inc dx                                    ; 42
+    and AL, strict byte 007h                  ; 24 07
+is_master_pic:                               ; 0xff1b4 LB 0xd
+    db  08ah, 0c8h
+    ; mov cl, al                                ; 8a c8
+    mov BL, strict byte 001h                  ; b3 01
+    sal bl, CL                                ; d2 e3
+    in AL, DX                                 ; ec
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    out DX, AL                                ; ee
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    retn                                      ; c3
+pcibios_init_irqs:                           ; 0xff1c1 LB 0x53
+    push DS                                   ; 1e
+    push bp                                   ; 55
+    mov ax, 0f000h                            ; b8 00 f0
+    mov ds, ax                                ; 8e d8
+    mov dx, 004d0h                            ; ba d0 04
+    mov AL, strict byte 000h                  ; b0 00
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov si, 0f2a0h                            ; be a0 f2
+    mov bh, byte [si+008h]                    ; 8a 7c 08
+    mov bl, byte [si+009h]                    ; 8a 5c 09
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f121h                               ; e8 43 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
+    jne near 0f291h                           ; 0f 85 a6 00
+    mov dl, byte [si+022h]                    ; 8a 54 22
+    call 0f121h                               ; e8 30 ff
+    push bx                                   ; 53
+    mov dx, 00cfch                            ; ba fc 0c
+    mov ax, 08080h                            ; b8 80 80
+    out DX, ax                                ; ef
+    add dx, strict byte 00002h                ; 83 c2 02
+    out DX, ax                                ; ef
+    mov ax, word [si+006h]                    ; 8b 44 06
+    sub ax, strict byte 00020h                ; 83 e8 20
+    shr ax, 004h                              ; c1 e8 04
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    add si, strict byte 00020h                ; 83 c6 20
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, 0f11dh                            ; b8 1d f1
+    push ax                                   ; 50
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
+pci_init_irq_loop1:                          ; 0xff214 LB 0x5
+    mov bh, byte [si]                         ; 8a 3c
+    mov bl, byte [si+001h]                    ; 8a 5c 01
+pci_init_irq_loop2:                          ; 0xff219 LB 0x15
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f121h                               ; e8 03 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    cmp ax, strict byte 0ffffh                ; 83 f8 ff
+    jne short 0f22eh                          ; 75 07
+    test bl, 007h                             ; f6 c3 07
+    je short 0f285h                           ; 74 59
+    jmp short 0f27bh                          ; eb 4d
+pci_test_int_pin:                            ; 0xff22e LB 0x3c
+    mov DL, strict byte 03ch                  ; b2 3c
+    call 0f121h                               ; e8 ee fe
+    mov dx, 00cfdh                            ; ba fd 0c
+    in AL, DX                                 ; ec
+    and AL, strict byte 007h                  ; 24 07
+    je short 0f27bh                           ; 74 40
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov DL, strict byte 003h                  ; b2 03
+    mul dl                                    ; f6 e2
+    add AL, strict byte 002h                  ; 04 02
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    mov al, byte [bx+si]                      ; 8a 00
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    mov bx, word [byte bp+000h]               ; 8b 5e 00
+    call 0f121h                               ; e8 d0 fe
+    mov dx, 00cfch                            ; ba fc 0c
+    and AL, strict byte 003h                  ; 24 03
+    db  002h, 0d0h
+    ; add dl, al                                ; 02 d0
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 0f26ah                           ; 72 0d
+    mov bx, word [bp-002h]                    ; 8b 5e fe
+    mov al, byte [bx]                         ; 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov word [bp-002h], bx                    ; 89 5e fe
+    call 0f1a8h                               ; e8 3e ff
+pirq_found:                                  ; 0xff26a LB 0x11
+    mov bh, byte [si]                         ; 8a 3c
+    mov bl, byte [si+001h]                    ; 8a 5c 01
+    add bl, byte [bp-003h]                    ; 02 5e fd
+    mov DL, strict byte 03ch                  ; b2 3c
+    call 0f121h                               ; e8 aa fe
+    mov dx, 00cfch                            ; ba fc 0c
+    out DX, AL                                ; ee
+next_pci_func:                               ; 0xff27b LB 0xa
+    inc byte [bp-003h]                        ; fe 46 fd
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    test bl, 007h                             ; f6 c3 07
+    jne short 0f219h                          ; 75 94
+next_pir_entry:                              ; 0xff285 LB 0xc
+    add si, strict byte 00010h                ; 83 c6 10
+    mov byte [bp-003h], 000h                  ; c6 46 fd 00
+    loop 0f214h                               ; e2 86
+    db  08bh, 0e5h
+    ; mov sp, bp                                ; 8b e5
+    pop bx                                    ; 5b
+pci_init_end:                                ; 0xff291 LB 0x2f
+    pop bp                                    ; 5d
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 024h, 050h, 049h, 052h
+    db  000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
+_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
+    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
+    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
+    db  000h, 018h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 002h, 000h
+    db  000h, 020h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 003h, 000h
+    db  000h, 028h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 004h, 000h
+    db  000h, 030h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 005h, 000h
+    db  000h, 038h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 006h, 000h
+    db  000h, 040h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 007h, 000h
+    db  000h, 048h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 008h, 000h
+    db  000h, 050h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 009h, 000h
+    db  000h, 058h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00ah, 000h
+    db  000h, 060h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00bh, 000h
+    db  000h, 068h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 00ch, 000h
+    db  000h, 070h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 00dh, 000h
+    db  000h, 078h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00eh, 000h
+    db  000h, 080h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00fh, 000h
+    db  000h, 088h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 010h, 000h
+    db  000h, 090h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 011h, 000h
+    db  000h, 098h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 012h, 000h
+    db  000h, 0a0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 013h, 000h
+    db  000h, 0a8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 014h, 000h
+    db  000h, 0b0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 015h, 000h
+    db  000h, 0b8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 016h, 000h
+    db  000h, 0c0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 017h, 000h
+    db  000h, 0c8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 018h, 000h
+    db  000h, 0d0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 019h, 000h
+    db  000h, 0d8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 01ah, 000h
+    db  000h, 0e0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 01bh, 000h
+    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
+    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
+_pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
+    loopne 0f4a3h                             ; e0 01
+    times 0x39d db 0
+    db  'XM'
+int12_handler:                               ; 0xff841 LB 0xc
+    sti                                       ; fb
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [00013h]                     ; a1 13 00
+    pop DS                                    ; 1f
+    iret                                      ; cf
+int11_handler:                               ; 0xff84d LB 0xc
+    sti                                       ; fb
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [00010h]                     ; a1 10 00
+    pop DS                                    ; 1f
+    iret                                      ; cf
+int15_handler:                               ; 0xff859 LB 0x2e
+    pushfw                                    ; 9c
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    cmp ah, 086h                              ; 80 fc 86
+    je short 0f88ch                           ; 74 28
+    cmp ah, 0e8h                              ; 80 fc e8
+    je short 0f88ch                           ; 74 23
+    cmp ah, 0d0h                              ; 80 fc d0
+    je short 0f88ch                           ; 74 1e
+    pushaw                                    ; 60
+    cmp ah, 053h                              ; 80 fc 53
+    je short 0f882h                           ; 74 0e
+    cmp ah, 0c2h                              ; 80 fc c2
+    je short 0f887h                           ; 74 0e
+    call 0656eh                               ; e8 f2 6c
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    popfw                                     ; 9d
+    jmp short 0f895h                          ; eb 13
+    call 09889h                               ; e8 04 a0
+    jmp short 0f87ch                          ; eb f5
+int15_handler_mouse:                         ; 0xff887 LB 0x5
+    call 073f1h                               ; e8 67 7b
+    jmp short 0f87ch                          ; eb f0
+int15_handler32:                             ; 0xff88c LB 0x9
+    pushad                                    ; 66 60
+    call 06a3fh                               ; e8 ae 71
+    popad                                     ; 66 61
+    jmp short 0f87dh                          ; eb e8
+iret_modify_cf:                              ; 0xff895 LB 0x14
+    jc short 0f8a0h                           ; 72 09
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    and byte [bp+006h], 0feh                  ; 80 66 06 fe
+    pop bp                                    ; 5d
+    iret                                      ; cf
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    or byte [bp+006h], 001h                   ; 80 4e 06 01
+    pop bp                                    ; 5d
+    iret                                      ; cf
+int74_handler:                               ; 0xff8a9 LB 0x2e
+    sti                                       ; fb
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 07327h                               ; e8 6a 7a
+    pop cx                                    ; 59
+    jcxz 0f8cch                               ; e3 0c
+    push strict byte 00000h                   ; 6a 00
+    pop DS                                    ; 1f
+    push word [0040eh]                        ; ff 36 0e 04
+    pop DS                                    ; 1f
+    call far [word 00022h]                    ; ff 1e 22 00
+    cli                                       ; fa
+    call 0e030h                               ; e8 60 e7
+    add sp, strict byte 00008h                ; 83 c4 08
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+int76_handler:                               ; 0xff8d7 LB 0x197
+    push ax                                   ; 50
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
+    call 0e030h                               ; e8 4a e7
+    pop DS                                    ; 1f
+    pop ax                                    ; 58
+    iret                                      ; cf
+    times 0x183 db 0
+    db  'XM'
+font8x8:                                     ; 0xffa6e LB 0x400
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
+    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
+    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
+    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
+    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
+    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
+    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
+    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
+    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
+    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
+    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
+    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
+    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
+    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
+    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
+    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
+    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
+    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
+    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
+    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
+    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
+    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
+    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
+    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
+    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
+    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
+    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
+    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
+    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
+    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
+    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
+    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
+    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
+    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
+    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
+    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
+    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
+    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
+    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
+    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
+    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
+    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
+    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
+    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
+    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
+    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
+    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
+    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
+    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
+    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
+    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
+    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
+biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0x21
+    cmp ah, 0b1h                              ; 80 fc b1
+    jne short 0fe82h                          ; 75 0f
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    pushad                                    ; 66 60
+    call 09a99h                               ; e8 1c 9c
+    popad                                     ; 66 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0709dh                               ; e8 12 72
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+int70_handler:                               ; 0xffe8f LB 0x16
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 06fdfh                               ; e8 47 71
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si+04dh], bl                 ; 00 58 4d
+int08_handler:                               ; 0xffea5 LB 0x4e
+    sti                                       ; fb
+    push eax                                  ; 66 50
+    push DS                                   ; 1e
+    push dx                                   ; 52
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov eax, dword [0006ch]                   ; 66 a1 6c 00
+    inc eax                                   ; 66 40
+    cmp eax, strict dword 0001800b0h          ; 66 3d b0 00 18 00
+    jc short 0fec4h                           ; 72 07
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    inc byte [word 00070h]                    ; fe 06 70 00
+    mov dword [0006ch], eax                   ; 66 a3 6c 00
+    mov AL, byte [00040h]                     ; a0 40 00
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    je short 0feddh                           ; 74 0e
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [00040h], AL                     ; a2 40 00
+    jne short 0feddh                          ; 75 07
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0cfh                  ; 24 cf
+    out DX, AL                                ; ee
+    int 01ch                                  ; cd 1c
+    cli                                       ; fa
+    call 0e034h                               ; e8 51 e1
+    pop dx                                    ; 5a
+    pop DS                                    ; 1f
+    pop eax                                   ; 66 58
+    iret                                      ; cf
+    times 0x9 db 0
+    db  'XM'
+biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
+    times 0xb db 0
+    db  'XM'
+biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
+    dec di                                    ; 4f
+    jc short 0ff64h                           ; 72 61
+    arpl [si+065h], bp                        ; 63 6c 65
+    and byte [bp+04dh], dl                    ; 20 56 4d
+    and byte [bp+069h], dl                    ; 20 56 69
+    jc short 0ff82h                           ; 72 74
+    jne short 0ff71h                          ; 75 61
+    insb                                      ; 6c
+    inc dx                                    ; 42
+    outsw                                     ; 6f
+    js short 0ff35h                           ; 78 20
+    inc dx                                    ; 42
+    dec cx                                    ; 49
+    dec di                                    ; 4f
+    push bx                                   ; 53
+    times 0x38 db 0
+    db  'XM'
+dummy_iret:                                  ; 0xfff53 LB 0x1
+    iret                                      ; cf
+biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
+    iret                                      ; cf
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    cld                                       ; fc
+    pop di                                    ; 5f
+    push bx                                   ; 53
+    dec bp                                    ; 4d
+    pop di                                    ; 5f
+    jnl short 0ff85h                          ; 7d 1f
+    add al, byte [di]                         ; 02 05
+    inc word [bx+si]                          ; ff 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    pop di                                    ; 5f
+    inc sp                                    ; 44
+    dec bp                                    ; 4d
+    dec cx                                    ; 49
+    pop di                                    ; 5f
+    and ax, strict word 00000h                ; 25 00 00
+    add byte [bx+si], dl                      ; 00 10
+    push CS                                   ; 0e
+    add byte [bx+si], al                      ; 00 00
+    add byte [di], ah                         ; 00 25
+    times 0x6f db 0
+    db  'XM'
+cpu_reset:                                   ; 0xffff0 LB 0x10
+    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 04eh
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 60422)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 60422)
@@ -0,0 +1,1 @@
+6f304b6bd2833711f28ac083956c9a9b *VBoxPcBios386.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 60422)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 60422)
@@ -0,0 +1,17831 @@
+; $Id$ 
+;; @file
+; Auto Generated source file. Do not edit.
+;
+
+;
+; Source file: post.c
+;
+;  BIOS POST routines. Used only during initialization.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: bios.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: print.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: ata.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: floppy.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: floppyt.c
+;
+;  $Id$
+;  Floppy drive tables.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: eltorito.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: boot.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: keyboard.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: disk.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: serial.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: system.c
+;
+;  
+;  Copyright (C) 2006-2016 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: invop.c
+;
+;  $Id$
+;  Real mode invalid opcode handler.
+;  
+;  
+;  
+;  Copyright (C) 2013-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: timepci.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: ps2mouse.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: parallel.c
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+
+;
+; Source file: logo.c
+;
+;  $Id$
+;  Stuff for drawing the BIOS logo.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: scsi.c
+;
+;  $Id$
+;  SCSI host adapter driver to boot from SCSI disks
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: ahci.c
+;
+;  $Id$
+;  AHCI host adapter driver to boot from SATA disks.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: apm.c
+;
+;  $Id$
+;  APM BIOS support. Implements APM version 1.2.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: pcibios.c
+;
+;  $Id$
+;  PCI BIOS support.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: pciutil.c
+;
+;  Utility routines for calling the PCI BIOS.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: vds.c
+;
+;  Utility routines for calling the Virtual DMA Services.
+;  
+;  
+;  
+;  Copyright (C) 2011-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+;
+; Source file: support.asm
+;
+;  $Id$
+;  Compiler support routines.
+;  
+;  
+;  
+;  Copyright (C) 2012-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+
+;
+; Source file: pcibio32.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+;  --------------------------------------------------------------------
+
+;
+; Source file: apm_pm.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  
+;  --------------------------------------------------------------------
+;  
+;  Protected-mode APM implementation.
+;  
+
+;
+; Source file: orgs.asm
+;
+;  
+;  Copyright (C) 2006-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+;  --------------------------------------------------------------------
+;  
+;  This code is based on:
+;  
+;   ROM BIOS for use with Bochs/Plex86/QEMU emulation environment
+;  
+;   Copyright (C) 2002  MandrakeSoft S.A.
+;  
+;     MandrakeSoft S.A.
+;     43, rue d'Aboukir
+;     75002 Paris - France
+;     http://www.linux-mandrake.com/
+;     http://www.mandrakesoft.com/
+;  
+;   This library is free software; you can redistribute it and/or
+;   modify it under the terms of the GNU Lesser General Public
+;   License as published by the Free Software Foundation; either
+;   version 2 of the License, or (at your option) any later version.
+;  
+;   This library is distributed in the hope that it will be useful,
+;   but WITHOUT ANY WARRANTY; without even the implied warranty of
+;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;   Lesser General Public License for more details.
+;  
+;   You should have received a copy of the GNU Lesser General Public
+;   License along with this library; if not, write to the Free Software
+;   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+;  
+;  
+
+;
+; Source file: pci32.c
+;
+;  $Id$
+;  32-bit PCI BIOS wrapper.
+;  
+;  
+;  
+;  Copyright (C) 2004-2015 Oracle Corporation
+;  
+;  This file is part of VirtualBox Open Source Edition (OSE), as
+;  available from http://www.virtualbox.org. This file is free software;
+;  you can redistribute it and/or modify it under the terms of the GNU
+;  General Public License (GPL) as published by the Free Software
+;  Foundation, in version 2 as it comes in the "COPYING" file of the
+;  VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+;  hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+
+
+
+section _DATA progbits vstart=0x0 align=1 ; size=0xb0 class=DATA group=DGROUP
+_fd_parm:                                    ; 0xf0000 LB 0x5b
+    db  0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 080h, 0dfh, 002h, 025h
+    db  002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 040h, 0dfh, 002h, 025h, 002h, 00fh, 01bh
+    db  0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 000h, 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h
+    db  00fh, 008h, 04fh, 080h, 0afh, 002h, 025h, 002h, 012h, 01bh, 0ffh, 06ch, 0f6h, 00fh, 008h, 04fh
+    db  000h, 0afh, 002h, 025h, 002h, 024h, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 0c0h, 0afh, 002h
+    db  025h, 002h, 0ffh, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 0ffh, 000h
+_fd_map:                                     ; 0xf005b LB 0xf
+    db  001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h
+_pktacc:                                     ; 0xf006a LB 0xc
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0bfh, 02bh, 056h, 083h, 0f1h, 092h
+_softrst:                                    ; 0xf0076 LB 0xc
+    db  000h, 000h, 000h, 000h, 000h, 000h, 04ah, 02eh, 0dbh, 03bh, 0dbh, 03bh
+_dskacc:                                     ; 0xf0082 LB 0x2e
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0a3h, 02ah, 064h, 02bh, 000h, 000h, 000h, 000h
+    db  084h, 081h, 06dh, 082h, 0bfh, 091h, 069h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
+
+section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
+    db   'NMI Handler called', 00ah, 000h
+    db   'INT18: BOOT FAILURE', 00ah, 000h
+    db   '%s', 00ah, 000h, 000h
+    db   'FATAL: ', 000h
+    db   'bios_printf: unknown %ll format', 00ah, 000h
+    db   'bios_printf: unknown format', 00ah, 000h
+    db   'ata-detect: Failed to detect ATA device', 00ah, 000h
+    db   'ata%d-%d: PCHS=%u/%u/%u LCHS=%u/%u/%u', 00ah, 000h
+    db   'ata-detect: Failed to detect ATAPI device', 00ah, 000h
+    db   ' slave', 000h
+    db   'master', 000h
+    db   'ata%d %s: ', 000h
+    db   '%c', 000h
+    db   ' ATA-%d Hard-Disk (%lu MBytes)', 00ah, 000h
+    db   ' ATAPI-%d CD-ROM/DVD-ROM', 00ah, 000h
+    db   ' ATAPI-%d Device', 00ah, 000h
+    db   'ata%d %s: Unknown device', 00ah, 000h
+    db   'ata_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'set_diskette_current_cyl: drive > 1', 00ah, 000h
+    db   'int13_diskette_function', 000h
+    db   '%s: drive>1 || head>1 ...', 00ah, 000h
+    db   '%s: ctrl not ready', 00ah, 000h
+    db   '%s: write error', 00ah, 000h
+    db   '%s: bad floppy type', 00ah, 000h
+    db   '%s: unsupported AH=%02x', 00ah, 000h, 000h
+    db   'int13_eltorito', 000h
+    db   '%s: call with AX=%04x not implemented.', 00ah, 000h
+    db   '%s: unsupported AH=%02x', 00ah, 000h
+    db   'int13_cdemu', 000h
+    db   '%s: function %02x, emulation not active for DL= %02x', 00ah, 000h
+    db   '%s: function %02x, error %02x !', 00ah, 000h
+    db   '%s: function AH=%02x unsupported, returns fail', 00ah, 000h
+    db   'int13_cdrom', 000h
+    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
+    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
+    db   '%s: function %02x. Can', 027h, 't use 64bits lba', 00ah, 000h
+    db   '%s: function %02x, status %02x !', 00ah, 000h, 000h
+    db   'Booting from %s...', 00ah, 000h
+    db   'Boot from %s failed', 00ah, 000h
+    db   'Boot from %s %d failed', 00ah, 000h
+    db   'No bootable medium found! System halted.', 00ah, 000h
+    db   'Could not read from the boot medium! System halted.', 00ah, 000h
+    db   'CDROM boot failure code : %04x', 00ah, 000h
+    db   'Boot : bseqnr=%d, bootseq=%x', 00dh, 00ah, 000h, 000h
+    db   'Keyboard error:%u', 00ah, 000h
+    db   'KBD: int09 handler: AL=0', 00ah, 000h
+    db   'KBD: int09h_handler(): unknown scancode read: 0x%02x!', 00ah, 000h
+    db   'KBD: int09h_handler(): scancode & asciicode are zero?', 00ah, 000h
+    db   'KBD: int16h: out of keyboard input', 00ah, 000h
+    db   'KBD: unsupported int 16h function %02x', 00ah, 000h
+    db   'AX=%04x BX=%04x CX=%04x DX=%04x ', 00ah, 000h, 000h
+    db   'int13_harddisk', 000h
+    db   '%s: function %02x, ELDL out of range %02x', 00ah, 000h
+    db   '%s: function %02x, unmapped device for ELDL=%02x', 00ah, 000h
+    db   '%s: function %02x, count out of range!', 00ah, 000h
+    db   '%s: function %02x, disk %02x, parameters out of range %04x/%04x/%04x!', 00ah
+    db   000h
+    db   '%s: function %02x, error %02x !', 00ah, 000h
+    db   'format disk track called', 00ah, 000h
+    db   '%s: function %02xh unimplemented, returns success', 00ah, 000h
+    db   '%s: function %02xh unsupported, returns fail', 00ah, 000h
+    db   'int13_harddisk_ext', 000h
+    db   '%s: function %02x. LBA out of range', 00ah, 000h, 000h
+    db   'int15: Func 24h, subfunc %02xh, A20 gate control not supported', 00ah, 000h
+    db   '*** int 15h function AH=bf not yet supported!', 00ah, 000h
+    db   'EISA BIOS not present', 00ah, 000h
+    db   '*** int 15h function AX=%04x, BX=%04x not yet supported!', 00ah, 000h
+    db   'sendmouse', 000h
+    db   'setkbdcomm', 000h
+    db   'Mouse reset returned %02x (should be ack)', 00ah, 000h
+    db   'Mouse status returned %02x (should be ack)', 00ah, 000h
+    db   'INT 15h C2 AL=6, BH=%02x', 00ah, 000h
+    db   'INT 15h C2 default case entered', 00ah, 000h, 000h
+    db   'Key pressed: %x', 00ah, 000h
+    db   00ah, 00ah, '  AHCI controller:', 000h
+    db   00ah, '    %d) Hard disk', 000h
+    db   00ah, 00ah, '  SCSI controller:', 000h
+    db   '  IDE controller:', 000h
+    db   00ah, 00ah, 'AHCI controller:', 00ah, 000h
+    db   00ah, '    %d) ', 000h
+    db   'Secondary ', 000h
+    db   'Primary ', 000h
+    db   'Slave', 000h
+    db   'Master', 000h
+    db   'No hard disks found', 000h
+    db   00ah, 000h
+    db   'Press F12 to select boot device.', 00ah, 000h
+    db   00ah, 'VirtualBox temporary boot device selection', 00ah, 00ah, 'Detected H'
+    db   'ard disks:', 00ah, 00ah, 000h
+    db   00ah, 'Other boot devices:', 00ah, ' f) Floppy', 00ah, ' c) CD-ROM', 00ah
+    db   ' l) LAN', 00ah, 00ah, ' b) Continue booting', 00ah, 000h
+    db   'Delaying boot for %d seconds:', 000h
+    db   ' %d', 000h, 000h
+    db   'scsi_read_sectors', 000h
+    db   '%s: device_id out of range %d', 00ah, 000h
+    db   'scsi_write_sectors', 000h
+    db   'scsi_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'scsi_enumerate_attached_devices', 000h
+    db   '%s: SCSI_INQUIRY failed', 00ah, 000h
+    db   '%s: SCSI_READ_CAPACITY failed', 00ah, 000h
+    db   'Disk %d has an unsupported sector size of %u', 00ah, 000h
+    db   'SCSI %d-ID#%d: LCHS=%lu/%u/%u 0x%llx sectors', 00ah, 000h
+    db   'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h, 000h
+    db   'ahci_read_sectors', 000h
+    db   '%s: device_id out of range %d', 00ah, 000h
+    db   'ahci_write_sectors', 000h
+    db   'ahci_cmd_packet', 000h
+    db   '%s: DATA_OUT not supported yet', 00ah, 000h
+    db   'AHCI %d-P#%d: PCHS=%u/%u/%u LCHS=%u/%u/%u 0x%llx sectors', 00ah, 000h
+    db   'Standby', 000h
+    db   'Suspend', 000h
+    db   'Shutdown', 000h
+    db   'APM: Unsupported function AX=%04X BX=%04X called', 00ah, 000h, 000h
+    db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
+
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+    db  'VirtualBox 5.0.51', 000h
+_bios_prefix_string:                         ; 0xf0da0 LB 0x8
+    db  'BIOS: ', 000h, 000h
+_isotag:                                     ; 0xf0da8 LB 0x6
+    db  'CD001', 000h
+_eltorito:                                   ; 0xf0dae LB 0x18
+    db  'EL TORITO SPECIFICATION', 000h
+_drivetypes:                                 ; 0xf0dc6 LB 0x28
+    db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
+    db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
+    db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
+    db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
+    db  040h, 003h, 000h, 003h, 000h, 079h, 000h, 000h, 033h, 004h, 023h, 004h, 000h, 000h, 000h, 07ah
+    db  000h, 000h, 034h, 005h, 024h, 005h, 000h, 000h, 000h, 07bh, 000h, 000h, 035h, 006h, 025h, 006h
+    db  000h, 000h, 000h, 07ch, 000h, 000h, 036h, 007h, 05eh, 007h, 01eh, 007h, 000h, 07dh, 000h, 000h
+    db  037h, 008h, 026h, 008h, 000h, 000h, 000h, 07eh, 000h, 000h, 038h, 009h, 02ah, 009h, 000h, 000h
+    db  000h, 07fh, 000h, 000h, 039h, 00ah, 028h, 00ah, 000h, 000h, 000h, 080h, 000h, 000h, 030h, 00bh
+    db  029h, 00bh, 000h, 000h, 000h, 081h, 000h, 000h, 02dh, 00ch, 05fh, 00ch, 01fh, 00ch, 000h, 082h
+    db  000h, 000h, 03dh, 00dh, 02bh, 00dh, 000h, 000h, 000h, 083h, 000h, 000h, 008h, 00eh, 008h, 00eh
+    db  07fh, 00eh, 000h, 000h, 000h, 000h, 009h, 00fh, 000h, 00fh, 000h, 000h, 000h, 000h, 000h, 000h
+    db  071h, 010h, 051h, 010h, 011h, 010h, 000h, 010h, 040h, 000h, 077h, 011h, 057h, 011h, 017h, 011h
+    db  000h, 011h, 040h, 000h, 065h, 012h, 045h, 012h, 005h, 012h, 000h, 012h, 040h, 000h, 072h, 013h
+    db  052h, 013h, 012h, 013h, 000h, 013h, 040h, 000h, 074h, 014h, 054h, 014h, 014h, 014h, 000h, 014h
+    db  040h, 000h, 079h, 015h, 059h, 015h, 019h, 015h, 000h, 015h, 040h, 000h, 075h, 016h, 055h, 016h
+    db  015h, 016h, 000h, 016h, 040h, 000h, 069h, 017h, 049h, 017h, 009h, 017h, 000h, 017h, 040h, 000h
+    db  06fh, 018h, 04fh, 018h, 00fh, 018h, 000h, 018h, 040h, 000h, 070h, 019h, 050h, 019h, 010h, 019h
+    db  000h, 019h, 040h, 000h, 05bh, 01ah, 07bh, 01ah, 01bh, 01ah, 000h, 000h, 000h, 000h, 05dh, 01bh
+    db  07dh, 01bh, 01dh, 01bh, 000h, 000h, 000h, 000h, 00dh, 01ch, 00dh, 01ch, 00ah, 01ch, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 061h, 01eh, 041h, 01eh
+    db  001h, 01eh, 000h, 01eh, 040h, 000h, 073h, 01fh, 053h, 01fh, 013h, 01fh, 000h, 01fh, 040h, 000h
+    db  064h, 020h, 044h, 020h, 004h, 020h, 000h, 020h, 040h, 000h, 066h, 021h, 046h, 021h, 006h, 021h
+    db  000h, 021h, 040h, 000h, 067h, 022h, 047h, 022h, 007h, 022h, 000h, 022h, 040h, 000h, 068h, 023h
+    db  048h, 023h, 008h, 023h, 000h, 023h, 040h, 000h, 06ah, 024h, 04ah, 024h, 00ah, 024h, 000h, 024h
+    db  040h, 000h, 06bh, 025h, 04bh, 025h, 00bh, 025h, 000h, 025h, 040h, 000h, 06ch, 026h, 04ch, 026h
+    db  00ch, 026h, 000h, 026h, 040h, 000h, 03bh, 027h, 03ah, 027h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  027h, 028h, 022h, 028h, 000h, 000h, 000h, 000h, 000h, 000h, 060h, 029h, 07eh, 029h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 02bh
+    db  07ch, 02bh, 01ch, 02bh, 000h, 000h, 000h, 000h, 07ah, 02ch, 05ah, 02ch, 01ah, 02ch, 000h, 02ch
+    db  040h, 000h, 078h, 02dh, 058h, 02dh, 018h, 02dh, 000h, 02dh, 040h, 000h, 063h, 02eh, 043h, 02eh
+    db  003h, 02eh, 000h, 02eh, 040h, 000h, 076h, 02fh, 056h, 02fh, 016h, 02fh, 000h, 02fh, 040h, 000h
+    db  062h, 030h, 042h, 030h, 002h, 030h, 000h, 030h, 040h, 000h, 06eh, 031h, 04eh, 031h, 00eh, 031h
+    db  000h, 031h, 040h, 000h, 06dh, 032h, 04dh, 032h, 00dh, 032h, 000h, 032h, 040h, 000h, 02ch, 033h
+    db  03ch, 033h, 000h, 000h, 000h, 000h, 000h, 000h, 02eh, 034h, 03eh, 034h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 02fh, 035h, 03fh, 035h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 02ah, 037h, 02ah, 037h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 020h, 039h, 020h, 039h, 020h, 039h
+    db  020h, 039h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 03bh
+    db  000h, 054h, 000h, 05eh, 000h, 068h, 000h, 000h, 000h, 03ch, 000h, 055h, 000h, 05fh, 000h, 069h
+    db  000h, 000h, 000h, 03dh, 000h, 056h, 000h, 060h, 000h, 06ah, 000h, 000h, 000h, 03eh, 000h, 057h
+    db  000h, 061h, 000h, 06bh, 000h, 000h, 000h, 03fh, 000h, 058h, 000h, 062h, 000h, 06ch, 000h, 000h
+    db  000h, 040h, 000h, 059h, 000h, 063h, 000h, 06dh, 000h, 000h, 000h, 041h, 000h, 05ah, 000h, 064h
+    db  000h, 06eh, 000h, 000h, 000h, 042h, 000h, 05bh, 000h, 065h, 000h, 06fh, 000h, 000h, 000h, 043h
+    db  000h, 05ch, 000h, 066h, 000h, 070h, 000h, 000h, 000h, 044h, 000h, 05dh, 000h, 067h, 000h, 071h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 047h, 037h, 047h, 000h, 077h, 000h, 000h, 020h, 000h
+    db  000h, 048h, 038h, 048h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 049h, 039h, 049h, 000h, 084h
+    db  000h, 000h, 020h, 000h, 02dh, 04ah, 02dh, 04ah, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04bh
+    db  034h, 04bh, 000h, 073h, 000h, 000h, 020h, 000h, 000h, 04ch, 035h, 04ch, 000h, 000h, 000h, 000h
+    db  020h, 000h, 000h, 04dh, 036h, 04dh, 000h, 074h, 000h, 000h, 020h, 000h, 02bh, 04eh, 02bh, 04eh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 04fh, 031h, 04fh, 000h, 075h, 000h, 000h, 020h, 000h
+    db  000h, 050h, 032h, 050h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 051h, 033h, 051h, 000h, 076h
+    db  000h, 000h, 020h, 000h, 000h, 052h, 030h, 052h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 053h
+    db  02eh, 053h, 000h, 000h, 000h, 000h, 020h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 05ch, 056h, 07ch, 056h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h
+    db  000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h
+_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
+    db  '%s: keyboard input buffer full', 00ah, 000h
+
+  ; Padding 0x478 bytes at 0xf1188
+  times 1144 db 0
+
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d05 class=CODE group=AUTO
+rom_scan_:                                   ; 0xf1600 LB 0x52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    cmp bx, di                                ; 39 fb
+    jnc short 01649h                          ; 73 38
+    xor si, si                                ; 31 f6
+    mov dx, bx                                ; 89 da
+    mov es, bx                                ; 8e c3
+    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
+    jne short 01643h                          ; 75 25
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-00ch], strict word 00003h    ; c7 46 f4 03 00
+    call far [bp-00ch]                        ; ff 5e f4
+    cli                                       ; fa
+    mov es, bx                                ; 8e c3
+    mov al, byte [es:si+002h]                 ; 26 8a 44 02
+    add AL, strict byte 003h                  ; 04 03
+    and AL, strict byte 0fch                  ; 24 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    mov CL, strict byte 002h                  ; b1 02
+    sal dx, CL                                ; d3 e2
+    db  01bh, 0c2h
+    ; sbb ax, dx                                ; 1b c2
+    sar ax, CL                                ; d3 f8
+    add bx, ax                                ; 01 c3
+    jmp short 0160dh                          ; eb ca
+    add bx, 00080h                            ; 81 c3 80 00
+    jmp short 0160dh                          ; eb c4
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_byte_:                                  ; 0xf1652 LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:bx]                      ; 26 8a 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_byte_:                                 ; 0xf1660 LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov byte [es:si], bl                      ; 26 88 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_word_:                                  ; 0xf166e LB 0xe
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_word_:                                 ; 0xf167c LB 0xe
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+read_dword_:                                 ; 0xf168a LB 0x12
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, dx                                ; 89 d3
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov dx, word [es:bx+002h]                 ; 26 8b 57 02
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+write_dword_:                                ; 0xf169c LB 0x12
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn                                      ; c3
+inb_cmos_:                                   ; 0xf16ae LB 0x1b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov AH, strict byte 070h                  ; b4 70
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 016bah                           ; 72 02
+    mov AH, strict byte 072h                  ; b4 72
+    mov dl, ah                                ; 88 e2
+    xor dh, dh                                ; 30 f6
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+outb_cmos_:                                  ; 0xf16c9 LB 0x1d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bl, dl                                ; 88 d3
+    mov AH, strict byte 070h                  ; b4 70
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 016d7h                           ; 72 02
+    mov AH, strict byte 072h                  ; b4 72
+    mov dl, ah                                ; 88 e2
+    xor dh, dh                                ; 30 f6
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_dummy_isr_function:                         ; 0xf16e6 LB 0x65
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push ax                                   ; 50
+    mov CL, strict byte 0ffh                  ; b1 ff
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-002h], al                    ; 88 46 fe
+    test al, al                               ; 84 c0
+    je short 0173ah                           ; 74 3c
+    mov AL, strict byte 00bh                  ; b0 0b
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    test al, al                               ; 84 c0
+    je short 01722h                           ; 74 15
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    mov al, cl                                ; 88 c8
+    or al, bl                                 ; 08 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    jmp short 01731h                          ; eb 0f
+    mov dx, strict word 00021h                ; ba 21 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and bl, 0fbh                              ; 80 e3 fb
+    mov byte [bp-002h], bl                    ; 88 5e fe
+    or al, bl                                 ; 08 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    mov cl, byte [bp-002h]                    ; 8a 4e fe
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 0006bh                ; ba 6b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 19 ff
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_nmi_handler_msg:                            ; 0xf174b LB 0x15
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov ax, 000b0h                            ; b8 b0 00
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 1d 02
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int18_panic_msg:                            ; 0xf1760 LB 0x15
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov ax, 000c4h                            ; b8 c4 00
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 08 02
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_log_bios_start:                             ; 0xf1775 LB 0x24
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 b0 01
+    mov ax, 00d8eh                            ; b8 8e 0d
+    push ax                                   ; 50
+    mov ax, 000d9h                            ; b8 d9 00
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 e4 01
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_print_bios_banner:                          ; 0xf1799 LB 0x2e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 c9 fe
+    mov cx, ax                                ; 89 c1
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 ca fe
+    cmp cx, 01234h                            ; 81 f9 34 12
+    jne short 017c0h                          ; 75 08
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    jmp short 017c3h                          ; eb 03
+    call 07d2ah                               ; e8 67 65
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+send_:                                       ; 0xf17c7 LB 0x3b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov bx, ax                                ; 89 c3
+    mov cl, dl                                ; 88 d1
+    test AL, strict byte 008h                 ; a8 08
+    je short 017dah                           ; 74 06
+    mov al, dl                                ; 88 d0
+    mov dx, 00403h                            ; ba 03 04
+    out DX, AL                                ; ee
+    test bl, 004h                             ; f6 c3 04
+    je short 017e5h                           ; 74 06
+    mov al, cl                                ; 88 c8
+    mov dx, 00504h                            ; ba 04 05
+    out DX, AL                                ; ee
+    test bl, 002h                             ; f6 c3 02
+    je short 017fbh                           ; 74 11
+    cmp cl, 00ah                              ; 80 f9 0a
+    jne short 017f5h                          ; 75 06
+    mov AL, strict byte 00dh                  ; b0 0d
+    mov AH, strict byte 00eh                  ; b4 0e
+    int 010h                                  ; cd 10
+    mov al, cl                                ; 88 c8
+    mov AH, strict byte 00eh                  ; b4 0e
+    int 010h                                  ; cd 10
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_int_:                                    ; 0xf1802 LB 0x63
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov di, bx                                ; 89 df
+    mov bx, strict word 0000ah                ; bb 0a 00
+    mov ax, dx                                ; 89 d0
+    cwd                                       ; 99
+    idiv bx                                   ; f7 fb
+    mov word [bp-006h], ax                    ; 89 46 fa
+    test ax, ax                               ; 85 c0
+    je short 0182bh                           ; 74 0c
+    lea bx, [di-001h]                         ; 8d 5d ff
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 01802h                               ; e8 d9 ff
+    jmp short 01846h                          ; eb 1b
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 0183ah                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 8f ff
+    jmp short 0182bh                          ; eb f1
+    test cx, cx                               ; 85 c9
+    je short 01846h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 81 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov BL, strict byte 00ah                  ; b3 0a
+    mul bl                                    ; f6 e3
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    sub bl, al                                ; 28 c3
+    add bl, 030h                              ; 80 c3 30
+    xor bh, bh                                ; 30 ff
+    mov dx, bx                                ; 89 da
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 69 ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_uint_:                                   ; 0xf1865 LB 0x5e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov di, strict word 0000ah                ; bf 0a 00
+    div di                                    ; f7 f7
+    mov word [bp-006h], ax                    ; 89 46 fa
+    test ax, ax                               ; 85 c0
+    je short 0188bh                           ; 74 0a
+    dec bx                                    ; 4b
+    mov dx, ax                                ; 89 c2
+    mov ax, si                                ; 89 f0
+    call 01865h                               ; e8 dc ff
+    jmp short 018a6h                          ; eb 1b
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jle short 0189ah                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 2f ff
+    jmp short 0188bh                          ; eb f1
+    test cx, cx                               ; 85 c9
+    je short 018a6h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 21 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    sub dl, al                                ; 28 c2
+    add dl, 030h                              ; 80 c2 30
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 0b ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_luint_:                                  ; 0xf18c3 LB 0x70
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov di, dx                                ; 89 d7
+    mov ax, bx                                ; 89 d8
+    mov dx, cx                                ; 89 ca
+    mov bx, strict word 0000ah                ; bb 0a 00
+    xor cx, cx                                ; 31 c9
+    call 0a1f0h                               ; e8 13 89
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov cx, dx                                ; 89 d1
+    mov dx, ax                                ; 89 c2
+    or dx, cx                                 ; 09 ca
+    je short 018f7h                           ; 74 0f
+    push word [bp+004h]                       ; ff 76 04
+    lea dx, [di-001h]                         ; 8d 55 ff
+    mov bx, ax                                ; 89 c3
+    mov ax, si                                ; 89 f0
+    call 018c3h                               ; e8 ce ff
+    jmp short 01914h                          ; eb 1d
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 01906h                          ; 7e 0a
+    mov dx, strict word 00020h                ; ba 20 00
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 c3 fe
+    jmp short 018f7h                          ; eb f1
+    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
+    je short 01914h                           ; 74 08
+    mov dx, strict word 0002dh                ; ba 2d 00
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 b3 fe
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov DL, strict byte 00ah                  ; b2 0a
+    mul dl                                    ; f6 e2
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    sub dl, al                                ; 28 c2
+    add dl, 030h                              ; 80 c2 30
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 9d fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+put_str_:                                    ; 0xf1933 LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    push si                                   ; 56
+    mov si, ax                                ; 89 c6
+    mov es, cx                                ; 8e c1
+    mov dl, byte [es:bx]                      ; 26 8a 17
+    test dl, dl                               ; 84 d2
+    je short 0194dh                           ; 74 0a
+    xor dh, dh                                ; 30 f6
+    mov ax, si                                ; 89 f0
+    call 017c7h                               ; e8 7d fe
+    inc bx                                    ; 43
+    jmp short 0193ah                          ; eb ed
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+put_str_near_:                               ; 0xf1954 LB 0x22
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov cx, ax                                ; 89 c1
+    mov bx, dx                                ; 89 d3
+    mov al, byte [bx]                         ; 8a 07
+    test al, al                               ; 84 c0
+    je short 0196fh                           ; 74 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov ax, cx                                ; 89 c8
+    call 017c7h                               ; e8 5b fe
+    inc bx                                    ; 43
+    jmp short 0195dh                          ; eb ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+bios_printf_:                                ; 0xf1976 LB 0x34f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0001ch                ; 83 ec 1c
+    lea bx, [bp+008h]                         ; 8d 5e 08
+    mov word [bp-016h], bx                    ; 89 5e ea
+    mov [bp-014h], ss                         ; 8c 56 ec
+    xor cx, cx                                ; 31 c9
+    xor di, di                                ; 31 ff
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    and ax, strict word 00007h                ; 25 07 00
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jne short 019a7h                          ; 75 0e
+    mov ax, 000deh                            ; b8 de 00
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 d2 ff
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov dl, byte [bx]                         ; 8a 17
+    test dl, dl                               ; 84 d2
+    je short 01a11h                           ; 74 61
+    cmp dl, 025h                              ; 80 fa 25
+    jne short 019bdh                          ; 75 08
+    mov cx, strict word 00001h                ; b9 01 00
+    xor di, di                                ; 31 ff
+    jmp near 01ca3h                           ; e9 e6 02
+    test cx, cx                               ; 85 c9
+    je short 01a14h                           ; 74 53
+    cmp dl, 030h                              ; 80 fa 30
+    jc short 019e0h                           ; 72 1a
+    cmp dl, 039h                              ; 80 fa 39
+    jnbe short 019e0h                         ; 77 15
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    mov ax, di                                ; 89 f8
+    mov dx, strict word 0000ah                ; ba 0a 00
+    mul dx                                    ; f7 e2
+    sub bx, strict byte 00030h                ; 83 eb 30
+    mov di, ax                                ; 89 c7
+    add di, bx                                ; 01 df
+    jmp near 01ca3h                           ; e9 c3 02
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    cmp dl, 078h                              ; 80 fa 78
+    je short 019feh                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01a59h                          ; 75 5b
+    test di, di                               ; 85 ff
+    jne short 01a05h                          ; 75 03
+    mov di, strict word 00004h                ; bf 04 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01a17h                          ; 75 0d
+    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
+    jmp short 01a1ch                          ; eb 0b
+    jmp near 01ca9h                           ; e9 95 02
+    jmp near 01c9bh                           ; e9 84 02
+    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    test ax, ax                               ; 85 c0
+    jl short 01a6ah                           ; 7c 41
+    mov cx, ax                                ; 89 c1
+    sal cx, 1                                 ; d1 e1
+    sal cx, 1                                 ; d1 e1
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    shr ax, CL                                ; d3 e8
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01a44h                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01a4ch                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c7h                               ; e8 73 fd
+    dec word [bp-012h]                        ; ff 4e ee
+    jmp short 01a22h                          ; eb c9
+    cmp dl, 075h                              ; 80 fa 75
+    jne short 01a6dh                          ; 75 0f
+    xor cx, cx                                ; 31 c9
+    mov bx, di                                ; 89 fb
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01865h                               ; e8 fb fd
+    jmp near 01c97h                           ; e9 2a 02
+    cmp dl, 06ch                              ; 80 fa 6c
+    jne short 01a7ah                          ; 75 08
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    cmp dl, byte [bx+001h]                    ; 3a 57 01
+    je short 01a7dh                           ; 74 03
+    jmp near 01b52h                           ; e9 d5 00
+    add word [bp+006h], strict byte 00002h    ; 83 46 06 02
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov dl, byte [bx]                         ; 8a 17
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    cmp dl, 078h                              ; 80 fa 78
+    je short 01acfh                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01b2ah                          ; 75 5b
+    test di, di                               ; 85 ff
+    jne short 01ad6h                          ; 75 03
+    mov di, strict word 00010h                ; bf 10 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01ae2h                          ; 75 07
+    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
+    jmp short 01ae7h                          ; eb 05
+    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    test ax, ax                               ; 85 c0
+    jl short 01b4fh                           ; 7c 5b
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    xor ax, ax                                ; 31 c0
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov cx, word [bp-024h]                    ; 8b 4e dc
+    mov dx, word [bp-026h]                    ; 8b 56 da
+    mov si, word [bp-01eh]                    ; 8b 76 e2
+    call 0a26ah                               ; e8 52 87
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01b2ch                         ; 77 09
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01b34h                          ; eb 0a
+    jmp short 01b41h                          ; eb 15
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c7h                               ; e8 8b fc
+    dec word [bp-012h]                        ; ff 4e ee
+    jmp short 01aedh                          ; eb ac
+    mov ax, 000e6h                            ; b8 e6 00
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 2a fe
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 01c97h                           ; e9 45 01
+    lea bx, [di-001h]                         ; 8d 5d ff
+    cmp dl, 06ch                              ; 80 fa 6c
+    jne short 01bb2h                          ; 75 58
+    inc word [bp+006h]                        ; ff 46 06
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov dl, byte [si]                         ; 8a 14
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les si, [bp-016h]                         ; c4 76 ea
+    mov ax, word [es:si-002h]                 ; 26 8b 44 fe
+    mov word [bp-010h], ax                    ; 89 46 f0
+    cmp dl, 064h                              ; 80 fa 64
+    jne short 01babh                          ; 75 30
+    test byte [bp-00fh], 080h                 ; f6 46 f1 80
+    je short 01b98h                           ; 74 17
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    neg cx                                    ; f7 d9
+    neg ax                                    ; f7 d8
+    sbb cx, strict byte 00000h                ; 83 d9 00
+    mov dx, bx                                ; 89 da
+    mov bx, ax                                ; 89 c3
+    jmp short 01ba3h                          ; eb 0b
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    mov dx, di                                ; 89 fa
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 018c3h                               ; e8 1a fd
+    jmp short 01b4fh                          ; eb a4
+    cmp dl, 075h                              ; 80 fa 75
+    jne short 01bb4h                          ; 75 04
+    jmp short 01b98h                          ; eb e6
+    jmp short 01c1bh                          ; eb 67
+    cmp dl, 078h                              ; 80 fa 78
+    je short 01bbeh                           ; 74 05
+    cmp dl, 058h                              ; 80 fa 58
+    jne short 01b4fh                          ; 75 91
+    test di, di                               ; 85 ff
+    jne short 01bc5h                          ; 75 03
+    mov di, strict word 00008h                ; bf 08 00
+    cmp dl, 078h                              ; 80 fa 78
+    jne short 01bd1h                          ; 75 07
+    mov word [bp-00eh], strict word 00061h    ; c7 46 f2 61 00
+    jmp short 01bd6h                          ; eb 05
+    mov word [bp-00eh], strict word 00041h    ; c7 46 f2 41 00
+    lea ax, [di-001h]                         ; 8d 45 ff
+    mov word [bp-012h], ax                    ; 89 46 ee
+    cmp word [bp-012h], strict byte 00000h    ; 83 7e ee 00
+    jl short 01c3dh                           ; 7c 5b
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    sal cx, 1                                 ; d1 e1
+    sal cx, 1                                 ; d1 e1
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    jcxz 01bf7h                               ; e3 06
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 01bf1h                               ; e2 fa
+    and ax, strict word 0000fh                ; 25 0f 00
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 01c06h                         ; 77 07
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00030h                ; 83 c2 30
+    jmp short 01c0eh                          ; eb 08
+    sub ax, strict word 0000ah                ; 2d 0a 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, ax                                ; 01 c2
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c7h                               ; e8 b1 fb
+    dec word [bp-012h]                        ; ff 4e ee
+    jmp short 01bdch                          ; eb c1
+    cmp dl, 064h                              ; 80 fa 64
+    jne short 01c3fh                          ; 75 1f
+    test byte [bp-00bh], 080h                 ; f6 46 f5 80
+    je short 01c30h                           ; 74 0a
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    neg dx                                    ; f7 da
+    mov cx, strict word 00001h                ; b9 01 00
+    jmp short 01c37h                          ; eb 07
+    xor cx, cx                                ; 31 c9
+    mov bx, di                                ; 89 fb
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01802h                               ; e8 c5 fb
+    jmp short 01c97h                          ; eb 58
+    cmp dl, 073h                              ; 80 fa 73
+    jne short 01c51h                          ; 75 0d
+    mov cx, ds                                ; 8c d9
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01933h                               ; e8 e4 fc
+    jmp short 01c97h                          ; eb 46
+    cmp dl, 053h                              ; 80 fa 53
+    jne short 01c77h                          ; 75 21
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [bp-014h], ax                    ; 89 46 ec
+    add word [bp-016h], strict byte 00002h    ; 83 46 ea 02
+    les bx, [bp-016h]                         ; c4 5e ea
+    mov ax, word [es:bx-002h]                 ; 26 8b 47 fe
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov bx, ax                                ; 89 c3
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    jmp short 01c49h                          ; eb d2
+    cmp dl, 063h                              ; 80 fa 63
+    jne short 01c89h                          ; 75 0d
+    mov dl, byte [bp-00ch]                    ; 8a 56 f4
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c7h                               ; e8 40 fb
+    jmp short 01c97h                          ; eb 0e
+    mov ax, 00107h                            ; b8 07 01
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 e2 fc
+    add sp, strict byte 00004h                ; 83 c4 04
+    xor cx, cx                                ; 31 c9
+    jmp short 01ca3h                          ; eb 08
+    xor dh, dh                                ; 30 f6
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 017c7h                               ; e8 24 fb
+    inc word [bp+006h]                        ; ff 46 06
+    jmp near 019a7h                           ; e9 fe fc
+    xor ax, ax                                ; 31 c0
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], ax                    ; 89 46 ec
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    je short 01cbbh                           ; 74 04
+    cli                                       ; fa
+    hlt                                       ; f4
+    jmp short 01cb8h                          ; eb fd
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_ata_init:                                   ; 0xf1cc5 LB 0xf3
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 9b f9
+    mov si, 00122h                            ; be 22 01
+    mov di, ax                                ; 89 c7
+    xor cl, cl                                ; 30 c9
+    jmp short 01ce1h                          ; eb 05
+    cmp cl, 004h                              ; 80 f9 04
+    jnc short 01d0eh                          ; 73 2d
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 00006h                ; bb 06 00
+    imul bx                                   ; f7 eb
+    mov es, di                                ; 8e c7
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
+    mov word [es:bx+00206h], strict word 00000h ; 26 c7 87 06 02 00 00
+    mov word [es:bx+00208h], strict word 00000h ; 26 c7 87 08 02 00 00
+    mov byte [es:bx+00205h], 000h             ; 26 c6 87 05 02 00
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    jmp short 01cdch                          ; eb ce
+    xor cl, cl                                ; 30 c9
+    jmp short 01d17h                          ; eb 05
+    cmp cl, 008h                              ; 80 f9 08
+    jnc short 01d82h                          ; 73 6b
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 0001ch                ; bb 1c 00
+    imul bx                                   ; f7 eb
+    mov es, di                                ; 8e c7
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
+    mov word [es:bx+024h], strict word 00000h ; 26 c7 47 24 00 00
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    mov word [es:bx+028h], 00200h             ; 26 c7 47 28 00 02
+    mov byte [es:bx+027h], 000h               ; 26 c6 47 27 00
+    mov word [es:bx+02ah], strict word 00000h ; 26 c7 47 2a 00 00
+    mov word [es:bx+02ch], strict word 00000h ; 26 c7 47 2c 00 00
+    mov word [es:bx+02eh], strict word 00000h ; 26 c7 47 2e 00 00
+    mov word [es:bx+030h], strict word 00000h ; 26 c7 47 30 00 00
+    mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
+    mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00
+    mov word [es:bx+03ch], strict word 00000h ; 26 c7 47 3c 00 00
+    mov word [es:bx+03ah], strict word 00000h ; 26 c7 47 3a 00 00
+    mov word [es:bx+038h], strict word 00000h ; 26 c7 47 38 00 00
+    mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    jmp short 01d12h                          ; eb 90
+    xor cl, cl                                ; 30 c9
+    jmp short 01d8bh                          ; eb 05
+    cmp cl, 010h                              ; 80 f9 10
+    jnc short 01da3h                          ; 73 18
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov es, di                                ; 8e c7
+    add bx, si                                ; 01 f3
+    mov byte [es:bx+001e3h], 010h             ; 26 c6 87 e3 01 10
+    mov byte [es:bx+001f4h], 010h             ; 26 c6 87 f4 01 10
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    jmp short 01d86h                          ; eb e3
+    mov es, di                                ; 8e c7
+    mov byte [es:si+001e2h], 000h             ; 26 c6 84 e2 01 00
+    mov byte [es:si+001f3h], 000h             ; 26 c6 84 f3 01 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_reset_:                                  ; 0xf1db8 LB 0xe5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 a2 f8
+    mov es, ax                                ; 8e c0
+    mov di, 00122h                            ; bf 22 01
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    shr ax, 1                                 ; d1 e8
+    mov ah, byte [bp-010h]                    ; 8a 66 f0
+    and ah, 001h                              ; 80 e4 01
+    mov byte [bp-00ch], ah                    ; 88 66 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    add bx, di                                ; 01 fb
+    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
+    mov si, word [es:bx+00208h]               ; 26 8b b7 08 02
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 00eh                  ; b0 0e
+    out DX, AL                                ; ee
+    mov bx, 000ffh                            ; bb ff 00
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e11h                          ; 76 0c
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01e00h                           ; 74 ef
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    cmp byte [es:bx+022h], 000h               ; 26 80 7f 22 00
+    je short 01e79h                           ; 74 4c
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 01e38h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 01e3bh                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00003h                ; 83 c2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp bl, 001h                              ; 80 fb 01
+    jne short 01e79h                          ; 75 22
+    cmp al, bl                                ; 38 d8
+    jne short 01e79h                          ; 75 1e
+    mov bx, strict word 0ffffh                ; bb ff ff
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e79h                          ; 76 16
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01e79h                           ; 74 0a
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    dec ax                                    ; 48
+    test ax, ax                               ; 85 c0
+    jnbe short 01e72h                         ; 77 fb
+    jmp short 01e5eh                          ; eb e5
+    mov bx, strict word 00010h                ; bb 10 00
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 01e8dh                          ; 76 0c
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 040h                 ; a8 40
+    je short 01e7ch                           ; 74 ef
+    lea dx, [si+006h]                         ; 8d 54 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_cmd_data_in_:                            ; 0xf1e9d LB 0x2b7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00010h                ; 83 ec 10
+    push ax                                   ; 50
+    push dx                                   ; 52
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov es, dx                                ; 8e c2
+    mov bx, ax                                ; 89 c3
+    mov al, byte [es:bx+00ch]                 ; 26 8a 47 0c
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, al                                ; 88 c3
+    xor bh, ah                                ; 30 e7
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    mov di, word [bp-016h]                    ; 8b 7e ea
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+00206h]               ; 26 8b 85 06 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov ax, word [es:di+00208h]               ; 26 8b 85 08 02
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, bx                                ; 89 d8
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+028h]                 ; 26 8b 47 28
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    test ax, ax                               ; 85 c0
+    jne short 01ef7h                          ; 75 07
+    mov word [bp-00eh], 08000h                ; c7 46 f2 00 80
+    jmp short 01efah                          ; eb 03
+    shr word [bp-00eh], 1                     ; d1 6e f2
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 01f16h                           ; 74 0f
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 0214dh                           ; e9 37 02
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov di, word [bp-016h]                    ; 8b 7e ea
+    mov di, word [es:di+008h]                 ; 26 8b 7d 08
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx+00ah]                 ; 26 8b 47 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov al, byte [es:bx+016h]                 ; 26 8a 47 16
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [es:bx+012h]                 ; 26 8b 47 12
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov bl, byte [es:bx+014h]                 ; 26 8a 5f 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    test al, al                               ; 84 c0
+    je short 01f46h                           ; 74 03
+    jmp near 0202bh                           ; e9 e5 00
+    xor ah, ah                                ; 30 e4
+    xor bx, bx                                ; 31 db
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si]                      ; 26 8b 0c
+    add cx, word [bp-01ch]                    ; 03 4e e4
+    adc ax, word [es:si+002h]                 ; 26 13 44 02
+    adc bx, word [es:si+004h]                 ; 26 13 5c 04
+    mov dx, word [es:si+006h]                 ; 26 8b 54 06
+    adc dx, word [bp-014h]                    ; 13 56 ec
+    test dx, dx                               ; 85 d2
+    jnbe short 01f7bh                         ; 77 12
+    je short 01f6eh                           ; 74 03
+    jmp near 01fe1h                           ; e9 73 00
+    test bx, bx                               ; 85 db
+    jnbe short 01f7bh                         ; 77 09
+    jne short 01fe1h                          ; 75 6d
+    cmp ax, 01000h                            ; 3d 00 10
+    jnbe short 01f7bh                         ; 77 02
+    jne short 01fe1h                          ; 75 66
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 0a26ah                               ; e8 d8 82
+    xor dh, dh                                ; 30 f6
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00020h                ; be 20 00
+    call 0a26ah                               ; e8 b8 82
+    mov bx, dx                                ; 89 d3
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov al, ah                                ; 88 e0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    out DX, AL                                ; ee
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    mov al, byte [bp-00fh]                    ; 8a 46 f1
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00008h                ; be 08 00
+    call 0a26ah                               ; e8 65 82
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 0a26ah                               ; e8 47 82
+    mov bl, dl                                ; 88 d3
+    and bl, 00fh                              ; 80 e3 0f
+    or bl, 040h                               ; 80 cb 40
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    out DX, AL                                ; ee
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    mov al, byte [bp-00fh]                    ; 8a 46 f1
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    test byte [bp-008h], 001h                 ; f6 46 f8 01
+    je short 0206dh                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02070h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dl, bl                                ; 88 da
+    xor dh, dh                                ; 30 f6
+    or ax, dx                                 ; 09 d0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    out DX, AL                                ; ee
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    cmp ax, 000c4h                            ; 3d c4 00
+    je short 02094h                           ; 74 05
+    cmp ax, strict word 00029h                ; 3d 29 00
+    jne short 0209eh                          ; 75 0a
+    mov si, word [bp-01ch]                    ; 8b 76 e4
+    mov word [bp-01ch], strict word 00001h    ; c7 46 e4 01 00
+    jmp short 020a1h                          ; eb 03
+    mov si, strict word 00001h                ; be 01 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 020a1h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 020c3h                           ; 74 0f
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 0214dh                           ; e9 8a 00
+    test bl, 008h                             ; f6 c3 08
+    jne short 020d7h                          ; 75 0f
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 0214dh                           ; e9 76 00
+    sti                                       ; fb
+    cmp di, 0f800h                            ; 81 ff 00 f8
+    jc short 020ebh                           ; 72 0d
+    sub di, 00800h                            ; 81 ef 00 08
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, 00080h                            ; 05 80 00
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov cx, word [bp-00eh]                    ; 8b 4e f2
+    mov es, [bp-012h]                         ; 8e 46 ee
+    rep insw                                  ; f3 6d
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov bx, word [bp-016h]                    ; 8b 5e ea
+    add word [es:bx+018h], si                 ; 26 01 77 18
+    dec word [bp-01ch]                        ; ff 4e e4
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02103h                          ; 75 f1
+    cmp word [bp-01ch], strict byte 00000h    ; 83 7e e4 00
+    jne short 0212ch                          ; 75 14
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02142h                           ; 74 24
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 0214dh                          ; eb 21
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 020d8h                           ; 74 a4
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00005h                ; b8 05 00
+    jmp short 0214dh                          ; eb 0b
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_ata_detect:                                 ; 0xf2154 LB 0x6c1
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 00266h                            ; 81 ec 66 02
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 08 f5
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov bx, 00122h                            ; bb 22 01
+    mov es, ax                                ; 8e c0
+    mov word [bp-02ch], bx                    ; 89 5e d4
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
+    mov word [es:bx+00206h], 001f0h           ; 26 c7 87 06 02 f0 01
+    mov word [es:bx+00208h], 003f0h           ; 26 c7 87 08 02 f0 03
+    mov byte [es:bx+00205h], 00eh             ; 26 c6 87 05 02 0e
+    mov byte [es:bx+0020ah], 000h             ; 26 c6 87 0a 02 00
+    mov word [es:bx+0020ch], 00170h           ; 26 c7 87 0c 02 70 01
+    mov word [es:bx+0020eh], 00370h           ; 26 c7 87 0e 02 70 03
+    mov byte [es:bx+0020bh], 00fh             ; 26 c6 87 0b 02 0f
+    xor al, al                                ; 30 c0
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    jmp near 02794h                           ; e9 de 05
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [bx+006h]                         ; 8d 57 06
+    out DX, AL                                ; ee
+    lea di, [bx+002h]                         ; 8d 7f 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    lea si, [bx+003h]                         ; 8d 77 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp cl, 055h                              ; 80 f9 55
+    jne short 0223ah                          ; 75 4c
+    cmp AL, strict byte 0aah                  ; 3c aa
+    jne short 0223ah                          ; 75 48
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov si, word [bp-02ch]                    ; 8b 76 d4
+    add si, ax                                ; 01 c6
+    mov byte [es:si+022h], 001h               ; 26 c6 44 22 01
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    call 01db8h                               ; e8 a7 fb
+    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    je short 0221ch                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 0221fh                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    lea dx, [bx+006h]                         ; 8d 57 06
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    lea dx, [bx+003h]                         ; 8d 57 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp cl, 001h                              ; 80 f9 01
+    jne short 0227ah                          ; 75 44
+    cmp al, cl                                ; 38 c8
+    je short 0223ch                           ; 74 02
+    jmp short 0227ah                          ; eb 3e
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cx, ax                                ; 89 c1
+    mov byte [bp-01ch], al                    ; 88 46 e4
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov ch, byte [bp-02ah]                    ; 8a 6e d6
+    lea dx, [bx+007h]                         ; 8d 57 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp cl, 014h                              ; 80 f9 14
+    jne short 0227ch                          ; 75 1e
+    cmp ch, 0ebh                              ; 80 fd eb
+    jne short 0227ch                          ; 75 19
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
+    jmp short 022c5h                          ; eb 49
+    cmp byte [bp-01ch], 000h                  ; 80 7e e4 00
+    jne short 022a3h                          ; 75 21
+    test ch, ch                               ; 84 ed
+    jne short 022a3h                          ; 75 1d
+    test al, al                               ; 84 c0
+    je short 022a3h                           ; 74 19
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
+    jmp short 022c5h                          ; eb 22
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 022c5h                          ; 75 1b
+    cmp ch, al                                ; 38 c5
+    jne short 022c5h                          ; 75 17
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
+    mov dx, word [bp-030h]                    ; 8b 56 d0
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    mov byte [bp-014h], al                    ; 88 46 ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 02349h                          ; 75 5e
+    mov byte [es:bx+023h], 0ffh               ; 26 c6 47 23 ff
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    lea dx, [bp-0026ah]                       ; 8d 96 96 fd
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
+    mov cx, strict word 00001h                ; b9 01 00
+    mov bx, 000ech                            ; bb ec 00
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov dx, es                                ; 8c c2
+    call 01e9dh                               ; e8 84 fb
+    test ax, ax                               ; 85 c0
+    je short 0232bh                           ; 74 0e
+    mov ax, 00124h                            ; b8 24 01
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 4e f6
+    add sp, strict byte 00004h                ; 83 c4 04
+    test byte [bp-0026ah], 080h               ; f6 86 96 fd 80
+    je short 02337h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02339h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, byte [bp-0020ah]                  ; 8a 86 f6 fd
+    test al, al                               ; 84 c0
+    je short 0234ch                           ; 74 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0234eh                          ; eb 05
+    jmp near 0252ch                           ; e9 e0 01
+    xor ah, ah                                ; 30 e4
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov word [bp-038h], 00200h                ; c7 46 c8 00 02
+    mov ax, word [bp-00268h]                  ; 8b 86 98 fd
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-00264h]                  ; 8b 86 9c fd
+    mov word [bp-032h], ax                    ; 89 46 ce
+    mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
+    mov word [bp-026h], ax                    ; 89 46 da
+    mov ax, word [bp-001f2h]                  ; 8b 86 0e fe
+    mov word [bp-02eh], ax                    ; 89 46 d2
+    mov si, word [bp-001f0h]                  ; 8b b6 10 fe
+    xor ax, ax                                ; 31 c0
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-028h], ax                    ; 89 46 d8
+    cmp si, 00fffh                            ; 81 fe ff 0f
+    jne short 023a3h                          ; 75 1f
+    cmp word [bp-02eh], strict byte 0ffffh    ; 83 7e d2 ff
+    jne short 023a3h                          ; 75 19
+    mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov ax, word [bp-0019eh]                  ; 8b 86 62 fe
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov si, word [bp-001a0h]                  ; 8b b6 60 fe
+    mov ax, word [bp-001a2h]                  ; 8b 86 5e fe
+    mov word [bp-02eh], ax                    ; 89 46 d2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 023b6h                           ; 72 0c
+    jbe short 023beh                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 023c6h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 023c2h                           ; 74 0e
+    jmp short 023fbh                          ; eb 45
+    test al, al                               ; 84 c0
+    jne short 023fbh                          ; 75 41
+    mov BL, strict byte 01eh                  ; b3 1e
+    jmp short 023c8h                          ; eb 0a
+    mov BL, strict byte 026h                  ; b3 26
+    jmp short 023c8h                          ; eb 06
+    mov BL, strict byte 067h                  ; b3 67
+    jmp short 023c8h                          ; eb 02
+    mov BL, strict byte 070h                  ; b3 70
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 dd f2
+    mov dh, al                                ; 88 c6
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 d4 f2
+    mov ah, dh                                ; 88 f4
+    mov word [bp-03eh], ax                    ; 89 46 c2
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 c6 f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-040h], ax                    ; 89 46 c0
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 007h                  ; 04 07
+    call 016aeh                               ; e8 ba f2
+    xor ah, ah                                ; 30 e4
+    mov word [bp-03ch], ax                    ; 89 46 c4
+    jmp short 0240dh                          ; eb 12
+    push word [bp-028h]                       ; ff 76 d8
+    push word [bp-020h]                       ; ff 76 e0
+    push si                                   ; 56
+    push word [bp-02eh]                       ; ff 76 d2
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-040h]                         ; 8d 46 c0
+    call 05b50h                               ; e8 43 37
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 1b f5
+    mov ax, word [bp-03ch]                    ; 8b 46 c4
+    push ax                                   ; 50
+    mov ax, word [bp-040h]                    ; 8b 46 c0
+    push ax                                   ; 50
+    mov ax, word [bp-03eh]                    ; 8b 46 c2
+    push ax                                   ; 50
+    push word [bp-026h]                       ; ff 76 da
+    push word [bp-032h]                       ; ff 76 ce
+    push word [bp-022h]                       ; ff 76 de
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    push ax                                   ; 50
+    mov ax, 0014dh                            ; b8 4d 01
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 34 f5
+    add sp, strict byte 00014h                ; 83 c4 14
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov di, word [bp-02ch]                    ; 8b 7e d4
+    add di, ax                                ; 01 c7
+    mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [es:di+024h], al                 ; 26 88 45 24
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov byte [es:di+026h], al                 ; 26 88 45 26
+    mov ax, word [bp-038h]                    ; 8b 46 c8
+    mov word [es:di+028h], ax                 ; 26 89 45 28
+    mov ax, word [bp-032h]                    ; 8b 46 ce
+    mov word [es:di+030h], ax                 ; 26 89 45 30
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:di+032h], ax                 ; 26 89 45 32
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:di+034h], ax                 ; 26 89 45 34
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:di+03ch], ax                 ; 26 89 45 3c
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:di+03ah], ax                 ; 26 89 45 3a
+    mov word [es:di+038h], si                 ; 26 89 75 38
+    mov ax, word [bp-02eh]                    ; 8b 46 d2
+    mov word [es:di+036h], ax                 ; 26 89 45 36
+    lea di, [di+02ah]                         ; 8d 7d 2a
+    push DS                                   ; 1e
+    push SS                                   ; 16
+    pop DS                                    ; 1f
+    lea si, [bp-040h]                         ; 8d 76 c0
+    movsw                                     ; a5
+    movsw                                     ; a5
+    movsw                                     ; a5
+    pop DS                                    ; 1f
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    cmp AL, strict byte 002h                  ; 3c 02
+    jnc short 02516h                          ; 73 63
+    test al, al                               ; 84 c0
+    jne short 024bch                          ; 75 05
+    mov di, strict word 0003dh                ; bf 3d 00
+    jmp short 024bfh                          ; eb 03
+    mov di, strict word 0004dh                ; bf 4d 00
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov bx, word [bp-03eh]                    ; 8b 5e c2
+    mov es, dx                                ; 8e c2
+    mov word [es:di], bx                      ; 26 89 1d
+    mov bl, byte [bp-040h]                    ; 8a 5e c0
+    mov byte [es:di+002h], bl                 ; 26 88 5d 02
+    mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
+    mov al, byte [bp-026h]                    ; 8a 46 da
+    mov byte [es:di+004h], al                 ; 26 88 45 04
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:di+009h], ax                 ; 26 89 45 09
+    mov al, byte [bp-032h]                    ; 8a 46 ce
+    mov byte [es:di+00bh], al                 ; 26 88 45 0b
+    mov al, byte [bp-026h]                    ; 8a 46 da
+    mov byte [es:di+00eh], al                 ; 26 88 45 0e
+    xor bl, bl                                ; 30 db
+    xor bh, bh                                ; 30 ff
+    jmp short 024fdh                          ; eb 05
+    cmp bh, 00fh                              ; 80 ff 0f
+    jnc short 0250eh                          ; 73 11
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov es, dx                                ; 8e c2
+    mov si, di                                ; 89 fe
+    add si, ax                                ; 01 c6
+    add bl, byte [es:si]                      ; 26 02 1c
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 024f8h                          ; eb ea
+    neg bl                                    ; f6 db
+    mov es, dx                                ; 8e c2
+    mov byte [es:di+00fh], bl                 ; 26 88 5d 0f
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov es, [bp-024h]                         ; 8e 46 dc
+    add bx, word [bp-02ch]                    ; 03 5e d4
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
+    inc byte [bp-010h]                        ; fe 46 f0
+    cmp byte [bp-014h], 003h                  ; 80 7e ec 03
+    jne short 02599h                          ; 75 67
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
+    mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
+    lea dx, [bp-0026ah]                       ; 8d 96 96 fd
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+00ch], al                 ; 26 88 47 0c
+    mov cx, strict word 00001h                ; b9 01 00
+    mov bx, 000a1h                            ; bb a1 00
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov dx, es                                ; 8c c2
+    call 01e9dh                               ; e8 2b f9
+    test ax, ax                               ; 85 c0
+    je short 02584h                           ; 74 0e
+    mov ax, 00174h                            ; b8 74 01
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 f5 f3
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov al, byte [bp-00269h]                  ; 8a 86 97 fd
+    and AL, strict byte 01fh                  ; 24 1f
+    mov byte [bp-01ah], al                    ; 88 46 e6
+    test byte [bp-0026ah], 080h               ; f6 86 96 fd 80
+    je short 0259bh                           ; 74 07
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0259dh                          ; eb 04
+    jmp short 025ebh                          ; eb 50
+    xor ax, ax                                ; 31 c0
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp byte [bp-0020ah], 000h                ; 80 be f6 fd 00
+    je short 025ach                           ; 74 05
+    mov cx, strict word 00001h                ; b9 01 00
+    jmp short 025aeh                          ; eb 02
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov byte [es:bx+023h], al                 ; 26 88 47 23
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:bx+024h], al                 ; 26 88 47 24
+    mov byte [es:bx+026h], cl                 ; 26 88 4f 26
+    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-02ch]                    ; 03 5e d4
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 02624h                           ; 74 32
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0264bh                          ; 75 55
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov di, word [bp-02ch]                    ; 8b 7e d4
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
+    mov bx, word [es:di+03ah]                 ; 26 8b 5d 3a
+    mov cx, word [es:di+038h]                 ; 26 8b 4d 38
+    mov dx, word [es:di+036h]                 ; 26 8b 55 36
+    mov si, strict word 0000bh                ; be 0b 00
+    call 0a26ah                               ; e8 4c 7c
+    mov word [bp-034h], dx                    ; 89 56 cc
+    mov word [bp-036h], cx                    ; 89 4e ca
+    mov dh, byte [bp-001c9h]                  ; 8a b6 37 fe
+    mov dl, byte [bp-001cah]                  ; 8a 96 36 fe
+    mov byte [bp-016h], 00fh                  ; c6 46 ea 0f
+    jmp short 0263bh                          ; eb 09
+    dec byte [bp-016h]                        ; fe 4e ea
+    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
+    jbe short 02647h                          ; 76 0c
+    mov cl, byte [bp-016h]                    ; 8a 4e ea
+    mov ax, strict word 00001h                ; b8 01 00
+    sal ax, CL                                ; d3 e0
+    test dx, ax                               ; 85 c2
+    je short 02632h                           ; 74 eb
+    xor di, di                                ; 31 ff
+    jmp short 02652h                          ; eb 07
+    jmp short 02681h                          ; eb 34
+    cmp di, strict byte 00014h                ; 83 ff 14
+    jnl short 02667h                          ; 7d 15
+    mov si, di                                ; 89 fe
+    sal si, 1                                 ; d1 e6
+    mov al, byte [bp+si-00233h]               ; 8a 82 cd fd
+    mov byte [bp+si-06ah], al                 ; 88 42 96
+    mov al, byte [bp+si-00234h]               ; 8a 82 cc fd
+    mov byte [bp+si-069h], al                 ; 88 42 97
+    inc di                                    ; 47
+    jmp short 0264dh                          ; eb e6
+    mov byte [bp-042h], 000h                  ; c6 46 be 00
+    mov di, strict word 00027h                ; bf 27 00
+    jmp short 02675h                          ; eb 05
+    dec di                                    ; 4f
+    test di, di                               ; 85 ff
+    jle short 02681h                          ; 7e 0c
+    cmp byte [bp+di-06ah], 020h               ; 80 7b 96 20
+    jne short 02681h                          ; 75 06
+    mov byte [bp+di-06ah], 000h               ; c6 43 96 00
+    jmp short 02670h                          ; eb ef
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 026eeh                           ; 74 66
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 02693h                           ; 74 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 026f9h                           ; 74 69
+    jmp near 0278bh                           ; e9 f8 00
+    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    je short 0269eh                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 026a1h                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 001adh                            ; b8 ad 01
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c3 f2
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    mov al, byte [bp+di-06ah]                 ; 8a 43 96
+    xor ah, ah                                ; 30 e4
+    inc di                                    ; 47
+    test ax, ax                               ; 85 c0
+    je short 026d3h                           ; 74 11
+    push ax                                   ; 50
+    mov ax, 001b8h                            ; b8 b8 01
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 a8 f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 026b8h                          ; eb e5
+    push word [bp-036h]                       ; ff 76 ca
+    push word [bp-034h]                       ; ff 76 cc
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    push ax                                   ; 50
+    mov ax, 001bbh                            ; b8 bb 01
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 8e f2
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 0278bh                           ; e9 9d 00
+    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    je short 026fbh                           ; 74 07
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 026feh                          ; eb 05
+    jmp short 02768h                          ; eb 6d
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 001adh                            ; b8 ad 01
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 66 f2
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    mov al, byte [bp+di-06ah]                 ; 8a 43 96
+    xor ah, ah                                ; 30 e4
+    inc di                                    ; 47
+    test ax, ax                               ; 85 c0
+    je short 02730h                           ; 74 11
+    push ax                                   ; 50
+    mov ax, 001b8h                            ; b8 b8 01
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 4b f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 02715h                          ; eb e5
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    add bx, ax                                ; 01 c3
+    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
+    jne short 02752h                          ; 75 0b
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 001dbh                            ; b8 db 01
+    jmp short 0275bh                          ; eb 09
+    mov al, byte [bp-016h]                    ; 8a 46 ea
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 001f5h                            ; b8 f5 01
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 13 f2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 0278bh                          ; eb 23
+    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
+    je short 02773h                           ; 74 05
+    mov ax, 0019fh                            ; b8 9f 01
+    jmp short 02776h                          ; eb 03
+    mov ax, 001a6h                            ; b8 a6 01
+    push ax                                   ; 50
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00207h                            ; b8 07 02
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 ee f1
+    add sp, strict byte 00008h                ; 83 c4 08
+    inc byte [bp-00eh]                        ; fe 46 f2
+    cmp byte [bp-00eh], 008h                  ; 80 7e f2 08
+    jnc short 027eah                          ; 73 56
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov word [bp-03ah], ax                    ; 89 46 c6
+    mov al, byte [bp-03ah]                    ; 8a 46 c6
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    mov cx, dx                                ; 89 d1
+    mov byte [bp-018h], dl                    ; 88 56 e8
+    mov al, byte [bp-03ah]                    ; 8a 46 c6
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov si, word [bp-02ch]                    ; 8b 76 d4
+    add si, ax                                ; 01 c6
+    mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
+    mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
+    mov word [bp-030h], ax                    ; 89 46 d0
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    test cl, cl                               ; 84 c9
+    jne short 027e4h                          ; 75 03
+    jmp near 021b6h                           ; e9 d2 f9
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp near 021b9h                           ; e9 cf f9
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov es, [bp-024h]                         ; 8e 46 dc
+    mov bx, word [bp-02ch]                    ; 8b 5e d4
+    mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 52 ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ata_cmd_data_out_:                           ; 0xf2815 LB 0x28e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00020h                ; 83 ec 20
+    mov di, ax                                ; 89 c7
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov word [bp-01eh], bx                    ; 89 5e e2
+    mov word [bp-01ah], cx                    ; 89 4e e6
+    mov es, dx                                ; 8e c2
+    mov al, byte [es:di+00ch]                 ; 26 8a 45 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    shr ax, 1                                 ; d1 e8
+    and dl, 001h                              ; 80 e2 01
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-01ch], 00100h                ; c7 46 e4 00 01
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 02876h                           ; 74 0f
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 02a9ch                           ; e9 26 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [es:di+004h]                 ; 26 8b 45 04
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [es:di]                      ; 26 8b 05
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [es:di+008h]                 ; 26 8b 45 08
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:di+016h]                 ; 26 8b 45 16
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [es:di+012h]                 ; 26 8b 45 12
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [es:di+014h]                 ; 26 8b 45 14
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    test ax, ax                               ; 85 c0
+    je short 028c1h                           ; 74 03
+    jmp near 02988h                           ; e9 c7 00
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    mov si, word [bp-022h]                    ; 8b 76 de
+    add si, word [bp-01ah]                    ; 03 76 e6
+    adc bx, word [bp-010h]                    ; 13 5e f0
+    adc dx, word [bp-020h]                    ; 13 56 e0
+    adc ax, word [bp-00ch]                    ; 13 46 f4
+    test ax, ax                               ; 85 c0
+    jnbe short 028e8h                         ; 77 10
+    jne short 0294bh                          ; 75 71
+    test dx, dx                               ; 85 d2
+    jnbe short 028e8h                         ; 77 0a
+    jne short 0294bh                          ; 75 6b
+    cmp bx, 01000h                            ; 81 fb 00 10
+    jnbe short 028e8h                         ; 77 02
+    jne short 0294bh                          ; 75 63
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-020h]                    ; 8b 5e e0
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov dx, word [bp-022h]                    ; 8b 56 de
+    mov si, strict word 00018h                ; be 18 00
+    call 0a26ah                               ; e8 70 79
+    xor dh, dh                                ; 30 f6
+    mov word [bp-014h], dx                    ; 89 56 ec
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-020h]                    ; 8b 5e e0
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov dx, word [bp-022h]                    ; 8b 56 de
+    mov si, strict word 00020h                ; be 20 00
+    call 0a26ah                               ; e8 59 79
+    mov bx, dx                                ; 89 d3
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov al, ah                                ; 88 e0
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    out DX, AL                                ; ee
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    mov al, byte [bp-023h]                    ; 8a 46 dd
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov byte [bp-00fh], bh                    ; 88 7e f1
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    xor ah, ah                                ; 30 e4
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-020h]                    ; 8b 5e e0
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov dx, word [bp-022h]                    ; 8b 56 de
+    mov si, strict word 00008h                ; be 08 00
+    call 0a26ah                               ; e8 05 79
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov word [bp-020h], bx                    ; 89 5e e0
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov word [bp-024h], dx                    ; 89 56 dc
+    mov si, strict word 00010h                ; be 10 00
+    call 0a26ah                               ; e8 f0 78
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    and AL, strict byte 00fh                  ; 24 0f
+    or AL, strict byte 040h                   ; 0c 40
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    out DX, AL                                ; ee
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00004h                ; 83 c2 04
+    out DX, AL                                ; ee
+    mov al, byte [bp-023h]                    ; 8a 46 dd
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00005h                ; 83 c2 05
+    out DX, AL                                ; ee
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 029cah                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 029cdh                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dl, byte [bp-018h]                    ; 8a 56 e8
+    xor dh, dh                                ; 30 f6
+    or ax, dx                                 ; 09 d0
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
+    out DX, AL                                ; ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 029e5h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 02a07h                           ; 74 0f
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 02a9ch                           ; e9 95 00
+    test bl, 008h                             ; f6 c3 08
+    jne short 02a1bh                          ; 75 0f
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 02a9ch                           ; e9 81 00
+    sti                                       ; fb
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    cmp ax, 0f800h                            ; 3d 00 f8
+    jc short 02a36h                           ; 72 12
+    mov dx, ax                                ; 89 c2
+    sub dx, 00800h                            ; 81 ea 00 08
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, 00080h                            ; 05 80 00
+    mov word [bp-016h], dx                    ; 89 56 ea
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov cx, word [bp-01ch]                    ; 8b 4e e4
+    mov si, word [bp-016h]                    ; 8b 76 ea
+    mov es, [bp-012h]                         ; 8e 46 ee
+    db  0f3h, 026h, 06fh
+    ; rep es outsw                              ; f3 26 6f
+    mov word [bp-016h], si                    ; 89 76 ea
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    inc word [es:di+018h]                     ; 26 ff 45 18
+    dec word [bp-01ah]                        ; ff 4e e6
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02a52h                          ; 75 f1
+    cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
+    jne short 02a7bh                          ; 75 14
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02a91h                           ; 74 24
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp short 02a9ch                          ; eb 21
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 02a1ch                           ; 74 99
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00007h                ; b8 07 00
+    jmp short 02a9ch                          ; eb 0b
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+@ata_read_sectors:                           ; 0xf2aa3 LB 0xc1
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
+    mov CL, strict byte 009h                  ; b1 09
+    mov dx, bx                                ; 89 da
+    sal dx, CL                                ; d3 e2
+    mov cx, dx                                ; 89 d1
+    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
+    je short 02aebh                           ; 74 23
+    xor ah, ah                                ; 30 e4
+    mov di, strict word 0001ch                ; bf 1c 00
+    imul di                                   ; f7 ef
+    mov dx, es                                ; 8c c2
+    mov [bp-00ah], es                         ; 8c 46 f6
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov word [es:di+028h], cx                 ; 26 89 4d 28
+    mov cx, bx                                ; 89 d9
+    mov bx, 000c4h                            ; bb c4 00
+    mov ax, si                                ; 89 f0
+    call 01e9dh                               ; e8 b7 f3
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    jmp short 02b55h                          ; eb 6a
+    xor di, di                                ; 31 ff
+    mov word [bp-008h], di                    ; 89 7e f8
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov dx, word [es:si]                      ; 26 8b 14
+    add dx, bx                                ; 01 da
+    mov word [bp-006h], dx                    ; 89 56 fa
+    adc di, word [es:si+002h]                 ; 26 13 7c 02
+    mov dx, word [es:si+004h]                 ; 26 8b 54 04
+    adc dx, word [bp-008h]                    ; 13 56 f8
+    mov word [bp-008h], dx                    ; 89 56 f8
+    mov dx, word [es:si+006h]                 ; 26 8b 54 06
+    adc dx, word [bp-00ah]                    ; 13 56 f6
+    test dx, dx                               ; 85 d2
+    jnbe short 02b26h                         ; 77 12
+    jne short 02b34h                          ; 75 1e
+    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
+    jnbe short 02b26h                         ; 77 0a
+    jne short 02b34h                          ; 75 16
+    cmp di, 01000h                            ; 81 ff 00 10
+    jnbe short 02b26h                         ; 77 02
+    jne short 02b34h                          ; 75 0e
+    mov cx, bx                                ; 89 d9
+    mov bx, strict word 00024h                ; bb 24 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 01e9dh                               ; e8 6b f3
+    jmp short 02b5bh                          ; eb 27
+    xor ah, ah                                ; 30 e4
+    mov di, strict word 0001ch                ; bf 1c 00
+    imul di                                   ; f7 ef
+    mov dx, es                                ; 8c c2
+    mov [bp-006h], es                         ; 8c 46 fa
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    mov word [es:di+028h], cx                 ; 26 89 4d 28
+    mov cx, bx                                ; 89 d9
+    mov bx, 000c4h                            ; bb c4 00
+    mov ax, si                                ; 89 f0
+    call 01e9dh                               ; e8 4b f3
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@ata_write_sectors:                          ; 0xf2b64 LB 0x5b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    les si, [bp+004h]                         ; c4 76 04
+    mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
+    cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
+    je short 02b84h                           ; 74 0c
+    mov bx, strict word 00030h                ; bb 30 00
+    mov ax, si                                ; 89 f0
+    mov dx, es                                ; 8c c2
+    call 02815h                               ; e8 93 fc
+    jmp short 02bb6h                          ; eb 32
+    xor ax, ax                                ; 31 c0
+    xor bx, bx                                ; 31 db
+    xor dx, dx                                ; 31 d2
+    mov di, word [es:si]                      ; 26 8b 3c
+    add di, cx                                ; 01 cf
+    mov word [bp-006h], di                    ; 89 7e fa
+    adc ax, word [es:si+002h]                 ; 26 13 44 02
+    adc bx, word [es:si+004h]                 ; 26 13 5c 04
+    adc dx, word [es:si+006h]                 ; 26 13 54 06
+    test dx, dx                               ; 85 d2
+    jnbe short 02bb1h                         ; 77 0f
+    jne short 02b78h                          ; 75 d4
+    test bx, bx                               ; 85 db
+    jnbe short 02bb1h                         ; 77 09
+    jne short 02b78h                          ; 75 ce
+    cmp ax, 01000h                            ; 3d 00 10
+    jnbe short 02bb1h                         ; 77 02
+    jne short 02b78h                          ; 75 c7
+    mov bx, strict word 00034h                ; bb 34 00
+    jmp short 02b7bh                          ; eb c5
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+ata_cmd_packet_:                             ; 0xf2bbf LB 0x28b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00010h                ; 83 ec 10
+    push ax                                   ; 50
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov si, bx                                ; 89 de
+    mov di, cx                                ; 89 cf
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 96 ea
+    mov word [bp-010h], 00122h                ; c7 46 f0 22 01
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    shr ax, 1                                 ; d1 e8
+    mov cl, byte [bp-016h]                    ; 8a 4e ea
+    and cl, 001h                              ; 80 e1 01
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 02c14h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 37 ed
+    mov ax, 00221h                            ; b8 21 02
+    push ax                                   ; 50
+    mov ax, 00230h                            ; b8 30 02
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 6b ed
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 02e41h                           ; e9 2d 02
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    jne short 02c0eh                          ; 75 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-010h]                         ; c4 5e f0
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-008h], ax                    ; 89 46 f8
+    xor ax, ax                                ; 31 c0
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jnc short 02c4bh                          ; 73 06
+    mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
+    jmp short 02c51h                          ; eb 06
+    jbe short 02c51h                          ; 76 04
+    mov byte [bp-006h], 010h                  ; c6 46 fa 10
+    shr byte [bp-006h], 1                     ; d0 6e fa
+    les bx, [bp-010h]                         ; c4 5e f0
+    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
+    mov word [es:bx+01ah], strict word 00000h ; 26 c7 47 1a 00 00
+    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    je short 02c7ch                           ; 74 06
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 02e41h                           ; e9 c5 01
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov AL, strict byte 0f0h                  ; b0 f0
+    out DX, AL                                ; ee
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00005h                ; 83 c2 05
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    test cl, cl                               ; 84 c9
+    je short 02ca0h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02ca3h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov AL, strict byte 0a0h                  ; b0 a0
+    out DX, AL                                ; ee
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02cb3h                          ; 75 f1
+    test AL, strict byte 001h                 ; a8 01
+    je short 02cd5h                           ; 74 0f
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 02e41h                           ; e9 6c 01
+    test bl, 008h                             ; f6 c3 08
+    jne short 02ce9h                          ; 75 0f
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp near 02e41h                           ; e9 58 01
+    sti                                       ; fb
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, si                                ; 89 f0
+    shr ax, CL                                ; d3 e8
+    add di, ax                                ; 01 c7
+    and si, strict byte 0000fh                ; 83 e6 0f
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov es, di                                ; 8e c7
+    db  0f3h, 026h, 06fh
+    ; rep es outsw                              ; f3 26 6f
+    cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
+    jne short 02d13h                          ; 75 0b
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    jmp near 02e22h                           ; e9 0f 01
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02d13h                          ; 75 f1
+    test AL, strict byte 088h                 ; a8 88
+    je short 02d88h                           ; 74 62
+    test AL, strict byte 001h                 ; a8 01
+    je short 02d35h                           ; 74 0b
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp short 02ccfh                          ; eb 9a
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 0c9h                  ; 24 c9
+    cmp AL, strict byte 048h                  ; 3c 48
+    je short 02d48h                           ; 74 0b
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp short 02ce3h                          ; eb 9b
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    shr ax, CL                                ; d3 e8
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, ax                                ; 01 c2
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    and ax, strict word 0000fh                ; 25 0f 00
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov word [bp+00eh], dx                    ; 89 56 0e
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00005h                ; 83 c2 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bh, al                                ; 88 c7
+    xor bl, bl                                ; 30 db
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    add dx, strict byte 00004h                ; 83 c2 04
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    cmp bx, ax                                ; 39 c3
+    jnc short 02d8bh                          ; 73 0c
+    mov cx, bx                                ; 89 d9
+    sub word [bp+004h], bx                    ; 29 5e 04
+    xor bx, bx                                ; 31 db
+    jmp short 02d94h                          ; eb 0c
+    jmp near 02e22h                           ; e9 97 00
+    mov cx, ax                                ; 89 c1
+    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
+    sub bx, ax                                ; 29 c3
+    xor ax, ax                                ; 31 c0
+    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
+    jne short 02db2h                          ; 75 16
+    cmp bx, word [bp+006h]                    ; 3b 5e 06
+    jbe short 02db2h                          ; 76 11
+    sub bx, word [bp+006h]                    ; 2b 5e 06
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 02dbbh                          ; eb 09
+    mov word [bp-014h], ax                    ; 89 46 ec
+    sub word [bp+006h], bx                    ; 29 5e 06
+    sbb word [bp+008h], ax                    ; 19 46 08
+    mov si, bx                                ; 89 de
+    test cl, 003h                             ; f6 c1 03
+    test bl, 003h                             ; f6 c3 03
+    test byte [bp-014h], 003h                 ; f6 46 ec 03
+    test bl, 001h                             ; f6 c3 01
+    je short 02ddch                           ; 74 10
+    inc bx                                    ; 43
+    cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
+    jbe short 02ddch                          ; 76 09
+    test byte [bp-014h], 001h                 ; f6 46 ec 01
+    je short 02ddch                           ; 74 03
+    dec word [bp-014h]                        ; ff 4e ec
+    shr bx, 1                                 ; d1 eb
+    shr cx, 1                                 ; d1 e9
+    shr word [bp-014h], 1                     ; d1 6e ec
+    test cx, cx                               ; 85 c9
+    je short 02dedh                           ; 74 06
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    in ax, DX                                 ; ed
+    loop 02deah                               ; e2 fd
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov cx, bx                                ; 89 d9
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insw                                  ; f3 6d
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    test ax, ax                               ; 85 c0
+    je short 02e03h                           ; 74 05
+    mov cx, ax                                ; 89 c1
+    in ax, DX                                 ; ed
+    loop 02e00h                               ; e2 fd
+    add word [bp+00ch], si                    ; 01 76 0c
+    xor ax, ax                                ; 31 c0
+    add word [bp-00ch], si                    ; 01 76 f4
+    adc word [bp-00ah], ax                    ; 11 46 f6
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    les bx, [bp-010h]                         ; c4 5e f0
+    mov word [es:bx+01ah], ax                 ; 26 89 47 1a
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mov word [es:bx+01ch], ax                 ; 26 89 47 1c
+    jmp near 02d13h                           ; e9 f1 fe
+    mov al, bl                                ; 88 d8
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02e36h                           ; 74 0c
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    jmp near 02ce3h                           ; e9 ad fe
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    add dx, strict byte 00006h                ; 83 c2 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+ata_soft_reset_:                             ; 0xf2e4a LB 0x84
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 12 e8
+    mov es, ax                                ; 8e c0
+    mov ax, bx                                ; 89 d8
+    shr ax, 1                                 ; d1 e8
+    and bl, 001h                              ; 80 e3 01
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    add bx, 00122h                            ; 81 c3 22 01
+    mov cx, word [es:bx+00206h]               ; 26 8b 8f 06 02
+    mov bx, word [es:bx+00208h]               ; 26 8b 9f 08 02
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 00ah                  ; b0 0a
+    out DX, AL                                ; ee
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 02e90h                           ; 74 05
+    mov ax, 000b0h                            ; b8 b0 00
+    jmp short 02e93h                          ; eb 03
+    mov ax, 000a0h                            ; b8 a0 00
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00006h                ; 83 c2 06
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, cx                                ; 89 ca
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 080h                 ; a8 80
+    jne short 02ea1h                          ; 75 f4
+    and AL, strict byte 0e9h                  ; 24 e9
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 02ebeh                           ; 74 0b
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 02ec6h                          ; eb 08
+    lea dx, [bx+006h]                         ; 8d 57 06
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_diskette_ret_status_:                    ; 0xf2ece LB 0x19
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00041h                ; ba 41 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 80 e7
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_diskette_current_cyl_:                   ; 0xf2ee7 LB 0x36
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    mov bl, al                                ; 88 c3
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 02f00h                          ; 76 0e
+    mov ax, 00250h                            ; b8 50 02
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 79 ea
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov al, bl                                ; 88 d8
+    mov dx, ax                                ; 89 c2
+    add dx, 00094h                            ; 81 c2 94 00
+    mov bx, cx                                ; 89 cb
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 4a e7
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_wait_for_interrupt_:                  ; 0xf2f1d LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    cli                                       ; fa
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 27 e7
+    test AL, strict byte 080h                 ; a8 80
+    je short 02f33h                           ; 74 04
+    and AL, strict byte 080h                  ; 24 80
+    jmp short 02f38h                          ; eb 05
+    sti                                       ; fb
+    hlt                                       ; f4
+    cli                                       ; fa
+    jmp short 02f22h                          ; eb ea
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f3e LB 0x47
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    cli                                       ; fa
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ax, dx                                ; 89 d0
+    call 01652h                               ; e8 05 e7
+    test al, al                               ; 84 c0
+    jne short 02f56h                          ; 75 05
+    sti                                       ; fb
+    xor cl, cl                                ; 30 c9
+    jmp short 02f7bh                          ; eb 25
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 f3 e6
+    mov cl, al                                ; 88 c1
+    test AL, strict byte 080h                 ; a8 80
+    je short 02f76h                           ; 74 11
+    and AL, strict byte 07fh                  ; 24 7f
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 ec e6
+    jmp short 02f7bh                          ; eb 05
+    sti                                       ; fb
+    hlt                                       ; f4
+    cli                                       ; fa
+    jmp short 02f45h                          ; eb ca
+    mov al, cl                                ; 88 c8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_reset_controller_:                    ; 0xf2f85 LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
+    and AL, strict byte 0fbh                  ; 24 fb
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    or AL, strict byte 004h                   ; 0c 04
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    jne short 02f9ah                          ; 75 f4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_prepare_controller_:                  ; 0xf2fad LB 0x84
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov cx, ax                                ; 89 c1
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 93 e6
+    and AL, strict byte 07fh                  ; 24 7f
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 92 e6
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 004h                  ; 24 04
+    mov byte [bp-008h], al                    ; 88 46 f8
+    test cx, cx                               ; 85 c9
+    je short 02fe1h                           ; 74 04
+    mov AL, strict byte 020h                  ; b0 20
+    jmp short 02fe3h                          ; eb 02
+    mov AL, strict byte 010h                  ; b0 10
+    or AL, strict byte 00ch                   ; 0c 0c
+    or al, cl                                 ; 08 c8
+    mov dx, 003f2h                            ; ba f2 03
+    out DX, AL                                ; ee
+    mov bx, strict word 00025h                ; bb 25 00
+    mov dx, strict word 00040h                ; ba 40 00
+    mov ax, dx                                ; 89 d0
+    call 01660h                               ; e8 6a e6
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 53 e6
+    mov CL, strict byte 006h                  ; b1 06
+    shr al, CL                                ; d2 e8
+    mov dx, 003f7h                            ; ba f7 03
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    jne short 03007h                          ; 75 f4
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 03029h                          ; 75 10
+    call 02f1dh                               ; e8 01 ff
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 37 e6
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_media_known_:                         ; 0xf3031 LB 0x46
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 10 e6
+    mov ah, al                                ; 88 c4
+    test bx, bx                               ; 85 db
+    je short 0304ah                           ; 74 02
+    shr al, 1                                 ; d0 e8
+    and AL, strict byte 001h                  ; 24 01
+    jne short 03052h                          ; 75 04
+    xor ah, ah                                ; 30 e4
+    jmp short 0306fh                          ; eb 1d
+    mov dx, 00090h                            ; ba 90 00
+    test bx, bx                               ; 85 db
+    je short 0305ch                           ; 74 03
+    mov dx, 00091h                            ; ba 91 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 f0 e5
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 004h                  ; b1 04
+    sar ax, CL                                ; d3 f8
+    and AL, strict byte 001h                  ; 24 01
+    je short 0304eh                           ; 74 e2
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_read_id_:                             ; 0xf3077 LB 0x44
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov bx, ax                                ; 89 c3
+    call 02fadh                               ; e8 28 ff
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    call 02f1dh                               ; e8 8c fe
+    xor si, si                                ; 31 f6
+    jmp short 0309ah                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 030a6h                          ; 7d 0c
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-00eh], al                 ; 88 42 f2
+    inc si                                    ; 46
+    jmp short 03095h                          ; eb ef
+    test byte [bp-00eh], 0c0h                 ; f6 46 f2 c0
+    je short 030b0h                           ; 74 04
+    xor ax, ax                                ; 31 c0
+    jmp short 030b3h                          ; eb 03
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_drive_recal_:                         ; 0xf30bb LB 0x4d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    call 02fadh                               ; e8 e7 fe
+    mov AL, strict byte 007h                  ; b0 07
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    call 02f1dh                               ; e8 4b fe
+    test bx, bx                               ; 85 db
+    je short 030e0h                           ; 74 0a
+    mov bl, al                                ; 88 c3
+    or bl, 002h                               ; 80 cb 02
+    mov cx, 00095h                            ; b9 95 00
+    jmp short 030e8h                          ; eb 08
+    mov bl, al                                ; 88 c3
+    or bl, 001h                               ; 80 cb 01
+    mov cx, 00094h                            ; b9 94 00
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 6d e5
+    xor bx, bx                                ; 31 db
+    mov dx, cx                                ; 89 ca
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 63 e5
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_media_sense_:                         ; 0xf3108 LB 0xfa
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    call 030bbh                               ; e8 a6 ff
+    test ax, ax                               ; 85 c0
+    jne short 0311eh                          ; 75 05
+    xor cx, cx                                ; 31 c9
+    jmp near 031f6h                           ; e9 d8 00
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016aeh                               ; e8 8a e5
+    test di, di                               ; 85 ff
+    jne short 03130h                          ; 75 08
+    mov CL, strict byte 004h                  ; b1 04
+    shr al, CL                                ; d2 e8
+    mov cl, al                                ; 88 c1
+    jmp short 03135h                          ; eb 05
+    mov cl, al                                ; 88 c1
+    and cl, 00fh                              ; 80 e1 0f
+    cmp cl, 001h                              ; 80 f9 01
+    jne short 03143h                          ; 75 09
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 015h                  ; b5 15
+    mov si, strict word 00001h                ; be 01 00
+    jmp short 03181h                          ; eb 3e
+    cmp cl, 002h                              ; 80 f9 02
+    jne short 0314eh                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 035h                  ; b5 35
+    jmp short 0313eh                          ; eb f0
+    cmp cl, 003h                              ; 80 f9 03
+    jne short 03159h                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 017h                  ; b5 17
+    jmp short 0313eh                          ; eb e5
+    cmp cl, 004h                              ; 80 f9 04
+    jne short 03164h                          ; 75 06
+    xor cl, cl                                ; 30 c9
+    mov CH, strict byte 017h                  ; b5 17
+    jmp short 0313eh                          ; eb da
+    cmp cl, 005h                              ; 80 f9 05
+    jne short 0316fh                          ; 75 06
+    mov CL, strict byte 0cch                  ; b1 cc
+    mov CH, strict byte 0d7h                  ; b5 d7
+    jmp short 0313eh                          ; eb cf
+    cmp cl, 00eh                              ; 80 f9 0e
+    je short 03179h                           ; 74 05
+    cmp cl, 00fh                              ; 80 f9 0f
+    jne short 0317bh                          ; 75 02
+    jmp short 03169h                          ; eb ee
+    xor cl, cl                                ; 30 c9
+    xor ch, ch                                ; 30 ed
+    xor si, si                                ; 31 f6
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 d0 e4
+    mov ax, di                                ; 89 f8
+    call 03077h                               ; e8 e2 fe
+    test ax, ax                               ; 85 c0
+    jne short 031cbh                          ; 75 32
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 080h                  ; 3c 80
+    je short 031cbh                           ; 74 2a
+    mov al, cl                                ; 88 c8
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 031b8h                           ; 74 0f
+    mov ah, cl                                ; 88 cc
+    and ah, 03fh                              ; 80 e4 3f
+    cmp AL, strict byte 040h                  ; 3c 40
+    je short 031c4h                           ; 74 12
+    test al, al                               ; 84 c0
+    je short 031bdh                           ; 74 07
+    jmp short 03181h                          ; eb c9
+    and cl, 03fh                              ; 80 e1 3f
+    jmp short 03181h                          ; eb c4
+    mov cl, ah                                ; 88 e1
+    or cl, 040h                               ; 80 c9 40
+    jmp short 03181h                          ; eb bd
+    mov cl, ah                                ; 88 e1
+    or cl, 080h                               ; 80 c9 80
+    jmp short 03181h                          ; eb b6
+    test di, di                               ; 85 ff
+    jne short 031d4h                          ; 75 05
+    mov di, 00090h                            ; bf 90 00
+    jmp short 031d7h                          ; eb 03
+    mov di, 00091h                            ; bf 91 00
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 0008bh                            ; ba 8b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 7a e4
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, di                                ; 89 fa
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 6c e4
+    mov cx, si                                ; 89 f1
+    mov ax, cx                                ; 89 c8
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+floppy_drive_exists_:                        ; 0xf3202 LB 0x2b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016aeh                               ; e8 9f e4
+    test dx, dx                               ; 85 d2
+    jne short 03219h                          ; 75 06
+    mov CL, strict byte 004h                  ; b1 04
+    shr al, CL                                ; d2 e8
+    jmp short 0321bh                          ; eb 02
+    and AL, strict byte 00fh                  ; 24 0f
+    test al, al                               ; 84 c0
+    je short 03224h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 03226h                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int13_diskette_function:                    ; 0xf322d LB 0x97c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00018h                ; 83 ec 18
+    mov bl, byte [bp+017h]                    ; 8a 5e 17
+    xor bh, bh                                ; 30 ff
+    mov byte [bp-010h], bl                    ; 88 5e f0
+    mov si, word [bp+016h]                    ; 8b 76 16
+    and si, 000ffh                            ; 81 e6 ff 00
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    mov cl, byte [bp+014h]                    ; 8a 4e 14
+    mov ch, byte [bp+016h]                    ; 8a 6e 16
+    mov dl, byte [bp+015h]                    ; 8a 56 15
+    mov byte [bp-014h], dl                    ; 88 56 ec
+    mov byte [bp-013h], bh                    ; 88 7e ed
+    mov dx, word [bp-014h]                    ; 8b 56 ec
+    cmp bl, 008h                              ; 80 fb 08
+    jc short 0328ch                           ; 72 2e
+    mov dx, word [bp+01ch]                    ; 8b 56 1c
+    or dl, 001h                               ; 80 ca 01
+    cmp bl, 008h                              ; 80 fb 08
+    jbe short 032c2h                          ; 76 59
+    cmp bl, 016h                              ; 80 fb 16
+    jc short 03284h                           ; 72 16
+    or si, 00100h                             ; 81 ce 00 01
+    cmp bl, 016h                              ; 80 fb 16
+    jbe short 032c5h                          ; 76 4e
+    cmp bl, 018h                              ; 80 fb 18
+    je short 032c8h                           ; 74 4c
+    cmp bl, 017h                              ; 80 fb 17
+    je short 032dfh                           ; 74 5e
+    jmp near 03b83h                           ; e9 ff 08
+    cmp bl, 015h                              ; 80 fb 15
+    je short 032e2h                           ; 74 59
+    jmp near 03b83h                           ; e9 f7 08
+    cmp bl, 001h                              ; 80 fb 01
+    jc short 032a0h                           ; 72 0f
+    jbe short 032e5h                          ; 76 52
+    cmp bl, 005h                              ; 80 fb 05
+    je short 03300h                           ; 74 68
+    cmp bl, 004h                              ; 80 fb 04
+    jbe short 03303h                          ; 76 66
+    jmp near 03b83h                           ; e9 e3 08
+    test bl, bl                               ; 84 db
+    jne short 03305h                          ; 75 61
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 032cbh                          ; 76 1d
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02eceh                               ; e8 0f fc
+    jmp near 03674h                           ; e9 b2 03
+    jmp near 03845h                           ; e9 80 05
+    jmp near 03989h                           ; e9 c1 06
+    jmp near 03a22h                           ; e9 57 07
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016aeh                               ; e8 dd e3
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 032e7h                          ; 75 10
+    mov CL, strict byte 004h                  ; b1 04
+    mov ch, al                                ; 88 c5
+    shr ch, CL                                ; d2 ed
+    jmp short 032ech                          ; eb 0d
+    jmp near 039adh                           ; e9 cb 06
+    jmp near 03944h                           ; e9 5f 06
+    jmp short 0332eh                          ; eb 47
+    mov ch, al                                ; 88 c5
+    and ch, 00fh                              ; 80 e5 0f
+    test ch, ch                               ; 84 ed
+    jne short 03308h                          ; 75 18
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, 00080h                            ; b8 80 00
+    jmp short 032bch                          ; eb bc
+    jmp near 0369eh                           ; e9 9b 03
+    jmp short 0334ah                          ; eb 45
+    jmp near 03b83h                           ; e9 7b 08
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 0003eh                ; ba 3e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 4d e3
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02eceh                               ; e8 b1 fb
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    call 02ee7h                               ; e8 bc fb
+    jmp near 03697h                           ; e9 69 03
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov dx, 00441h                            ; ba 41 04
+    xor ax, ax                                ; 31 c0
+    call 01652h                               ; e8 18 e3
+    mov dh, al                                ; 88 c6
+    xor dl, dl                                ; 30 d2
+    or si, dx                                 ; 09 d6
+    mov word [bp+016h], si                    ; 89 76 16
+    test al, al                               ; 84 c0
+    je short 0339eh                           ; 74 57
+    jmp near 03674h                           ; e9 2a 03
+    mov byte [bp-008h], ch                    ; 88 6e f8
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-00eh], cl                    ; 88 4e f2
+    mov dl, byte [bp+013h]                    ; 8a 56 13
+    xor dh, dh                                ; 30 f6
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe short 03370h                         ; 77 0e
+    cmp dl, 001h                              ; 80 fa 01
+    jnbe short 03370h                         ; 77 09
+    test ch, ch                               ; 84 ed
+    je short 03370h                           ; 74 05
+    cmp ch, 048h                              ; 80 fd 48
+    jbe short 033a1h                          ; 76 31
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 b8 e5
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 0028dh                            ; b8 8d 02
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 ec e5
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 03423h                           ; e9 85 00
+    jmp near 03697h                           ; e9 f6 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03202h                               ; e8 59 fe
+    test ax, ax                               ; 85 c0
+    je short 033dbh                           ; 74 2e
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 03031h                               ; e8 7a fc
+    test ax, ax                               ; 85 c0
+    jne short 033deh                          ; 75 23
+    mov ax, bx                                ; 89 d8
+    call 03108h                               ; e8 48 fd
+    test ax, ax                               ; 85 c0
+    jne short 033deh                          ; 75 1a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 02eceh                               ; e8 f9 fa
+    mov byte [bp+016h], bh                    ; 88 7e 16
+    jmp near 03674h                           ; e9 99 02
+    jmp near 034bah                           ; e9 dc 00
+    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
+    jne short 0342dh                          ; 75 49
+    mov CL, strict byte 00ch                  ; b1 0c
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    shr dx, CL                                ; d3 ea
+    mov ch, dl                                ; 88 d5
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    sal ax, CL                                ; d3 e0
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, ax                                ; 01 c3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp ax, bx                                ; 39 d8
+    jbe short 03402h                          ; 76 02
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 009h                  ; b1 09
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 03430h                          ; 73 18
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    mov ah, cl                                ; 88 cc
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00009h                ; b8 09 00
+    call 02eceh                               ; e8 a8 fa
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    jmp near 03674h                           ; e9 47 02
+    jmp near 03556h                           ; e9 26 01
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-011h]                    ; 8a 46 ef
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov al, bh                                ; 88 f8
+    out DX, AL                                ; ee
+    mov AL, strict byte 046h                  ; b0 46
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02fadh                               ; e8 3d fb
+    mov AL, strict byte 0e6h                  ; b0 e6
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 1                                 ; d1 e2
+    sal dx, 1                                 ; d1 e2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or ax, dx                                 ; 09 d0
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    add ax, dx                                ; 01 d0
+    dec ax                                    ; 48
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    call 02f3eh                               ; e8 8b fa
+    test al, al                               ; 84 c0
+    jne short 034cbh                          ; 75 14
+    call 02f85h                               ; e8 cb fa
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, 00080h                            ; b8 80 00
+    jmp near 03423h                           ; e9 58 ff
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 034e9h                           ; 74 12
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 002a8h                            ; b8 a8 02
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 90 e4
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 034f2h                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 0350bh                          ; 7d 19
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ch], al                 ; 88 42 e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 58 e1
+    inc si                                    ; 46
+    jmp short 034edh                          ; eb e2
+    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
+    je short 03522h                           ; 74 11
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 020h                               ; 80 cc 20
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00020h                ; b8 20 00
+    jmp near 03423h                           ; e9 01 ff
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 009h                  ; b1 09
+    sal ax, CL                                ; d3 e0
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov si, word [bp+010h]                    ; 8b 76 10
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    mov di, si                                ; 89 f7
+    mov es, dx                                ; 8e c2
+    mov cx, ax                                ; 89 c1
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02ee7h                               ; e8 98 f9
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    jmp near 03a1bh                           ; e9 c5 04
+    cmp byte [bp-010h], 003h                  ; 80 7e f0 03
+    je short 0355fh                           ; 74 03
+    jmp near 03682h                           ; e9 23 01
+    mov CL, strict byte 00ch                  ; b1 0c
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    shr dx, CL                                ; d3 ea
+    mov ch, dl                                ; 88 d5
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    sal ax, CL                                ; d3 e0
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, ax                                ; 01 c3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp ax, bx                                ; 39 d8
+    jbe short 0357dh                          ; 76 02
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 009h                  ; b1 09
+    mov bx, ax                                ; 89 c3
+    sal bx, CL                                ; d3 e3
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 03596h                          ; 73 03
+    jmp near 03418h                           ; e9 82 fe
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-011h]                    ; 8a 46 ef
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov al, bh                                ; 88 f8
+    out DX, AL                                ; ee
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02fadh                               ; e8 d7 f9
+    mov AL, strict byte 0c5h                  ; b0 c5
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    sal dx, 1                                 ; d1 e2
+    sal dx, 1                                 ; d1 e2
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or ax, dx                                 ; 09 d0
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    add ax, dx                                ; 01 d0
+    dec ax                                    ; 48
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    out DX, AL                                ; ee
+    call 02f3eh                               ; e8 25 f9
+    test al, al                               ; 84 c0
+    jne short 03620h                          ; 75 03
+    jmp near 034b7h                           ; e9 97 fe
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0363eh                           ; 74 12
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 002a8h                            ; b8 a8 02
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 3b e3
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 03647h                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 03660h                          ; 7d 19
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ch], al                 ; 88 42 e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 03 e0
+    inc si                                    ; 46
+    jmp short 03642h                          ; eb e2
+    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
+    jne short 03669h                          ; 75 03
+    jmp near 03542h                           ; e9 d9 fe
+    test byte [bp-01bh], 002h                 ; f6 46 e5 02
+    je short 0367bh                           ; 74 0c
+    mov word [bp+016h], 00300h                ; c7 46 16 00 03
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 03697h                           ; e9 1c 00
+    mov word [bp+016h], 00100h                ; c7 46 16 00 01
+    jmp short 03674h                          ; eb f2
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02ee7h                               ; e8 58 f8
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov al, byte [bp+016h]                    ; 8a 46 16
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, byte [bp+015h]                    ; 8a 46 15
+    xor ah, ah                                ; 30 e4
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov dl, byte [bp+013h]                    ; 8a 56 13
+    xor dh, dh                                ; 30 f6
+    mov byte [bp-00ch], dl                    ; 88 56 f4
+    mov bl, byte [bp+00eh]                    ; 8a 5e 0e
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    cmp bl, 001h                              ; 80 fb 01
+    jnbe short 036d3h                         ; 77 14
+    cmp dl, 001h                              ; 80 fa 01
+    jnbe short 036d3h                         ; 77 0f
+    cmp AL, strict byte 04fh                  ; 3c 4f
+    jnbe short 036d3h                         ; 77 0b
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    test al, al                               ; 84 c0
+    je short 036d3h                           ; 74 04
+    cmp AL, strict byte 012h                  ; 3c 12
+    jbe short 036e8h                          ; 76 15
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02eceh                               ; e8 ea f7
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03202h                               ; e8 12 fb
+    test ax, ax                               ; 85 c0
+    jne short 036f7h                          ; 75 03
+    jmp near 032f0h                           ; e9 f9 fb
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 03031h                               ; e8 30 f9
+    test ax, ax                               ; 85 c0
+    jne short 03711h                          ; 75 0c
+    mov ax, bx                                ; 89 d8
+    call 03108h                               ; e8 fe f9
+    test ax, ax                               ; 85 c0
+    jne short 03711h                          ; 75 03
+    jmp near 033c4h                           ; e9 b3 fc
+    mov CL, strict byte 00ch                  ; b1 0c
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    shr dx, CL                                ; d3 ea
+    mov ch, dl                                ; 88 d5
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    sal ax, CL                                ; d3 e0
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    add bx, ax                                ; 01 c3
+    mov word [bp-012h], bx                    ; 89 5e ee
+    cmp ax, bx                                ; 39 d8
+    jbe short 0372fh                          ; 76 02
+    db  0feh, 0c5h
+    ; inc ch                                    ; fe c5
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    sal bx, 1                                 ; d1 e3
+    dec bx                                    ; 4b
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    add ax, bx                                ; 01 d8
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    jnc short 03750h                          ; 73 0b
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 009h                               ; 80 cc 09
+    jmp near 0341dh                           ; e9 cd fc
+    mov AL, strict byte 006h                  ; b0 06
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov dx, strict word 00004h                ; ba 04 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-011h]                    ; 8a 46 ef
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00005h                ; ba 05 00
+    out DX, AL                                ; ee
+    mov al, bh                                ; 88 f8
+    out DX, AL                                ; ee
+    mov AL, strict byte 04ah                  ; b0 4a
+    mov dx, strict word 0000bh                ; ba 0b 00
+    out DX, AL                                ; ee
+    mov al, ch                                ; 88 e8
+    mov dx, 00081h                            ; ba 81 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, strict word 0000ah                ; ba 0a 00
+    out DX, AL                                ; ee
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 02fadh                               ; e8 1d f8
+    mov AL, strict byte 00fh                  ; b0 0f
+    mov dx, 003f5h                            ; ba f5 03
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    or bx, ax                                 ; 09 c3
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    out DX, AL                                ; ee
+    mov AL, strict byte 04dh                  ; b0 4d
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov AL, strict byte 0f6h                  ; b0 f6
+    out DX, AL                                ; ee
+    call 02f3eh                               ; e8 7b f7
+    test al, al                               ; 84 c0
+    jne short 037cdh                          ; 75 06
+    call 02f85h                               ; e8 bb f7
+    jmp near 032f0h                           ; e9 23 fb
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 037ebh                           ; 74 12
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 002a8h                            ; b8 a8 02
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 8e e1
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor si, si                                ; 31 f6
+    jmp short 037f4h                          ; eb 05
+    cmp si, strict byte 00007h                ; 83 fe 07
+    jnl short 0380dh                          ; 7d 19
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+si-01ch], al                 ; 88 42 e4
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+042h]                         ; 8d 54 42
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 56 de
+    inc si                                    ; 46
+    jmp short 037efh                          ; eb e2
+    test byte [bp-01ch], 0c0h                 ; f6 46 e4 c0
+    je short 0382eh                           ; 74 1b
+    test byte [bp-01bh], 002h                 ; f6 46 e5 02
+    je short 0381ch                           ; 74 03
+    jmp near 0366fh                           ; e9 53 fe
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 002bch                            ; b8 bc 02
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 4b e1
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02eceh                               ; e8 96 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    xor dx, dx                                ; 31 d2
+    call 02ee7h                               ; e8 a5 f6
+    jmp near 03a1bh                           ; e9 d6 01
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03874h                          ; 76 28
+    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
+    mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
+    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
+    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
+    mov word [bp+006h], strict word 00000h    ; c7 46 06 00 00
+    mov word [bp+008h], strict word 00000h    ; c7 46 08 00 00
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 03996h                           ; e9 22 01
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016aeh                               ; e8 34 de
+    mov ch, al                                ; 88 c5
+    xor ah, ah                                ; 30 e4
+    test AL, strict byte 0f0h                 ; a8 f0
+    je short 03884h                           ; 74 02
+    mov AH, strict byte 001h                  ; b4 01
+    test ch, 00fh                             ; f6 c5 0f
+    je short 0388bh                           ; 74 02
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 03897h                          ; 75 06
+    mov CL, strict byte 004h                  ; b1 04
+    shr ch, CL                                ; d2 ed
+    jmp short 0389ah                          ; eb 03
+    and ch, 00fh                              ; 80 e5 0f
+    mov byte [bp+011h], 000h                  ; c6 46 11 00
+    mov dl, ch                                ; 88 ea
+    xor dh, dh                                ; 30 f6
+    mov word [bp+010h], dx                    ; 89 56 10
+    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, ah                                ; 88 e2
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+012h], ax                    ; 89 46 12
+    cmp ch, 003h                              ; 80 fd 03
+    jc short 038d6h                           ; 72 15
+    jbe short 038fdh                          ; 76 3a
+    cmp ch, 005h                              ; 80 fd 05
+    jc short 03904h                           ; 72 3c
+    jbe short 0390bh                          ; 76 41
+    cmp ch, 00fh                              ; 80 fd 0f
+    je short 03919h                           ; 74 4a
+    cmp ch, 00eh                              ; 80 fd 0e
+    je short 03912h                           ; 74 3e
+    jmp short 03920h                          ; eb 4a
+    cmp ch, 002h                              ; 80 fd 02
+    je short 038f6h                           ; 74 1b
+    cmp ch, 001h                              ; 80 fd 01
+    je short 038efh                           ; 74 0f
+    test ch, ch                               ; 84 ed
+    jne short 03920h                          ; 75 3c
+    mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp short 03932h                          ; eb 43
+    mov word [bp+014h], 02709h                ; c7 46 14 09 27
+    jmp short 03932h                          ; eb 3c
+    mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
+    jmp short 03932h                          ; eb 35
+    mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
+    jmp short 03932h                          ; eb 2e
+    mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
+    jmp short 03932h                          ; eb 27
+    mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
+    jmp short 03932h                          ; eb 20
+    mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
+    jmp short 03932h                          ; eb 19
+    mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
+    jmp short 03932h                          ; eb 12
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 002cdh                            ; b8 cd 02
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 47 e0
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    call 03ba9h                               ; e8 6b 02
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp near 03a1bh                           ; e9 d7 00
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03950h                          ; 76 05
+    mov word [bp+016h], si                    ; 89 76 16
+    jmp short 03996h                          ; eb 46
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016aeh                               ; e8 58 dd
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 03964h                          ; 75 08
+    mov CL, strict byte 004h                  ; b1 04
+    mov ch, al                                ; 88 c5
+    shr ch, CL                                ; d2 ed
+    jmp short 03969h                          ; eb 05
+    mov ch, al                                ; 88 c5
+    and ch, 00fh                              ; 80 e5 0f
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    test ch, ch                               ; 84 ed
+    je short 03983h                           ; 74 0d
+    cmp ch, 001h                              ; 80 fd 01
+    jbe short 03980h                          ; 76 05
+    or ah, 002h                               ; 80 cc 02
+    jmp short 03983h                          ; eb 03
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp near 03697h                           ; e9 0e fd
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 0399ch                          ; 76 0f
+    mov word [bp+016h], si                    ; 89 76 16
+    mov ax, strict word 00001h                ; b8 01 00
+    call 02eceh                               ; e8 38 f5
+    mov word [bp+01ch], dx                    ; 89 56 1c
+    jmp near 03697h                           ; e9 fb fc
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 006h                               ; 80 cc 06
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp near 032bch                           ; e9 0f f9
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov bl, ch                                ; 88 eb
+    cmp AL, strict byte 001h                  ; 3c 01
+    jnbe short 0398dh                         ; 77 d7
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03202h                               ; e8 44 f8
+    test ax, ax                               ; 85 c0
+    jne short 039c5h                          ; 75 03
+    jmp near 032f0h                           ; e9 2b f9
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 039d0h                           ; 74 05
+    mov dx, 00091h                            ; ba 91 00
+    jmp short 039d3h                          ; eb 03
+    mov dx, 00090h                            ; ba 90 00
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 76 dc
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp bl, 002h                              ; 80 fb 02
+    jc short 039f2h                           ; 72 0f
+    jbe short 039feh                          ; 76 19
+    cmp bl, 004h                              ; 80 fb 04
+    je short 039fah                           ; 74 10
+    cmp bl, 003h                              ; 80 fb 03
+    je short 03a02h                           ; 74 13
+    jmp near 032aeh                           ; e9 bc f8
+    cmp bl, 001h                              ; 80 fb 01
+    je short 039fah                           ; 74 03
+    jmp near 032aeh                           ; e9 b4 f8
+    or AL, strict byte 090h                   ; 0c 90
+    jmp short 03a04h                          ; eb 06
+    or AL, strict byte 070h                   ; 0c 70
+    jmp short 03a04h                          ; eb 02
+    or AL, strict byte 010h                   ; 0c 10
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 4f dc
+    xor al, al                                ; 30 c0
+    mov byte [bp+017h], al                    ; 88 46 17
+    xor ah, ah                                ; 30 e4
+    call 02eceh                               ; e8 b3 f4
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp near 03697h                           ; e9 75 fc
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov ah, cl                                ; 88 cc
+    and ah, 03fh                              ; 80 e4 3f
+    mov byte [bp-008h], ah                    ; 88 66 f8
+    mov bl, cl                                ; 88 cb
+    mov CL, strict byte 006h                  ; b1 06
+    sar bx, CL                                ; d3 fb
+    mov bh, bl                                ; 88 df
+    xor bl, bl                                ; 30 db
+    add bx, word [bp-014h]                    ; 03 5e ec
+    mov byte [bp-00ah], bl                    ; 88 5e f6
+    cmp AL, strict byte 001h                  ; 3c 01
+    jbe short 03a44h                          ; 76 03
+    jmp near 0398dh                           ; e9 49 ff
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 03202h                               ; e8 b6 f7
+    test ax, ax                               ; 85 c0
+    jne short 03a53h                          ; 75 03
+    jmp near 032f0h                           ; e9 9d f8
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 03031h                               ; e8 d4 f5
+    test ax, ax                               ; 85 c0
+    jne short 03a7bh                          ; 75 1a
+    mov ax, bx                                ; 89 d8
+    call 03108h                               ; e8 a2 f6
+    test ax, ax                               ; 85 c0
+    jne short 03a7bh                          ; 75 11
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp near 032bch                           ; e9 41 f8
+    mov ax, strict word 00010h                ; b8 10 00
+    call 016aeh                               ; e8 2d dc
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 03a8fh                          ; 75 08
+    mov CL, strict byte 004h                  ; b1 04
+    mov ch, al                                ; 88 c5
+    shr ch, CL                                ; d2 ed
+    jmp short 03a94h                          ; eb 05
+    mov ch, al                                ; 88 c5
+    and ch, 00fh                              ; 80 e5 0f
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 03a9fh                           ; 74 05
+    mov dx, 00091h                            ; ba 91 00
+    jmp short 03aa2h                          ; eb 03
+    mov dx, 00090h                            ; ba 90 00
+    mov word [bp-012h], dx                    ; 89 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 a7 db
+    and AL, strict byte 00fh                  ; 24 0f
+    cmp ch, 003h                              ; 80 fd 03
+    jc short 03aceh                           ; 72 1c
+    mov ah, al                                ; 88 c4
+    or ah, 090h                               ; 80 cc 90
+    cmp ch, 003h                              ; 80 fd 03
+    jbe short 03b0ah                          ; 76 4e
+    mov dl, al                                ; 88 c2
+    or dl, 010h                               ; 80 ca 10
+    cmp ch, 005h                              ; 80 fd 05
+    je short 03b08h                           ; 74 42
+    cmp ch, 004h                              ; 80 fd 04
+    je short 03b18h                           ; 74 4d
+    jmp near 03b54h                           ; e9 86 00
+    cmp ch, 002h                              ; 80 fd 02
+    je short 03ae8h                           ; 74 15
+    cmp ch, 001h                              ; 80 fd 01
+    jne short 03b1ch                          ; 75 44
+    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
+    jne short 03b1ch                          ; 75 3e
+    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
+    jne short 03b34h                          ; 75 50
+    or AL, strict byte 090h                   ; 0c 90
+    jmp short 03b34h                          ; eb 4c
+    cmp byte [bp-00ah], 027h                  ; 80 7e f6 27
+    jne short 03af8h                          ; 75 0a
+    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
+    jne short 03af8h                          ; 75 04
+    or AL, strict byte 070h                   ; 0c 70
+    jmp short 03b34h                          ; eb 3c
+    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
+    jne short 03b34h                          ; 75 36
+    cmp byte [bp-008h], 00fh                  ; 80 7e f8 0f
+    jne short 03b54h                          ; 75 50
+    or AL, strict byte 010h                   ; 0c 10
+    jmp short 03b54h                          ; eb 4c
+    jmp short 03b36h                          ; eb 2c
+    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
+    jne short 03b54h                          ; 75 44
+    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
+    je short 03b1ah                           ; 74 04
+    jmp short 03b54h                          ; eb 3c
+    jmp short 03b1eh                          ; eb 04
+    mov al, ah                                ; 88 e0
+    jmp short 03b54h                          ; eb 36
+    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
+    jne short 03b54h                          ; 75 30
+    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
+    jne short 03b2ch                          ; 75 02
+    jmp short 03b1ah                          ; eb ee
+    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
+    jne short 03b54h                          ; 75 22
+    mov al, dl                                ; 88 d0
+    jmp short 03b54h                          ; eb 1e
+    cmp byte [bp-00ah], 04fh                  ; 80 7e f6 4f
+    jne short 03b54h                          ; 75 18
+    cmp byte [bp-008h], 009h                  ; 80 7e f8 09
+    jne short 03b44h                          ; 75 02
+    jmp short 03b1ah                          ; eb d6
+    cmp byte [bp-008h], 012h                  ; 80 7e f8 12
+    jne short 03b4ch                          ; 75 02
+    jmp short 03b32h                          ; eb e6
+    cmp byte [bp-008h], 024h                  ; 80 7e f8 24
+    jne short 03b54h                          ; 75 02
+    or AL, strict byte 0d0h                   ; 0c d0
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov CL, strict byte 004h                  ; b1 04
+    sar dx, CL                                ; d3 fa
+    test dl, 001h                             ; f6 c2 01
+    jne short 03b64h                          ; 75 03
+    jmp near 03a6ah                           ; e9 06 ff
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 ef da
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    mov al, ch                                ; 88 e8
+    xor ah, ah                                ; 30 e4
+    call 03ba9h                               ; e8 2c 00
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp near 03a11h                           ; e9 8e fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 a5 dd
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00275h                            ; b8 75 02
+    push ax                                   ; 50
+    mov ax, 002e2h                            ; b8 e2 02
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 d3 dd
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 032aeh                           ; e9 05 f7
+get_floppy_dpt_:                             ; 0xf3ba9 LB 0x32
+    push bx                                   ; 53
+    push dx                                   ; 52
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dl, al                                ; 88 c2
+    xor ax, ax                                ; 31 c0
+    jmp short 03bbah                          ; eb 06
+    inc ax                                    ; 40
+    cmp ax, strict word 00007h                ; 3d 07 00
+    jnc short 03bd4h                          ; 73 1a
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
+    jne short 03bb4h                          ; 75 f0
+    mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 0000dh                ; bb 0d 00
+    imul bx                                   ; f7 eb
+    add ax, strict word 00000h                ; 05 00 00
+    jmp short 03bd7h                          ; eb 03
+    mov ax, strict word 00041h                ; b8 41 00
+    pop bp                                    ; 5d
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    retn                                      ; c3
+dummy_soft_reset_:                           ; 0xf3bdb LB 0x7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    xor ax, ax                                ; 31 c0
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_init:                                 ; 0xf3be2 LB 0x18
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 80 da
+    xor bx, bx                                ; 31 db
+    mov dx, 00366h                            ; ba 66 03
+    call 01660h                               ; e8 6a da
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_isactive:                             ; 0xf3bfa LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 68 da
+    mov dx, 00366h                            ; ba 66 03
+    call 01652h                               ; e8 46 da
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_cdemu_emulated_drive:                       ; 0xf3c10 LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 52 da
+    mov dx, 00368h                            ; ba 68 03
+    call 01652h                               ; e8 30 da
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int13_eltorito:                             ; 0xf3c26 LB 0x191
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 3a da
+    mov si, 00366h                            ; be 66 03
+    mov di, ax                                ; 89 c7
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 0004bh                ; 3d 4b 00
+    jc short 03c4dh                           ; 72 0a
+    jbe short 03c78h                          ; 76 33
+    cmp ax, strict word 0004dh                ; 3d 4d 00
+    jbe short 03c52h                          ; 76 08
+    jmp near 03d7dh                           ; e9 30 01
+    cmp ax, strict word 0004ah                ; 3d 4a 00
+    jne short 03c75h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 d6 dc
+    push word [bp+016h]                       ; ff 76 16
+    mov ax, 002fch                            ; b8 fc 02
+    push ax                                   ; 50
+    mov ax, 0030bh                            ; b8 0b 03
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 07 dd
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 03d98h                           ; e9 23 01
+    jmp near 03d7dh                           ; e9 05 01
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov bx, strict word 00013h                ; bb 13 00
+    call 01660h                               ; e8 dc d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    inc dx                                    ; 42
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01660h                               ; e8 ca d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01660h                               ; e8 b7 d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00003h                ; 83 c2 03
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01660h                               ; e8 a3 d9
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+008h]                 ; 26 8b 5c 08
+    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0169ch                               ; e8 c9 d9
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ch                               ; e8 97 d9
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+006h]                 ; 26 8b 5c 06
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000ah                ; 83 c2 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ch                               ; e8 85 d9
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ch                               ; e8 73 d9
+    mov es, di                                ; 8e c7
+    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 0167ch                               ; e8 61 d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00010h                ; 83 c2 10
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01660h                               ; e8 31 d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00011h                ; 83 c2 11
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01660h                               ; e8 1d d9
+    mov es, di                                ; 8e c7
+    mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, strict byte 00012h                ; 83 c2 12
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01660h                               ; e8 09 d9
+    test byte [bp+016h], 0ffh                 ; f6 46 16 ff
+    jne short 03d63h                          ; 75 06
+    mov es, di                                ; 8e c7
+    mov byte [es:si], 000h                    ; 26 c6 04 00
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 ee d8
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 ab db
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 002fch                            ; b8 fc 02
+    push ax                                   ; 50
+    mov ax, 00333h                            ; b8 33 03
+    jmp near 03c67h                           ; e9 cf fe
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bl, byte [bp+017h]                    ; 8a 5e 17
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 af d8
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 03d76h                          ; eb bf
+device_is_cdrom_:                            ; 0xf3db7 LB 0x3f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 a6 d8
+    mov cx, ax                                ; 89 c1
+    cmp bl, 010h                              ; 80 fb 10
+    jc short 03dd3h                           ; 72 04
+    xor ax, ax                                ; 31 c0
+    jmp short 03deeh                          ; eb 1b
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 0001ch                ; bb 1c 00
+    imul bx                                   ; f7 eb
+    mov es, cx                                ; 8e c1
+    mov bx, ax                                ; 89 c3
+    add bx, 00122h                            ; 81 c3 22 01
+    cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
+    jne short 03dcfh                          ; 75 e4
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+cdrom_boot_:                                 ; 0xf3df6 LB 0x43d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 0081ch                            ; 81 ec 1c 08
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 63 d8
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov si, 00366h                            ; be 66 03
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov word [bp-014h], 00122h                ; c7 46 ec 22 01
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    jmp short 03e2bh                          ; eb 09
+    inc byte [bp-00ch]                        ; fe 46 f4
+    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
+    jnc short 03e37h                          ; 73 0c
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    call 03db7h                               ; e8 84 ff
+    test ax, ax                               ; 85 c0
+    je short 03e22h                           ; 74 eb
+    cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
+    jc short 03e43h                           ; 72 06
+    mov ax, strict word 00002h                ; b8 02 00
+    jmp near 041d0h                           ; e9 8d 03
+    mov cx, strict word 0000ch                ; b9 0c 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-026h]                         ; 8d 46 da
+    call 0a27ah                               ; e8 2a 64
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    mov ax, strict word 00011h                ; b8 11 00
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, strict word 00001h                ; b8 01 00
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    les bx, [bp-014h]                         ; c4 5e ec
+    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
+    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    jmp short 03e8bh                          ; eb 09
+    inc byte [bp-00eh]                        ; fe 46 f2
+    cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
+    jnbe short 03ecdh                         ; 77 42
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-014h]                         ; c4 5e ec
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 1                                 ; d1 e7
+    lea dx, [bp-00826h]                       ; 8d 96 da f7
+    push SS                                   ; 16
+    push dx                                   ; 52
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov ax, 00800h                            ; b8 00 08
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    test ax, ax                               ; 85 c0
+    jne short 03e82h                          ; 75 b5
+    test ax, ax                               ; 85 c0
+    je short 03ed7h                           ; 74 06
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp near 041d0h                           ; e9 f9 02
+    cmp byte [bp-00826h], 000h                ; 80 be da f7 00
+    je short 03ee4h                           ; 74 06
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp near 041d0h                           ; e9 ec 02
+    xor di, di                                ; 31 ff
+    jmp short 03eeeh                          ; eb 06
+    inc di                                    ; 47
+    cmp di, strict byte 00005h                ; 83 ff 05
+    jnc short 03efeh                          ; 73 10
+    mov al, byte [bp+di-00825h]               ; 8a 83 db f7
+    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    je short 03ee8h                           ; 74 f0
+    mov ax, strict word 00005h                ; b8 05 00
+    jmp near 041d0h                           ; e9 d2 02
+    xor di, di                                ; 31 ff
+    jmp short 03f08h                          ; eb 06
+    inc di                                    ; 47
+    cmp di, strict byte 00017h                ; 83 ff 17
+    jnc short 03f18h                          ; 73 10
+    mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    je short 03f02h                           ; 74 f0
+    mov ax, strict word 00006h                ; b8 06 00
+    jmp near 041d0h                           ; e9 b8 02
+    mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
+    mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov ax, strict word 00001h                ; b8 01 00
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-014h]                         ; c4 5e ec
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sal di, 1                                 ; d1 e7
+    lea dx, [bp-00826h]                       ; 8d 96 da f7
+    push SS                                   ; 16
+    push dx                                   ; 52
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov ax, 00800h                            ; b8 00 08
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    call word [word di+0006ah]                ; ff 95 6a 00
+    test ax, ax                               ; 85 c0
+    je short 03f80h                           ; 74 06
+    mov ax, strict word 00007h                ; b8 07 00
+    jmp near 041d0h                           ; e9 50 02
+    cmp byte [bp-00826h], 001h                ; 80 be da f7 01
+    je short 03f8dh                           ; 74 06
+    mov ax, strict word 00008h                ; b8 08 00
+    jmp near 041d0h                           ; e9 43 02
+    cmp byte [bp-00825h], 000h                ; 80 be db f7 00
+    je short 03f9ah                           ; 74 06
+    mov ax, strict word 00009h                ; b8 09 00
+    jmp near 041d0h                           ; e9 36 02
+    cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
+    je short 03fa7h                           ; 74 06
+    mov ax, strict word 0000ah                ; b8 0a 00
+    jmp near 041d0h                           ; e9 29 02
+    cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
+    jne short 03fa1h                          ; 75 f3
+    cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
+    je short 03fbbh                           ; 74 06
+    mov ax, strict word 0000bh                ; b8 0b 00
+    jmp near 041d0h                           ; e9 15 02
+    mov al, byte [bp-00805h]                  ; 8a 86 fb f7
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov byte [es:si+001h], al                 ; 26 88 44 01
+    cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
+    jne short 03fd4h                          ; 75 07
+    mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
+    jmp short 03fe7h                          ; eb 13
+    cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
+    jnc short 03fe2h                          ; 73 07
+    mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
+    jmp short 03fe7h                          ; eb 05
+    mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov byte [es:si+003h], al                 ; 26 88 44 03
+    mov ax, bx                                ; 89 d8
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    mov word [es:si+004h], dx                 ; 26 89 54 04
+    mov ax, word [bp-00804h]                  ; 8b 86 fc f7
+    mov word [bp-010h], ax                    ; 89 46 f0
+    test ax, ax                               ; 85 c0
+    jne short 04016h                          ; 75 05
+    mov word [bp-010h], 007c0h                ; c7 46 f0 c0 07
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov word [es:si+00ch], ax                 ; 26 89 44 0c
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov bx, word [bp-00800h]                  ; 8b 9e 00 f8
+    mov word [es:si+00eh], bx                 ; 26 89 5c 0e
+    test bx, bx                               ; 85 db
+    je short 04038h                           ; 74 06
+    cmp bx, 00400h                            ; 81 fb 00 04
+    jbe short 0403eh                          ; 76 06
+    mov ax, strict word 0000ch                ; b8 0c 00
+    jmp near 041d0h                           ; e9 92 01
+    mov ax, word [bp-007feh]                  ; 8b 86 02 f8
+    mov dx, word [bp-007fch]                  ; 8b 96 04 f8
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    lea dx, [bx-001h]                         ; 8d 57 ff
+    shr dx, 1                                 ; d1 ea
+    shr dx, 1                                 ; d1 ea
+    inc dx                                    ; 42
+    mov ax, dx                                ; 89 d0
+    xchg ah, al                               ; 86 c4
+    mov word [bp-01fh], ax                    ; 89 46 e1
+    les di, [bp-014h]                         ; c4 7e ec
+    mov word [es:di+00eh], dx                 ; 26 89 55 0e
+    mov word [es:di+010h], 00200h             ; 26 c7 45 10 00 02
+    mov CL, strict byte 009h                  ; b1 09
+    mov ax, bx                                ; 89 d8
+    sal ax, CL                                ; d3 e0
+    mov dx, 00800h                            ; ba 00 08
+    sub dx, ax                                ; 29 c2
+    mov ax, dx                                ; 89 d0
+    and ah, 007h                              ; 80 e4 07
+    mov word [es:di+020h], ax                 ; 26 89 45 20
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    add di, ax                                ; 01 c7
+    mov al, byte [es:di+022h]                 ; 26 8a 45 22
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    mov word [bp-016h], ax                    ; 89 46 ea
+    push word [bp-010h]                       ; ff 76 f0
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov ax, bx                                ; 89 d8
+    xor di, di                                ; 31 ff
+    mov cx, strict word 00009h                ; b9 09 00
+    sal ax, 1                                 ; d1 e0
+    rcl di, 1                                 ; d1 d7
+    loop 040b6h                               ; e2 fa
+    push di                                   ; 57
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-026h]                         ; 8d 5e da
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov di, word [bp-016h]                    ; 8b 7e ea
+    call word [word di+0006ah]                ; ff 95 6a 00
+    les bx, [bp-014h]                         ; c4 5e ec
+    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
+    test ax, ax                               ; 85 c0
+    je short 040e8h                           ; 74 06
+    mov ax, strict word 0000dh                ; b8 0d 00
+    jmp near 041d0h                           ; e9 e8 00
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov al, byte [es:si+001h]                 ; 26 8a 44 01
+    cmp AL, strict byte 002h                  ; 3c 02
+    jc short 04100h                           ; 72 0d
+    jbe short 0411bh                          ; 76 26
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 0412bh                           ; 74 32
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 04123h                           ; 74 26
+    jmp near 04178h                           ; e9 78 00
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 04178h                          ; 75 74
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
+    mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
+    mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
+    jmp short 04178h                          ; eb 5d
+    mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
+    jmp short 0410dh                          ; eb ea
+    mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
+    jmp short 0410dh                          ; eb e2
+    mov dx, 001c4h                            ; ba c4 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01652h                               ; e8 1e d5
+    and AL, strict byte 03fh                  ; 24 3f
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov word [es:si+014h], ax                 ; 26 89 44 14
+    mov dx, 001c4h                            ; ba c4 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01652h                               ; e8 0a d5
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    sal bx, 1                                 ; d1 e3
+    mov dx, 001c5h                            ; ba c5 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01652h                               ; e8 f9 d4
+    xor ah, ah                                ; 30 e4
+    add ax, bx                                ; 01 d8
+    inc ax                                    ; 40
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov word [es:si+012h], ax                 ; 26 89 44 12
+    mov dx, 001c3h                            ; ba c3 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 01652h                               ; e8 e4 d4
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov word [es:si+010h], ax                 ; 26 89 44 10
+    mov es, [bp-018h]                         ; 8e 46 e8
+    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
+    je short 041b9h                           ; 74 37
+    cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
+    jne short 041a1h                          ; 75 18
+    mov dx, strict word 00010h                ; ba 10 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 c0 d4
+    mov bl, al                                ; 88 c3
+    or bl, 041h                               ; 80 cb 41
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00010h                ; ba 10 00
+    mov ax, strict word 00040h                ; b8 40 00
+    jmp short 041b6h                          ; eb 15
+    mov dx, 00304h                            ; ba 04 03
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 01652h                               ; e8 a8 d4
+    mov bl, al                                ; 88 c3
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, 00304h                            ; ba 04 03
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 01660h                               ; e8 a7 d4
+    mov es, [bp-018h]                         ; 8e 46 e8
+    cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
+    je short 041c7h                           ; 74 04
+    mov byte [es:si], 001h                    ; 26 c6 04 01
+    mov es, [bp-018h]                         ; 8e 46 e8
+    mov ah, byte [es:si+002h]                 ; 26 8a 64 02
+    xor al, al                                ; 30 c0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0eah, 045h, 0dah
+    db  042h, 00fh, 043h, 034h, 043h, 004h, 043h, 034h, 043h, 004h, 043h, 033h, 045h, 019h, 045h, 0eah
+    db  045h, 0eah, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 019h, 045h, 0e1h, 045h, 019h
+    db  045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah
+    db  045h, 0eah, 045h, 0eah, 045h, 0eah, 045h, 0eah, 045h
+_int13_cdemu:                                ; 0xf4233 LB 0x453
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0002ch                ; 83 ec 2c
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 2a d4
+    mov di, 00366h                            ; bf 66 03
+    mov cx, ax                                ; 89 c1
+    mov si, di                                ; 89 fe
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-018h], 00122h                ; c7 46 e8 22 01
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov es, ax                                ; 8e c0
+    mov al, byte [es:di+003h]                 ; 26 8a 45 03
+    sal al, 1                                 ; d0 e0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov al, byte [es:di+004h]                 ; 26 8a 45 04
+    add byte [bp-006h], al                    ; 00 46 fa
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 ed d3
+    mov es, cx                                ; 8e c1
+    cmp byte [es:di], 000h                    ; 26 80 3d 00
+    je short 0428ah                           ; 74 0f
+    mov al, byte [es:di+002h]                 ; 26 8a 45 02
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    xor dh, dh                                ; 30 f6
+    cmp ax, dx                                ; 39 d0
+    je short 042b4h                           ; 74 2a
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 9e d6
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 0034ch                            ; b8 4c 03
+    push ax                                   ; 50
+    mov ax, 00358h                            ; b8 58 03
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c8 d6
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 0460dh                           ; e9 59 03
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 00050h                ; 3d 50 00
+    jnbe short 04331h                         ; 77 71
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov di, 041dah                            ; bf da 41
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+041f7h]               ; 2e 8b 85 f7 41
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    xor bh, bh                                ; 30 ff
+    jmp ax                                    ; ff e0
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-018h]                         ; c4 5e e8
+    add bx, ax                                ; 01 c3
+    mov bl, byte [es:bx+022h]                 ; 26 8a 5f 22
+    xor bh, bh                                ; 30 ff
+    sal bx, 1                                 ; d1 e3
+    cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
+    je short 04301h                           ; 74 09
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call word [word bx+00076h]                ; ff 97 76 00
+    jmp near 04519h                           ; e9 15 02
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    jmp near 04615h                           ; e9 06 03
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 3a d3
+    mov cl, al                                ; 88 c1
+    mov bh, al                                ; 88 c7
+    mov word [bp+016h], bx                    ; 89 5e 16
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 36 d3
+    test cl, cl                               ; 84 c9
+    je short 04393h                           ; 74 65
+    jmp near 04626h                           ; e9 f5 02
+    jmp near 045eah                           ; e9 b6 02
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov di, word [es:si+014h]                 ; 26 8b 7c 14
+    mov dx, word [es:si+012h]                 ; 26 8b 54 12
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    mov ax, word [es:si+008h]                 ; 26 8b 44 08
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    and ax, strict word 0003fh                ; 25 3f 00
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov cx, word [bp+014h]                    ; 8b 4e 14
+    and cx, 000c0h                            ; 81 e1 c0 00
+    sal cx, 1                                 ; d1 e1
+    sal cx, 1                                 ; d1 e1
+    mov al, byte [bp+015h]                    ; 8a 46 15
+    or ax, cx                                 ; 09 c8
+    mov cl, byte [bp+013h]                    ; 8a 4e 13
+    mov byte [bp-008h], cl                    ; 88 4e f8
+    mov byte [bp-007h], 000h                  ; c6 46 f9 00
+    mov si, word [bp-008h]                    ; 8b 76 f8
+    mov cx, word [bp+016h]                    ; 8b 4e 16
+    xor ch, ch                                ; 30 ed
+    mov word [bp-014h], cx                    ; 89 4e ec
+    test cx, cx                               ; 85 c9
+    je short 043a0h                           ; 74 1d
+    cmp di, word [bp-00ah]                    ; 3b 7e f6
+    jc short 04390h                           ; 72 08
+    cmp ax, dx                                ; 39 d0
+    jnc short 04390h                          ; 73 04
+    cmp bx, si                                ; 39 f3
+    jnbe short 04396h                         ; 77 06
+    jmp near 0460dh                           ; e9 7a 02
+    jmp near 0451dh                           ; e9 87 01
+    mov dl, byte [bp+017h]                    ; 8a 56 17
+    xor dh, dh                                ; 30 f6
+    cmp dx, strict byte 00004h                ; 83 fa 04
+    jne short 043a3h                          ; 75 03
+    jmp near 04519h                           ; e9 76 01
+    mov CL, strict byte 004h                  ; b1 04
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    shr dx, CL                                ; d3 ea
+    mov cx, dx                                ; 89 d1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, cx                                ; 01 ca
+    mov word [bp-020h], dx                    ; 89 56 e0
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    and dx, strict byte 0000fh                ; 83 e2 0f
+    mov word [bp-010h], dx                    ; 89 56 f0
+    xor dl, dl                                ; 30 d2
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 65 5e
+    xor bx, bx                                ; 31 db
+    add ax, si                                ; 01 f0
+    adc dx, bx                                ; 11 da
+    mov bx, di                                ; 89 fb
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 58 5e
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    dec ax                                    ; 48
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    mov bx, word [bp+016h]                    ; 8b 5e 16
+    xor bl, bl                                ; 30 db
+    mov cx, word [bp-014h]                    ; 8b 4e ec
+    or cx, bx                                 ; 09 d9
+    mov word [bp+016h], cx                    ; 89 4e 16
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    mov word [bp-01eh], di                    ; 89 7e e2
+    mov di, ax                                ; 89 c7
+    and di, strict byte 00003h                ; 83 e7 03
+    xor bh, bh                                ; 30 ff
+    add ax, word [bp-014h]                    ; 03 46 ec
+    adc dx, bx                                ; 11 da
+    add ax, strict word 0ffffh                ; 05 ff ff
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-022h], dx                    ; 89 56 de
+    shr word [bp-022h], 1                     ; d1 6e de
+    rcr word [bp-024h], 1                     ; d1 5e dc
+    shr word [bp-022h], 1                     ; d1 6e de
+    rcr word [bp-024h], 1                     ; d1 5e dc
+    mov cx, strict word 0000ch                ; b9 0c 00
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-030h]                         ; 8d 46 d0
+    call 0a27ah                               ; e8 52 5e
+    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, si                                ; 01 f0
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    adc dx, word [bp-01eh]                    ; 13 56 e2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-02eh], ax                    ; 89 46 d2
+    mov word [bp-02ch], dx                    ; 89 56 d4
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    sub ax, si                                ; 29 f0
+    inc ax                                    ; 40
+    xchg ah, al                               ; 86 c4
+    mov word [bp-029h], ax                    ; 89 46 d7
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    les bx, [bp-018h]                         ; c4 5e e8
+    mov word [es:bx+00eh], ax                 ; 26 89 47 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov CL, strict byte 009h                  ; b1 09
+    mov ax, di                                ; 89 f8
+    sal ax, CL                                ; d3 e0
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov word [es:bx+01eh], ax                 ; 26 89 47 1e
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 003h                  ; 24 03
+    mov dx, strict word 00004h                ; ba 04 00
+    sub dx, ax                                ; 29 c2
+    mov ax, dx                                ; 89 d0
+    sub ax, di                                ; 29 f8
+    sal ax, CL                                ; d3 e0
+    and ah, 007h                              ; 80 e4 07
+    mov word [es:bx+020h], ax                 ; 26 89 47 20
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    push word [bp-020h]                       ; ff 76 e0
+    push word [bp-010h]                       ; ff 76 f0
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    xor di, di                                ; 31 ff
+    mov cx, strict word 00009h                ; b9 09 00
+    sal si, 1                                 ; d1 e6
+    rcl di, 1                                 ; d1 d7
+    loop 044adh                               ; e2 fa
+    push di                                   ; 57
+    push si                                   ; 56
+    push word [bp-01ah]                       ; ff 76 e6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-030h]                         ; 8d 5e d0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov si, word [bp-01ch]                    ; 8b 76 e4
+    call word [word si+0006ah]                ; ff 94 6a 00
+    mov dx, ax                                ; 89 c2
+    les bx, [bp-018h]                         ; c4 5e e8
+    mov word [es:bx+01eh], strict word 00000h ; 26 c7 47 1e 00 00
+    mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
+    test al, al                               ; 84 c0
+    je short 04519h                           ; 74 38
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 47 d4
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 0034ch                            ; b8 4c 03
+    push ax                                   ; 50
+    mov ax, 0038eh                            ; b8 8e 03
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 72 d4
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 002h                               ; 80 cc 02
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    jmp near 04618h                           ; e9 ff 00
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 38 d1
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov es, [bp-012h]                         ; 8e 46 ee
+    mov di, word [es:si+014h]                 ; 26 8b 7c 14
+    mov dx, word [es:si+012h]                 ; 26 8b 54 12
+    dec dx                                    ; 4a
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    dec bx                                    ; 4b
+    mov byte [bp+016h], 000h                  ; c6 46 16 00
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    xor cl, cl                                ; 30 c9
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor ah, ah                                ; 30 e4
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov byte [bp-019h], al                    ; 88 46 e7
+    mov byte [bp-01ah], cl                    ; 88 4e e6
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    or ax, word [bp-01ah]                     ; 0b 46 e6
+    mov word [bp+014h], ax                    ; 89 46 14
+    shr dx, 1                                 ; d1 ea
+    shr dx, 1                                 ; d1 ea
+    xor dh, dh                                ; 30 f6
+    and dl, 0c0h                              ; 80 e2 c0
+    mov word [bp-01ah], dx                    ; 89 56 e6
+    mov dx, di                                ; 89 fa
+    xor dh, dh                                ; 30 f6
+    and dl, 03fh                              ; 80 e2 3f
+    or dx, word [bp-01ah]                     ; 0b 56 e6
+    xor al, al                                ; 30 c0
+    or ax, dx                                 ; 09 d0
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dh, bl                                ; 88 de
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov ax, dx                                ; 89 d0
+    xor al, dl                                ; 30 d0
+    or AL, strict byte 002h                   ; 0c 02
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov al, byte [es:si+001h]                 ; 26 8a 44 01
+    mov word [bp+010h], cx                    ; 89 4e 10
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 045c3h                           ; 74 1c
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 045bbh                           ; 74 10
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 045c8h                          ; 75 19
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor al, al                                ; 30 c0
+    or AL, strict byte 002h                   ; 0c 02
+    mov word [bp+010h], ax                    ; 89 46 10
+    jmp short 045c8h                          ; eb 0d
+    or cl, 004h                               ; 80 c9 04
+    mov word [bp+010h], cx                    ; 89 4e 10
+    jmp short 045c8h                          ; eb 05
+    or cl, 005h                               ; 80 c9 05
+    jmp short 045beh                          ; eb f6
+    mov es, [bp-012h]                         ; 8e 46 ee
+    cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
+    jc short 045d5h                           ; 72 03
+    jmp near 04519h                           ; e9 44 ff
+    mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
+    mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
+    jmp short 045d2h                          ; eb f1
+    or bh, 003h                               ; 80 cf 03
+    mov word [bp+016h], bx                    ; 89 5e 16
+    jmp near 0451dh                           ; e9 33 ff
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 3e d3
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0034ch                            ; b8 4c 03
+    push ax                                   ; 50
+    mov ax, 003afh                            ; b8 af 03
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 6c d3
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bl, byte [bp+017h]                    ; 8a 5e 17
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 3a d0
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 0452ch                           ; e9 ff fe
+    db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06fh, 047h, 0ddh
+    db  04bh, 031h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 026h, 047h, 06fh, 047h, 0ddh, 04bh, 06fh
+    db  047h, 06fh, 047h, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 0ddh, 04bh, 053h, 047h, 0ddh
+    db  04bh, 06fh, 047h, 05ch, 047h, 08dh, 047h, 026h, 047h, 08dh, 047h, 0d5h, 048h, 075h, 049h, 08dh
+    db  047h, 09fh, 049h, 0f7h, 04bh, 0ffh, 04bh, 06fh, 047h
+_int13_cdrom:                                ; 0xf4686 LB 0x5ae
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0002ch                ; 83 ec 2c
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 d7 cf
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 b3 cf
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    cmp ax, 000e0h                            ; 3d e0 00
+    jc short 046bch                           ; 72 05
+    cmp ax, 000f0h                            ; 3d f0 00
+    jc short 046dbh                           ; 72 1f
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+019h]                    ; 8a 46 19
+    push ax                                   ; 50
+    mov ax, 003dfh                            ; b8 df 03
+    push ax                                   ; 50
+    mov ax, 003ebh                            ; b8 eb 03
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 a1 d2
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 04c15h                           ; e9 3a 05
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    xor ah, ah                                ; 30 e4
+    les bx, [bp-00eh]                         ; c4 5e f2
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00114h]               ; 26 8a 97 14 01
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 04700h                           ; 72 0e
+    push ax                                   ; 50
+    mov al, byte [bp+019h]                    ; 8a 46 19
+    push ax                                   ; 50
+    mov ax, 003dfh                            ; b8 df 03
+    push ax                                   ; 50
+    mov ax, 00416h                            ; b8 16 04
+    jmp short 046cdh                          ; eb cd
+    mov al, byte [bp+019h]                    ; 8a 46 19
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 00050h                ; 3d 50 00
+    jnbe short 0476fh                         ; 77 63
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0001eh                ; b9 1e 00
+    mov di, 0462dh                            ; bf 2d 46
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+0464ah]               ; 2e 8b 85 4a 46
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    xor bh, bh                                ; 30 ff
+    jmp ax                                    ; ff e0
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    jmp near 04c1dh                           ; e9 ec 04
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 18 cf
+    mov cl, al                                ; 88 c1
+    mov bh, al                                ; 88 c7
+    mov word [bp+018h], bx                    ; 89 5e 18
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 14 cf
+    test cl, cl                               ; 84 c9
+    je short 0476ch                           ; 74 1c
+    jmp near 04c2eh                           ; e9 db 04
+    or bh, 002h                               ; 80 cf 02
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp near 04c20h                           ; e9 c4 04
+    mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
+    or bh, 030h                               ; 80 cf 30
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
+    jmp near 04be1h                           ; e9 72 04
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 b9 d1
+    mov al, byte [bp+019h]                    ; 8a 46 19
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 003dfh                            ; b8 df 03
+    push ax                                   ; 50
+    mov ax, 00333h                            ; b8 33 03
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 047ceh                          ; eb 41
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, bx                                ; 89 df
+    mov [bp-014h], es                         ; 8c 46 ec
+    mov si, word [es:bx+002h]                 ; 26 8b 77 02
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [es:bx+004h]                 ; 26 8b 47 04
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov ax, word [es:bx+00ch]                 ; 26 8b 47 0c
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
+    mov word [bp-012h], ax                    ; 89 46 ee
+    or ax, word [bp-016h]                     ; 0b 46 ea
+    je short 047d8h                           ; 74 1b
+    mov al, byte [bp+019h]                    ; 8a 46 19
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 003dfh                            ; b8 df 03
+    push ax                                   ; 50
+    mov ax, 00448h                            ; b8 48 04
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 a4 d1
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 04c15h                           ; e9 3d 04
+    mov es, [bp-014h]                         ; 8e 46 ec
+    mov ax, word [es:di+008h]                 ; 26 8b 45 08
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:di+00ah]                 ; 26 8b 45 0a
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov al, byte [bp+019h]                    ; 8a 46 19
+    mov byte [bp-022h], al                    ; 88 46 de
+    mov byte [bp-021h], 000h                  ; c6 46 df 00
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    cmp ax, strict word 00044h                ; 3d 44 00
+    je short 04800h                           ; 74 05
+    cmp ax, strict word 00047h                ; 3d 47 00
+    jne short 04803h                          ; 75 03
+    jmp near 04bddh                           ; e9 da 03
+    mov cx, strict word 0000ch                ; b9 0c 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-030h]                         ; 8d 46 d0
+    call 0a27ah                               ; e8 6a 5a
+    mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    mov dx, word [bp-012h]                    ; 8b 56 ee
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-02eh], ax                    ; 89 46 d2
+    mov word [bp-02ch], dx                    ; 89 56 d4
+    mov ax, si                                ; 89 f0
+    xchg ah, al                               ; 86 c4
+    mov word [bp-029h], ax                    ; 89 46 d7
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov word [es:bx+00eh], si                 ; 26 89 77 0e
+    mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    mov word [bp-024h], ax                    ; 89 46 dc
+    push word [bp-01ch]                       ; ff 76 e4
+    push word [bp-01ah]                       ; ff 76 e6
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov bx, si                                ; 89 f3
+    xor si, si                                ; 31 f6
+    mov cx, strict word 0000bh                ; b9 0b 00
+    sal bx, 1                                 ; d1 e3
+    rcl si, 1                                 ; d1 d6
+    loop 04862h                               ; e2 fa
+    push si                                   ; 56
+    push bx                                   ; 53
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-030h]                         ; 8d 5e d0
+    mov dx, strict word 0000ch                ; ba 0c 00
+    mov si, word [bp-024h]                    ; 8b 76 dc
+    call word [word si+0006ah]                ; ff 94 6a 00
+    mov dx, ax                                ; 89 c2
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov bx, word [es:bx+01ah]                 ; 26 8b 5f 1a
+    mov si, word [bp-00eh]                    ; 8b 76 f2
+    mov si, word [es:si+01ch]                 ; 26 8b 74 1c
+    mov cx, strict word 0000bh                ; b9 0b 00
+    shr si, 1                                 ; d1 ee
+    rcr bx, 1                                 ; d1 db
+    loop 04894h                               ; e2 fa
+    mov es, [bp-014h]                         ; 8e 46 ec
+    mov word [es:di+002h], bx                 ; 26 89 5d 02
+    test al, al                               ; 84 c0
+    je short 048fbh                           ; 74 56
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 83 d0
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push word [bp-022h]                       ; ff 76 de
+    mov ax, 003dfh                            ; b8 df 03
+    push ax                                   ; 50
+    mov ax, 00471h                            ; b8 71 04
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 af d0
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 04c1dh                           ; e9 48 03
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    jnbe short 04946h                         ; 77 6c
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les si, [bp-00eh]                         ; c4 76 f2
+    add si, ax                                ; 01 c6
+    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    je short 0495eh                           ; 74 6c
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    je short 04936h                           ; 74 3f
+    test bx, bx                               ; 85 db
+    je short 048feh                           ; 74 03
+    jmp near 04bddh                           ; e9 df 02
+    cmp cl, 0ffh                              ; 80 f9 ff
+    jne short 04915h                          ; 75 12
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 0b4h                               ; 80 cc b4
+    mov word [bp+018h], ax                    ; 89 46 18
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    jmp near 04c1dh                           ; e9 08 03
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    les bx, [bp-00eh]                         ; c4 5e f2
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov word [bp+018h], ax                    ; 89 46 18
+    jmp short 048fbh                          ; eb c5
+    test cl, cl                               ; 84 c9
+    jne short 04949h                          ; 75 0f
+    or bh, 0b0h                               ; 80 cf b0
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov byte [bp+018h], cl                    ; 88 4e 18
+    jmp near 04c20h                           ; e9 da 02
+    jmp near 04c15h                           ; e9 cc 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    les bx, [bp-00eh]                         ; c4 5e f2
+    add bx, ax                                ; 01 c3
+    mov byte [es:bx+025h], cl                 ; 26 88 4f 25
+    test cl, cl                               ; 84 c9
+    jne short 04970h                          ; 75 0e
+    xor ax, ax                                ; 31 c0
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    xor dl, dl                                ; 30 d2
+    or dx, ax                                 ; 09 c2
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp short 048fbh                          ; eb 8b
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 04964h                          ; eb ef
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les si, [bp-00eh]                         ; c4 76 f2
+    add si, ax                                ; 01 c6
+    mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
+    test cl, cl                               ; 84 c9
+    je short 04992h                           ; 74 06
+    or bh, 0b1h                               ; 80 cf b1
+    jmp near 04756h                           ; e9 c4 fd
+    je short 049b9h                           ; 74 25
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 0b1h                               ; 80 cc b1
+    jmp near 04c1dh                           ; e9 7e 02
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    mov si, bx                                ; 89 de
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp-010h], ax                    ; 89 46 f0
+    cmp ax, strict word 0001ah                ; 3d 1a 00
+    jnc short 049bch                          ; 73 05
+    jmp short 04946h                          ; eb 8d
+    jmp near 04bddh                           ; e9 21 02
+    jc short 04a1eh                           ; 72 60
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les di, [bp-00eh]                         ; c4 7e f2
+    add di, ax                                ; 01 c7
+    mov ax, word [es:di+028h]                 ; 26 8b 45 28
+    mov es, cx                                ; 8e c1
+    mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
+    mov word [es:bx+002h], strict word 00074h ; 26 c7 47 02 74 00
+    mov word [es:bx+004h], strict word 0ffffh ; 26 c7 47 04 ff ff
+    mov word [es:bx+006h], strict word 0ffffh ; 26 c7 47 06 ff ff
+    mov word [es:bx+008h], strict word 0ffffh ; 26 c7 47 08 ff ff
+    mov word [es:bx+00ah], strict word 0ffffh ; 26 c7 47 0a ff ff
+    mov word [es:bx+00ch], strict word 0ffffh ; 26 c7 47 0c ff ff
+    mov word [es:bx+00eh], strict word 0ffffh ; 26 c7 47 0e ff ff
+    mov word [es:bx+018h], ax                 ; 26 89 47 18
+    mov word [es:bx+010h], strict word 0ffffh ; 26 c7 47 10 ff ff
+    mov word [es:bx+012h], strict word 0ffffh ; 26 c7 47 12 ff ff
+    mov word [es:bx+014h], strict word 0ffffh ; 26 c7 47 14 ff ff
+    mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
+    cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
+    jc short 04a85h                           ; 72 61
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    mov word [es:si+01ah], 00356h             ; 26 c7 44 1a 56 03
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-00eh]                         ; c4 5e f2
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov ax, cx                                ; 89 c8
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+026h]                 ; 26 8a 47 26
+    mov di, strict word 00070h                ; bf 70 00
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 04a88h                          ; 75 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 04a8ah                          ; eb 05
+    jmp near 04b0fh                           ; e9 87 00
+    xor ax, ax                                ; 31 c0
+    or di, ax                                 ; 09 c7
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov word [es:bx+00234h], ax               ; 26 89 87 34 02
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:bx+00236h], ax               ; 26 89 87 36 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    or dl, 00eh                               ; 80 ca 0e
+    mov CL, strict byte 004h                  ; b1 04
+    sal dx, CL                                ; d3 e2
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    mov byte [es:bx+00238h], dl               ; 26 88 97 38 02
+    mov byte [es:bx+00239h], 0cbh             ; 26 c6 87 39 02 cb
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:bx+0023ah], al               ; 26 88 87 3a 02
+    mov word [es:bx+0023bh], strict word 00001h ; 26 c7 87 3b 02 01 00
+    mov byte [es:bx+0023dh], 000h             ; 26 c6 87 3d 02 00
+    mov word [es:bx+0023eh], di               ; 26 89 bf 3e 02
+    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
+    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
+    xor bl, bl                                ; 30 db
+    xor bh, bh                                ; 30 ff
+    jmp short 04af1h                          ; eb 05
+    cmp bh, 00fh                              ; 80 ff 0f
+    jnc short 04b05h                          ; 73 14
+    mov dl, bh                                ; 88 fa
+    xor dh, dh                                ; 30 f6
+    add dx, 00356h                            ; 81 c2 56 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    call 01652h                               ; e8 53 cb
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 04aech                          ; eb e7
+    neg bl                                    ; f6 db
+    les di, [bp-00eh]                         ; c4 7e f2
+    mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
+    cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
+    jnc short 04b18h                          ; 73 03
+    jmp near 04bddh                           ; e9 c5 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-00eh]                         ; c4 5e f2
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+00204h]               ; 26 8a 87 04 02
+    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:si], strict word 00042h      ; 26 c7 04 42 00
+    mov word [es:si+01eh], 0beddh             ; 26 c7 44 1e dd be
+    mov word [es:si+020h], strict word 00024h ; 26 c7 44 20 24 00
+    mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
+    test al, al                               ; 84 c0
+    jne short 04b62h                          ; 75 0c
+    mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
+    mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:si+028h], 05441h             ; 26 c7 44 28 41 54
+    mov word [es:si+02ah], 02041h             ; 26 c7 44 2a 41 20
+    mov word [es:si+02ch], 02020h             ; 26 c7 44 2c 20 20
+    mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
+    test al, al                               ; 84 c0
+    jne short 04b97h                          ; 75 16
+    mov word [es:si+030h], dx                 ; 26 89 54 30
+    mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
+    mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00
+    mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 001h                  ; 24 01
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:si+038h], ax                 ; 26 89 44 38
+    mov word [es:si+03ah], strict word 00000h ; 26 c7 44 3a 00 00
+    mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00
+    mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00
+    xor bl, bl                                ; 30 db
+    mov BH, strict byte 01eh                  ; b7 1e
+    jmp short 04bc2h                          ; eb 05
+    cmp bh, 040h                              ; 80 ff 40
+    jnc short 04bd4h                          ; 73 12
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, si                                ; 89 f7
+    add di, ax                                ; 01 c7
+    add bl, byte [es:di]                      ; 26 02 1d
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 04bbdh                          ; eb e9
+    neg bl                                    ; f6 db
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:si+041h], bl                 ; 26 88 5c 41
+    mov byte [bp+019h], 000h                  ; c6 46 19 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 74 ca
+    and byte [bp+01eh], 0feh                  ; 80 66 1e fe
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    or bh, 006h                               ; 80 cf 06
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp short 04c2eh                          ; eb 2f
+    cmp bx, strict byte 00006h                ; 83 fb 06
+    je short 04bddh                           ; 74 d9
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    jc short 04c15h                           ; 72 0c
+    jbe short 04bddh                          ; 76 d2
+    cmp bx, strict byte 00003h                ; 83 fb 03
+    jc short 04c15h                           ; 72 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jbe short 04bddh                          ; 76 c8
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+018h], ax                    ; 89 46 18
+    mov bl, byte [bp+019h]                    ; 8a 5e 19
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 32 ca
+    or byte [bp+01eh], 001h                   ; 80 4e 1e 01
+    jmp short 04bf0h                          ; eb bc
+print_boot_device_:                          ; 0xf4c34 LB 0x51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    test al, al                               ; 84 c0
+    je short 04c41h                           ; 74 05
+    mov dx, strict word 00002h                ; ba 02 00
+    jmp short 04c5bh                          ; eb 1a
+    test dl, dl                               ; 84 d2
+    je short 04c4ah                           ; 74 05
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp short 04c5bh                          ; eb 11
+    test bl, 080h                             ; f6 c3 80
+    jne short 04c53h                          ; 75 04
+    xor dh, dh                                ; 30 f6
+    jmp short 04c5bh                          ; eb 08
+    test bl, 080h                             ; f6 c3 80
+    je short 04c7fh                           ; 74 27
+    mov dx, strict word 00001h                ; ba 01 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 cd cc
+    mov ax, dx                                ; 89 d0
+    mov dx, strict word 0000ah                ; ba 0a 00
+    imul dx                                   ; f7 ea
+    add ax, 00dc6h                            ; 05 c6 0d
+    push ax                                   ; 50
+    mov ax, 00494h                            ; b8 94 04
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 fa cc
+    add sp, strict byte 00006h                ; 83 c4 06
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+print_boot_failure_:                         ; 0xf4c85 LB 0x9f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    mov dh, cl                                ; 88 ce
+    mov cl, bl                                ; 88 d9
+    and cl, 07fh                              ; 80 e1 7f
+    xor ch, ch                                ; 30 ed
+    mov si, cx                                ; 89 ce
+    test al, al                               ; 84 c0
+    je short 04cb7h                           ; 74 1f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 90 cc
+    mov cx, 00ddah                            ; b9 da 0d
+    push cx                                   ; 51
+    mov cx, 004a8h                            ; b9 a8 04
+    push cx                                   ; 51
+    mov cx, strict word 00004h                ; b9 04 00
+    push cx                                   ; 51
+    call 01976h                               ; e8 c4 cc
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 04cffh                          ; eb 48
+    test dl, dl                               ; 84 d2
+    je short 04ccbh                           ; 74 10
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 6d cc
+    mov cx, 00de4h                            ; b9 e4 0d
+    jmp short 04ca6h                          ; eb db
+    test bl, 080h                             ; f6 c3 80
+    je short 04ce1h                           ; 74 11
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 58 cc
+    push si                                   ; 56
+    mov cx, 00dd0h                            ; b9 d0 0d
+    jmp short 04cf0h                          ; eb 0f
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 47 cc
+    push si                                   ; 56
+    mov cx, 00dc6h                            ; b9 c6 0d
+    push cx                                   ; 51
+    mov cx, 004bdh                            ; b9 bd 04
+    push cx                                   ; 51
+    mov cx, strict word 00004h                ; b9 04 00
+    push cx                                   ; 51
+    call 01976h                               ; e8 7a cc
+    add sp, strict byte 00008h                ; 83 c4 08
+    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
+    jne short 04d1ch                          ; 75 17
+    test dh, dh                               ; 84 f6
+    jne short 04d0eh                          ; 75 05
+    mov dx, 004d5h                            ; ba d5 04
+    jmp short 04d11h                          ; eb 03
+    mov dx, 004ffh                            ; ba ff 04
+    push dx                                   ; 52
+    mov dx, strict word 00007h                ; ba 07 00
+    push dx                                   ; 52
+    call 01976h                               ; e8 5d cc
+    add sp, strict byte 00004h                ; 83 c4 04
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+print_cdromboot_failure_:                    ; 0xf4d24 LB 0x2a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov dx, ax                                ; 89 c2
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 fc cb
+    push dx                                   ; 52
+    mov dx, 00534h                            ; ba 34 05
+    push dx                                   ; 52
+    mov dx, strict word 00004h                ; ba 04 00
+    push dx                                   ; 52
+    call 01976h                               ; e8 33 cc
+    add sp, strict byte 00006h                ; 83 c4 06
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int19_function:                             ; 0xf4d4e LB 0x28d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00010h                ; 83 ec 10
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 0f c9
+    mov bx, ax                                ; 89 c3
+    mov di, ax                                ; 89 c7
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, strict word 0003dh                ; b8 3d 00
+    call 016aeh                               ; e8 41 c9
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov ax, strict word 00038h                ; b8 38 00
+    call 016aeh                               ; e8 34 c9
+    and AL, strict byte 0f0h                  ; 24 f0
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00fh], dh                    ; 88 76 f1
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    sal ax, CL                                ; d3 e0
+    or dx, ax                                 ; 09 c2
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 016aeh                               ; e8 1a c9
+    and AL, strict byte 00fh                  ; 24 0f
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 00ch                  ; b1 0c
+    sal ax, CL                                ; d3 e0
+    or word [bp-00eh], ax                     ; 09 46 f2
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, bx                                ; 89 d8
+    call 01652h                               ; e8 ab c8
+    test al, al                               ; 84 c0
+    je short 04db8h                           ; 74 0d
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, bx                                ; 89 d8
+    call 01652h                               ; e8 9f c8
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    cmp byte [bp+004h], 001h                  ; 80 7e 04 01
+    jne short 04dcfh                          ; 75 11
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 016aeh                               ; e8 ea c8
+    and AL, strict byte 0f0h                  ; 24 f0
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 004h                  ; b1 04
+    sar ax, CL                                ; d3 f8
+    call 07f6ch                               ; e8 9d 31
+    cmp byte [bp+004h], 002h                  ; 80 7e 04 02
+    jne short 04ddah                          ; 75 05
+    mov CL, strict byte 004h                  ; b1 04
+    shr word [bp-00eh], CL                    ; d3 6e f2
+    cmp byte [bp+004h], 003h                  ; 80 7e 04 03
+    jne short 04de8h                          ; 75 08
+    mov al, byte [bp-00dh]                    ; 8a 46 f3
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    cmp byte [bp+004h], 004h                  ; 80 7e 04 04
+    jne short 04df3h                          ; 75 05
+    mov CL, strict byte 00ch                  ; b1 0c
+    shr word [bp-00eh], CL                    ; d3 6e f2
+    cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
+    jnc short 04dfdh                          ; 73 04
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 20 cb
+    push word [bp-00eh]                       ; ff 76 f2
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00554h                            ; b8 54 05
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 4f cb
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    and ax, strict word 0000fh                ; 25 0f 00
+    cmp ax, strict word 00002h                ; 3d 02 00
+    jc short 04e43h                           ; 72 0e
+    jbe short 04e52h                          ; 76 1b
+    cmp ax, strict word 00004h                ; 3d 04 00
+    je short 04e6fh                           ; 74 33
+    cmp ax, strict word 00003h                ; 3d 03 00
+    je short 04e65h                           ; 74 24
+    jmp short 04e9eh                          ; eb 5b
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jne short 04e9eh                          ; 75 56
+    xor al, al                                ; 30 c0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], al                    ; 88 46 f8
+    jmp short 04eb2h                          ; eb 60
+    mov dx, 0037ch                            ; ba 7c 03
+    mov ax, di                                ; 89 f8
+    call 01652h                               ; e8 f8 c7
+    add AL, strict byte 080h                  ; 04 80
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    jmp short 04eb2h                          ; eb 4d
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    mov byte [bp-008h], 001h                  ; c6 46 f8 01
+    jmp short 04e79h                          ; eb 0a
+    mov byte [bp-00ah], 001h                  ; c6 46 f6 01
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 04eb2h                           ; 74 39
+    call 03df6h                               ; e8 7a ef
+    mov bx, ax                                ; 89 c3
+    test AL, strict byte 0ffh                 ; a8 ff
+    je short 04ea5h                           ; 74 23
+    call 04d24h                               ; e8 9f fe
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov cx, strict word 00001h                ; b9 01 00
+    call 04c85h                               ; e8 e7 fd
+    xor ax, ax                                ; 31 c0
+    xor dx, dx                                ; 31 d2
+    jmp near 04fd4h                           ; e9 2f 01
+    mov dx, 00372h                            ; ba 72 03
+    mov ax, di                                ; 89 f8
+    call 0166eh                               ; e8 c1 c7
+    mov si, ax                                ; 89 c6
+    mov byte [bp-006h], bh                    ; 88 7e fa
+    cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
+    jne short 04f0dh                          ; 75 55
+    xor si, si                                ; 31 f6
+    mov ax, 0e200h                            ; b8 00 e2
+    mov es, ax                                ; 8e c0
+    cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
+    jne short 04e85h                          ; 75 bf
+    mov cx, ax                                ; 89 c1
+    mov si, word [es:si+01ah]                 ; 26 8b 74 1a
+    cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
+    jne short 04e85h                          ; 75 b1
+    cmp word [es:si], 05024h                  ; 26 81 3c 24 50
+    jne short 04e85h                          ; 75 aa
+    mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
+    mov dx, word [es:bx]                      ; 26 8b 17
+    mov ax, word [es:bx+002h]                 ; 26 8b 47 02
+    cmp ax, 06568h                            ; 3d 68 65
+    jne short 04f0fh                          ; 75 24
+    cmp dx, 07445h                            ; 81 fa 45 74
+    jne short 04f0fh                          ; 75 1e
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 04c34h                               ; e8 31 fd
+    mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
+    mov word [bp-012h], cx                    ; 89 4e ee
+    jmp short 04f2eh                          ; eb 21
+    jmp short 04f34h                          ; eb 25
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 04c34h                               ; e8 13 fd
+    sti                                       ; fb
+    mov word [bp-012h], cx                    ; 89 4e ee
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov word [bp-014h], ax                    ; 89 46 ec
+    call far [bp-014h]                        ; ff 5e ec
+    jmp near 04e85h                           ; e9 51 ff
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 04f61h                          ; 75 27
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 04f61h                          ; 75 21
+    mov si, 007c0h                            ; be c0 07
+    mov es, si                                ; 8e c6
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    mov ax, 00201h                            ; b8 01 02
+    mov DH, strict byte 000h                  ; b6 00
+    mov cx, strict word 00001h                ; b9 01 00
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    int 013h                                  ; cd 13
+    mov ax, strict word 00000h                ; b8 00 00
+    sbb ax, strict byte 00000h                ; 83 d8 00
+    test ax, ax                               ; 85 c0
+    je short 04f61h                           ; 74 03
+    jmp near 04e85h                           ; e9 24 ff
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 04f6bh                           ; 74 04
+    xor bl, bl                                ; 30 db
+    jmp short 04f6dh                          ; eb 02
+    mov BL, strict byte 001h                  ; b3 01
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 04f75h                           ; 74 02
+    mov BL, strict byte 001h                  ; b3 01
+    xor dx, dx                                ; 31 d2
+    mov ax, si                                ; 89 f0
+    call 0166eh                               ; e8 f2 c6
+    mov di, ax                                ; 89 c7
+    mov dx, strict word 00002h                ; ba 02 00
+    mov ax, si                                ; 89 f0
+    call 0166eh                               ; e8 e8 c6
+    cmp di, ax                                ; 39 c7
+    je short 04f9bh                           ; 74 11
+    test bl, bl                               ; 84 db
+    jne short 04fb3h                          ; 75 25
+    mov dx, 001feh                            ; ba fe 01
+    mov ax, si                                ; 89 f0
+    call 0166eh                               ; e8 d8 c6
+    cmp ax, 0aa55h                            ; 3d 55 aa
+    je short 04fb3h                           ; 74 18
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor cx, cx                                ; 31 c9
+    jmp near 04e9bh                           ; e9 e8 fe
+    mov bl, byte [bp-006h]                    ; 8a 5e fa
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-00ah]                    ; 8a 56 f6
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    call 04c34h                               ; e8 6f fc
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    xor bx, bx                                ; 31 db
+    xor al, al                                ; 30 c0
+    add ax, si                                ; 01 f0
+    adc dx, bx                                ; 11 da
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+keyboard_panic_:                             ; 0xf4fdb LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push ax                                   ; 50
+    mov ax, 00574h                            ; b8 74 05
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 8c c9
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_keyboard_init:                              ; 0xf4ff1 LB 0x26a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 05014h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05014h                          ; 76 08
+    xor al, al                                ; 30 c0
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 04ffdh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 0501dh                          ; 75 05
+    xor ax, ax                                ; 31 c0
+    call 04fdbh                               ; e8 be ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05037h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05037h                          ; 76 08
+    mov AL, strict byte 001h                  ; b0 01
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05020h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05041h                          ; 75 06
+    mov ax, strict word 00001h                ; b8 01 00
+    call 04fdbh                               ; e8 9a ff
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, strict word 00055h                ; 3d 55 00
+    je short 05052h                           ; 74 06
+    mov ax, 003dfh                            ; b8 df 03
+    call 04fdbh                               ; e8 89 ff
+    mov AL, strict byte 0abh                  ; b0 ab
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 05072h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05072h                          ; 76 08
+    mov AL, strict byte 010h                  ; b0 10
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 0505bh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 0507ch                          ; 75 06
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 04fdbh                               ; e8 5f ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05096h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05096h                          ; 76 08
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 0507fh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 050a0h                          ; 75 06
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 04fdbh                               ; e8 3b ff
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test ax, ax                               ; 85 c0
+    je short 050b0h                           ; 74 06
+    mov ax, 003e0h                            ; b8 e0 03
+    call 04fdbh                               ; e8 2b ff
+    mov AL, strict byte 0ffh                  ; b0 ff
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 050d0h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 050d0h                          ; 76 08
+    mov AL, strict byte 020h                  ; b0 20
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 050b9h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 050dah                          ; 75 06
+    mov ax, strict word 00014h                ; b8 14 00
+    call 04fdbh                               ; e8 01 ff
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 050f4h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 050f4h                          ; 76 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 050ddh                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 050feh                          ; 75 06
+    mov ax, strict word 00015h                ; b8 15 00
+    call 04fdbh                               ; e8 dd fe
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 0510fh                           ; 74 06
+    mov ax, 003e1h                            ; b8 e1 03
+    call 04fdbh                               ; e8 cc fe
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05121h                          ; 75 08
+    mov AL, strict byte 031h                  ; b0 31
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 0510fh                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000aah                            ; 3d aa 00
+    je short 0513ah                           ; 74 0e
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000aah                            ; 3d aa 00
+    je short 0513ah                           ; 74 06
+    mov ax, 003e2h                            ; b8 e2 03
+    call 04fdbh                               ; e8 a1 fe
+    mov AL, strict byte 0f5h                  ; b0 f5
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 0515ah                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0515ah                          ; 76 08
+    mov AL, strict byte 040h                  ; b0 40
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05143h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05164h                          ; 75 06
+    mov ax, strict word 00028h                ; b8 28 00
+    call 04fdbh                               ; e8 77 fe
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0517eh                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0517eh                          ; 76 08
+    mov AL, strict byte 041h                  ; b0 41
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05167h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05188h                          ; 75 06
+    mov ax, strict word 00029h                ; b8 29 00
+    call 04fdbh                               ; e8 53 fe
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 05199h                           ; 74 06
+    mov ax, 003e3h                            ; b8 e3 03
+    call 04fdbh                               ; e8 42 fe
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 051b9h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 051b9h                          ; 76 08
+    mov AL, strict byte 050h                  ; b0 50
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 051a2h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 051c3h                          ; 75 06
+    mov ax, strict word 00032h                ; b8 32 00
+    call 04fdbh                               ; e8 18 fe
+    mov AL, strict byte 065h                  ; b0 65
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 051e3h                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 051e3h                          ; 76 08
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 051cch                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 051edh                          ; 75 06
+    mov ax, strict word 0003ch                ; b8 3c 00
+    call 04fdbh                               ; e8 ee fd
+    mov AL, strict byte 0f4h                  ; b0 f4
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 0520dh                           ; 74 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 0520dh                          ; 76 08
+    mov AL, strict byte 070h                  ; b0 70
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 051f6h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 05217h                          ; 75 06
+    mov ax, strict word 00046h                ; b8 46 00
+    call 04fdbh                               ; e8 c4 fd
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05231h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05231h                          ; 76 08
+    mov AL, strict byte 071h                  ; b0 71
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 0521ah                          ; eb e9
+    test bx, bx                               ; 85 db
+    jne short 0523bh                          ; 75 06
+    mov ax, strict word 00046h                ; b8 46 00
+    call 04fdbh                               ; e8 a0 fd
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    je short 0524ch                           ; 74 06
+    mov ax, 003e4h                            ; b8 e4 03
+    call 04fdbh                               ; e8 8f fd
+    mov AL, strict byte 0a8h                  ; b0 a8
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    xor ax, ax                                ; 31 c0
+    call 06713h                               ; e8 bc 14
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+enqueue_key_:                                ; 0xf525b LB 0x9e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov bl, dl                                ; 88 d3
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 fd c3
+    mov di, ax                                ; 89 c7
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 f2 c3
+    mov si, ax                                ; 89 c6
+    lea cx, [si+002h]                         ; 8d 4c 02
+    cmp cx, strict byte 0003eh                ; 83 f9 3e
+    jc short 05289h                           ; 72 03
+    mov cx, strict word 0001eh                ; b9 1e 00
+    cmp cx, di                                ; 39 f9
+    jne short 05291h                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 052bbh                          ; eb 2a
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, si                                ; 89 f2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 c1 c3
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
+    xor bh, bh                                ; 30 ff
+    lea dx, [si+001h]                         ; 8d 54 01
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 b3 c3
+    mov bx, cx                                ; 89 cb
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 c4 c3
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    aam 0c6h                                  ; d4 c6
+    lds di, [bp+si-04948h]                    ; c5 ba b8 b6
+    stosb                                     ; aa
+    popfw                                     ; 9d
+    push sp                                   ; 54
+    push bx                                   ; 53
+    inc si                                    ; 46
+    inc bp                                    ; 45
+    cmp bh, byte [bx+si]                      ; 3a 38
+    sub bl, byte [ss:di]                      ; 36 2a 1d
+    aas                                       ; 3f
+    push si                                   ; 56
+    cli                                       ; fa
+    push bx                                   ; 53
+    call far 08953h:09a53h                    ; 9a 53 9a 53 89
+    push sp                                   ; 54
+    imul dx, word [bp+di+00dh], strict byte 00055h ; 6b 53 0d 55
+    jle short 0533ah                          ; 7e 55
+    and ax, 00356h                            ; 25 56 03
+    push si                                   ; 56
+    inc cx                                    ; 41
+    push sp                                   ; 54
+    call far 0cb53h:09a53h                    ; 9a 53 9a 53 cb
+    push sp                                   ; 54
+    mov dx, word [bp+di+05eh]                 ; 8b 53 5e
+    push bp                                   ; 55
+    jcxz 0534ch                               ; e3 55
+    push DS                                   ; 1e
+    push si                                   ; 56
+_int09_function:                             ; 0xf52f9 LB 0x4cd
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 00010h                ; 83 ec 10
+    mov al, byte [bp+014h]                    ; 8a 46 14
+    mov byte [bp-004h], al                    ; 88 46 fc
+    test al, al                               ; 84 c0
+    jne short 05326h                          ; 75 1c
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 1e c6
+    mov ax, 00587h                            ; b8 87 05
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 56 c6
+    add sp, strict byte 00004h                ; 83 c4 04
+    jmp near 053f4h                           ; e9 ce 00
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 23 c3
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 14 c3
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 05 c3
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00012h                ; b9 12 00
+    mov di, 052c4h                            ; bf c4 52
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+052d5h]               ; 2e 8b 85 d5 52
+    jmp ax                                    ; ff e0
+    xor byte [bp-00eh], 040h                  ; 80 76 f2 40
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 e3 c2
+    or byte [bp-008h], 040h                   ; 80 4e f8 40
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    jmp near 05613h                           ; e9 88 02
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0bfh                  ; 24 bf
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    jmp near 05613h                           ; e9 79 02
+    test byte [bp-010h], 002h                 ; f6 46 f0 02
+    jne short 053d3h                          ; 75 33
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 07fh                  ; 24 7f
+    cmp AL, strict byte 02ah                  ; 3c 2a
+    jne short 053aeh                          ; 75 05
+    mov bx, strict word 00002h                ; bb 02 00
+    jmp short 053b1h                          ; eb 03
+    mov bx, strict word 00001h                ; bb 01 00
+    test byte [bp-004h], 080h                 ; f6 46 fc 80
+    je short 053c0h                           ; 74 09
+    mov al, bl                                ; 88 d8
+    not al                                    ; f6 d0
+    and byte [bp-00eh], al                    ; 20 46 f2
+    jmp short 053c3h                          ; eb 03
+    or byte [bp-00eh], bl                     ; 08 5e f2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 8d c2
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 07fh                  ; 24 7f
+    cmp AL, strict byte 01dh                  ; 3c 1d
+    je short 053e0h                           ; 74 04
+    and byte [bp-010h], 0feh                  ; 80 66 f0 fe
+    and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 6c c2
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    jne short 053d3h                          ; 75 d3
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 4b c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    test AL, strict byte 002h                 ; a8 02
+    je short 0542ah                           ; 74 0e
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-010h], al                    ; 88 46 f0
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 05439h                          ; eb 0f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 001h                   ; 0c 01
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 21 c2
+    jmp short 053d3h                          ; eb 92
+    test byte [bp-00ah], 001h                 ; f6 46 f6 01
+    jne short 053d3h                          ; 75 8c
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    and AL, strict byte 0fbh                  ; 24 fb
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 04 c2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    test AL, strict byte 002h                 ; a8 02
+    je short 05471h                           ; 74 0e
+    and AL, strict byte 0fbh                  ; 24 fb
+    mov byte [bp-010h], al                    ; 88 46 f0
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 05480h                          ; eb 0f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0feh                  ; 24 fe
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 da c1
+    jmp near 053d3h                           ; e9 4a ff
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 c2 c1
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    test AL, strict byte 002h                 ; a8 02
+    je short 054b3h                           ; 74 0e
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-010h], al                    ; 88 46 f0
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 054c2h                          ; eb 0f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 002h                   ; 0c 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 98 c1
+    jmp near 053d3h                           ; e9 08 ff
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    and AL, strict byte 0f7h                  ; 24 f7
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 80 c1
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    test AL, strict byte 002h                 ; a8 02
+    je short 054f5h                           ; 74 0e
+    and AL, strict byte 0f7h                  ; 24 f7
+    mov byte [bp-010h], al                    ; 88 46 f0
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00096h                            ; ba 96 00
+    jmp short 05504h                          ; eb 0f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0fdh                  ; 24 fd
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 56 c1
+    jmp near 053d3h                           ; e9 c6 fe
+    test byte [bp-00ah], 003h                 ; f6 46 f6 03
+    jne short 05530h                          ; 75 1d
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 020h                   ; 0c 20
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 38 c1
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor AL, strict byte 020h                  ; 34 20
+    jmp near 055d1h                           ; e9 a1 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 008h                   ; 0c 08
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 1b c1
+    mov AL, strict byte 0aeh                  ; b0 ae
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    call 0e034h                               ; e8 e6 8a
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 fb c0
+    test AL, strict byte 008h                 ; a8 08
+    jne short 0554eh                          ; 75 f3
+    jmp near 053d3h                           ; e9 75 fe
+    test byte [bp-00ah], 003h                 ; f6 46 f6 03
+    je short 05567h                           ; 74 03
+    jmp near 053d3h                           ; e9 6c fe
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0dfh                  ; 24 df
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 e4 c0
+    jmp short 05564h                          ; eb e6
+    test byte [bp-00ah], 002h                 ; f6 46 f6 02
+    je short 055b7h                           ; 74 33
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 e1 c0
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 e4 c0
+    mov bx, 00080h                            ; bb 80 00
+    mov dx, strict word 00071h                ; ba 71 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 bc c0
+    mov AL, strict byte 0aeh                  ; b0 ae
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    push bp                                   ; 55
+    int 01bh                                  ; cd 1b
+    pop bp                                    ; 5d
+    xor dx, dx                                ; 31 d2
+    xor ax, ax                                ; 31 c0
+    call 0525bh                               ; e8 a6 fc
+    jmp short 05564h                          ; eb ad
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    or AL, strict byte 010h                   ; 0c 10
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 94 c0
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor AL, strict byte 010h                  ; 34 10
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 7f c0
+    jmp short 05564h                          ; eb 81
+    test byte [bp-00ah], 002h                 ; f6 46 f6 02
+    je short 055ech                           ; 74 03
+    jmp near 053d3h                           ; e9 e7 fd
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0efh                  ; 24 ef
+    mov byte [bp-008h], al                    ; 88 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 5f c0
+    jmp short 055e9h                          ; eb e6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    test AL, strict byte 004h                 ; a8 04
+    jne short 055e9h                          ; 75 df
+    or AL, strict byte 004h                   ; 0c 04
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 44 c0
+    jmp short 055e9h                          ; eb cb
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 0fbh                  ; 24 fb
+    jmp short 0560ch                          ; eb e7
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    and AL, strict byte 00ch                  ; 24 0c
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jne short 0563fh                          ; 75 11
+    mov bx, 01234h                            ; bb 34 12
+    mov dx, strict word 00072h                ; ba 72 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 42 c0
+    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
+    test byte [bp-008h], 008h                 ; f6 46 f8 08
+    je short 05656h                           ; 74 11
+    and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 00018h                ; ba 18 00
+    jmp near 053eeh                           ; e9 98 fd
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test AL, strict byte 080h                 ; a8 80
+    je short 05694h                           ; 74 37
+    cmp AL, strict byte 0fah                  ; 3c fa
+    jne short 05673h                          ; 75 12
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 e8 bf
+    mov bl, al                                ; 88 c3
+    or bl, 010h                               ; 80 cb 10
+    xor bh, bh                                ; 30 ff
+    jmp short 05689h                          ; eb 16
+    cmp AL, strict byte 0feh                  ; 3c fe
+    je short 0567ah                           ; 74 03
+    jmp near 053d3h                           ; e9 59 fd
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 cf bf
+    or AL, strict byte 020h                   ; 0c 20
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 ce bf
+    jmp short 05677h                          ; eb e3
+    cmp byte [bp-004h], 058h                  ; 80 7e fc 58
+    jbe short 056bch                          ; 76 22
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 8e c2
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 005a1h                            ; b8 a1 05
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c0 c2
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 053f4h                           ; e9 38 fd
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test AL, strict byte 008h                 ; a8 08
+    je short 056ddh                           ; 74 1a
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 0000ah                ; bb 0a 00
+    imul bx                                   ; f7 eb
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
+    jmp near 0578fh                           ; e9 b2 00
+    test AL, strict byte 004h                 ; a8 04
+    je short 056fbh                           ; 74 1a
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0000ah                ; ba 0a 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
+    jmp near 0578fh                           ; e9 94 00
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 002h                  ; 24 02
+    test al, al                               ; 84 c0
+    jbe short 0571eh                          ; 76 1a
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    cmp AL, strict byte 047h                  ; 3c 47
+    jc short 0571eh                           ; 72 13
+    cmp AL, strict byte 053h                  ; 3c 53
+    jnbe short 0571eh                         ; 77 0f
+    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0000ah                ; ba 0a 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    jmp short 0578bh                          ; eb 6d
+    test byte [bp-00eh], 003h                 ; f6 46 f2 03
+    je short 0575ch                           ; 74 38
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0000ah                ; ba 0a 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test ax, dx                               ; 85 d0
+    je short 0574ch                           ; 74 0d
+    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
+    jmp short 05757h                          ; eb 0b
+    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
+    mov byte [bp-004h], al                    ; 88 46 fc
+    jmp short 05792h                          ; eb 36
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 0000ah                ; bb 0a 00
+    imul bx                                   ; f7 eb
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    test ax, dx                               ; 85 d0
+    je short 05784h                           ; 74 0d
+    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
+    jmp short 0578fh                          ; eb 0b
+    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
+    mov byte [bp-004h], al                    ; 88 46 fc
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jne short 057b7h                          ; 75 1f
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    jne short 057b7h                          ; 75 19
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 8a c1
+    mov ax, 005d8h                            ; b8 d8 05
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c2 c1
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov dx, bx                                ; 89 da
+    jmp near 055b2h                           ; e9 ec fd
+dequeue_key_:                                ; 0xf57c6 LB 0x94
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov di, ax                                ; 89 c7
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov si, bx                                ; 89 de
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 8e be
+    mov bx, ax                                ; 89 c3
+    mov dx, strict word 0001ch                ; ba 1c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 83 be
+    cmp bx, ax                                ; 39 c3
+    je short 0582ch                           ; 74 3d
+    mov dx, bx                                ; 89 da
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 5b be
+    mov cl, al                                ; 88 c1
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 50 be
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov byte [es:si], cl                      ; 26 88 0c
+    mov es, [bp-006h]                         ; 8e 46 fa
+    mov byte [es:di], al                      ; 26 88 05
+    cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
+    je short 05827h                           ; 74 13
+    inc bx                                    ; 43
+    inc bx                                    ; 43
+    cmp bx, strict byte 0003eh                ; 83 fb 3e
+    jc short 0581eh                           ; 72 03
+    mov bx, strict word 0001eh                ; bb 1e 00
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 55 be
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0582eh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00002h                               ; c2 02 00
+    mov byte [01292h], AL                     ; a2 92 12
+    adc word [bx+si], dx                      ; 11 10
+    or cl, byte [bx+di]                       ; 0a 09
+    add ax, 00102h                            ; 05 02 01
+    add byte [bx+si+059h], ah                 ; 00 60 59
+    sbb bx, word [bx+di-050h]                 ; 1b 59 b0
+    pop cx                                    ; 59
+    hlt                                       ; f4
+    pop cx                                    ; 59
+    pop ES                                    ; 07
+    pop dx                                    ; 5a
+    db  02eh, 05ah
+    ; cs pop dx                                 ; 2e 5a
+    cmp byte [bp+si-059h], bl                 ; 38 5a a7
+    pop dx                                    ; 5a
+    ficomp word [bp+si+00eh]                  ; de 5a 0e
+    pop bx                                    ; 5b
+    inc bp                                    ; 45
+    pop bx                                    ; 5b
+    stosb                                     ; aa
+    pop cx                                    ; 59
+_int16_function:                             ; 0xf585a LB 0x2f6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 e8 bd
+    mov cl, al                                ; 88 c1
+    mov bh, al                                ; 88 c7
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 db bd
+    mov bl, al                                ; 88 c3
+    mov dl, cl                                ; 88 ca
+    xor dh, dh                                ; 30 f6
+    mov CL, strict byte 004h                  ; b1 04
+    sar dx, CL                                ; d3 fa
+    and dl, 007h                              ; 80 e2 07
+    and AL, strict byte 007h                  ; 24 07
+    xor ah, ah                                ; 30 e4
+    xor al, dl                                ; 30 d0
+    test ax, ax                               ; 85 c0
+    je short 058fah                           ; 74 6c
+    cli                                       ; fa
+    mov AL, strict byte 0edh                  ; b0 ed
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 058a7h                          ; 75 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 05895h                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    jne short 058f9h                          ; 75 47
+    and bl, 0c8h                              ; 80 e3 c8
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 004h                  ; b1 04
+    sar ax, CL                                ; d3 f8
+    mov cx, ax                                ; 89 c1
+    xor ch, ah                                ; 30 e5
+    and cl, 007h                              ; 80 e1 07
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    or dx, cx                                 ; 09 ca
+    mov bl, dl                                ; 88 d3
+    mov al, dl                                ; 88 d0
+    and AL, strict byte 007h                  ; 24 07
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 058e8h                          ; 75 08
+    mov AL, strict byte 021h                  ; b0 21
+    mov dx, 00080h                            ; ba 80 00
+    out DX, AL                                ; ee
+    jmp short 058d6h                          ; eb ee
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor bh, bh                                ; 30 ff
+    mov dx, 00097h                            ; ba 97 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 67 bd
+    sti                                       ; fb
+    mov CL, strict byte 008h                  ; b1 08
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, CL                                ; d3 e8
+    cmp ax, 000a2h                            ; 3d a2 00
+    jnbe short 05960h                         ; 77 5a
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 0000ch                ; b9 0c 00
+    mov di, 05837h                            ; bf 37 58
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di+05842h]               ; 2e 8b 85 42 58
+    jmp ax                                    ; ff e0
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-006h]                         ; 8d 5e fa
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 057c6h                               ; e8 9a fe
+    test ax, ax                               ; 85 c0
+    jne short 0593eh                          ; 75 0e
+    mov ax, 0060fh                            ; b8 0f 06
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 3b c0
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 0594ah                           ; 74 06
+    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
+    je short 05950h                           ; 74 06
+    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
+    jne short 05954h                          ; 75 04
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    mov ah, byte [bp-008h]                    ; 8a 66 f8
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 059aah                           ; e9 4a 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 c8 bf
+    mov CL, strict byte 008h                  ; b1 08
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    shr ax, CL                                ; d3 e8
+    push ax                                   ; 50
+    mov ax, 00633h                            ; b8 33 06
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 f8 bf
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 a7 bf
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    push ax                                   ; 50
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    push ax                                   ; 50
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    push ax                                   ; 50
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    push ax                                   ; 50
+    mov ax, 0065bh                            ; b8 5b 06
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 cf bf
+    add sp, strict byte 0000ch                ; 83 c4 0c
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-006h]                         ; 8d 5e fa
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 057c6h                               ; e8 01 fe
+    test ax, ax                               ; 85 c0
+    jne short 059cfh                          ; 75 06
+    or word [bp+01ch], strict byte 00040h     ; 83 4e 1c 40
+    jmp short 059aah                          ; eb db
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    je short 059dbh                           ; 74 06
+    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
+    je short 059e1h                           ; 74 06
+    cmp byte [bp-006h], 0e0h                  ; 80 7e fa e0
+    jne short 059e5h                          ; 75 04
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    mov dh, byte [bp-008h]                    ; 8a 76 f8
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    mov word [bp+012h], dx                    ; 89 56 12
+    and word [bp+01ch], strict byte 0ffbfh    ; 83 66 1c bf
+    jmp short 059aah                          ; eb b6
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 55 bc
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp short 059aah                          ; eb a3
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov CL, strict byte 008h                  ; b1 08
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    shr ax, CL                                ; d3 e8
+    xor ah, ah                                ; 30 e4
+    call 0525bh                               ; e8 43 f8
+    test ax, ax                               ; 85 c0
+    jne short 05a26h                          ; 75 0a
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 001h                   ; 0c 01
+    jmp near 0595ah                           ; e9 34 ff
+    and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
+    jmp near 059aah                           ; e9 7c ff
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor al, al                                ; 30 c0
+    or AL, strict byte 030h                   ; 0c 30
+    jmp near 0595ah                           ; e9 22 ff
+    mov byte [bp-004h], 002h                  ; c6 46 fc 02
+    xor cx, cx                                ; 31 c9
+    cli                                       ; fa
+    mov AL, strict byte 0f2h                  ; b0 f2
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05a5fh                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05a5fh                          ; 76 08
+    mov dx, 00080h                            ; ba 80 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 05a48h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jbe short 05aa1h                          ; 76 3e
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp ax, 000fah                            ; 3d fa 00
+    jne short 05aa1h                          ; 75 33
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 05a88h                          ; 75 0d
+    dec bx                                    ; 4b
+    test bx, bx                               ; 85 db
+    jbe short 05a88h                          ; 76 08
+    mov dx, 00080h                            ; ba 80 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 05a71h                          ; eb e9
+    test bx, bx                               ; 85 db
+    jbe short 05a98h                          ; 76 0c
+    mov bl, ch                                ; 88 eb
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ch, al                                ; 88 c5
+    mov cl, bl                                ; 88 d9
+    dec byte [bp-004h]                        ; fe 4e fc
+    cmp byte [bp-004h], 000h                  ; 80 7e fc 00
+    jnbe short 05a6eh                         ; 77 cd
+    mov word [bp+00ch], cx                    ; 89 4e 0c
+    jmp near 059aah                           ; e9 03 ff
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-006h]                         ; 8d 5e fa
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 057c6h                               ; e8 0e fd
+    test ax, ax                               ; 85 c0
+    jne short 05acah                          ; 75 0e
+    mov ax, 0060fh                            ; b8 0f 06
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 af be
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 05ad3h                          ; 75 03
+    jmp near 05954h                           ; e9 81 fe
+    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
+    jne short 05adch                          ; 75 03
+    jmp near 05950h                           ; e9 74 fe
+    jmp short 05ad0h                          ; eb f2
+    or word [bp+01ch], 00200h                 ; 81 4e 1c 00 02
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-006h]                         ; 8d 5e fa
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 057c6h                               ; e8 d3 fc
+    test ax, ax                               ; 85 c0
+    jne short 05afah                          ; 75 03
+    jmp near 059c9h                           ; e9 cf fe
+    cmp byte [bp-008h], 000h                  ; 80 7e f8 00
+    jne short 05b03h                          ; 75 03
+    jmp near 059e5h                           ; e9 e2 fe
+    cmp byte [bp-006h], 0f0h                  ; 80 7e fa f0
+    jne short 05b0ch                          ; 75 03
+    jmp near 059e1h                           ; e9 d5 fe
+    jmp short 05b00h                          ; eb f2
+    mov dx, strict word 00017h                ; ba 17 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 3b bb
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    mov dx, strict word 00018h                ; ba 18 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 2a bb
+    mov bh, al                                ; 88 c7
+    and bh, 073h                              ; 80 e7 73
+    mov dx, 00096h                            ; ba 96 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 1c bb
+    mov ah, al                                ; 88 c4
+    and ah, 00ch                              ; 80 e4 0c
+    or ah, bh                                 ; 08 fc
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dh, ah                                ; 88 e6
+    jmp near 05a02h                           ; e9 bd fe
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 080h                               ; 80 cc 80
+    jmp near 0595ah                           ; e9 0a fe
+set_geom_lba_:                               ; 0xf5b50 LB 0xeb
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov di, ax                                ; 89 c7
+    mov es, dx                                ; 8e c2
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov word [bp-006h], strict word 0007eh    ; c7 46 fa 7e 00
+    mov word [bp-002h], 000ffh                ; c7 46 fe ff 00
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov cx, word [bp+00eh]                    ; 8b 4e 0e
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov si, strict word 00020h                ; be 20 00
+    call 0a26ah                               ; e8 eb 46
+    test ax, ax                               ; 85 c0
+    jne short 05b8fh                          ; 75 0c
+    test bx, bx                               ; 85 db
+    jne short 05b8fh                          ; 75 08
+    test cx, cx                               ; 85 c9
+    jne short 05b8fh                          ; 75 04
+    test dx, dx                               ; 85 d2
+    je short 05b96h                           ; 74 07
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov si, bx                                ; 89 de
+    jmp short 05b9ch                          ; eb 06
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov si, word [bp+00eh]                    ; 8b 76 0e
+    mov word [bp-004h], bx                    ; 89 5e fc
+    xor bx, bx                                ; 31 db
+    jmp short 05ba8h                          ; eb 05
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jnl short 05bcbh                          ; 7d 23
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    cmp si, ax                                ; 39 c6
+    jc short 05bb9h                           ; 72 0a
+    jne short 05bc2h                          ; 75 11
+    mov ax, word [bp-004h]                    ; 8b 46 fc
+    cmp ax, word [bp-008h]                    ; 3b 46 f8
+    jnbe short 05bc2h                         ; 77 09
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    inc ax                                    ; 40
+    shr ax, 1                                 ; d1 e8
+    mov word [bp-002h], ax                    ; 89 46 fe
+    shr word [bp-006h], 1                     ; d1 6e fa
+    rcr word [bp-008h], 1                     ; d1 5e f8
+    inc bx                                    ; 43
+    jmp short 05ba3h                          ; eb d8
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    xor dx, dx                                ; 31 d2
+    mov bx, strict word 0003fh                ; bb 3f 00
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 51 46
+    mov bx, ax                                ; 89 c3
+    mov cx, dx                                ; 89 d1
+    mov ax, word [bp-004h]                    ; 8b 46 fc
+    mov dx, si                                ; 89 f2
+    call 0a1f0h                               ; e8 0c 46
+    mov word [es:di+002h], ax                 ; 26 89 45 02
+    cmp ax, 00400h                            ; 3d 00 04
+    jbe short 05bf3h                          ; 76 06
+    mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
+    mov ax, word [bp-002h]                    ; 8b 46 fe
+    mov word [es:di], ax                      ; 26 89 05
+    mov word [es:di+004h], strict word 0003fh ; 26 c7 45 04 3f 00
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn 00008h                               ; c2 08 00
+    retn                                      ; c3
+    pop sp                                    ; 5c
+    aam 05ch                                  ; d4 5c
+    cld                                       ; fc
+    pop sp                                    ; 5c
+    cld                                       ; fc
+    pop sp                                    ; 5c
+    cld                                       ; fc
+    pop sp                                    ; 5c
+    jmp far 02660h:0265eh                     ; ea 5e 26 60 26
+    pushaw                                    ; 60
+    sbb bl, byte [byte bx+000h]               ; 1a 5f 00
+    pushaw                                    ; 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    add byte [byte bx+si+000h], ah            ; 00 60 00
+    pushaw                                    ; 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    sbb byte [byte bx+000h], 060h             ; 80 5f 00 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    add byte [bx+si-04fh], ah                 ; 00 60 b1
+    pop di                                    ; 5f
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+    db  026h, 060h
+    ; es pushaw                                 ; 26 60
+_int13_harddisk:                             ; 0xf5c3b LB 0x446
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00010h                ; 83 ec 10
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 24 ba
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-004h], ax                    ; 89 46 fc
+    xor bx, bx                                ; 31 db
+    mov dx, 0008eh                            ; ba 8e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 05 ba
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    cmp ax, 00080h                            ; 3d 80 00
+    jc short 05c6ah                           ; 72 05
+    cmp ax, 00090h                            ; 3d 90 00
+    jc short 05c89h                           ; 72 1f
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 0068dh                            ; b8 8d 06
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 f3 bc
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 06041h                           ; e9 b8 03
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
+    mov byte [bp-002h], dl                    ; 88 56 fe
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 05cb0h                           ; 72 0e
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 006b8h                            ; b8 b8 06
+    jmp short 05c7bh                          ; eb cb
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00018h                ; 3d 18 00
+    jnbe short 05cf9h                         ; 77 3f
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    jmp word [cs:bx+05c09h]                   ; 2e ff a7 09 5c
+    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
+    jnc short 05cd1h                          ; 73 08
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    call 01db8h                               ; e8 e7 c0
+    jmp near 05f03h                           ; e9 2f 02
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 75 b9
+    mov cl, al                                ; 88 c1
+    mov dx, word [bp+016h]                    ; 8b 56 16
+    mov dh, al                                ; 88 c6
+    mov word [bp+016h], dx                    ; 89 56 16
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 6e b9
+    test cl, cl                               ; 84 c9
+    je short 05d58h                           ; 74 62
+    jmp near 0605ah                           ; e9 61 03
+    jmp near 06026h                           ; e9 2a 03
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov al, byte [bp+015h]                    ; 8a 46 15
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    xor dh, dh                                ; 30 f6
+    sal dx, 1                                 ; d1 e2
+    sal dx, 1                                 ; d1 e2
+    and dh, 003h                              ; 80 e6 03
+    mov ah, dh                                ; 88 f4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov di, word [bp+014h]                    ; 8b 7e 14
+    and di, strict byte 0003fh                ; 83 e7 3f
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    xor ah, dh                                ; 30 f4
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    cmp ax, 00080h                            ; 3d 80 00
+    jnbe short 05d32h                         ; 77 04
+    test ax, ax                               ; 85 c0
+    jne short 05d5bh                          ; 75 29
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 f6 bb
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 006eah                            ; b8 ea 06
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 24 bc
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 06041h                           ; e9 e9 02
+    jmp near 05f07h                           ; e9 ac 01
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+02ch]                 ; 26 8b 47 2c
+    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
+    mov dx, word [es:bx+02eh]                 ; 26 8b 57 2e
+    mov word [bp-010h], dx                    ; 89 56 f0
+    cmp ax, word [bp-00ah]                    ; 3b 46 f6
+    jbe short 05d89h                          ; 76 09
+    cmp cx, word [bp-00ch]                    ; 3b 4e f4
+    jbe short 05d89h                          ; 76 04
+    cmp di, dx                                ; 39 d7
+    jbe short 05dbah                          ; 76 31
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 9f bb
+    push di                                   ; 57
+    push word [bp-00ch]                       ; ff 76 f4
+    push word [bp-00ah]                       ; ff 76 f6
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 00712h                            ; b8 12 07
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c2 bb
+    add sp, strict byte 00010h                ; 83 c4 10
+    jmp near 06041h                           ; e9 87 02
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00004h                ; 3d 04 00
+    je short 05de4h                           ; 74 20
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
+    jne short 05dedh                          ; 75 14
+    mov ax, word [es:bx+034h]                 ; 26 8b 47 34
+    cmp ax, word [bp-010h]                    ; 3b 46 f0
+    je short 05de7h                           ; 74 05
+    jmp short 05dedh                          ; eb 09
+    jmp near 05f03h                           ; e9 1c 01
+    cmp byte [bp-002h], 008h                  ; 80 7e fe 08
+    jc short 05e1ch                           ; 72 2f
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    xor dx, dx                                ; 31 d2
+    mov bx, cx                                ; 89 cb
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 30 44
+    xor bx, bx                                ; 31 db
+    add ax, word [bp-00ch]                    ; 03 46 f4
+    adc dx, bx                                ; 11 da
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 21 44
+    xor bx, bx                                ; 31 db
+    add ax, di                                ; 01 f8
+    adc dx, bx                                ; 11 da
+    add ax, strict word 0ffffh                ; 05 ff ff
+    mov word [bp-008h], ax                    ; 89 46 f8
+    adc dx, strict byte 0ffffh                ; 83 d2 ff
+    mov word [bp-006h], dx                    ; 89 56 fa
+    xor di, di                                ; 31 ff
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00
+    mov word [es:si+01ah], strict word 00000h ; 26 c7 44 1a 00 00
+    mov word [es:si+01ch], strict word 00000h ; 26 c7 44 1c 00 00
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mov word [es:si], ax                      ; 26 89 04
+    mov ax, word [bp-006h]                    ; 8b 46 fa
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov dx, word [bp+010h]                    ; 8b 56 10
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov word [es:si+008h], dx                 ; 26 89 54 08
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    mov word [es:si+010h], 00200h             ; 26 c7 44 10 00 02
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mov word [es:si+012h], ax                 ; 26 89 44 12
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov word [es:si+014h], ax                 ; 26 89 44 14
+    mov word [es:si+016h], di                 ; 26 89 7c 16
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov byte [es:si+00ch], al                 ; 26 88 44 0c
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    sal bx, 1                                 ; d1 e3
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    sal ax, 1                                 ; d1 e0
+    add bx, ax                                ; 01 c3
+    push ES                                   ; 06
+    push si                                   ; 56
+    call word [word bx+0007eh]                ; ff 97 7e 00
+    mov dx, ax                                ; 89 c2
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor al, al                                ; 30 c0
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, word [es:si+018h]                 ; 26 8b 5c 18
+    or bx, ax                                 ; 09 c3
+    mov word [bp+016h], bx                    ; 89 5e 16
+    test dl, dl                               ; 84 d2
+    je short 05f03h                           ; 74 4a
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 6f ba
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 00759h                            ; b8 59 07
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 9a ba
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 06049h                           ; e9 5f 01
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 3e ba
+    mov ax, 0077ah                            ; b8 7a 07
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 76 ba
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 4e b7
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-004h]                         ; 8e 46 fc
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov di, word [es:bx+02ch]                 ; 26 8b 7f 2c
+    mov cx, word [es:bx+02ah]                 ; 26 8b 4f 2a
+    mov ax, word [es:bx+02eh]                 ; 26 8b 47 2e
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov dl, byte [es:si+001e2h]               ; 26 8a 94 e2 01
+    xor dh, dh                                ; 30 f6
+    mov byte [bp+016h], dh                    ; 88 76 16
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    dec di                                    ; 4f
+    mov ax, di                                ; 89 f8
+    mov bh, al                                ; 88 c7
+    mov word [bp+014h], bx                    ; 89 5e 14
+    shr di, 1                                 ; d1 ef
+    shr di, 1                                 ; d1 ef
+    and di, 000c0h                            ; 81 e7 c0 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    and ax, strict word 0003fh                ; 25 3f 00
+    or ax, di                                 ; 09 f8
+    xor bl, bl                                ; 30 db
+    or bx, ax                                 ; 09 c3
+    mov word [bp+014h], bx                    ; 89 5e 14
+    mov bx, word [bp+012h]                    ; 8b 5e 12
+    xor bh, bh                                ; 30 ff
+    mov ah, cl                                ; 88 cc
+    xor al, al                                ; 30 c0
+    sub ax, 00100h                            ; 2d 00 01
+    or bx, ax                                 ; 09 c3
+    mov word [bp+012h], bx                    ; 89 5e 12
+    mov ax, bx                                ; 89 d8
+    xor al, bl                                ; 30 d8
+    or ax, dx                                 ; 09 d0
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp short 05f03h                          ; eb 83
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add si, ax                                ; 01 c6
+    mov dx, word [es:si+00206h]               ; 26 8b 94 06 02
+    add dx, strict byte 00007h                ; 83 c2 07
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 040h                  ; 3c 40
+    jne short 05fa6h                          ; 75 03
+    jmp near 05f03h                           ; e9 5d ff
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 0aah                               ; 80 cc aa
+    jmp near 06049h                           ; e9 98 00
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-004h]                         ; 8e 46 fc
+    add si, ax                                ; 01 c6
+    mov ax, word [es:si+032h]                 ; 26 8b 44 32
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov ax, word [es:si+030h]                 ; 26 8b 44 30
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov di, word [es:si+034h]                 ; 26 8b 7c 34
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    xor dx, dx                                ; 31 d2
+    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 4a 42
+    mov bx, di                                ; 89 fb
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 43 42
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-006h], dx                    ; 89 56 fa
+    mov word [bp+014h], dx                    ; 89 56 14
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 003h                               ; 80 cc 03
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp near 05f07h                           ; e9 07 ff
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 28 b9
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 00794h                            ; b8 94 07
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 56 b9
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 05f03h                           ; e9 dd fe
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 02 b9
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0067eh                            ; b8 7e 06
+    push ax                                   ; 50
+    mov ax, 007c7h                            ; b8 c7 07
+    jmp near 05d4ah                           ; e9 09 fd
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bl, byte [bp+017h]                    ; 8a 5e 17
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 06 b6
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp near 05f16h                           ; e9 b5 fe
+    sbb sp, word [bx+di+04eh]                 ; 1b 61 4e
+    popaw                                     ; 61
+    dec si                                    ; 4e
+    popaw                                     ; 61
+    dec si                                    ; 4e
+    popaw                                     ; 61
+    jo short 060d0h                           ; 70 65
+    retn                                      ; c3
+    bound cx, [bp+061h]                       ; 62 4e 61
+    leave                                     ; c9
+    bound si, [bx+si+065h]                    ; 62 70 65
+    xor sp, word [bx+di+033h]                 ; 33 61 33
+    popaw                                     ; 61
+    xor sp, word [bx+di+033h]                 ; 33 61 33
+    popaw                                     ; 61
+    xchg word [di+033h], sp                   ; 87 65 33
+    popaw                                     ; 61
+    db  033h
+    popaw                                     ; 61
+_int13_harddisk_ext:                         ; 0xf6081 LB 0x53b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00028h                ; 83 ec 28
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 de b5
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 d2 b5
+    mov word [bp-008h], 00122h                ; c7 46 f8 22 01
+    mov word [bp-006h], ax                    ; 89 46 fa
+    xor bx, bx                                ; 31 db
+    mov dx, 0008eh                            ; ba 8e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 b1 b5
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    cmp ax, 00080h                            ; 3d 80 00
+    jc short 060beh                           ; 72 05
+    cmp ax, 00090h                            ; 3d 90 00
+    jc short 060ddh                           ; 72 1f
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 007f5h                            ; b8 f5 07
+    push ax                                   ; 50
+    mov ax, 0068dh                            ; b8 8d 06
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 9f b8
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 0659dh                           ; e9 c0 04
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    xor ah, ah                                ; 30 e4
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov dl, byte [es:bx+00163h]               ; 26 8a 97 63 01
+    mov byte [bp-004h], dl                    ; 88 56 fc
+    cmp dl, 010h                              ; 80 fa 10
+    jc short 06102h                           ; 72 0e
+    push ax                                   ; 50
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    push ax                                   ; 50
+    mov ax, 007f5h                            ; b8 f5 07
+    push ax                                   ; 50
+    mov ax, 006b8h                            ; b8 b8 06
+    jmp short 060cfh                          ; eb cd
+    mov bl, byte [bp+017h]                    ; 8a 5e 17
+    xor bh, bh                                ; 30 ff
+    sub bx, strict byte 00041h                ; 83 eb 41
+    cmp bx, strict byte 0000fh                ; 83 fb 0f
+    jnbe short 06133h                         ; 77 24
+    sal bx, 1                                 ; d1 e3
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    jmp word [cs:bx+06061h]                   ; 2e ff a7 61 60
+    mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 030h                               ; 80 cc 30
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
+    jmp near 06574h                           ; e9 41 04
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 f5 b7
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 007f5h                            ; b8 f5 07
+    push ax                                   ; 50
+    mov ax, 007c7h                            ; b8 c7 07
+    jmp near 061ebh                           ; e9 9d 00
+    mov di, word [bp+00ah]                    ; 8b 7e 0a
+    mov es, [bp+004h]                         ; 8e 46 04
+    mov word [bp-022h], di                    ; 89 7e de
+    mov [bp-01eh], es                         ; 8c 46 e2
+    mov ax, word [es:di+002h]                 ; 26 8b 45 02
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov ax, word [es:di+004h]                 ; 26 8b 45 04
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    mov dx, word [es:di+00ch]                 ; 26 8b 55 0c
+    mov cx, word [es:di+00eh]                 ; 26 8b 4d 0e
+    xor ax, ax                                ; 31 c0
+    xor bx, bx                                ; 31 db
+    mov si, strict word 00020h                ; be 20 00
+    call 0a25ah                               ; e8 d9 40
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov word [bp-010h], bx                    ; 89 5e f0
+    mov si, dx                                ; 89 d6
+    mov ax, word [es:di+008h]                 ; 26 8b 45 08
+    mov dx, word [es:di+00ah]                 ; 26 8b 55 0a
+    or si, ax                                 ; 09 c6
+    or cx, dx                                 ; 09 d1
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+022h]                 ; 26 8a 47 22
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
+    jnbe short 061d3h                         ; 77 22
+    jne short 061f9h                          ; 75 46
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
+    jnbe short 061d3h                         ; 77 17
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
+    jne short 061f9h                          ; 75 34
+    cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
+    jnbe short 061d3h                         ; 77 08
+    jne short 061f9h                          ; 75 2c
+    cmp si, word [es:bx+036h]                 ; 26 3b 77 36
+    jc short 061f9h                           ; 72 26
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 55 b7
+    mov al, byte [bp+017h]                    ; 8a 46 17
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 007f5h                            ; b8 f5 07
+    push ax                                   ; 50
+    mov ax, 00808h                            ; b8 08 08
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 83 b7
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 0659dh                           ; e9 a4 03
+    mov ah, byte [bp+017h]                    ; 8a 66 17
+    mov byte [bp-012h], ah                    ; 88 66 ee
+    mov byte [bp-011h], 000h                  ; c6 46 ef 00
+    cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
+    je short 0620fh                           ; 74 06
+    cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
+    jne short 06212h                          ; 75 03
+    jmp near 06570h                           ; e9 5e 03
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
+    mov word [es:bx+01ah], strict word 00000h ; 26 c7 47 1a 00 00
+    mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov word [es:bx+006h], dx                 ; 26 89 57 06
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    mov word [es:bx+004h], dx                 ; 26 89 57 04
+    mov word [es:bx+002h], cx                 ; 26 89 4f 02
+    mov word [es:bx], si                      ; 26 89 37
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov dx, word [bp-01ch]                    ; 8b 56 e4
+    mov word [es:bx+00ah], dx                 ; 26 89 57 0a
+    mov dx, word [bp-016h]                    ; 8b 56 ea
+    mov word [es:bx+00eh], dx                 ; 26 89 57 0e
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov word [es:bx+016h], strict word 00000h ; 26 c7 47 16 00 00
+    mov ah, byte [bp-004h]                    ; 8a 66 fc
+    mov byte [es:bx+00ch], ah                 ; 26 88 67 0c
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    sal bx, 1                                 ; d1 e3
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    add bx, ax                                ; 01 c3
+    push ES                                   ; 06
+    push word [bp-008h]                       ; ff 76 f8
+    call word [word bx-00002h]                ; ff 97 fe ff
+    mov dx, ax                                ; 89 c2
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov ax, word [es:bx+018h]                 ; 26 8b 47 18
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov es, [bp-01eh]                         ; 8e 46 e2
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    test dl, dl                               ; 84 d2
+    je short 062e7h                           ; 74 54
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 95 b6
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    push word [bp-012h]                       ; ff 76 ee
+    mov ax, 007f5h                            ; b8 f5 07
+    push ax                                   ; 50
+    mov ax, 00759h                            ; b8 59 07
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c1 b6
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    jmp near 065a5h                           ; e9 e2 02
+    or ah, 0b2h                               ; 80 cc b2
+    jmp near 065a5h                           ; e9 dc 02
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov di, bx                                ; 89 df
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp-014h], ax                    ; 89 46 ec
+    cmp ax, strict word 0001ah                ; 3d 1a 00
+    jnc short 062eah                          ; 73 06
+    jmp near 0659dh                           ; e9 b6 02
+    jmp near 06570h                           ; e9 86 02
+    jnc short 062efh                          ; 73 03
+    jmp near 06382h                           ; e9 93 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+032h]                 ; 26 8b 47 32
+    mov dx, word [es:bx+030h]                 ; 26 8b 57 30
+    mov word [bp-028h], dx                    ; 89 56 d8
+    mov dx, word [es:bx+034h]                 ; 26 8b 57 34
+    mov word [bp-026h], dx                    ; 89 56 da
+    mov dx, word [es:bx+03ch]                 ; 26 8b 57 3c
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov dx, word [es:bx+03ah]                 ; 26 8b 57 3a
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov cx, word [es:bx+038h]                 ; 26 8b 4f 38
+    mov si, word [es:bx+036h]                 ; 26 8b 77 36
+    mov dx, word [es:bx+028h]                 ; 26 8b 57 28
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov bx, di                                ; 89 fb
+    mov word [es:bx], strict word 0001ah      ; 26 c7 07 1a 00
+    mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00
+    mov word [es:bx+004h], ax                 ; 26 89 47 04
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:bx+008h], ax                 ; 26 89 47 08
+    mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov word [es:bx+00ch], ax                 ; 26 89 47 0c
+    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
+    mov word [es:bx+018h], dx                 ; 26 89 57 18
+    mov word [es:bx+010h], si                 ; 26 89 77 10
+    mov word [es:bx+012h], cx                 ; 26 89 4f 12
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov bx, word [bp-010h]                    ; 8b 5e f0
+    mov dx, si                                ; 89 f2
+    mov si, strict word 00020h                ; be 20 00
+    call 0a26ah                               ; e8 f2 3e
+    mov bx, di                                ; 89 fb
+    mov word [es:bx+014h], dx                 ; 26 89 57 14
+    mov word [es:bx+016h], cx                 ; 26 89 4f 16
+    cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
+    jc short 063f9h                           ; 72 71
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:di+01ch], ax                 ; 26 89 45 1c
+    mov word [es:di+01ah], 00356h             ; 26 c7 45 1a 56 03
+    mov cl, byte [bp-004h]                    ; 8a 4e fc
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+00206h]               ; 26 8b 87 06 02
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov al, byte [es:bx+00205h]               ; 26 8a 87 05 02
+    mov byte [bp-002h], al                    ; 88 46 fe
+    mov ax, cx                                ; 89 c8
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    add bx, ax                                ; 01 c3
+    mov ah, byte [es:bx+026h]                 ; 26 8a 67 26
+    mov al, byte [es:bx+027h]                 ; 26 8a 47 27
+    test al, al                               ; 84 c0
+    jne short 063e9h                          ; 75 04
+    xor si, si                                ; 31 f6
+    jmp short 063ech                          ; eb 03
+    mov si, strict word 00008h                ; be 08 00
+    or si, strict byte 00010h                 ; 83 ce 10
+    cmp ah, 001h                              ; 80 fc 01
+    jne short 063fch                          ; 75 08
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 063feh                          ; eb 05
+    jmp near 0649fh                           ; e9 a3 00
+    xor dx, dx                                ; 31 d2
+    or si, dx                                 ; 09 d6
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 06409h                          ; 75 05
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 0640bh                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    or si, dx                                 ; 09 d6
+    cmp AL, strict byte 003h                  ; 3c 03
+    jne short 06416h                          ; 75 05
+    mov ax, strict word 00003h                ; b8 03 00
+    jmp short 06418h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    or si, ax                                 ; 09 c6
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov word [es:bx+00234h], ax               ; 26 89 87 34 02
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:bx+00236h], ax               ; 26 89 87 36 02
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    mov bx, strict word 00002h                ; bb 02 00
+    idiv bx                                   ; f7 fb
+    or dl, 00eh                               ; 80 ca 0e
+    mov CL, strict byte 004h                  ; b1 04
+    sal dx, CL                                ; d3 e2
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    mov byte [es:bx+00238h], dl               ; 26 88 97 38 02
+    mov byte [es:bx+00239h], 0cbh             ; 26 c6 87 39 02 cb
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    mov byte [es:bx+0023ah], al               ; 26 88 87 3a 02
+    mov word [es:bx+0023bh], strict word 00001h ; 26 c7 87 3b 02 01 00
+    mov byte [es:bx+0023dh], 000h             ; 26 c6 87 3d 02 00
+    mov word [es:bx+0023eh], si               ; 26 89 b7 3e 02
+    mov word [es:bx+00240h], strict word 00000h ; 26 c7 87 40 02 00 00
+    mov byte [es:bx+00242h], 011h             ; 26 c6 87 42 02 11
+    xor bl, bl                                ; 30 db
+    xor bh, bh                                ; 30 ff
+    jmp short 0647fh                          ; eb 05
+    cmp bh, 00fh                              ; 80 ff 0f
+    jnc short 06495h                          ; 73 16
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    add dx, 00356h                            ; 81 c2 56 03
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    call 01652h                               ; e8 c3 b1
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 0647ah                          ; eb e5
+    neg bl                                    ; f6 db
+    les si, [bp-008h]                         ; c4 76 f8
+    mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
+    cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
+    jnc short 064a8h                          ; 73 03
+    jmp near 06570h                           ; e9 c8 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00006h                ; ba 06 00
+    imul dx                                   ; f7 ea
+    les bx, [bp-008h]                         ; c4 5e f8
+    add bx, ax                                ; 01 c3
+    mov al, byte [es:bx+00204h]               ; 26 8a 87 04 02
+    mov dx, word [es:bx+00206h]               ; 26 8b 97 06 02
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di], strict word 00042h      ; 26 c7 05 42 00
+    mov word [es:di+01eh], 0beddh             ; 26 c7 45 1e dd be
+    mov word [es:di+020h], strict word 00024h ; 26 c7 45 20 24 00
+    mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
+    test al, al                               ; 84 c0
+    jne short 064f2h                          ; 75 0c
+    mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
+    mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+028h], 05441h             ; 26 c7 45 28 41 54
+    mov word [es:di+02ah], 02041h             ; 26 c7 45 2a 41 20
+    mov word [es:di+02ch], 02020h             ; 26 c7 45 2c 20 20
+    mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
+    test al, al                               ; 84 c0
+    jne short 06527h                          ; 75 16
+    mov word [es:di+030h], dx                 ; 26 89 55 30
+    mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
+    mov word [es:di+034h], strict word 00000h ; 26 c7 45 34 00 00
+    mov word [es:di+036h], strict word 00000h ; 26 c7 45 36 00 00
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 001h                  ; 24 01
+    xor ah, ah                                ; 30 e4
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+038h], ax                 ; 26 89 45 38
+    mov word [es:di+03ah], strict word 00000h ; 26 c7 45 3a 00 00
+    mov word [es:di+03ch], strict word 00000h ; 26 c7 45 3c 00 00
+    mov word [es:di+03eh], strict word 00000h ; 26 c7 45 3e 00 00
+    xor bl, bl                                ; 30 db
+    mov BH, strict byte 01eh                  ; b7 1e
+    jmp short 06552h                          ; eb 05
+    cmp bh, 040h                              ; 80 ff 40
+    jnc short 06567h                          ; 73 15
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov dx, word [bp+00ah]                    ; 8b 56 0a
+    add dx, ax                                ; 01 c2
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    call 01652h                               ; e8 f1 b0
+    add bl, al                                ; 00 c3
+    db  0feh, 0c7h
+    ; inc bh                                    ; fe c7
+    jmp short 0654dh                          ; eb e6
+    neg bl                                    ; f6 db
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+041h], bl                 ; 26 88 5d 41
+    mov byte [bp+017h], 000h                  ; c6 46 17 00
+    xor bx, bx                                ; 31 db
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 e1 b0
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    cmp ax, strict word 00006h                ; 3d 06 00
+    je short 06570h                           ; 74 e4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 0659dh                           ; 72 0c
+    jbe short 06570h                          ; 76 dd
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jc short 0659dh                           ; 72 05
+    cmp ax, strict word 00004h                ; 3d 04 00
+    jbe short 06570h                          ; 76 d3
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov bl, byte [bp+017h]                    ; 8a 5e 17
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00074h                ; ba 74 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 aa b0
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 06583h                          ; eb c7
+_int14_function:                             ; 0xf65bc LB 0x157
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sti                                       ; fb
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    sal dx, 1                                 ; d1 e2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 a2 b0
+    mov si, ax                                ; 89 c6
+    mov bx, ax                                ; 89 c3
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    add dx, strict byte 0007ch                ; 83 c2 7c
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 76 b0
+    mov cl, al                                ; 88 c1
+    cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
+    jnc short 065e8h                          ; 73 04
+    test si, si                               ; 85 f6
+    jnbe short 065ebh                         ; 77 03
+    jmp near 06709h                           ; e9 1e 01
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 065ffh                           ; 72 0d
+    jbe short 0665ah                          ; 76 66
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 06652h                           ; 74 5a
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 06655h                           ; 74 59
+    jmp near 06703h                           ; e9 04 01
+    test al, al                               ; 84 c0
+    jne short 06657h                          ; 75 54
+    lea dx, [bx+003h]                         ; 8d 57 03
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    or AL, strict byte 080h                   ; 0c 80
+    out DX, AL                                ; ee
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    and AL, strict byte 0e0h                  ; 24 e0
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 005h                  ; b1 05
+    sar ax, CL                                ; d3 f8
+    mov cx, ax                                ; 89 c1
+    mov ax, 00600h                            ; b8 00 06
+    sar ax, CL                                ; d3 f8
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    mov al, ah                                ; 88 e0
+    lea dx, [bx+001h]                         ; 8d 57 01
+    out DX, AL                                ; ee
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    and AL, strict byte 01fh                  ; 24 1f
+    lea dx, [bx+003h]                         ; 8d 57 03
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    lea dx, [bx+006h]                         ; 8d 57 06
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+012h], al                    ; 88 46 12
+    jmp near 066e4h                           ; e9 9f 00
+    mov AL, strict byte 017h                  ; b0 17
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov AL, strict byte 004h                  ; b0 04
+    out DX, AL                                ; ee
+    jmp short 06627h                          ; eb d5
+    jmp near 066f2h                           ; e9 9d 00
+    jmp short 066a8h                          ; eb 51
+    jmp near 06703h                           ; e9 a9 00
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 0b b0
+    mov si, ax                                ; 89 c6
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00060h                ; 25 60 00
+    cmp ax, strict word 00060h                ; 3d 60 00
+    je short 0668ah                           ; 74 17
+    test cl, cl                               ; 84 c9
+    je short 0668ah                           ; 74 13
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 ee af
+    cmp ax, si                                ; 39 f0
+    je short 06665h                           ; 74 e1
+    mov si, ax                                ; 89 c6
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    jmp short 06665h                          ; eb db
+    test cl, cl                               ; 84 c9
+    je short 06694h                           ; 74 06
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    test cl, cl                               ; 84 c9
+    jne short 066e4h                          ; 75 43
+    or AL, strict byte 080h                   ; 0c 80
+    mov byte [bp+013h], al                    ; 88 46 13
+    jmp short 066e4h                          ; eb 3c
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 bd af
+    mov si, ax                                ; 89 c6
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 066d4h                          ; 75 17
+    test cl, cl                               ; 84 c9
+    je short 066d4h                           ; 74 13
+    mov dx, strict word 0006ch                ; ba 6c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 a4 af
+    cmp ax, si                                ; 39 f0
+    je short 066b3h                           ; 74 e5
+    mov si, ax                                ; 89 c6
+    db  0feh, 0c9h
+    ; dec cl                                    ; fe c9
+    jmp short 066b3h                          ; eb df
+    test cl, cl                               ; 84 c9
+    je short 066eah                           ; 74 12
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+012h], al                    ; 88 46 12
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp short 0670dh                          ; eb 23
+    lea dx, [bx+005h]                         ; 8d 57 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 066a3h                          ; eb b1
+    lea dx, [si+005h]                         ; 8d 54 05
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp+013h], al                    ; 88 46 13
+    lea dx, [si+006h]                         ; 8d 54 06
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    jmp short 066e1h                          ; eb de
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    jmp short 0670dh                          ; eb 04
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_enable_a20_:                             ; 0xf6713 LB 0x30
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    mov dx, 00092h                            ; ba 92 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov cl, al                                ; 88 c1
+    test bx, bx                               ; 85 db
+    je short 0672ch                           ; 74 05
+    or AL, strict byte 002h                   ; 0c 02
+    out DX, AL                                ; ee
+    jmp short 0672fh                          ; eb 03
+    and AL, strict byte 0fdh                  ; 24 fd
+    out DX, AL                                ; ee
+    test cl, 002h                             ; f6 c1 02
+    je short 06739h                           ; 74 05
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 0673bh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_e820_range_:                             ; 0xf6743 LB 0x8b
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, dx                                ; 89 d6
+    mov es, ax                                ; 8e c0
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], cx                 ; 26 89 4c 02
+    mov al, byte [bp+00ah]                    ; 8a 46 0a
+    xor ah, ah                                ; 30 e4
+    mov word [es:si+004h], ax                 ; 26 89 44 04
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    sub word [bp+006h], bx                    ; 29 5e 06
+    sbb word [bp+008h], cx                    ; 19 4e 08
+    sub byte [bp+00ch], al                    ; 28 46 0c
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov al, byte [bp+00ch]                    ; 8a 46 0c
+    xor ah, ah                                ; 30 e4
+    mov word [es:si+00ch], ax                 ; 26 89 44 0c
+    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:si+010h], ax                 ; 26 89 44 10
+    mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn 0000ah                               ; c2 0a 00
+    db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 087h, 083h, 052h, 04fh, 041h, 024h
+    db  000h, 06eh, 06ch, 00ah, 068h, 01eh, 068h, 0b6h, 068h, 0bch, 068h, 0c1h, 068h, 0c6h, 068h, 06eh
+    db  069h, 00ah, 06bh, 029h, 06bh, 0afh, 068h, 0afh, 068h, 0f3h, 06bh, 01eh, 06ch, 031h, 06ch, 040h
+    db  06ch, 0b6h, 068h, 049h, 06ch
+_int15_function:                             ; 0xf67ce LB 0x4d6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    cmp ax, 000ech                            ; 3d ec 00
+    jnbe short 06814h                         ; 77 35
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00012h                ; b9 12 00
+    mov di, 06799h                            ; bf 99 67
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov si, word [cs:di+067aah]               ; 2e 8b b5 aa 67
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    mov cx, word [bp+018h]                    ; 8b 4e 18
+    and cl, 0feh                              ; 80 e1 fe
+    mov bx, word [bp+018h]                    ; 8b 5e 18
+    or bl, 001h                               ; 80 cb 01
+    mov dx, ax                                ; 89 c2
+    or dh, 086h                               ; 80 ce 86
+    jmp si                                    ; ff e6
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, 000c0h                            ; 3d c0 00
+    je short 06817h                           ; 74 03
+    jmp near 06c6eh                           ; e9 57 04
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    jmp near 06c15h                           ; e9 f7 03
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 06833h                           ; 72 0e
+    jbe short 06847h                          ; 76 20
+    cmp ax, strict word 00003h                ; 3d 03 00
+    je short 06874h                           ; 74 48
+    cmp ax, strict word 00002h                ; 3d 02 00
+    je short 06857h                           ; 74 26
+    jmp short 06881h                          ; eb 4e
+    test ax, ax                               ; 85 c0
+    jne short 06881h                          ; 75 4a
+    xor ax, ax                                ; 31 c0
+    call 06713h                               ; e8 d7 fe
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp near 068afh                           ; e9 68 00
+    mov ax, strict word 00001h                ; b8 01 00
+    call 06713h                               ; e8 c6 fe
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], dh                    ; 88 76 13
+    jmp near 068afh                           ; e9 58 00
+    mov dx, 00092h                            ; ba 92 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    shr ax, 1                                 ; d1 e8
+    and ax, strict word 00001h                ; 25 01 00
+    mov dx, word [bp+012h]                    ; 8b 56 12
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], ah                    ; 88 66 13
+    jmp near 068afh                           ; e9 3b 00
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov byte [bp+013h], ah                    ; 88 66 13
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    jmp near 068afh                           ; e9 2e 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 a7 b0
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0082eh                            ; b8 2e 08
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 d9 b0
+    add sp, strict byte 00006h                ; 83 c4 06
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    mov word [bp+012h], ax                    ; 89 46 12
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp near 06968h                           ; e9 ac 00
+    mov word [bp+018h], bx                    ; 89 5e 18
+    jmp short 068afh                          ; eb ee
+    mov word [bp+018h], cx                    ; 89 4e 18
+    jmp short 068ach                          ; eb e6
+    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
+    jne short 0693bh                          ; 75 6f
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 7d ad
+    test AL, strict byte 001h                 ; a8 01
+    jne short 06938h                          ; 75 5f
+    mov bx, strict word 00001h                ; bb 01 00
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 7b ad
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    mov dx, 00098h                            ; ba 98 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 8b ad
+    mov bx, word [bp+00ch]                    ; 8b 5e 0c
+    mov dx, 0009ah                            ; ba 9a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 7f ad
+    mov bx, word [bp+00eh]                    ; 8b 5e 0e
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 73 ad
+    mov bx, word [bp+010h]                    ; 8b 5e 10
+    mov dx, 0009eh                            ; ba 9e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0167ch                               ; e8 67 ad
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 86 ad
+    mov dl, al                                ; 88 c2
+    or dl, 040h                               ; 80 ca 40
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 94 ad
+    jmp near 068afh                           ; e9 77 ff
+    jmp near 06c0ch                           ; e9 d1 02
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jne short 0695ch                          ; 75 1c
+    xor bx, bx                                ; 31 db
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 15 ad
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 59 ad
+    mov dl, al                                ; 88 c2
+    and dl, 0bfh                              ; 80 e2 bf
+    jmp short 0692dh                          ; eb d1
+    mov word [bp+018h], bx                    ; 89 5e 18
+    mov ax, dx                                ; 89 d0
+    xor ah, dh                                ; 30 f4
+    xor dl, dl                                ; 30 d2
+    dec ax                                    ; 48
+    or dx, ax                                 ; 09 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    jmp near 068afh                           ; e9 41 ff
+    cli                                       ; fa
+    mov ax, strict word 00001h                ; b8 01 00
+    call 06713h                               ; e8 9e fd
+    mov di, ax                                ; 89 c7
+    mov CL, strict byte 004h                  ; b1 04
+    mov dx, word [bp+014h]                    ; 8b 56 14
+    sal dx, CL                                ; d3 e2
+    mov si, word [bp+006h]                    ; 8b 76 06
+    add si, dx                                ; 01 d6
+    mov CL, strict byte 00ch                  ; b1 0c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    shr ax, CL                                ; d3 e8
+    mov cl, al                                ; 88 c1
+    cmp si, dx                                ; 39 d6
+    jnc short 06992h                          ; 73 02
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0002fh                ; bb 2f 00
+    call 0167ch                               ; e8 db ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000ah                ; 83 c2 0a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, si                                ; 89 f3
+    call 0167ch                               ; e8 cd ac
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000ch                ; 83 c2 0c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 01660h                               ; e8 a1 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000dh                ; 83 c2 0d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 00093h                            ; bb 93 00
+    call 01660h                               ; e8 92 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0000eh                ; 83 c2 0e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ch                               ; e8 a0 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00020h                ; 83 c2 20
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ch                               ; e8 91 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00022h                ; 83 c2 22
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ch                               ; e8 83 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00024h                ; 83 c2 24
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0000fh                ; bb 0f 00
+    call 01660h                               ; e8 58 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00025h                ; 83 c2 25
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 0009bh                            ; bb 9b 00
+    call 01660h                               ; e8 49 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00026h                ; 83 c2 26
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ch                               ; e8 57 ac
+    mov ax, ss                                ; 8c d0
+    mov CL, strict byte 004h                  ; b1 04
+    mov si, ax                                ; 89 c6
+    sal si, CL                                ; d3 e6
+    mov CL, strict byte 00ch                  ; b1 0c
+    shr ax, CL                                ; d3 e8
+    mov cx, ax                                ; 89 c1
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00028h                ; 83 c2 28
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ch                               ; e8 3a ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002ah                ; 83 c2 2a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, si                                ; 89 f3
+    call 0167ch                               ; e8 2c ac
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002ch                ; 83 c2 2c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 01660h                               ; e8 00 ac
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002dh                ; 83 c2 2d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 00093h                            ; bb 93 00
+    call 01660h                               ; e8 f1 ab
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0002eh                ; 83 c2 2e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ch                               ; e8 ff ab
+    mov si, word [bp+006h]                    ; 8b 76 06
+    mov es, [bp+014h]                         ; 8e 46 14
+    mov cx, word [bp+010h]                    ; 8b 4e 10
+    push DS                                   ; 1e
+    push eax                                  ; 66 50
+    db  066h, 033h, 0c0h
+    ; xor eax, eax                              ; 66 33 c0
+    mov ds, ax                                ; 8e d8
+    mov word [00467h], sp                     ; 89 26 67 04
+    mov [00469h], ss                          ; 8c 16 69 04
+    call 06a99h                               ; e8 00 00
+    pop di                                    ; 5f
+    add di, strict byte 0001bh                ; 83 c7 1b
+    push strict byte 00020h                   ; 6a 20
+    push di                                   ; 57
+    lgdt [es:si+008h]                         ; 26 0f 01 54 08
+    lidt [cs:0efe1h]                          ; 2e 0f 01 1e e1 ef
+    mov eax, cr0                              ; 0f 20 c0
+    or AL, strict byte 001h                   ; 0c 01
+    mov cr0, eax                              ; 0f 22 c0
+    retf                                      ; cb
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ss, ax                                ; 8e d0
+    mov ax, strict word 00010h                ; b8 10 00
+    mov ds, ax                                ; 8e d8
+    mov ax, strict word 00018h                ; b8 18 00
+    mov es, ax                                ; 8e c0
+    db  033h, 0f6h
+    ; xor si, si                                ; 33 f6
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    cld                                       ; fc
+    rep movsw                                 ; f3 a5
+    call 06acdh                               ; e8 00 00
+    pop ax                                    ; 58
+    push 0f000h                               ; 68 00 f0
+    add ax, strict byte 00018h                ; 83 c0 18
+    push ax                                   ; 50
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    mov eax, cr0                              ; 0f 20 c0
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cr0, eax                              ; 0f 22 c0
+    retf                                      ; cb
+    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    lss sp, [00467h]                          ; 0f b2 26 67 04
+    pop eax                                   ; 66 58
+    pop DS                                    ; 1f
+    mov ax, di                                ; 89 f8
+    call 06713h                               ; e8 15 fc
+    sti                                       ; fb
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    jmp near 068afh                           ; e9 a5 fd
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016aeh                               ; e8 9e ab
+    mov dh, al                                ; 88 c6
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016aeh                               ; e8 96 ab
+    mov dl, al                                ; 88 c2
+    mov word [bp+012h], dx                    ; 89 56 12
+    cmp dx, strict byte 0ffc0h                ; 83 fa c0
+    jbe short 06b03h                          ; 76 e1
+    mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
+    jmp short 06b03h                          ; eb da
+    cli                                       ; fa
+    mov ax, strict word 00001h                ; b8 01 00
+    call 06713h                               ; e8 e3 fb
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 00038h                ; 83 c2 38
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0ffffh                ; bb ff ff
+    call 0167ch                               ; e8 3d ab
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003ah                ; 83 c2 3a
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ch                               ; e8 2f ab
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003ch                ; 83 c2 3c
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, strict word 0000fh                ; bb 0f 00
+    call 01660h                               ; e8 04 ab
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003dh                ; 83 c2 3d
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov bx, 0009bh                            ; bb 9b 00
+    call 01660h                               ; e8 f5 aa
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    add dx, strict byte 0003eh                ; 83 c2 3e
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    xor bx, bx                                ; 31 db
+    call 0167ch                               ; e8 03 ab
+    mov AL, strict byte 011h                  ; b0 11
+    mov dx, strict word 00020h                ; ba 20 00
+    out DX, AL                                ; ee
+    mov dx, 000a0h                            ; ba a0 00
+    out DX, AL                                ; ee
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 004h                  ; b0 04
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 002h                  ; b0 02
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 001h                  ; b0 01
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov AL, strict byte 0ffh                  ; b0 ff
+    mov dx, strict word 00021h                ; ba 21 00
+    out DX, AL                                ; ee
+    mov dx, 000a1h                            ; ba a1 00
+    out DX, AL                                ; ee
+    mov si, word [bp+006h]                    ; 8b 76 06
+    call 06bb7h                               ; e8 00 00
+    pop di                                    ; 5f
+    add di, strict byte 00018h                ; 83 c7 18
+    push strict byte 00038h                   ; 6a 38
+    push di                                   ; 57
+    lgdt [es:si+008h]                         ; 26 0f 01 54 08
+    lidt [es:si+010h]                         ; 26 0f 01 5c 10
+    mov ax, strict word 00001h                ; b8 01 00
+    lmsw ax                                   ; 0f 01 f0
+    retf                                      ; cb
+    mov ax, strict word 00028h                ; b8 28 00
+    mov ss, ax                                ; 8e d0
+    mov ax, strict word 00018h                ; b8 18 00
+    mov ds, ax                                ; 8e d8
+    mov ax, strict word 00020h                ; b8 20 00
+    mov es, ax                                ; 8e c0
+    lea ax, [bp+004h]                         ; 8d 46 04
+    db  08bh, 0e0h
+    ; mov sp, ax                                ; 8b e0
+    popaw                                     ; 61
+    add sp, strict byte 00006h                ; 83 c4 06
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    pop ax                                    ; 58
+    mov ax, strict word 00030h                ; b8 30 00
+    push ax                                   ; 50
+    push cx                                   ; 51
+    retf                                      ; cb
+    jmp near 068afh                           ; e9 bc fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 35 ad
+    mov ax, 0086eh                            ; b8 6e 08
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 6d ad
+    add sp, strict byte 00004h                ; 83 c4 04
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    mov word [bp+012h], ax                    ; 89 46 12
+    jmp near 068afh                           ; e9 91 fc
+    mov word [bp+018h], cx                    ; 89 4e 18
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
+    mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
+    jmp near 068afh                           ; e9 7e fc
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 34 aa
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 06b03h                           ; e9 c3 fe
+    mov ax, 0089dh                            ; b8 9d 08
+    push ax                                   ; 50
+    mov ax, strict word 00008h                ; b8 08 00
+    jmp short 06c05h                          ; eb bc
+    test byte [bp+012h], 0ffh                 ; f6 46 12 ff
+    jne short 06c6eh                          ; 75 1f
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    jc short 06c67h                           ; 72 0b
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jnbe short 06c67h                         ; 77 06
+    mov word [bp+018h], cx                    ; 89 4e 18
+    jmp near 068afh                           ; e9 48 fc
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    jmp near 068afh                           ; e9 41 fc
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 ba ac
+    push word [bp+00ch]                       ; ff 76 0c
+    push word [bp+012h]                       ; ff 76 12
+    mov ax, 008b4h                            ; b8 b4 08
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 ec ac
+    add sp, strict byte 00008h                ; 83 c4 08
+    jmp near 06c0ch                           ; e9 7c ff
+    cmp AL, strict byte 06eh                  ; 3c 6e
+    o32 outsb                                 ; 66 6e
+    mov si, 0e36eh                            ; be 6e e3
+    outsb                                     ; 6e
+    add bp, word [bx+024h]                    ; 03 6f 24
+    outsw                                     ; 6f
+    dec dx                                    ; 4a
+    outsw                                     ; 6f
+    jo short 06d0fh                           ; 70 6f
+    lodsw                                     ; ad
+    outsw                                     ; 6f
+    loope 06d13h                              ; e1 6f
+_int15_function32:                           ; 0xf6ca4 LB 0x3cf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov al, byte [bp+021h]                    ; 8a 46 21
+    xor ah, ah                                ; 30 e4
+    mov bx, word [bp+028h]                    ; 8b 5e 28
+    and bl, 0feh                              ; 80 e3 fe
+    mov dx, word [bp+020h]                    ; 8b 56 20
+    xor dh, dh                                ; 30 f6
+    cmp ax, 000e8h                            ; 3d e8 00
+    je short 06d0bh                           ; 74 4b
+    cmp ax, 000d0h                            ; 3d d0 00
+    je short 06d04h                           ; 74 3f
+    cmp ax, 00086h                            ; 3d 86 00
+    jne short 06d29h                          ; 75 5f
+    sti                                       ; fb
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    mov ebx, strict dword 00000000fh          ; 66 bb 0f 00 00 00
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    div ebx                                   ; 66 f7 f3
+    db  066h, 08bh, 0c8h
+    ; mov ecx, eax                              ; 66 8b c8
+    in AL, strict byte 061h                   ; e4 61
+    and AL, strict byte 010h                  ; 24 10
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    db  066h, 00bh, 0c9h
+    ; or ecx, ecx                               ; 66 0b c9
+    je near 06d01h                            ; 0f 84 0e 00
+    in AL, strict byte 061h                   ; e4 61
+    and AL, strict byte 010h                  ; 24 10
+    db  03ah, 0c4h
+    ; cmp al, ah                                ; 3a c4
+    je short 06cf3h                           ; 74 f8
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    dec ecx                                   ; 66 49
+    jne short 06cf3h                          ; 75 f2
+    jmp near 06eb8h                           ; e9 b4 01
+    cmp dx, strict byte 0004fh                ; 83 fa 4f
+    je short 06d0dh                           ; 74 04
+    jmp short 06d29h                          ; eb 1e
+    jmp short 06d63h                          ; eb 56
+    cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
+    jne short 06d6dh                          ; 75 59
+    cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
+    jne short 06d6dh                          ; 75 52
+    cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
+    jne short 06d6dh                          ; 75 4b
+    cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
+    je short 06d2bh                           ; 74 02
+    jmp short 06d6dh                          ; eb 42
+    mov ax, word [bp+00ah]                    ; 8b 46 0a
+    or ax, word [bp+008h]                     ; 0b 46 08
+    jne short 06d6dh                          ; 75 3a
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    or ax, word [bp+004h]                     ; 0b 46 04
+    jne short 06d6dh                          ; 75 32
+    mov word [bp+028h], bx                    ; 89 5e 28
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    mov word [bp+008h], ax                    ; 89 46 08
+    mov ax, word [bp+016h]                    ; 8b 46 16
+    mov word [bp+00ah], ax                    ; 89 46 0a
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov word [bp+004h], ax                    ; 89 46 04
+    mov ax, word [bp+01eh]                    ; 8b 46 1e
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+020h], 03332h                ; c7 46 20 32 33
+    mov word [bp+022h], 04941h                ; c7 46 22 41 49
+    jmp near 06eb8h                           ; e9 55 01
+    cmp dx, strict byte 00020h                ; 83 fa 20
+    je short 06d73h                           ; 74 0b
+    cmp dx, strict byte 00001h                ; 83 fa 01
+    je short 06d70h                           ; 74 03
+    jmp near 06e8bh                           ; e9 1b 01
+    jmp near 07033h                           ; e9 c0 02
+    cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
+    jne short 06d6dh                          ; 75 f3
+    cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
+    jne short 06d6dh                          ; 75 ec
+    mov ax, strict word 00035h                ; b8 35 00
+    call 016aeh                               ; e8 27 a9
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06d90h                               ; e2 fa
+    mov ax, strict word 00034h                ; b8 34 00
+    call 016aeh                               ; e8 12 a9
+    xor ah, ah                                ; 30 e4
+    mov dx, bx                                ; 89 da
+    or dx, ax                                 ; 09 c2
+    xor bx, bx                                ; 31 db
+    add bx, bx                                ; 01 db
+    adc dx, 00100h                            ; 81 d2 00 01
+    cmp dx, 00100h                            ; 81 fa 00 01
+    jc short 06db6h                           ; 72 06
+    jne short 06de4h                          ; 75 32
+    test bx, bx                               ; 85 db
+    jnbe short 06de4h                         ; 77 2e
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016aeh                               ; e8 f2 a8
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06dc5h                               ; e2 fa
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016aeh                               ; e8 dd a8
+    xor ah, ah                                ; 30 e4
+    or bx, ax                                 ; 09 c3
+    mov cx, strict word 0000ah                ; b9 0a 00
+    sal bx, 1                                 ; d1 e3
+    rcl dx, 1                                 ; d1 d2
+    loop 06dd8h                               ; e2 fa
+    add bx, strict byte 00000h                ; 83 c3 00
+    adc dx, strict byte 00010h                ; 83 d2 10
+    mov ax, strict word 00062h                ; b8 62 00
+    call 016aeh                               ; e8 c4 a8
+    xor ah, ah                                ; 30 e4
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    xor al, al                                ; 30 c0
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov cx, strict word 00008h                ; b9 08 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 06df7h                               ; e2 f8
+    mov ax, strict word 00061h                ; b8 61 00
+    call 016aeh                               ; e8 a9 a8
+    xor ah, ah                                ; 30 e4
+    or word [bp-00ah], ax                     ; 09 46 f6
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
+    mov ax, strict word 00063h                ; b8 63 00
+    call 016aeh                               ; e8 93 a8
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    cmp ax, strict word 00009h                ; 3d 09 00
+    jnbe short 06e8bh                         ; 77 62
+    mov si, ax                                ; 89 c6
+    sal si, 1                                 ; d1 e6
+    mov cx, bx                                ; 89 d9
+    add cx, strict byte 00000h                ; 83 c1 00
+    mov ax, dx                                ; 89 d0
+    adc ax, strict word 0ffffh                ; 15 ff ff
+    jmp word [cs:si+06c90h]                   ; 2e ff a4 90 6c
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, strict word 00009h                ; b8 09 00
+    push ax                                   ; 50
+    mov ax, 0fc00h                            ; b8 00 fc
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 06743h                               ; e8 ea f8
+    mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
+    mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
+    jmp near 07018h                           ; e9 b2 01
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, strict word 0000ah                ; b8 0a 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    mov bx, 0fc00h                            ; bb 00 fc
+    mov cx, strict word 00009h                ; b9 09 00
+    call 06743h                               ; e8 bf f8
+    mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
+    jmp short 06e5eh                          ; eb d3
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 9d aa
+    push word [bp+014h]                       ; ff 76 14
+    push word [bp+020h]                       ; ff 76 20
+    mov ax, 008b4h                            ; b8 b4 08
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 cf aa
+    add sp, strict byte 00008h                ; 83 c4 08
+    or byte [bp+028h], 001h                   ; 80 4e 28 01
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor al, al                                ; 30 c0
+    or AL, strict byte 086h                   ; 0c 86
+    mov word [bp+020h], ax                    ; 89 46 20
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, strict word 00010h                ; b8 10 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0000fh                ; b9 0f 00
+    call 06743h                               ; e8 68 f8
+    mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
+    jmp near 06e5eh                           ; e9 7b ff
+    mov dx, strict word 00001h                ; ba 01 00
+    push dx                                   ; 52
+    xor dx, dx                                ; 31 d2
+    push dx                                   ; 52
+    push dx                                   ; 52
+    push ax                                   ; 50
+    push cx                                   ; 51
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 00010h                ; b9 10 00
+    call 06743h                               ; e8 48 f8
+    mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
+    jmp near 06e5eh                           ; e9 5b ff
+    mov si, strict word 00003h                ; be 03 00
+    push si                                   ; 56
+    xor si, si                                ; 31 f6
+    push si                                   ; 56
+    push si                                   ; 56
+    push dx                                   ; 52
+    push bx                                   ; 53
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov si, word [bp+024h]                    ; 8b 76 24
+    mov bx, cx                                ; 89 cb
+    mov cx, ax                                ; 89 c1
+    mov ax, si                                ; 89 f0
+    call 06743h                               ; e8 27 f8
+    mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
+    jmp near 06e5eh                           ; e9 3a ff
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, 0fec0h                            ; b8 c0 fe
+    push ax                                   ; 50
+    mov ax, 01000h                            ; b8 00 10
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, 0fec0h                            ; b9 c0 fe
+    call 06743h                               ; e8 01 f8
+    mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
+    jmp near 06e5eh                           ; e9 14 ff
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov ax, 0fee0h                            ; b8 e0 fe
+    push ax                                   ; 50
+    mov ax, 01000h                            ; b8 00 10
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, 0fee0h                            ; b9 e0 fe
+    call 06743h                               ; e8 db f7
+    mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
+    jmp near 06e5eh                           ; e9 ee fe
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    mov cx, strict word 0fffch                ; b9 fc ff
+    call 06743h                               ; e8 bb f7
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 06f95h                          ; 75 07
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    test ax, ax                               ; 85 c0
+    je short 06fa5h                           ; 74 10
+    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
+    jmp near 06e5eh                           ; e9 c1 fe
+    mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
+    jmp near 06e5eh                           ; e9 b9 fe
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp short 07018h                          ; eb 6b
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    push ax                                   ; 50
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 06743h                               ; e8 7f f7
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 06fd1h                          ; 75 07
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    test ax, ax                               ; 85 c0
+    je short 06fd9h                           ; 74 08
+    mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
+    jmp near 06e5eh                           ; e9 85 fe
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    jmp short 07018h                          ; eb 37
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jne short 06fedh                          ; 75 06
+    cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
+    je short 07018h                           ; 74 2b
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    push word [bp-008h]                       ; ff 76 f8
+    push word [bp-00ah]                       ; ff 76 f6
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+024h]                    ; 8b 46 24
+    xor bx, bx                                ; 31 db
+    xor cx, cx                                ; 31 c9
+    call 06743h                               ; e8 33 f7
+    xor ax, ax                                ; 31 c0
+    mov word [bp+014h], ax                    ; 89 46 14
+    mov word [bp+016h], ax                    ; 89 46 16
+    mov word [bp+020h], 04150h                ; c7 46 20 50 41
+    mov word [bp+022h], 0534dh                ; c7 46 22 4d 53
+    mov word [bp+01ch], strict word 00014h    ; c7 46 1c 14 00
+    mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
+    and byte [bp+028h], 0feh                  ; 80 66 28 fe
+    jmp near 06eb8h                           ; e9 85 fe
+    mov word [bp+028h], bx                    ; 89 5e 28
+    mov ax, strict word 00031h                ; b8 31 00
+    call 016aeh                               ; e8 72 a6
+    mov dh, al                                ; 88 c6
+    mov ax, strict word 00030h                ; b8 30 00
+    call 016aeh                               ; e8 6a a6
+    mov dl, al                                ; 88 c2
+    mov word [bp+01ch], dx                    ; 89 56 1c
+    cmp dx, 03c00h                            ; 81 fa 00 3c
+    jbe short 07054h                          ; 76 05
+    mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
+    mov ax, strict word 00035h                ; b8 35 00
+    call 016aeh                               ; e8 54 a6
+    mov dh, al                                ; 88 c6
+    mov ax, strict word 00034h                ; b8 34 00
+    call 016aeh                               ; e8 4c a6
+    mov dl, al                                ; 88 c2
+    mov word [bp+018h], dx                    ; 89 56 18
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov word [bp+020h], ax                    ; 89 46 20
+    mov word [bp+014h], dx                    ; 89 56 14
+    jmp near 06eb8h                           ; e9 45 fe
+_inv_op_handler:                             ; 0xf7073 LB 0x18f
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    les bx, [bp+018h]                         ; c4 5e 18
+    cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
+    jne short 07089h                          ; 75 06
+    inc word [bp+018h]                        ; ff 46 18
+    jmp near 071fbh                           ; e9 72 01
+    cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
+    je short 07093h                           ; 74 03
+    jmp near 071f7h                           ; e9 64 01
+    mov si, 00800h                            ; be 00 08
+    xor ax, ax                                ; 31 c0
+    mov word [bp-008h], ax                    ; 89 46 f8
+    mov word [bp-006h], ax                    ; 89 46 fa
+    mov es, ax                                ; 8e c0
+    mov bx, word [es:si+02ch]                 ; 26 8b 5c 2c
+    sub bx, strict byte 00006h                ; 83 eb 06
+    mov dx, word [es:si+020h]                 ; 26 8b 54 20
+    mov ax, word [es:si+01ah]                 ; 26 8b 44 1a
+    mov es, dx                                ; 8e c2
+    mov word [es:bx], ax                      ; 26 89 07
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov ax, word [es:si+022h]                 ; 26 8b 44 22
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+002h], ax                 ; 26 89 47 02
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov ax, word [es:si+018h]                 ; 26 8b 44 18
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+004h], ax                 ; 26 89 47 04
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov bl, byte [es:si+038h]                 ; 26 8a 5c 38
+    xor bh, bh                                ; 30 ff
+    mov di, word [es:si+036h]                 ; 26 8b 7c 36
+    mov ax, word [es:si+024h]                 ; 26 8b 44 24
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 070e4h                               ; e2 fa
+    cmp bx, dx                                ; 39 d3
+    jne short 070f2h                          ; 75 04
+    cmp di, ax                                ; 39 c7
+    je short 070f7h                           ; 74 05
+    mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov bl, byte [es:si+04ah]                 ; 26 8a 5c 4a
+    xor bh, bh                                ; 30 ff
+    mov di, word [es:si+048h]                 ; 26 8b 7c 48
+    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 0710dh                               ; e2 fa
+    cmp bx, dx                                ; 39 d3
+    jne short 0711bh                          ; 75 04
+    cmp di, ax                                ; 39 c7
+    je short 0711fh                           ; 74 04
+    or byte [bp-006h], 002h                   ; 80 4e fa 02
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov ax, 00800h                            ; b8 00 08
+    push ax                                   ; 50
+    mov ax, strict word 0001fh                ; b8 1f 00
+    push ax                                   ; 50
+    db  08bh, 0dch
+    ; mov bx, sp                                ; 8b dc
+    lgdt [ss:bx]                              ; 36 0f 01 17
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov ax, word [es:si+03ah]                 ; 26 8b 44 3a
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [es:si+036h]                 ; 26 8b 44 36
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov dh, byte [es:si+039h]                 ; 26 8a 74 39
+    mov dl, byte [es:si+038h]                 ; 26 8a 54 38
+    mov word [es:si+00ch], dx                 ; 26 89 54 0c
+    mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00
+    mov ax, word [es:si+04ch]                 ; 26 8b 44 4c
+    mov word [es:si], ax                      ; 26 89 04
+    mov ax, word [es:si+048h]                 ; 26 8b 44 48
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    mov dh, byte [es:si+04bh]                 ; 26 8a 74 4b
+    mov dl, byte [es:si+04ah]                 ; 26 8a 54 4a
+    xor ah, ah                                ; 30 e4
+    mov word [es:si+004h], dx                 ; 26 89 54 04
+    mov al, byte [es:si+05ch]                 ; 26 8a 44 5c
+    mov dx, word [es:si+05ah]                 ; 26 8b 54 5a
+    push ax                                   ; 50
+    push dx                                   ; 52
+    push word [es:si+05eh]                    ; 26 ff 74 5e
+    db  08bh, 0dch
+    ; mov bx, sp                                ; 8b dc
+    lidt [ss:bx]                              ; 36 0f 01 1f
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov cx, word [bp-006h]                    ; 8b 4e fa
+    mov ax, 00080h                            ; b8 80 00
+    mov ss, ax                                ; 8e d0
+    mov ax, word [ss:0001eh]                  ; 36 a1 1e 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [ss:00024h]                  ; 36 a1 24 00
+    mov es, ax                                ; 8e c0
+    smsw ax                                   ; 0f 01 e0
+    inc ax                                    ; 40
+    lmsw ax                                   ; 0f 01 f0
+    mov ax, strict word 00008h                ; b8 08 00
+    test cx, strict word 00001h               ; f7 c1 01 00
+    je near 071b4h                            ; 0f 84 02 00
+    mov es, ax                                ; 8e c0
+    test cx, strict word 00002h               ; f7 c1 02 00
+    je near 071dch                            ; 0f 84 20 00
+    mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
+    mov word [word ss:00008h], bx             ; 36 89 1e 08 00
+    mov bx, word [word ss:00002h]             ; 36 8b 1e 02 00
+    mov word [word ss:0000ah], bx             ; 36 89 1e 0a 00
+    mov bx, word [word ss:00004h]             ; 36 8b 1e 04 00
+    mov word [word ss:0000ch], bx             ; 36 89 1e 0c 00
+    mov ds, ax                                ; 8e d8
+    mov eax, cr0                              ; 0f 20 c0
+    dec ax                                    ; 48
+    mov cr0, eax                              ; 0f 22 c0
+    mov sp, strict word 00026h                ; bc 26 00
+    popaw                                     ; 61
+    mov sp, word [word ss:0002ch]             ; 36 8b 26 2c 00
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
+    iret                                      ; cf
+    jmp short 071fbh                          ; eb 04
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 071f8h                          ; eb fd
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+init_rtc_:                                   ; 0xf7202 LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 016c9h                               ; e8 ba a4
+    mov dx, strict word 00002h                ; ba 02 00
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 b1 a4
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 016aeh                               ; e8 90 a4
+    mov ax, strict word 0000dh                ; b8 0d 00
+    call 016aeh                               ; e8 8a a4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+rtc_updating_:                               ; 0xf722a LB 0x21
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov dx, 061a8h                            ; ba a8 61
+    dec dx                                    ; 4a
+    je short 07242h                           ; 74 0e
+    mov ax, strict word 0000ah                ; b8 0a 00
+    call 016aeh                               ; e8 74 a4
+    test AL, strict byte 080h                 ; a8 80
+    jne short 07231h                          ; 75 f3
+    xor ax, ax                                ; 31 c0
+    jmp short 07245h                          ; eb 03
+    mov ax, strict word 00001h                ; b8 01 00
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int70_function:                             ; 0xf724b LB 0xbf
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push ax                                   ; 50
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 58 a4
+    mov bl, al                                ; 88 c3
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov ax, strict word 0000ch                ; b8 0c 00
+    call 016aeh                               ; e8 4d a4
+    mov dl, al                                ; 88 c2
+    test bl, 060h                             ; f6 c3 60
+    jne short 0726bh                          ; 75 03
+    jmp near 072f1h                           ; e9 86 00
+    test AL, strict byte 020h                 ; a8 20
+    je short 07273h                           ; 74 04
+    sti                                       ; fb
+    int 04ah                                  ; cd 4a
+    cli                                       ; fa
+    test dl, 040h                             ; f6 c2 40
+    je short 072dbh                           ; 74 63
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 d1 a3
+    test al, al                               ; 84 c0
+    je short 072f1h                           ; 74 6c
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0168ah                               ; e8 fc a3
+    test dx, dx                               ; 85 d2
+    jne short 072ddh                          ; 75 4b
+    cmp ax, 003d1h                            ; 3d d1 03
+    jnc short 072ddh                          ; 73 46
+    mov dx, 00098h                            ; ba 98 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 ce a3
+    mov si, ax                                ; 89 c6
+    mov dx, 0009ah                            ; ba 9a 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 c3 a3
+    mov cx, ax                                ; 89 c1
+    xor bx, bx                                ; 31 db
+    mov dx, 000a0h                            ; ba a0 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 a8 a3
+    mov dl, byte [bp-004h]                    ; 8a 56 fc
+    and dl, 037h                              ; 80 e2 37
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 03 a4
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 01652h                               ; e8 85 a3
+    mov bl, al                                ; 88 c3
+    or bl, 080h                               ; 80 cb 80
+    xor bh, bh                                ; 30 ff
+    mov dx, cx                                ; 89 ca
+    mov ax, si                                ; 89 f0
+    call 01660h                               ; e8 85 a3
+    jmp short 072f1h                          ; eb 14
+    mov bx, ax                                ; 89 c3
+    add bx, 0fc2fh                            ; 81 c3 2f fc
+    mov cx, dx                                ; 89 d1
+    adc cx, strict byte 0ffffh                ; 83 d1 ff
+    mov dx, 0009ch                            ; ba 9c 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0169ch                               ; e8 ab a3
+    call 0e030h                               ; e8 3c 6d
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    and byte [bp+di+047h], dh                 ; 20 73 47
+    jnc short 0736bh                          ; 73 6c
+    jnc short 072a9h                          ; 73 a8
+    jnc short 072fdh                          ; 73 fa
+    jnc short 07336h                          ; 73 31
+    je short 0737fh                           ; 74 78
+    je short 072dch                           ; 74 d3
+    db  074h
+_int1a_function:                             ; 0xf730a LB 0x1d9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sti                                       ; fb
+    mov al, byte [bp+013h]                    ; 8a 46 13
+    cmp AL, strict byte 007h                  ; 3c 07
+    jnbe short 07373h                         ; 77 5e
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    sal bx, 1                                 ; d1 e3
+    jmp word [cs:bx+072fah]                   ; 2e ff a7 fa 72
+    cli                                       ; fa
+    mov bx, 0046eh                            ; bb 6e 04
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov bx, 0046ch                            ; bb 6c 04
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    mov bx, 00470h                            ; bb 70 04
+    mov al, byte [es:bx]                      ; 26 8a 07
+    mov byte [bp+012h], al                    ; 88 46 12
+    mov byte [es:bx], 000h                    ; 26 c6 07 00
+    sti                                       ; fb
+    jmp short 07373h                          ; eb 2c
+    cli                                       ; fa
+    mov bx, 0046eh                            ; bb 6e 04
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov ax, word [bp+010h]                    ; 8b 46 10
+    mov word [es:bx], ax                      ; 26 89 07
+    mov bx, 0046ch                            ; bb 6c 04
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:bx], ax                      ; 26 89 07
+    mov bx, 00470h                            ; bb 70 04
+    mov byte [es:bx], 000h                    ; 26 c6 07 00
+    sti                                       ; fb
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    jmp short 07373h                          ; eb 07
+    call 0722ah                               ; e8 bb fe
+    test ax, ax                               ; 85 c0
+    je short 07376h                           ; 74 03
+    jmp near 073a4h                           ; e9 2e 00
+    xor ax, ax                                ; 31 c0
+    call 016aeh                               ; e8 33 a3
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    mov ax, strict word 00002h                ; b8 02 00
+    call 016aeh                               ; e8 2a a3
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov ax, strict word 00004h                ; b8 04 00
+    call 016aeh                               ; e8 21 a3
+    mov dl, al                                ; 88 c2
+    mov byte [bp+011h], al                    ; 88 46 11
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 16 a3
+    and AL, strict byte 001h                  ; 24 01
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov byte [bp+012h], dl                    ; 88 56 12
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    call 0722ah                               ; e8 7f fe
+    test ax, ax                               ; 85 c0
+    je short 073b2h                           ; 74 03
+    call 07202h                               ; e8 50 fe
+    mov dl, byte [bp+00fh]                    ; 8a 56 0f
+    xor dh, dh                                ; 30 f6
+    xor ax, ax                                ; 31 c0
+    call 016c9h                               ; e8 0d a3
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00002h                ; b8 02 00
+    call 016c9h                               ; e8 02 a3
+    mov dl, byte [bp+011h]                    ; 8a 56 11
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00004h                ; b8 04 00
+    call 016c9h                               ; e8 f7 a2
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 d6 a2
+    mov bl, al                                ; 88 c3
+    and bl, 060h                              ; 80 e3 60
+    or bl, 002h                               ; 80 cb 02
+    mov al, byte [bp+00eh]                    ; 8a 46 0e
+    and AL, strict byte 001h                  ; 24 01
+    or bl, al                                 ; 08 c3
+    mov dl, bl                                ; 88 da
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 d8 a2
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov byte [bp+012h], bl                    ; 88 5e 12
+    jmp short 073a4h                          ; eb aa
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    call 0722ah                               ; e8 29 fe
+    test ax, ax                               ; 85 c0
+    je short 07407h                           ; 74 02
+    jmp short 073a4h                          ; eb 9d
+    mov ax, strict word 00009h                ; b8 09 00
+    call 016aeh                               ; e8 a1 a2
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov ax, strict word 00008h                ; b8 08 00
+    call 016aeh                               ; e8 98 a2
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    mov ax, strict word 00007h                ; b8 07 00
+    call 016aeh                               ; e8 8f a2
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    mov ax, strict word 00032h                ; b8 32 00
+    call 016aeh                               ; e8 86 a2
+    mov byte [bp+011h], al                    ; 88 46 11
+    mov byte [bp+012h], al                    ; 88 46 12
+    jmp near 073a4h                           ; e9 73 ff
+    call 0722ah                               ; e8 f6 fd
+    test ax, ax                               ; 85 c0
+    je short 0743eh                           ; 74 06
+    call 07202h                               ; e8 c7 fd
+    jmp near 073a4h                           ; e9 66 ff
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00009h                ; b8 09 00
+    call 016c9h                               ; e8 80 a2
+    mov dl, byte [bp+00fh]                    ; 8a 56 0f
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00008h                ; b8 08 00
+    call 016c9h                               ; e8 75 a2
+    mov dl, byte [bp+00eh]                    ; 8a 56 0e
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00007h                ; b8 07 00
+    call 016c9h                               ; e8 6a a2
+    mov dl, byte [bp+011h]                    ; 8a 56 11
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00032h                ; b8 32 00
+    call 016c9h                               ; e8 5f a2
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 3e a2
+    mov bl, al                                ; 88 c3
+    and bl, 07fh                              ; 80 e3 7f
+    jmp near 073e7h                           ; e9 6f ff
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 30 a2
+    mov bl, al                                ; 88 c3
+    mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
+    test AL, strict byte 020h                 ; a8 20
+    je short 0748ch                           ; 74 03
+    jmp near 073a4h                           ; e9 18 ff
+    call 0722ah                               ; e8 9b fd
+    test ax, ax                               ; 85 c0
+    je short 07496h                           ; 74 03
+    call 07202h                               ; e8 6c fd
+    mov dl, byte [bp+00fh]                    ; 8a 56 0f
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00001h                ; b8 01 00
+    call 016c9h                               ; e8 28 a2
+    mov dl, byte [bp+010h]                    ; 8a 56 10
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00003h                ; b8 03 00
+    call 016c9h                               ; e8 1d a2
+    mov dl, byte [bp+011h]                    ; 8a 56 11
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 00005h                ; b8 05 00
+    call 016c9h                               ; e8 12 a2
+    mov dx, 000a1h                            ; ba a1 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    mov dl, bl                                ; 88 da
+    and dl, 05fh                              ; 80 e2 5f
+    or dl, 020h                               ; 80 ca 20
+    xor dh, dh                                ; 30 f6
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016c9h                               ; e8 f9 a1
+    jmp near 073a4h                           ; e9 d1 fe
+    mov ax, strict word 0000bh                ; b8 0b 00
+    call 016aeh                               ; e8 d5 a1
+    mov bl, al                                ; 88 c3
+    mov dl, al                                ; 88 c2
+    and dl, 057h                              ; 80 e2 57
+    jmp near 073e9h                           ; e9 06 ff
+send_to_mouse_ctrl_:                         ; 0xf74e3 LB 0x38
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 07506h                           ; 74 12
+    mov ax, 008eeh                            ; b8 ee 08
+    push ax                                   ; 50
+    mov ax, 01168h                            ; b8 68 11
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 73 a4
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov AL, strict byte 0d4h                  ; b0 d4
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    xor al, bl                                ; 30 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_mouse_data_:                             ; 0xf751b LB 0x5d
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push ax                                   ; 50
+    mov bx, ax                                ; 89 c3
+    mov es, dx                                ; 8e c2
+    mov cx, 02710h                            ; b9 10 27
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and ax, strict word 00021h                ; 25 21 00
+    cmp ax, strict word 00021h                ; 3d 21 00
+    je short 0755eh                           ; 74 28
+    test cx, cx                               ; 85 c9
+    je short 0755eh                           ; 74 24
+    mov dx, strict word 00061h                ; ba 61 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 010h                  ; 24 10
+    mov byte [bp-006h], al                    ; 88 46 fa
+    mov dx, strict word 00061h                ; ba 61 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, ax                                ; 89 c2
+    xor dh, ah                                ; 30 e6
+    and dl, 010h                              ; 80 e2 10
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cmp dx, ax                                ; 39 c2
+    je short 07545h                           ; 74 ea
+    dec cx                                    ; 49
+    jmp short 07528h                          ; eb ca
+    test cx, cx                               ; 85 c9
+    jne short 07566h                          ; 75 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 07571h                          ; eb 0b
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [es:bx], al                      ; 26 88 07
+    xor al, al                                ; 30 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+set_kbd_command_byte_:                       ; 0xf7578 LB 0x36
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 002h                 ; a8 02
+    je short 0759bh                           ; 74 12
+    mov ax, 008f8h                            ; b8 f8 08
+    push ax                                   ; 50
+    mov ax, 01168h                            ; b8 68 11
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 de a3
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov AL, strict byte 060h                  ; b0 60
+    mov dx, strict word 00064h                ; ba 64 00
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    mov dx, strict word 00060h                ; ba 60 00
+    out DX, AL                                ; ee
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int74_function:                             ; 0xf75ae LB 0xd2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    sub sp, strict byte 00008h                ; 83 ec 08
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 b1 a0
+    mov cx, ax                                ; 89 c1
+    mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
+    mov dx, strict word 00064h                ; ba 64 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    and AL, strict byte 021h                  ; 24 21
+    cmp AL, strict byte 021h                  ; 3c 21
+    jne short 075f2h                          ; 75 22
+    mov dx, strict word 00060h                ; ba 60 00
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 72 a0
+    mov byte [bp-002h], al                    ; 88 46 fe
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 67 a0
+    mov byte [bp-006h], al                    ; 88 46 fa
+    test AL, strict byte 080h                 ; a8 80
+    jne short 075f5h                          ; 75 03
+    jmp near 0766ch                           ; e9 77 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    and AL, strict byte 007h                  ; 24 07
+    mov byte [bp-004h], al                    ; 88 46 fc
+    mov al, byte [bp-002h]                    ; 8a 46 fe
+    and AL, strict byte 007h                  ; 24 07
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00028h                ; 83 c2 28
+    mov ax, cx                                ; 89 c8
+    call 01660h                               ; e8 48 a0
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp al, byte [bp-004h]                    ; 3a 46 fc
+    jc short 0765ch                           ; 72 3c
+    mov dx, strict word 00028h                ; ba 28 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 2a a0
+    xor ah, ah                                ; 30 e4
+    mov word [bp+00ch], ax                    ; 89 46 0c
+    mov dx, strict word 00029h                ; ba 29 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 1d a0
+    xor ah, ah                                ; 30 e4
+    mov word [bp+00ah], ax                    ; 89 46 0a
+    mov dx, strict word 0002ah                ; ba 2a 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 10 a0
+    xor ah, ah                                ; 30 e4
+    mov word [bp+008h], ax                    ; 89 46 08
+    xor al, al                                ; 30 c0
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov byte [bp-002h], ah                    ; 88 66 fe
+    test byte [bp-006h], 080h                 ; f6 46 fa 80
+    je short 0765fh                           ; 74 0a
+    mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
+    jmp short 0765fh                          ; eb 03
+    inc byte [bp-002h]                        ; fe 46 fe
+    mov bl, byte [bp-002h]                    ; 8a 5e fe
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01660h                               ; e8 f4 9f
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    retn 03e76h                               ; c2 76 3e
+    jnbe short 07633h                         ; 77 be
+    jnbe short 076cah                         ; 77 53
+    js short 0763eh                           ; 78 c5
+    js short 07684h                           ; 78 09
+    jnbe short 0766ah                         ; 77 ed
+    js short 07639h                           ; 78 ba
+    db  079h
+_int15_function_mouse:                       ; 0xf7680 LB 0x3a0
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 de 9f
+    mov cx, ax                                ; 89 c1
+    cmp byte [bp+012h], 007h                  ; 80 7e 12 07
+    jbe short 076a3h                          ; 76 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    jmp near 07a1ah                           ; e9 77 03
+    mov ax, strict word 00065h                ; b8 65 00
+    call 07578h                               ; e8 cf fe
+    and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
+    mov byte [bp+013h], 000h                  ; c6 46 13 00
+    mov bl, byte [bp+012h]                    ; 8a 5e 12
+    cmp bl, 007h                              ; 80 fb 07
+    jnbe short 07717h                         ; 77 5e
+    xor bh, bh                                ; 30 ff
+    sal bx, 1                                 ; d1 e3
+    jmp word [cs:bx+07670h]                   ; 2e ff a7 70 76
+    cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
+    jnbe short 0771ah                         ; 77 52
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 82 9f
+    test AL, strict byte 080h                 ; a8 80
+    jne short 076dfh                          ; 75 0b
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 005h                  ; c6 46 13 05
+    jmp near 07a14h                           ; e9 35 03
+    cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
+    jne short 076e9h                          ; 75 04
+    mov AL, strict byte 0f5h                  ; b0 f5
+    jmp short 076ebh                          ; eb 02
+    mov AL, strict byte 0f4h                  ; b0 f4
+    xor ah, ah                                ; 30 e4
+    call 074e3h                               ; e8 f3 fd
+    test al, al                               ; 84 c0
+    jne short 0771dh                          ; 75 29
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 1f fe
+    test al, al                               ; 84 c0
+    je short 07706h                           ; 74 06
+    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
+    jne short 0771dh                          ; 75 17
+    jmp near 07a14h                           ; e9 0b 03
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 07714h                           ; 72 04
+    cmp AL, strict byte 008h                  ; 3c 08
+    jbe short 07720h                          ; 76 0c
+    jmp near 078bbh                           ; e9 a4 01
+    jmp near 079feh                           ; e9 e4 02
+    jmp near 07a0ch                           ; e9 ef 02
+    jmp near 07992h                           ; e9 72 02
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 2a 9f
+    mov ah, byte [bp+00dh]                    ; 8a 66 0d
+    db  0feh, 0cch
+    ; dec ah                                    ; fe cc
+    mov bl, al                                ; 88 c3
+    and bl, 0f8h                              ; 80 e3 f8
+    or bl, ah                                 ; 08 e3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01660h                               ; e8 22 9f
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 0c 9f
+    mov bl, al                                ; 88 c3
+    and bl, 0f8h                              ; 80 e3 f8
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00026h                ; ba 26 00
+    mov ax, cx                                ; 89 c8
+    call 01660h                               ; e8 0b 9f
+    mov ax, 000ffh                            ; b8 ff 00
+    call 074e3h                               ; e8 88 fd
+    test al, al                               ; 84 c0
+    jne short 0771dh                          ; 75 be
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0751bh                               ; e8 b4 fd
+    mov cl, al                                ; 88 c1
+    cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
+    jne short 07779h                          ; 75 0a
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 004h                  ; c6 46 13 04
+    jmp short 07706h                          ; eb 8d
+    cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
+    je short 07793h                           ; 74 14
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00903h                            ; b8 03 09
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 e6 a1
+    add sp, strict byte 00006h                ; 83 c4 06
+    test cl, cl                               ; 84 c9
+    jne short 0771dh                          ; 75 86
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 7c fd
+    test al, al                               ; 84 c0
+    jne short 077f9h                          ; 75 56
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0751bh                               ; e8 70 fd
+    test al, al                               ; 84 c0
+    jne short 077f9h                          ; 75 4a
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp+00ch], al                    ; 88 46 0c
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    mov byte [bp+00dh], al                    ; 88 46 0d
+    jmp near 07a14h                           ; e9 56 02
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    cmp AL, strict byte 003h                  ; 3c 03
+    jc short 077d5h                           ; 72 10
+    jbe short 077f3h                          ; 76 2c
+    cmp AL, strict byte 006h                  ; 3c 06
+    je short 07808h                           ; 74 3d
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 07802h                           ; 74 33
+    cmp AL, strict byte 004h                  ; 3c 04
+    je short 077fch                           ; 74 29
+    jmp short 0780eh                          ; eb 39
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 077edh                           ; 74 14
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 077e7h                           ; 74 0a
+    test al, al                               ; 84 c0
+    jne short 0780eh                          ; 75 2d
+    mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
+    jmp short 07812h                          ; eb 2b
+    mov byte [bp-006h], 014h                  ; c6 46 fa 14
+    jmp short 07812h                          ; eb 25
+    mov byte [bp-006h], 028h                  ; c6 46 fa 28
+    jmp short 07812h                          ; eb 1f
+    mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
+    jmp short 07812h                          ; eb 19
+    jmp near 07992h                           ; e9 96 01
+    mov byte [bp-006h], 050h                  ; c6 46 fa 50
+    jmp short 07812h                          ; eb 10
+    mov byte [bp-006h], 064h                  ; c6 46 fa 64
+    jmp short 07812h                          ; eb 0a
+    mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
+    jmp short 07812h                          ; eb 04
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    jbe short 07848h                          ; 76 30
+    mov ax, 000f3h                            ; b8 f3 00
+    call 074e3h                               ; e8 c5 fc
+    test al, al                               ; 84 c0
+    jne short 0783dh                          ; 75 1b
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0751bh                               ; e8 f1 fc
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 074e3h                               ; e8 b1 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0751bh                               ; e8 e1 fc
+    jmp near 07a14h                           ; e9 d7 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 07a14h                           ; e9 cc 01
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 002h                  ; c6 46 13 02
+    jmp near 07a14h                           ; e9 c1 01
+    cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
+    jnc short 078bbh                          ; 73 62
+    mov ax, 000e8h                            ; b8 e8 00
+    call 074e3h                               ; e8 84 fc
+    test al, al                               ; 84 c0
+    jne short 078b1h                          ; 75 4e
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 b0 fc
+    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
+    je short 07885h                           ; 74 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0092eh                            ; b8 2e 09
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 f4 a0
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    call 074e3h                               ; e8 56 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 86 fc
+    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
+    je short 078eah                           ; 74 4f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0092eh                            ; b8 2e 09
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 ca a0
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp short 078eah                          ; eb 39
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp short 078eah                          ; eb 2f
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 002h                  ; c6 46 13 02
+    jmp short 078eah                          ; eb 25
+    mov ax, 000f2h                            ; b8 f2 00
+    call 074e3h                               ; e8 18 fc
+    test al, al                               ; 84 c0
+    jne short 078e2h                          ; 75 13
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 44 fc
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0751bh                               ; e8 3c fc
+    jmp near 077b5h                           ; e9 d3 fe
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp near 07a14h                           ; e9 27 01
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    test al, al                               ; 84 c0
+    jbe short 078fdh                          ; 76 09
+    cmp AL, strict byte 002h                  ; 3c 02
+    jbe short 078fbh                          ; 76 03
+    jmp near 0799ch                           ; e9 a1 00
+    jmp short 07967h                          ; eb 6a
+    mov ax, 000e9h                            ; b8 e9 00
+    call 074e3h                               ; e8 e0 fb
+    test al, al                               ; 84 c0
+    jne short 07970h                          ; 75 69
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 0c fc
+    mov cl, al                                ; 88 c1
+    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
+    je short 0792bh                           ; 74 14
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0092eh                            ; b8 2e 09
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 4e a0
+    add sp, strict byte 00006h                ; 83 c4 06
+    test cl, cl                               ; 84 c9
+    jne short 07992h                          ; 75 63
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 e4 fb
+    test al, al                               ; 84 c0
+    jne short 07992h                          ; 75 57
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-004h]                         ; 8d 46 fc
+    call 0751bh                               ; e8 d8 fb
+    test al, al                               ; 84 c0
+    jne short 07992h                          ; 75 4b
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-008h]                         ; 8d 46 f8
+    call 0751bh                               ; e8 cc fb
+    test al, al                               ; 84 c0
+    jne short 07992h                          ; 75 3f
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp+00ch], al                    ; 88 46 0c
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    mov byte [bp+010h], al                    ; 88 46 10
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp+00eh], al                    ; 88 46 0e
+    jmp short 078eah                          ; eb 83
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 07972h                          ; 75 07
+    mov ax, 000e6h                            ; b8 e6 00
+    jmp short 07975h                          ; eb 05
+    jmp short 07992h                          ; eb 20
+    mov ax, 000e7h                            ; b8 e7 00
+    call 074e3h                               ; e8 6b fb
+    mov cl, al                                ; 88 c1
+    test cl, cl                               ; 84 c9
+    jne short 0798eh                          ; 75 10
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-006h]                         ; 8d 46 fa
+    call 0751bh                               ; e8 95 fb
+    cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
+    je short 0798eh                           ; 74 02
+    mov CL, strict byte 001h                  ; b1 01
+    test cl, cl                               ; 84 c9
+    je short 079fch                           ; 74 6a
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 003h                  ; c6 46 13 03
+    jmp short 079fch                          ; eb 60
+    mov al, byte [bp+00dh]                    ; 8a 46 0d
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 0095ah                            ; b8 5a 09
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c9 9f
+    add sp, strict byte 00006h                ; 83 c4 06
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    jmp short 07a14h                          ; eb 5a
+    mov si, word [bp+00ch]                    ; 8b 76 0c
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00022h                ; ba 22 00
+    mov ax, cx                                ; 89 c8
+    call 0167ch                               ; e8 b5 9c
+    mov bx, word [bp+014h]                    ; 8b 5e 14
+    mov dx, strict word 00024h                ; ba 24 00
+    mov ax, cx                                ; 89 c8
+    call 0167ch                               ; e8 aa 9c
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01652h                               ; e8 78 9c
+    mov ah, al                                ; 88 c4
+    test si, si                               ; 85 f6
+    jne short 079eeh                          ; 75 0e
+    cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
+    jne short 079eeh                          ; 75 08
+    test AL, strict byte 080h                 ; a8 80
+    je short 079f0h                           ; 74 06
+    and AL, strict byte 07fh                  ; 24 7f
+    jmp short 079f0h                          ; eb 02
+    or AL, strict byte 080h                   ; 0c 80
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00027h                ; ba 27 00
+    mov ax, cx                                ; 89 c8
+    call 01660h                               ; e8 64 9c
+    jmp short 07a14h                          ; eb 16
+    mov ax, 00974h                            ; b8 74 09
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 6d 9f
+    add sp, strict byte 00004h                ; 83 c4 04
+    or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
+    mov byte [bp+013h], 001h                  ; c6 46 13 01
+    mov ax, strict word 00047h                ; b8 47 00
+    call 07578h                               ; e8 5e fb
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_int17_function:                             ; 0xf7a20 LB 0xac
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push ax                                   ; 50
+    sti                                       ; fb
+    mov dx, word [bp+00eh]                    ; 8b 56 0e
+    sal dx, 1                                 ; d1 e2
+    add dx, strict byte 00008h                ; 83 c2 08
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 3a 9c
+    mov bx, ax                                ; 89 c3
+    mov si, ax                                ; 89 c6
+    cmp byte [bp+013h], 003h                  ; 80 7e 13 03
+    jnc short 07a4ah                          ; 73 0c
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jnc short 07a4ah                          ; 73 04
+    test bx, bx                               ; 85 db
+    jnbe short 07a4dh                         ; 77 03
+    jmp near 07ac2h                           ; e9 75 00
+    mov dx, ax                                ; 89 c2
+    add dx, strict byte 00078h                ; 83 c2 78
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 fa 9b
+    mov ch, al                                ; 88 c5
+    xor cl, cl                                ; 30 c9
+    cmp byte [bp+013h], 000h                  ; 80 7e 13 00
+    jne short 07a8eh                          ; 75 2c
+    mov al, byte [bp+012h]                    ; 8a 46 12
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea dx, [bx+002h]                         ; 8d 57 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-004h], ax                    ; 89 46 fc
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    or AL, strict byte 001h                   ; 0c 01
+    out DX, AL                                ; ee
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 0feh                  ; 24 fe
+    out DX, AL                                ; ee
+    lea dx, [si+001h]                         ; 8d 54 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 040h                 ; a8 40
+    je short 07a8eh                           ; 74 07
+    test cx, cx                               ; 85 c9
+    je short 07a8eh                           ; 74 03
+    dec cx                                    ; 49
+    jmp short 07a7dh                          ; eb ef
+    cmp byte [bp+013h], 001h                  ; 80 7e 13 01
+    jne short 07aa9h                          ; 75 15
+    lea dx, [si+002h]                         ; 8d 54 02
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov word [bp-004h], ax                    ; 89 46 fc
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    and AL, strict byte 0fbh                  ; 24 fb
+    out DX, AL                                ; ee
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    or AL, strict byte 004h                   ; 0c 04
+    out DX, AL                                ; ee
+    lea dx, [si+001h]                         ; 8d 54 01
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    xor AL, strict byte 048h                  ; 34 48
+    mov byte [bp+013h], al                    ; 88 46 13
+    test cx, cx                               ; 85 c9
+    jne short 07abch                          ; 75 04
+    or byte [bp+013h], 001h                   ; 80 4e 13 01
+    and byte [bp+01ch], 0feh                  ; 80 66 1c fe
+    jmp short 07ac6h                          ; eb 04
+    or byte [bp+01ch], 001h                   ; 80 4e 1c 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+wait_:                                       ; 0xf7acc LB 0xb2
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00ah], dl                    ; 88 56 f6
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    pushfw                                    ; 9c
+    pop ax                                    ; 58
+    mov word [bp-010h], ax                    ; 89 46 f0
+    sti                                       ; fb
+    xor cx, cx                                ; 31 c9
+    mov dx, 0046ch                            ; ba 6c 04
+    xor ax, ax                                ; 31 c0
+    call 0168ah                               ; e8 9b 9b
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov bx, dx                                ; 89 d3
+    hlt                                       ; f4
+    mov dx, 0046ch                            ; ba 6c 04
+    xor ax, ax                                ; 31 c0
+    call 0168ah                               ; e8 8d 9b
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov di, dx                                ; 89 d7
+    cmp dx, bx                                ; 39 da
+    jnbe short 07b0dh                         ; 77 07
+    jne short 07b14h                          ; 75 0c
+    cmp ax, word [bp-00eh]                    ; 3b 46 f2
+    jbe short 07b14h                          ; 76 07
+    sub ax, word [bp-00eh]                    ; 2b 46 f2
+    sbb dx, bx                                ; 19 da
+    jmp short 07b1fh                          ; eb 0b
+    cmp dx, bx                                ; 39 da
+    jc short 07b1fh                           ; 72 07
+    jne short 07b23h                          ; 75 09
+    cmp ax, word [bp-00eh]                    ; 3b 46 f2
+    jnc short 07b23h                          ; 73 04
+    sub si, ax                                ; 29 c6
+    sbb cx, dx                                ; 19 d1
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov bx, di                                ; 89 fb
+    mov ax, 00100h                            ; b8 00 01
+    int 016h                                  ; cd 16
+    je short 07b37h                           ; 74 05
+    mov AL, strict byte 001h                  ; b0 01
+    jmp near 07b39h                           ; e9 02 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    test al, al                               ; 84 c0
+    je short 07b63h                           ; 74 26
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    int 016h                                  ; cd 16
+    xchg ah, al                               ; 86 c4
+    mov dl, al                                ; 88 c2
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00996h                            ; b8 96 09
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 20 9e
+    add sp, strict byte 00006h                ; 83 c4 06
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    je short 07b63h                           ; 74 04
+    mov al, dl                                ; 88 d0
+    jmp short 07b75h                          ; eb 12
+    test cx, cx                               ; 85 c9
+    jnle short 07af4h                         ; 7f 8d
+    jne short 07b6dh                          ; 75 04
+    test si, si                               ; 85 f6
+    jnbe short 07af4h                         ; 77 87
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    push ax                                   ; 50
+    popfw                                     ; 9d
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_logo_byte_:                             ; 0xf7b7e LB 0x16
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+read_logo_word_:                             ; 0xf7b94 LB 0x14
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    xor ah, ah                                ; 30 e4
+    or ah, 001h                               ; 80 cc 01
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    in ax, DX                                 ; ed
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+print_detected_harddisks_:                   ; 0xf7ba8 LB 0x15a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 b3 9a
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    xor ch, ch                                ; 30 ed
+    mov byte [bp-00ch], ch                    ; 88 6e f4
+    mov dx, 00304h                            ; ba 04 03
+    call 01652h                               ; e8 86 9a
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    xor cl, cl                                ; 30 c9
+    cmp cl, byte [bp-00ah]                    ; 3a 4e f6
+    jnc short 07c34h                          ; 73 5e
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    mov dx, ax                                ; 89 c2
+    add dx, 00305h                            ; 81 c2 05 03
+    mov ax, si                                ; 89 f0
+    call 01652h                               ; e8 6d 9a
+    mov bl, al                                ; 88 c3
+    cmp AL, strict byte 00ch                  ; 3c 0c
+    jc short 07c16h                           ; 72 2b
+    test ch, ch                               ; 84 ed
+    jne short 07bffh                          ; 75 10
+    mov ax, 009a7h                            ; b8 a7 09
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 7c 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CH, strict byte 001h                  ; b5 01
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    push ax                                   ; 50
+    mov ax, 009bch                            ; b8 bc 09
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 66 9d
+    add sp, strict byte 00006h                ; 83 c4 06
+    jmp near 07cc8h                           ; e9 b2 00
+    cmp AL, strict byte 008h                  ; 3c 08
+    jc short 07c37h                           ; 72 1d
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07c32h                          ; 75 12
+    mov ax, 009cfh                            ; b8 cf 09
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 4b 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    jmp short 07bffh                          ; eb cb
+    jmp near 07ccdh                           ; e9 96 00
+    cmp AL, strict byte 004h                  ; 3c 04
+    jnc short 07c55h                          ; 73 1a
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 07c55h                          ; 75 14
+    mov ax, 009e4h                            ; b8 e4 09
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 2a 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
+    jmp short 07c6eh                          ; eb 19
+    cmp bl, 004h                              ; 80 fb 04
+    jc short 07c6eh                           ; 72 14
+    test ch, ch                               ; 84 ed
+    jne short 07c6eh                          ; 75 10
+    mov ax, 009f6h                            ; b8 f6 09
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 0d 9d
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov CH, strict byte 001h                  ; b5 01
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    inc ax                                    ; 40
+    push ax                                   ; 50
+    mov ax, 00a0ah                            ; b8 0a 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 f7 9c
+    add sp, strict byte 00006h                ; 83 c4 06
+    cmp bl, 004h                              ; 80 fb 04
+    jc short 07c8ah                           ; 72 03
+    sub bl, 004h                              ; 80 eb 04
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    cwd                                       ; 99
+    db  02bh, 0c2h
+    ; sub ax, dx                                ; 2b c2
+    sar ax, 1                                 ; d1 f8
+    test ax, ax                               ; 85 c0
+    je short 07c9ch                           ; 74 05
+    mov ax, 00a14h                            ; b8 14 0a
+    jmp short 07c9fh                          ; eb 03
+    mov ax, 00a1fh                            ; b8 1f 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 cf 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 00002h                ; bb 02 00
+    cwd                                       ; 99
+    idiv bx                                   ; f7 fb
+    test dx, dx                               ; 85 d2
+    je short 07cbdh                           ; 74 05
+    mov ax, 00a28h                            ; b8 28 0a
+    jmp short 07cc0h                          ; eb 03
+    mov ax, 00a2eh                            ; b8 2e 0a
+    push ax                                   ; 50
+    push bx                                   ; 53
+    call 01976h                               ; e8 b1 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    db  0feh, 0c1h
+    ; inc cl                                    ; fe c1
+    jmp near 07bd1h                           ; e9 04 ff
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 07cebh                          ; 75 18
+    test ch, ch                               ; 84 ed
+    jne short 07cebh                          ; 75 14
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07cebh                          ; 75 0e
+    mov ax, 00a35h                            ; b8 35 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 8e 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov ax, 00a49h                            ; b8 49 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 80 9c
+    add sp, strict byte 00004h                ; 83 c4 04
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+get_boot_drive_:                             ; 0xf7d02 LB 0x28
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bl, al                                ; 88 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 5c 99
+    mov dx, 00304h                            ; ba 04 03
+    call 01652h                               ; e8 3a 99
+    sub bl, 002h                              ; 80 eb 02
+    cmp bl, al                                ; 38 c3
+    jc short 07d21h                           ; 72 02
+    mov BL, strict byte 0ffh                  ; b3 ff
+    mov al, bl                                ; 88 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+show_logo_:                                  ; 0xf7d2a LB 0x242
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 30 99
+    mov si, ax                                ; 89 c6
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    xor cx, cx                                ; 31 c9
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 0d3h                  ; b0 d3
+    out strict byte 040h, AL                  ; e6 40
+    mov AL, strict byte 048h                  ; b0 48
+    out strict byte 040h, AL                  ; e6 40
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 07b94h                               ; e8 3b fe
+    cmp ax, 066bbh                            ; 3d bb 66
+    jne short 07d70h                          ; 75 12
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    lea di, [bp-018h]                         ; 8d 7e e8
+    mov ax, 04f03h                            ; b8 03 4f
+    int 010h                                  ; cd 10
+    mov word [es:di], bx                      ; 26 89 1d
+    cmp ax, strict word 0004fh                ; 3d 4f 00
+    je short 07d73h                           ; 74 03
+    jmp near 07e39h                           ; e9 c6 00
+    mov al, cl                                ; 88 c8
+    add AL, strict byte 004h                  ; 04 04
+    xor ah, ah                                ; 30 e4
+    call 07b7eh                               ; e8 02 fe
+    mov bl, al                                ; 88 c3
+    mov byte [bp-014h], al                    ; 88 46 ec
+    mov al, cl                                ; 88 c8
+    add AL, strict byte 005h                  ; 04 05
+    xor ah, ah                                ; 30 e4
+    call 07b7eh                               ; e8 f4 fd
+    mov bh, al                                ; 88 c7
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, cl                                ; 88 c8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 07b94h                               ; e8 fc fd
+    mov dx, ax                                ; 89 c2
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov al, cl                                ; 88 c8
+    add AL, strict byte 006h                  ; 04 06
+    xor ah, ah                                ; 30 e4
+    call 07b7eh                               ; e8 d8 fd
+    mov byte [bp-010h], al                    ; 88 46 f0
+    test bl, bl                               ; 84 db
+    jne short 07db5h                          ; 75 08
+    test bh, bh                               ; 84 ff
+    jne short 07db5h                          ; 75 04
+    test dx, dx                               ; 85 d2
+    je short 07d70h                           ; 74 bb
+    mov bx, 00142h                            ; bb 42 01
+    mov ax, 04f02h                            ; b8 02 4f
+    int 010h                                  ; cd 10
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    je short 07de8h                           ; 74 25
+    xor cx, cx                                ; 31 c9
+    jmp short 07dcdh                          ; eb 06
+    inc cx                                    ; 41
+    cmp cx, strict byte 00010h                ; 83 f9 10
+    jnbe short 07defh                         ; 77 22
+    mov ax, cx                                ; 89 c8
+    or ah, 002h                               ; 80 cc 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 07acch                               ; e8 ee fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07dc7h                          ; 75 e5
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    jmp short 07defh                          ; eb 07
+    mov ax, 00210h                            ; b8 10 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07e0ah                          ; 75 15
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    shr ax, CL                                ; d3 e8
+    mov dx, strict word 00001h                ; ba 01 00
+    call 07acch                               ; e8 ca fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07e0ah                          ; 75 04
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    je short 07e39h                           ; 74 29
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07e39h                          ; 75 23
+    mov cx, strict word 00010h                ; b9 10 00
+    jmp short 07e20h                          ; eb 05
+    dec cx                                    ; 49
+    test cx, cx                               ; 85 c9
+    jbe short 07e39h                          ; 76 19
+    mov ax, cx                                ; 89 c8
+    or ah, 002h                               ; 80 cc 02
+    mov dx, 003b8h                            ; ba b8 03
+    out DX, ax                                ; ef
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00001h                ; b8 01 00
+    call 07acch                               ; e8 9b fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07e1bh                          ; 75 e6
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    xor bx, bx                                ; 31 db
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, si                                ; 89 f0
+    call 01660h                               ; e8 1d 98
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
+    je short 07e63h                           ; 74 14
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    jne short 07e91h                          ; 75 3c
+    cmp byte [bp-012h], 000h                  ; 80 7e ee 00
+    jne short 07e91h                          ; 75 36
+    cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
+    je short 07e66h                           ; 74 05
+    jmp short 07e91h                          ; eb 2e
+    jmp near 07f4dh                           ; e9 e7 00
+    cmp byte [bp-010h], 002h                  ; 80 7e f0 02
+    jne short 07e7ah                          ; 75 0e
+    mov ax, 00a4bh                            ; b8 4b 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 ff 9a
+    add sp, strict byte 00004h                ; 83 c4 04
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jne short 07e91h                          ; 75 11
+    mov dx, strict word 00001h                ; ba 01 00
+    mov ax, 000c0h                            ; b8 c0 00
+    call 07acch                               ; e8 43 fc
+    cmp AL, strict byte 086h                  ; 3c 86
+    jne short 07e91h                          ; 75 04
+    mov byte [bp-00ch], 001h                  ; c6 46 f4 01
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    je short 07e63h                           ; 74 cc
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    mov ax, 00100h                            ; b8 00 01
+    mov cx, 01000h                            ; b9 00 10
+    int 010h                                  ; cd 10
+    mov ax, 00700h                            ; b8 00 07
+    mov BH, strict byte 007h                  ; b7 07
+    db  033h, 0c9h
+    ; xor cx, cx                                ; 33 c9
+    mov dx, 0184fh                            ; ba 4f 18
+    int 010h                                  ; cd 10
+    mov ax, 00200h                            ; b8 00 02
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    db  033h, 0d2h
+    ; xor dx, dx                                ; 33 d2
+    int 010h                                  ; cd 10
+    mov ax, 00a6dh                            ; b8 6d 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 b3 9a
+    add sp, strict byte 00004h                ; 83 c4 04
+    call 07ba8h                               ; e8 df fc
+    mov ax, 00ab1h                            ; b8 b1 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 a2 9a
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov dx, strict word 00001h                ; ba 01 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 07acch                               ; e8 ec fb
+    mov cl, al                                ; 88 c1
+    test al, al                               ; 84 c0
+    je short 07ed7h                           ; 74 f1
+    cmp AL, strict byte 030h                  ; 3c 30
+    je short 07f3ah                           ; 74 50
+    cmp cl, 002h                              ; 80 f9 02
+    jc short 07f13h                           ; 72 24
+    cmp cl, 009h                              ; 80 f9 09
+    jnbe short 07f13h                         ; 77 1f
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    call 07d02h                               ; e8 07 fe
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 07f01h                          ; 75 02
+    jmp short 07ed7h                          ; eb d6
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dx, 0037ch                            ; ba 7c 03
+    mov ax, si                                ; 89 f0
+    call 01660h                               ; e8 53 97
+    mov byte [bp-00eh], 002h                  ; c6 46 f2 02
+    jmp short 07f3ah                          ; eb 27
+    cmp cl, 02eh                              ; 80 f9 2e
+    je short 07f28h                           ; 74 10
+    cmp cl, 026h                              ; 80 f9 26
+    je short 07f2eh                           ; 74 11
+    cmp cl, 021h                              ; 80 f9 21
+    jne short 07f34h                          ; 75 12
+    mov byte [bp-00eh], 001h                  ; c6 46 f2 01
+    jmp short 07f3ah                          ; eb 12
+    mov byte [bp-00eh], 003h                  ; c6 46 f2 03
+    jmp short 07f3ah                          ; eb 0c
+    mov byte [bp-00eh], 004h                  ; c6 46 f2 04
+    jmp short 07f3ah                          ; eb 06
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    je short 07ed7h                           ; 74 9d
+    mov bl, byte [bp-00eh]                    ; 8a 5e f2
+    xor bh, bh                                ; 30 ff
+    mov dx, 0037dh                            ; ba 7d 03
+    mov ax, si                                ; 89 f0
+    call 01660h                               ; e8 19 97
+    mov AL, strict byte 003h                  ; b0 03
+    mov AH, strict byte 000h                  ; b4 00
+    int 010h                                  ; cd 10
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    mov ds, ax                                ; 8e d8
+    call 0edbfh                               ; e8 60 6e
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+delay_boot_:                                 ; 0xf7f6c LB 0x6e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push dx                                   ; 52
+    mov bx, ax                                ; 89 c3
+    test ax, ax                               ; 85 c0
+    je short 07fd3h                           ; 74 5c
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 0d3h                  ; b0 d3
+    out strict byte 040h, AL                  ; e6 40
+    mov AL, strict byte 048h                  ; b0 48
+    out strict byte 040h, AL                  ; e6 40
+    push bx                                   ; 53
+    mov ax, 00afbh                            ; b8 fb 0a
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 e7 99
+    add sp, strict byte 00006h                ; 83 c4 06
+    test bx, bx                               ; 85 db
+    jbe short 07fb0h                          ; 76 1a
+    push bx                                   ; 53
+    mov ax, 00b19h                            ; b8 19 0b
+    push ax                                   ; 50
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 d4 99
+    add sp, strict byte 00006h                ; 83 c4 06
+    xor dx, dx                                ; 31 d2
+    mov ax, strict word 00040h                ; b8 40 00
+    call 07acch                               ; e8 1f fb
+    dec bx                                    ; 4b
+    jmp short 07f92h                          ; eb e2
+    mov bx, 00a49h                            ; bb 49 0a
+    push bx                                   ; 53
+    mov bx, strict word 00002h                ; bb 02 00
+    push bx                                   ; 53
+    call 01976h                               ; e8 bb 99
+    add sp, strict byte 00004h                ; 83 c4 04
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    pushad                                    ; 66 60
+    push DS                                   ; 1e
+    mov ds, ax                                ; 8e d8
+    call 0edbfh                               ; e8 ef 6d
+    pop DS                                    ; 1f
+    popad                                     ; 66 61
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop dx                                    ; 5a
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+scsi_cmd_data_in_:                           ; 0xf7fda LB 0xd5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 07ff0h                          ; 75 f7
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 08004h                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 08006h                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 08010h                               ; e2 fa
+    mov cx, ax                                ; 89 c1
+    and cx, 000f0h                            ; 81 e1 f0 00
+    or cx, di                                 ; 09 f9
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 08035h                               ; e2 fa
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp cx, ax                                ; 39 c1
+    jnc short 08057h                          ; 73 0e
+    les di, [bp-00ah]                         ; c4 7e f6
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di]                      ; 26 8a 05
+    mov dx, si                                ; 89 f2
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 08040h                          ; eb e9
+    mov dx, si                                ; 89 f2
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 08057h                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 08072h                           ; 74 0e
+    lea dx, [si+003h]                         ; 8d 54 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov di, strict word 00004h                ; bf 04 00
+    jmp short 080a4h                          ; eb 32
+    lea dx, [si+001h]                         ; 8d 54 01
+    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
+    jne short 08081h                          ; 75 06
+    cmp bx, 08000h                            ; 81 fb 00 80
+    jbe short 0809bh                          ; 76 1a
+    mov cx, 08000h                            ; b9 00 80
+    les di, [bp+006h]                         ; c4 7e 06
+    rep insb                                  ; f3 6c
+    add bx, 08000h                            ; 81 c3 00 80
+    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 08072h                          ; eb d7
+    mov cx, bx                                ; 89 d9
+    les di, [bp+006h]                         ; c4 7e 06
+    rep insb                                  ; f3 6c
+    xor di, di                                ; 31 ff
+    mov ax, di                                ; 89 f8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ah                               ; c2 0a 00
+scsi_cmd_data_out_:                          ; 0xf80af LB 0xd5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov di, ax                                ; 89 c7
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00ah], bx                    ; 89 5e f6
+    mov word [bp-008h], cx                    ; 89 4e f8
+    mov bx, word [bp+00ah]                    ; 8b 5e 0a
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 080c5h                          ; 75 f7
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 080d9h                          ; 75 04
+    xor ax, ax                                ; 31 c0
+    jmp short 080dbh                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    mov si, ax                                ; 89 c6
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 080e5h                               ; e2 fa
+    mov cx, ax                                ; 89 c1
+    and cx, 000f0h                            ; 81 e1 f0 00
+    or cx, si                                 ; 09 f1
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov AL, strict byte 001h                  ; b0 01
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, bl                                ; 88 d8
+    out DX, AL                                ; ee
+    mov ax, bx                                ; 89 d8
+    mov dx, word [bp+00ch]                    ; 8b 56 0c
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 0810ah                               ; e2 fa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp+004h]                    ; 8a 46 04
+    xor ah, ah                                ; 30 e4
+    cmp cx, ax                                ; 39 c1
+    jnc short 0812ch                          ; 73 0e
+    les si, [bp-00ah]                         ; c4 76 f6
+    add si, cx                                ; 01 ce
+    mov al, byte [es:si]                      ; 26 8a 04
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 08115h                          ; eb e9
+    lea dx, [di+001h]                         ; 8d 55 01
+    cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
+    jne short 0813bh                          ; 75 06
+    cmp bx, 08000h                            ; 81 fb 00 80
+    jbe short 08156h                          ; 76 1b
+    mov cx, 08000h                            ; b9 00 80
+    les si, [bp+006h]                         ; c4 76 06
+    db  0f3h, 026h, 06eh
+    ; rep es outsb                              ; f3 26 6e
+    add bx, 08000h                            ; 81 c3 00 80
+    adc word [bp+00ch], strict byte 0ffffh    ; 83 56 0c ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+008h], ax                    ; 89 46 08
+    jmp short 0812ch                          ; eb d6
+    mov cx, bx                                ; 89 d9
+    les si, [bp+006h]                         ; c4 76 06
+    db  0f3h, 026h, 06eh
+    ; rep es outsb                              ; f3 26 6e
+    mov dx, di                                ; 89 fa
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 0815eh                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 08179h                           ; 74 0e
+    lea dx, [di+003h]                         ; 8d 55 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 0817bh                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ah                               ; c2 0a 00
+@scsi_read_sectors:                          ; 0xf8184 LB 0xe9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    sub AL, strict byte 008h                  ; 2c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 081b4h                          ; 76 15
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00b1eh                            ; b8 1e 0b
+    push ax                                   ; 50
+    mov ax, 00b30h                            ; b8 30 0b
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 c5 97
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov word [bp-01ah], 00088h                ; c7 46 e6 88 00
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
+    mov bl, byte [es:bx+0021eh]               ; 26 8a 9f 1e 02
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov cx, strict word 00009h                ; b9 09 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 0821fh                               ; e2 f8
+    push word [bp-008h]                       ; ff 76 f8
+    push word [bp-00ah]                       ; ff 76 f6
+    push word [es:si+00ah]                    ; 26 ff 74 0a
+    push word [es:si+008h]                    ; 26 ff 74 08
+    mov dx, strict word 00010h                ; ba 10 00
+    push dx                                   ; 52
+    mov dl, bl                                ; 88 da
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-01ah]                         ; 8d 5e e6
+    call 07fdah                               ; e8 95 fd
+    mov ah, al                                ; 88 c4
+    test al, al                               ; 84 c0
+    jne short 08260h                          ; 75 15
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@scsi_write_sectors:                         ; 0xf826d LB 0xe9
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00016h                ; 83 ec 16
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov al, byte [es:si+00ch]                 ; 26 8a 44 0c
+    sub AL, strict byte 008h                  ; 2c 08
+    mov byte [bp-006h], al                    ; 88 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jbe short 0829dh                          ; 76 15
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00b4fh                            ; b8 4f 0b
+    push ax                                   ; 50
+    mov ax, 00b30h                            ; b8 30 0b
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 dc 96
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
+    mov word [bp-01ah], 0008ah                ; c7 46 e6 8a 00
+    mov ax, word [es:si+006h]                 ; 26 8b 44 06
+    mov bx, word [es:si+004h]                 ; 26 8b 5c 04
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov word [bp-014h], bx                    ; 89 5e ec
+    mov word [bp-016h], cx                    ; 89 4e ea
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    mov ax, di                                ; 89 f8
+    xor dx, dx                                ; 31 d2
+    xchg ah, al                               ; 86 c4
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov byte [bp-00bh], 000h                  ; c6 46 f5 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov bx, si                                ; 89 f3
+    add bx, ax                                ; 01 c3
+    mov ax, word [es:bx+0021ch]               ; 26 8b 87 1c 02
+    mov bl, byte [es:bx+0021eh]               ; 26 8a 9f 1e 02
+    mov word [bp-00ah], di                    ; 89 7e f6
+    mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
+    mov cx, strict word 00009h                ; b9 09 00
+    sal word [bp-00ah], 1                     ; d1 66 f6
+    rcl word [bp-008h], 1                     ; d1 56 f8
+    loop 08308h                               ; e2 f8
+    push word [bp-008h]                       ; ff 76 f8
+    push word [bp-00ah]                       ; ff 76 f6
+    push word [es:si+00ah]                    ; 26 ff 74 0a
+    push word [es:si+008h]                    ; 26 ff 74 08
+    mov dx, strict word 00010h                ; ba 10 00
+    push dx                                   ; 52
+    mov dl, bl                                ; 88 da
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-01ah]                         ; 8d 5e e6
+    call 080afh                               ; e8 81 fd
+    mov ah, al                                ; 88 c4
+    test al, al                               ; 84 c0
+    jne short 08349h                          ; 75 15
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    mov word [es:si+01ch], dx                 ; 26 89 54 1c
+    mov al, ah                                ; 88 e0
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+scsi_cmd_packet_:                            ; 0xf8356 LB 0x170
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    mov di, ax                                ; 89 c7
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-00eh], bx                    ; 89 5e f2
+    mov word [bp-00ah], cx                    ; 89 4e f6
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 fc 92
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 083a1h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 aa 95
+    mov ax, 00b62h                            ; b8 62 0b
+    push ax                                   ; 50
+    mov ax, 00b72h                            ; b8 72 0b
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 de 95
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp near 084bbh                           ; e9 1a 01
+    sub di, strict byte 00008h                ; 83 ef 08
+    sal di, 1                                 ; d1 e7
+    sal di, 1                                 ; d1 e7
+    sub byte [bp-006h], 002h                  ; 80 6e fa 02
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    add di, si                                ; 01 f7
+    mov bx, word [es:di+0021ch]               ; 26 8b 9d 1c 02
+    mov al, byte [es:di+0021eh]               ; 26 8a 85 1e 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 083beh                          ; 75 f7
+    xor dx, bx                                ; 31 da
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    add ax, word [bp+004h]                    ; 03 46 04
+    mov cx, word [bp+008h]                    ; 8b 4e 08
+    adc cx, dx                                ; 11 d1
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov dx, word [es:si+020h]                 ; 26 8b 54 20
+    xor di, di                                ; 31 ff
+    add ax, dx                                ; 01 d0
+    mov word [bp-010h], ax                    ; 89 46 f0
+    adc di, cx                                ; 11 cf
+    mov dx, di                                ; 89 fa
+    mov cx, strict word 0000ch                ; b9 0c 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 083e9h                               ; e2 fa
+    and ax, 000f0h                            ; 25 f0 00
+    mov cl, byte [bp-006h]                    ; 8a 4e fa
+    xor ch, ch                                ; 30 ed
+    or cx, ax                                 ; 09 c1
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    mov al, cl                                ; 88 c8
+    out DX, AL                                ; ee
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    out DX, AL                                ; ee
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov dx, di                                ; 89 fa
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 08411h                               ; e2 fa
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    cmp cx, ax                                ; 39 c1
+    jnc short 08436h                          ; 73 11
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [bp-00eh]                    ; 8b 7e f2
+    add di, cx                                ; 01 cf
+    mov al, byte [es:di]                      ; 26 8a 05
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    inc cx                                    ; 41
+    jmp short 0841ch                          ; eb e6
+    mov dx, bx                                ; 89 da
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    test AL, strict byte 001h                 ; a8 01
+    jne short 08436h                          ; 75 f7
+    test AL, strict byte 002h                 ; a8 02
+    je short 08451h                           ; 74 0e
+    lea dx, [bx+003h]                         ; 8d 57 03
+    xor al, al                                ; 30 c0
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov dx, strict word 00003h                ; ba 03 00
+    jmp short 084bbh                          ; eb 6a
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    test ax, ax                               ; 85 c0
+    je short 08460h                           ; 74 08
+    lea dx, [bx+001h]                         ; 8d 57 01
+    mov cx, ax                                ; 89 c1
+    in AL, DX                                 ; ec
+    loop 0845dh                               ; e2 fd
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov word [es:si+01ah], ax                 ; 26 89 44 1a
+    mov ax, word [bp+008h]                    ; 8b 46 08
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    lea ax, [bx+001h]                         ; 8d 47 01
+    cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
+    jne short 08481h                          ; 75 07
+    cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
+    jbe short 0849eh                          ; 76 1d
+    mov dx, ax                                ; 89 c2
+    mov cx, 08000h                            ; b9 00 80
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insb                                  ; f3 6c
+    add word [bp+006h], 08000h                ; 81 46 06 00 80
+    adc word [bp+008h], strict byte 0ffffh    ; 83 56 08 ff
+    mov ax, es                                ; 8c c0
+    add ax, 00800h                            ; 05 00 08
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    jmp short 08471h                          ; eb d3
+    mov dx, ax                                ; 89 c2
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    les di, [bp+00ch]                         ; c4 7e 0c
+    rep insb                                  ; f3 6c
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
+    je short 084b9h                           ; 74 07
+    mov cx, word [es:si+020h]                 ; 26 8b 4c 20
+    in AL, DX                                 ; ec
+    loop 084b6h                               ; e2 fd
+    xor dx, dx                                ; 31 d2
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+scsi_enumerate_attached_devices_:            ; 0xf84c6 LB 0x4cb
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 0023eh                            ; 81 ec 3e 02
+    push ax                                   ; 50
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 92 91
+    mov di, 00122h                            ; bf 22 01
+    mov word [bp-016h], ax                    ; 89 46 ea
+    mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
+    jmp near 08904h                           ; e9 1a 04
+    cmp AL, strict byte 004h                  ; 3c 04
+    jc short 084f1h                           ; 72 03
+    jmp near 08987h                           ; e9 96 04
+    mov cx, strict word 00010h                ; b9 10 00
+    xor bx, bx                                ; 31 db
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-048h]                         ; 8d 46 b8
+    call 0a27ah                               ; e8 7c 1d
+    mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
+    mov byte [bp-047h], 010h                  ; c6 46 b9 10
+    mov byte [bp-03bh], 020h                  ; c6 46 c5 20
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov ax, strict word 00020h                ; b8 20 00
+    push ax                                   ; 50
+    lea dx, [bp-00248h]                       ; 8d 96 b8 fd
+    push SS                                   ; 16
+    push dx                                   ; 52
+    mov ax, strict word 00010h                ; b8 10 00
+    push ax                                   ; 50
+    mov dl, byte [bp-014h]                    ; 8a 56 ec
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-048h]                         ; 8d 5e b8
+    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
+    call 07fdah                               ; e8 ae fa
+    test al, al                               ; 84 c0
+    je short 08542h                           ; 74 12
+    mov ax, 00b92h                            ; b8 92 0b
+    push ax                                   ; 50
+    mov ax, 00bcbh                            ; b8 cb 0b
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 37 94
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, word [bp-00242h]                  ; 8b 86 be fd
+    mov bx, word [bp-00244h]                  ; 8b 9e bc fd
+    mov cx, word [bp-00246h]                  ; 8b 8e ba fd
+    mov dx, word [bp-00248h]                  ; 8b 96 b8 fd
+    xchg ah, al                               ; 86 c4
+    xchg bh, bl                               ; 86 df
+    xchg ch, cl                               ; 86 cd
+    xchg dh, dl                               ; 86 d6
+    xchg dx, ax                               ; 92
+    xchg bx, cx                               ; 87 cb
+    add dx, strict byte 00001h                ; 83 c2 01
+    mov word [bp-024h], dx                    ; 89 56 dc
+    adc cx, strict byte 00000h                ; 83 d1 00
+    mov word [bp-012h], cx                    ; 89 4e ee
+    adc bx, strict byte 00000h                ; 83 d3 00
+    mov word [bp-022h], bx                    ; 89 5e de
+    adc ax, strict word 00000h                ; 15 00 00
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov dh, byte [bp-00240h]                  ; 8a b6 c0 fd
+    xor dl, dl                                ; 30 d2
+    mov al, byte [bp-0023fh]                  ; 8a 86 c1 fd
+    xor ah, ah                                ; 30 e4
+    xor bx, bx                                ; 31 db
+    mov si, dx                                ; 89 d6
+    or si, ax                                 ; 09 c6
+    mov al, byte [bp-0023eh]                  ; 8a 86 c2 fd
+    xor dh, dh                                ; 30 f6
+    mov cx, strict word 00008h                ; b9 08 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 08590h                               ; e2 fa
+    or bx, ax                                 ; 09 c3
+    or dx, si                                 ; 09 f2
+    mov al, byte [bp-0023dh]                  ; 8a 86 c3 fd
+    xor ah, ah                                ; 30 e4
+    or bx, ax                                 ; 09 c3
+    mov word [bp-01ch], bx                    ; 89 5e e4
+    test dx, dx                               ; 85 d2
+    jne short 085afh                          ; 75 06
+    cmp bx, 00200h                            ; 81 fb 00 02
+    je short 085d2h                           ; 74 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 79 93
+    push dx                                   ; 52
+    push word [bp-01ch]                       ; ff 76 e4
+    push word [bp-014h]                       ; ff 76 ec
+    mov ax, 00beah                            ; b8 ea 0b
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 aa 93
+    add sp, strict byte 0000ah                ; 83 c4 0a
+    jmp near 088f8h                           ; e9 26 03
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 085e5h                           ; 72 0c
+    jbe short 085edh                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 085f5h                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 085f1h                           ; 74 0e
+    jmp short 0863ch                          ; eb 57
+    test al, al                               ; 84 c0
+    jne short 0863ch                          ; 75 53
+    mov BL, strict byte 090h                  ; b3 90
+    jmp short 085f7h                          ; eb 0a
+    mov BL, strict byte 098h                  ; b3 98
+    jmp short 085f7h                          ; eb 06
+    mov BL, strict byte 0a0h                  ; b3 a0
+    jmp short 085f7h                          ; eb 02
+    mov BL, strict byte 0a8h                  ; b3 a8
+    mov cl, bl                                ; 88 d9
+    add cl, 007h                              ; 80 c1 07
+    xor ch, ch                                ; 30 ed
+    mov ax, cx                                ; 89 c8
+    call 016aeh                               ; e8 ab 90
+    test al, al                               ; 84 c0
+    je short 0863ch                           ; 74 35
+    mov al, bl                                ; 88 d8
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 9e 90
+    mov dh, al                                ; 88 c6
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 95 90
+    mov ah, dh                                ; 88 f4
+    cwd                                       ; 99
+    mov si, ax                                ; 89 c6
+    mov word [bp-026h], dx                    ; 89 56 da
+    mov al, bl                                ; 88 d8
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 84 90
+    xor ah, ah                                ; 30 e4
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov ax, cx                                ; 89 c8
+    call 016aeh                               ; e8 7a 90
+    xor ah, ah                                ; 30 e4
+    mov word [bp-01ah], ax                    ; 89 46 e6
+    jmp near 08729h                           ; e9 ed 00
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov si, strict word 0000ch                ; be 0c 00
+    call 0a26ah                               ; e8 1c 1c
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov word [bp-02ch], bx                    ; 89 5e d4
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov word [bp-018h], dx                    ; 89 56 e8
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    test ax, ax                               ; 85 c0
+    jnbe short 08676h                         ; 77 15
+    je short 08666h                           ; 74 03
+    jmp near 086e9h                           ; e9 83 00
+    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
+    jnbe short 08676h                         ; 77 0a
+    jne short 08663h                          ; 75 f5
+    cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
+    jnbe short 08676h                         ; 77 02
+    jne short 086e9h                          ; 75 73
+    mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
+    mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov si, strict word 00006h                ; be 06 00
+    call 0a26ah                               ; e8 db 1b
+    mov si, word [bp-018h]                    ; 8b 76 e8
+    add si, dx                                ; 01 d6
+    mov word [bp-01eh], si                    ; 89 76 e2
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    adc dx, cx                                ; 11 ca
+    mov word [bp-036h], dx                    ; 89 56 ca
+    mov dx, word [bp-02ch]                    ; 8b 56 d4
+    adc dx, bx                                ; 11 da
+    mov word [bp-038h], dx                    ; 89 56 c8
+    mov dx, word [bp-02ah]                    ; 8b 56 d6
+    adc dx, ax                                ; 11 c2
+    mov word [bp-034h], dx                    ; 89 56 cc
+    mov ax, dx                                ; 89 d0
+    mov bx, word [bp-038h]                    ; 8b 5e c8
+    mov cx, word [bp-036h]                    ; 8b 4e ca
+    mov dx, si                                ; 89 f2
+    mov si, strict word 00008h                ; be 08 00
+    call 0a26ah                               ; e8 ab 1b
+    mov word [bp-02eh], bx                    ; 89 5e d2
+    mov word [bp-030h], cx                    ; 89 4e d0
+    mov word [bp-032h], dx                    ; 89 56 ce
+    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov bx, word [bp-038h]                    ; 8b 5e c8
+    mov cx, word [bp-036h]                    ; 8b 4e ca
+    mov dx, word [bp-01eh]                    ; 8b 56 e2
+    mov si, strict word 00010h                ; be 10 00
+    call 0a26ah                               ; e8 90 1b
+    mov si, word [bp-032h]                    ; 8b 76 ce
+    add si, dx                                ; 01 d6
+    adc cx, word [bp-030h]                    ; 13 4e d0
+    mov ax, word [bp-02eh]                    ; 8b 46 d2
+    adc ax, bx                                ; 11 d8
+    jmp short 08726h                          ; eb 3d
+    test ax, ax                               ; 85 c0
+    jnbe short 086ffh                         ; 77 12
+    jne short 0870bh                          ; 75 1c
+    cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
+    jnbe short 086ffh                         ; 77 0a
+    jne short 0870bh                          ; 75 14
+    cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
+    jnbe short 086ffh                         ; 77 02
+    jne short 0870bh                          ; 75 0c
+    mov word [bp-028h], 00080h                ; c7 46 d8 80 00
+    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
+    jmp short 08724h                          ; eb 19
+    mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
+    mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
+    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov cx, word [bp-012h]                    ; 8b 4e ee
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov si, strict word 0000bh                ; be 0b 00
+    call 0a26ah                               ; e8 46 1b
+    mov si, dx                                ; 89 d6
+    mov word [bp-026h], cx                    ; 89 4e da
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 008h                  ; 04 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
+    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov word [es:bx+022h], 0ff04h             ; 26 c7 47 22 04 ff
+    mov word [es:bx+024h], strict word 00000h ; 26 c7 47 24 00 00
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov word [es:bx+028h], ax                 ; 26 89 47 28
+    mov byte [es:bx+027h], 001h               ; 26 c6 47 27 01
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:bx+02ah], ax                 ; 26 89 47 2a
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov word [es:bx+02eh], ax                 ; 26 89 47 2e
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov word [es:bx+030h], ax                 ; 26 89 47 30
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov word [es:bx+034h], ax                 ; 26 89 47 34
+    cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
+    jne short 087a0h                          ; 75 06
+    cmp si, 00400h                            ; 81 fe 00 04
+    jbe short 087aeh                          ; 76 0e
+    mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
+    mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
+    jmp short 087b6h                          ; eb 08
+    mov word [es:bx+02ch], si                 ; 26 89 77 2c
+    mov word [es:bx+032h], si                 ; 26 89 77 32
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 72 91
+    push word [bp-020h]                       ; ff 76 e0
+    push word [bp-022h]                       ; ff 76 de
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-024h]                       ; ff 76 dc
+    push word [bp-01ah]                       ; ff 76 e6
+    push word [bp-028h]                       ; ff 76 d8
+    push word [bp-026h]                       ; ff 76 da
+    push si                                   ; 56
+    push word [bp-014h]                       ; ff 76 ec
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00c18h                            ; b8 18 0c
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 8b 91
+    add sp, strict byte 00018h                ; 83 c4 18
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:bx+03ch], ax                 ; 26 89 47 3c
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:bx+03ah], ax                 ; 26 89 47 3a
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:bx+038h], ax                 ; 26 89 47 38
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov word [es:bx+036h], ax                 ; 26 89 47 36
+    mov al, byte [es:di+001e2h]               ; 26 8a 85 e2 01
+    mov ah, byte [bp-00ch]                    ; 8a 66 f4
+    add ah, 008h                              ; 80 c4 08
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    mov byte [es:bx+001e3h], ah               ; 26 88 a7 e3 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [es:di+001e2h], al               ; 26 88 85 e2 01
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 11 8e
+    mov bl, al                                ; 88 c3
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 10 8e
+    inc byte [bp-00ch]                        ; fe 46 f4
+    jmp near 088edh                           ; e9 97 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 d2 90
+    push word [bp-014h]                       ; ff 76 ec
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, 00c46h                            ; b8 46 0c
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 01 91
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 008h                  ; 04 08
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
+    je short 0888ch                           ; 74 05
+    mov cx, strict word 00001h                ; b9 01 00
+    jmp short 0888eh                          ; eb 02
+    xor cx, cx                                ; 31 c9
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    xor ah, ah                                ; 30 e4
+    sal ax, 1                                 ; d1 e0
+    sal ax, 1                                 ; d1 e0
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
+    mov word [es:bx+0021ch], ax               ; 26 89 87 1c 02
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov byte [es:bx+0021eh], al               ; 26 88 87 1e 02
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov bx, di                                ; 89 fb
+    add bx, ax                                ; 01 c3
+    mov word [es:bx+022h], 00504h             ; 26 c7 47 22 04 05
+    mov byte [es:bx+024h], cl                 ; 26 88 4f 24
+    mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
+    mov al, byte [es:di+001f3h]               ; 26 8a 85 f3 01
+    mov ah, byte [bp-00ch]                    ; 8a 66 f4
+    add ah, 008h                              ; 80 c4 08
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    add bx, di                                ; 01 fb
+    mov byte [es:bx+001f4h], ah               ; 26 88 a7 f4 01
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [es:di+001f3h], al               ; 26 88 85 f3 01
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov byte [es:di+0022ch], al               ; 26 88 85 2c 02
+    inc word [bp-014h]                        ; ff 46 ec
+    cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
+    jl short 08904h                           ; 7c 03
+    jmp near 08987h                           ; e9 83 00
+    mov byte [bp-048h], 012h                  ; c6 46 b8 12
+    xor al, al                                ; 30 c0
+    mov byte [bp-047h], al                    ; 88 46 b9
+    mov byte [bp-046h], al                    ; 88 46 ba
+    mov byte [bp-045h], al                    ; 88 46 bb
+    mov byte [bp-044h], 005h                  ; c6 46 bc 05
+    mov byte [bp-043h], al                    ; 88 46 bd
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov ax, strict word 00005h                ; b8 05 00
+    push ax                                   ; 50
+    lea dx, [bp-00248h]                       ; 8d 96 b8 fd
+    push SS                                   ; 16
+    push dx                                   ; 52
+    mov ax, strict word 00006h                ; b8 06 00
+    push ax                                   ; 50
+    mov dl, byte [bp-014h]                    ; 8a 56 ec
+    xor dh, dh                                ; 30 f6
+    mov cx, ss                                ; 8c d1
+    lea bx, [bp-048h]                         ; 8d 5e b8
+    mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
+    call 07fdah                               ; e8 9e f6
+    test al, al                               ; 84 c0
+    je short 08952h                           ; 74 12
+    mov ax, 00b92h                            ; b8 92 0b
+    push ax                                   ; 50
+    mov ax, 00bb2h                            ; b8 b2 0b
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 27 90
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov al, byte [es:di+0022ch]               ; 26 8a 85 2c 02
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
+    jne short 0896eh                          ; 75 0a
+    test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
+    jne short 0896eh                          ; 75 03
+    jmp near 084eah                           ; e9 7c fb
+    test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
+    je short 08978h                           ; 74 03
+    jmp near 088edh                           ; e9 75 ff
+    mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
+    and AL, strict byte 01fh                  ; 24 1f
+    cmp AL, strict byte 005h                  ; 3c 05
+    jne short 08985h                          ; 75 03
+    jmp near 08856h                           ; e9 d1 fe
+    jmp short 08975h                          ; eb ee
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_scsi_init:                                  ; 0xf8991 LB 0x66
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 d1 8c
+    mov bx, 00122h                            ; bb 22 01
+    mov es, ax                                ; 8e c0
+    mov byte [es:bx+0022ch], 000h             ; 26 c6 87 2c 02 00
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 00432h                            ; ba 32 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 089c1h                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 00433h                            ; ba 33 04
+    out DX, AL                                ; ee
+    mov ax, 00430h                            ; b8 30 04
+    call 084c6h                               ; e8 05 fb
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 00436h                            ; ba 36 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 089dah                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 00437h                            ; ba 37 04
+    out DX, AL                                ; ee
+    mov ax, 00434h                            ; b8 34 04
+    call 084c6h                               ; e8 ec fa
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, 0043ah                            ; ba 3a 04
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp AL, strict byte 055h                  ; 3c 55
+    jne short 089f3h                          ; 75 0c
+    xor al, al                                ; 30 c0
+    mov dx, 0043bh                            ; ba 3b 04
+    out DX, AL                                ; ee
+    mov ax, 00438h                            ; b8 38 04
+    call 084c6h                               ; e8 d3 fa
+    mov sp, bp                                ; 89 ec
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_ctrl_extract_bits_:                     ; 0xf89f7 LB 0x1c
+    push si                                   ; 56
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov si, ax                                ; 89 c6
+    and ax, bx                                ; 21 d8
+    and dx, cx                                ; 21 ca
+    mov cl, byte [bp+006h]                    ; 8a 4e 06
+    xor ch, ch                                ; 30 ed
+    jcxz 08a0eh                               ; e3 06
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 08a08h                               ; e2 fa
+    pop bp                                    ; 5d
+    pop si                                    ; 5e
+    retn 00002h                               ; c2 02 00
+ahci_addr_to_phys_:                          ; 0xf8a13 LB 0x1e
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 08a21h                               ; e2 fa
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    pop bp                                    ; 5d
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+ahci_port_cmd_sync_:                         ; 0xf8a31 LB 0x159
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    mov si, ax                                ; 89 c6
+    mov cx, dx                                ; 89 d1
+    mov dl, bl                                ; 88 da
+    mov es, cx                                ; 8e c1
+    mov al, byte [es:si+00262h]               ; 26 8a 84 62 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 08a54h                          ; 75 03
+    jmp near 08b82h                           ; e9 2e 01
+    mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
+    xor ah, ah                                ; 30 e4
+    xor di, di                                ; 31 ff
+    or di, 00080h                             ; 81 cf 80 00
+    xor dh, dh                                ; 30 f6
+    or di, dx                                 ; 09 d7
+    mov word [es:si], di                      ; 26 89 3c
+    mov word [es:si+002h], ax                 ; 26 89 44 02
+    mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    lea ax, [si+00080h]                       ; 8d 84 80 00
+    mov dx, cx                                ; 89 ca
+    call 08a13h                               ; e8 92 ff
+    mov es, cx                                ; 8e c1
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov word [es:si+00ah], dx                 ; 26 89 54 0a
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    mov di, ax                                ; 89 c7
+    sal di, CL                                ; d3 e7
+    lea ax, [di+00118h]                       ; 8d 85 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea si, [bx+004h]                         ; 8d 77 04
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 011h                   ; 0c 11
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [di+00138h]                       ; 8d 85 38 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, strict word 00001h                ; b8 01 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    add ax, 00110h                            ; 05 10 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test dh, 040h                             ; f6 c6 40
+    jne short 08b14h                          ; 75 04
+    test AL, strict byte 001h                 ; a8 01
+    je short 08b18h                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08b1ah                          ; eb 02
+    xor al, al                                ; 30 c0
+    test al, al                               ; 84 c0
+    je short 08ae6h                           ; 74 c8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    mov di, ax                                ; 89 c7
+    sal di, CL                                ; d3 e7
+    lea ax, [di+00110h]                       ; 8d 85 10 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea si, [bx+004h]                         ; 8d 77 04
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [di+00118h]                       ; 8d 85 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov dx, si                                ; 89 f2
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0feh                  ; 24 fe
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_cmd_data_:                              ; 0xf8b8a LB 0x262
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    xor di, di                                ; 31 ff
+    mov es, dx                                ; 8e c2
+    mov bx, ax                                ; 89 c3
+    mov ax, word [es:bx+00232h]               ; 26 8b 87 32 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], di                    ; 89 7e f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    mov ax, word [es:bx+00eh]                 ; 26 8b 47 0e
+    mov word [bp-010h], ax                    ; 89 46 f0
+    mov ax, word [es:bx+010h]                 ; 26 8b 47 10
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov ax, 00080h                            ; b8 80 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a27ah                               ; e8 b2 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:di+00082h], al               ; 26 88 85 82 00
+    mov byte [es:di+00083h], 000h             ; 26 c6 85 83 00 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx]                      ; 26 8b 07
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00084h], al               ; 26 88 85 84 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00008h                ; be 08 00
+    call 0a26ah                               ; e8 5e 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00085h], dl               ; 26 88 95 85 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00010h                ; be 10 00
+    call 0a26ah                               ; e8 38 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00086h], dl               ; 26 88 95 86 00
+    mov byte [es:di+00087h], 040h             ; 26 c6 85 87 00 40
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00018h                ; be 18 00
+    call 0a26ah                               ; e8 0c 16
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00088h], dl               ; 26 88 95 88 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00020h                ; be 20 00
+    call 0a26ah                               ; e8 e6 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+00089h], dl               ; 26 88 95 89 00
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov bx, word [es:bx+004h]                 ; 26 8b 5f 04
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+002h]                 ; 26 8b 4c 02
+    mov dx, word [es:si]                      ; 26 8b 14
+    mov si, strict word 00028h                ; be 28 00
+    call 0a26ah                               ; e8 c0 15
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
+    mov byte [es:di+0008bh], 000h             ; 26 c6 85 8b 00 00
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov byte [es:di+0008ch], al               ; 26 88 85 8c 00
+    mov al, byte [bp-00fh]                    ; 8a 46 f1
+    mov byte [es:di+0008dh], al               ; 26 88 85 8d 00
+    mov word [es:di+00276h], strict word 00010h ; 26 c7 85 76 02 10 00
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    xor dx, dx                                ; 31 d2
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    xor cx, cx                                ; 31 c9
+    call 0a229h                               ; e8 4d 15
+    push dx                                   ; 52
+    push ax                                   ; 50
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    mov bx, word [es:bx+008h]                 ; 26 8b 5f 08
+    mov si, word [bp-014h]                    ; 8b 76 ec
+    mov cx, word [es:si+00ah]                 ; 26 8b 4c 0a
+    mov ax, 0026ah                            ; b8 6a 02
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a13eh                               ; e8 46 14
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
+    add dx, strict byte 0ffffh                ; 83 c2 ff
+    mov ax, word [es:di+00280h]               ; 26 8b 85 80 02
+    adc ax, strict word 0ffffh                ; 15 ff ff
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 004h                  ; b1 04
+    sal bx, CL                                ; d3 e3
+    mov word [es:bx+0010ch], dx               ; 26 89 97 0c 01
+    mov word [es:bx+0010eh], ax               ; 26 89 87 0e 01
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, CL                                ; d3 e3
+    mov ax, word [es:di+0027ah]               ; 26 8b 85 7a 02
+    mov dx, word [es:di+0027ch]               ; 26 8b 95 7c 02
+    mov word [es:bx+00100h], ax               ; 26 89 87 00 01
+    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov es, [bp-016h]                         ; 8e 46 ea
+    mov bx, si                                ; 89 f3
+    mov ax, word [es:bx+020h]                 ; 26 8b 47 20
+    test ax, ax                               ; 85 c0
+    je short 08d88h                           ; 74 39
+    dec ax                                    ; 48
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, CL                                ; d3 e3
+    mov word [es:bx+0010ch], ax               ; 26 89 87 0c 01
+    mov word [es:bx+0010eh], di               ; 26 89 bf 0e 01
+    mov bl, byte [es:di+00263h]               ; 26 8a 9d 63 02
+    xor bh, bh                                ; 30 ff
+    sal bx, CL                                ; d3 e3
+    mov ax, word [es:di+00264h]               ; 26 8b 85 64 02
+    mov dx, word [es:di+00266h]               ; 26 8b 95 66 02
+    mov word [es:bx+00100h], ax               ; 26 89 87 00 01
+    mov word [es:bx+00102h], dx               ; 26 89 97 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    cmp AL, strict byte 035h                  ; 3c 35
+    jne short 08d95h                          ; 75 06
+    mov byte [bp-008h], 040h                  ; c6 46 f8 40
+    jmp short 08dach                          ; eb 17
+    cmp AL, strict byte 0a0h                  ; 3c a0
+    jne short 08da8h                          ; 75 0f
+    or byte [bp-008h], 020h                   ; 80 4e f8 20
+    les bx, [bp-00eh]                         ; c4 5e f2
+    or byte [es:bx+00083h], 001h              ; 26 80 8f 83 00 01
+    jmp short 08dach                          ; eb 04
+    mov byte [bp-008h], 000h                  ; c6 46 f8 00
+    or byte [bp-008h], 005h                   ; 80 4e f8 05
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    call 08a31h                               ; e8 73 fc
+    mov cx, word [bp-00ch]                    ; 8b 4e f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
+    add bx, 00240h                            ; 81 c3 40 02
+    mov ax, word [bp-00eh]                    ; 8b 46 f2
+    add ax, 0026ah                            ; 05 6a 02
+    mov dx, cx                                ; 89 ca
+    call 0a1b5h                               ; e8 e2 13
+    mov es, cx                                ; 8e c1
+    mov al, byte [es:bx+003h]                 ; 26 8a 47 03
+    test al, al                               ; 84 c0
+    je short 08de2h                           ; 74 05
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 08de4h                          ; eb 02
+    xor ah, ah                                ; 30 e4
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_port_deinit_current_:                   ; 0xf8dec LB 0x183
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov di, ax                                ; 89 c7
+    mov word [bp-00eh], dx                    ; 89 56 f2
+    mov es, dx                                ; 8e c2
+    mov si, word [es:di+00260h]               ; 26 8b b5 60 02
+    mov al, byte [es:di+00262h]               ; 26 8a 85 62 02
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    je short 08e6fh                           ; 74 61
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    add ax, 00118h                            ; 05 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0eeh                  ; 24 ee
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    add ax, 00118h                            ; 05 18 01
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test ax, 0c011h                           ; a9 11 c0
+    je short 08e72h                           ; 74 07
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08e74h                          ; eb 05
+    jmp near 08f66h                           ; e9 f4 00
+    xor al, al                                ; 30 c0
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 08e41h                           ; 74 c9
+    mov cx, strict word 00020h                ; b9 20 00
+    xor bx, bx                                ; 31 db
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    call 0a27ah                               ; e8 f5 13
+    lea ax, [di+00080h]                       ; 8d 85 80 00
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    call 0a27ah                               ; e8 e6 13
+    lea ax, [di+00200h]                       ; 8d 85 00 02
+    mov cx, strict word 00060h                ; b9 60 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    call 0a27ah                               ; e8 d7 13
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    add ax, 00108h                            ; 05 08 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    add ax, 0010ch                            ; 05 0c 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    db  0feh, 0c4h
+    ; inc ah                                    ; fe c4
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    add ax, 00104h                            ; 05 04 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    add ax, 00114h                            ; 05 14 01
+    cwd                                       ; 99
+    mov cx, dx                                ; 89 d1
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov byte [es:di+00262h], 0ffh             ; 26 c6 85 62 02 ff
+    lea sp, [bp-008h]                         ; 8d 66 f8
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_port_init_:                             ; 0xf8f6f LB 0x250
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov word [bp-00ah], dx                    ; 89 56 f6
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    call 08dech                               ; e8 69 fe
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    add bx, strict byte 00004h                ; 83 c3 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    and AL, strict byte 0eeh                  ; 24 ee
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [bx+004h]                         ; 8d 57 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test ax, 0c011h                           ; a9 11 c0
+    je short 08ff6h                           ; 74 04
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 08ff8h                          ; eb 02
+    xor al, al                                ; 30 c0
+    cmp AL, strict byte 001h                  ; 3c 01
+    je short 08fc0h                           ; 74 c4
+    mov cx, strict word 00020h                ; b9 20 00
+    xor bx, bx                                ; 31 db
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a27ah                               ; e8 71 12
+    lea ax, [si+00080h]                       ; 8d 84 80 00
+    mov cx, strict word 00040h                ; b9 40 00
+    xor bx, bx                                ; 31 db
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a27ah                               ; e8 62 12
+    lea di, [si+00200h]                       ; 8d bc 00 02
+    mov cx, strict word 00060h                ; b9 60 00
+    xor bx, bx                                ; 31 db
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a27ah                               ; e8 51 12
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    xor bh, bh                                ; 30 ff
+    mov CL, strict byte 007h                  ; b1 07
+    sal bx, CL                                ; d3 e3
+    lea ax, [bx+00108h]                       ; 8d 87 08 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov cx, word [es:si+00260h]               ; 26 8b 8c 60 02
+    mov word [bp-00ch], cx                    ; 89 4e f4
+    mov cx, dx                                ; 89 d1
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 08a13h                               ; e8 bb f9
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+0010ch]                       ; 8d 87 0c 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00100h]                       ; 8d 87 00 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 08a13h                               ; e8 4f f9
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    add di, strict byte 00004h                ; 83 c7 04
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00104h]                       ; 8d 87 04 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00114h]                       ; 8d 87 14 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00110h]                       ; 8d 87 10 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov di, word [es:si+00260h]               ; 26 8b bc 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, di                                ; 89 fa
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea ax, [bx+00130h]                       ; 8d 87 30 01
+    cwd                                       ; 99
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov byte [es:si+00262h], al               ; 26 88 84 62 02
+    mov byte [es:si+00263h], 000h             ; 26 c6 84 63 02 00
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+@ahci_read_sectors:                          ; 0xf91bf LB 0xaa
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    les bx, [bp+004h]                         ; c4 5e 04
+    mov al, byte [es:bx+00ch]                 ; 26 8a 47 0c
+    xor ah, ah                                ; 30 e4
+    mov di, ax                                ; 89 c7
+    sub di, strict byte 0000ch                ; 83 ef 0c
+    cmp di, strict byte 00004h                ; 83 ff 04
+    jbe short 091eah                          ; 76 13
+    push di                                   ; 57
+    mov ax, 00c62h                            ; b8 62 0c
+    push ax                                   ; 50
+    mov ax, 00c74h                            ; b8 74 0c
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 8f 87
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor bx, bx                                ; 31 db
+    les si, [bp+004h]                         ; c4 76 04
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+00268h], ax               ; 26 89 87 68 02
+    mov es, [bp+006h]                         ; 8e 46 06
+    add di, si                                ; 01 f7
+    mov bl, byte [es:di+0022dh]               ; 26 8a 9d 2d 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    xor ax, ax                                ; 31 c0
+    call 08f6fh                               ; e8 5a fd
+    mov bx, strict word 00025h                ; bb 25 00
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp+006h]                    ; 8b 56 06
+    call 08b8ah                               ; e8 6a f9
+    mov bx, ax                                ; 89 c3
+    mov es, [bp+006h]                         ; 8e 46 06
+    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
+    mov word [es:si+018h], ax                 ; 26 89 44 18
+    mov CL, strict byte 009h                  ; b1 09
+    sal ax, CL                                ; d3 e0
+    mov cx, ax                                ; 89 c1
+    shr cx, 1                                 ; d1 e9
+    mov di, si                                ; 89 f7
+    mov di, word [es:di+008h]                 ; 26 8b 7d 08
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov si, di                                ; 89 fe
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    xor di, di                                ; 31 ff
+    les si, [bp+004h]                         ; c4 76 04
+    mov es, [es:si+00232h]                    ; 26 8e 84 32 02
+    mov ax, word [es:di+00268h]               ; 26 8b 85 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+@ahci_write_sectors:                         ; 0xf9269 LB 0x88
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov si, word [bp+004h]                    ; 8b 76 04
+    mov cx, word [bp+006h]                    ; 8b 4e 06
+    mov es, cx                                ; 8e c1
+    mov bl, byte [es:si+00ch]                 ; 26 8a 5c 0c
+    xor bh, bh                                ; 30 ff
+    sub bx, strict byte 0000ch                ; 83 eb 0c
+    cmp bx, strict byte 00004h                ; 83 fb 04
+    jbe short 09297h                          ; 76 13
+    push bx                                   ; 53
+    mov ax, 00c93h                            ; b8 93 0c
+    push ax                                   ; 50
+    mov ax, 00c74h                            ; b8 74 0c
+    push ax                                   ; 50
+    mov ax, strict word 00007h                ; b8 07 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 e2 86
+    add sp, strict byte 00008h                ; 83 c4 08
+    xor di, di                                ; 31 ff
+    mov es, cx                                ; 8e c1
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, dx                                ; 8e c2
+    mov word [es:di+00268h], ax               ; 26 89 85 68 02
+    mov es, cx                                ; 8e c1
+    add bx, si                                ; 01 f3
+    mov bl, byte [es:bx+0022dh]               ; 26 8a 9f 2d 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    xor ax, ax                                ; 31 c0
+    call 08f6fh                               ; e8 af fc
+    mov bx, strict word 00035h                ; bb 35 00
+    mov ax, si                                ; 89 f0
+    mov dx, cx                                ; 89 ca
+    call 08b8ah                               ; e8 c0 f8
+    mov dx, ax                                ; 89 c2
+    mov es, cx                                ; 8e c1
+    mov ax, word [es:si+00eh]                 ; 26 8b 44 0e
+    mov word [es:si+018h], ax                 ; 26 89 44 18
+    xor bx, bx                                ; 31 db
+    mov es, [es:si+00232h]                    ; 26 8e 84 32 02
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov ax, dx                                ; 89 d0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+ahci_cmd_packet_:                            ; 0xf92f1 LB 0x18c
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    push ax                                   ; 50
+    mov byte [bp-006h], dl                    ; 88 56 fa
+    mov word [bp-012h], bx                    ; 89 5e ee
+    mov word [bp-010h], cx                    ; 89 4e f0
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 62 83
+    mov si, 00122h                            ; be 22 01
+    mov word [bp-008h], ax                    ; 89 46 f8
+    cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
+    jne short 0933bh                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 10 86
+    mov ax, 00ca6h                            ; b8 a6 0c
+    push ax                                   ; 50
+    mov ax, 00cb6h                            ; b8 b6 0c
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 44 86
+    add sp, strict byte 00006h                ; 83 c4 06
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp near 09474h                           ; e9 39 01
+    test byte [bp+004h], 001h                 ; f6 46 04 01
+    jne short 09335h                          ; 75 f4
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov di, word [bp+008h]                    ; 8b 7e 08
+    mov cx, strict word 00008h                ; b9 08 00
+    sal bx, 1                                 ; d1 e3
+    rcl di, 1                                 ; d1 d7
+    loop 0934ah                               ; e2 fa
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si], bx                      ; 26 89 1c
+    mov word [es:si+002h], di                 ; 26 89 7c 02
+    mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00
+    mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00
+    mov ax, word [bp+00ch]                    ; 8b 46 0c
+    mov word [es:si+008h], ax                 ; 26 89 44 08
+    mov ax, word [bp+00eh]                    ; 8b 46 0e
+    mov word [es:si+00ah], ax                 ; 26 89 44 0a
+    mov bx, word [es:si+010h]                 ; 26 8b 5c 10
+    mov ax, word [bp+006h]                    ; 8b 46 06
+    mov dx, word [bp+008h]                    ; 8b 56 08
+    xor cx, cx                                ; 31 c9
+    call 0a1f0h                               ; e8 6d 0e
+    mov word [es:si+00eh], ax                 ; 26 89 44 0e
+    xor di, di                                ; 31 ff
+    mov ax, word [es:si+00232h]               ; 26 8b 84 32 02
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], di                    ; 89 7e f2
+    mov word [bp-00ch], ax                    ; 89 46 f4
+    sub word [bp-014h], strict byte 0000ch    ; 83 6e ec 0c
+    shr eax, 010h                             ; 66 c1 e8 10
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+00268h], ax               ; 26 89 85 68 02
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov bx, word [bp-014h]                    ; 8b 5e ec
+    add bx, si                                ; 01 f3
+    mov bl, byte [es:bx+0022dh]               ; 26 8a 9f 2d 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
+    xor ax, ax                                ; 31 c0
+    call 08f6fh                               ; e8 af fb
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov bx, word [bp-012h]                    ; 8b 5e ee
+    mov cx, word [bp-010h]                    ; 8b 4e f0
+    mov ax, 000c0h                            ; b8 c0 00
+    mov dx, word [bp-00ah]                    ; 8b 56 f6
+    call 0a287h                               ; e8 b2 0e
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si+018h], di                 ; 26 89 7c 18
+    mov word [es:si+01ah], di                 ; 26 89 7c 1a
+    mov word [es:si+01ch], di                 ; 26 89 7c 1c
+    mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
+    test ax, ax                               ; 85 c0
+    je short 09413h                           ; 74 27
+    dec ax                                    ; 48
+    mov es, [bp-00ah]                         ; 8e 46 f6
+    mov word [es:di+0010ch], ax               ; 26 89 85 0c 01
+    mov word [es:di+0010eh], di               ; 26 89 bd 0e 01
+    mov ax, word [es:di+00264h]               ; 26 8b 85 64 02
+    mov dx, word [es:di+00266h]               ; 26 8b 95 66 02
+    mov word [es:di+00100h], ax               ; 26 89 85 00 01
+    mov word [es:di+00102h], dx               ; 26 89 95 02 01
+    inc byte [es:di+00263h]                   ; 26 fe 85 63 02
+    mov bx, 000a0h                            ; bb a0 00
+    mov ax, si                                ; 89 f0
+    mov dx, word [bp-008h]                    ; 8b 56 f8
+    call 08b8ah                               ; e8 6c f7
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov dx, word [es:bx+004h]                 ; 26 8b 57 04
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    mov es, [bp-008h]                         ; 8e 46 f8
+    mov word [es:si+01ah], dx                 ; 26 89 54 1a
+    mov word [es:si+01ch], ax                 ; 26 89 44 1c
+    mov bx, word [es:si+01ah]                 ; 26 8b 5c 1a
+    mov cx, ax                                ; 89 c1
+    shr cx, 1                                 ; d1 e9
+    rcr bx, 1                                 ; d1 db
+    mov di, word [es:si+008h]                 ; 26 8b 7c 08
+    mov ax, word [es:si+00ah]                 ; 26 8b 44 0a
+    mov cx, bx                                ; 89 d9
+    mov si, di                                ; 89 fe
+    mov dx, ax                                ; 89 c2
+    mov es, ax                                ; 8e c0
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsw                                 ; f3 a5
+    pop DS                                    ; 1f
+    les bx, [bp-00eh]                         ; c4 5e f2
+    mov ax, word [es:bx+00268h]               ; 26 8b 87 68 02
+    sal eax, 010h                             ; 66 c1 e0 10
+    mov es, [bp-00ch]                         ; 8e 46 f4
+    mov ax, word [es:bx+006h]                 ; 26 8b 47 06
+    or ax, word [es:bx+004h]                  ; 26 0b 47 04
+    jne short 09472h                          ; 75 05
+    mov ax, strict word 00004h                ; b8 04 00
+    jmp short 09474h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 0000ch                               ; c2 0c 00
+ahci_port_detect_device_:                    ; 0xf947d LB 0x4fe
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, 00224h                            ; 81 ec 24 02
+    mov si, ax                                ; 89 c6
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov byte [bp-008h], bl                    ; 88 5e f8
+    mov al, bl                                ; 88 d8
+    mov byte [bp-020h], bl                    ; 88 5e e0
+    xor al, bl                                ; 30 d8
+    mov byte [bp-01fh], al                    ; 88 46 e1
+    mov bx, word [bp-020h]                    ; 8b 5e e0
+    mov ax, si                                ; 89 f0
+    call 08f6fh                               ; e8 ce fa
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 c4 81
+    mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
+    mov word [bp-00eh], ax                    ; 89 46 f2
+    mov CL, strict byte 007h                  ; b1 07
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    sal ax, CL                                ; d3 e0
+    mov word [bp-020h], ax                    ; 89 46 e0
+    add ax, 0012ch                            ; 05 2c 01
+    cwd                                       ; 99
+    mov bx, ax                                ; 89 c3
+    mov di, dx                                ; 89 d7
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    mov cx, di                                ; 89 f9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 00001h                ; b8 01 00
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    mov ax, bx                                ; 89 d8
+    mov cx, di                                ; 89 f9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    add ax, 00128h                            ; 05 28 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    xor bx, bx                                ; 31 db
+    push bx                                   ; 53
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    call 089f7h                               ; e8 9f f4
+    test ax, ax                               ; 85 c0
+    jne short 0955fh                          ; 75 03
+    jmp near 09973h                           ; e9 14 04
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    mov CL, strict byte 007h                  ; b1 07
+    sal ax, CL                                ; d3 e0
+    mov word [bp-016h], ax                    ; 89 46 ea
+    add ax, 00128h                            ; 05 28 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov di, ax                                ; 89 c7
+    mov word [bp-01ch], dx                    ; 89 56 e4
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    mov ax, di                                ; 89 f8
+    call 089f7h                               ; e8 4d f4
+    cmp ax, strict word 00001h                ; 3d 01 00
+    je short 0955fh                           ; 74 b0
+    xor ax, ax                                ; 31 c0
+    push ax                                   ; 50
+    mov bx, strict word 0000fh                ; bb 0f 00
+    xor cx, cx                                ; 31 c9
+    mov ax, di                                ; 89 f8
+    mov dx, word [bp-01ch]                    ; 8b 56 e4
+    call 089f7h                               ; e8 38 f4
+    cmp ax, strict word 00003h                ; 3d 03 00
+    jne short 0955ch                          ; 75 98
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    add ax, 00130h                            ; 05 30 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    mov cx, ax                                ; 89 c1
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov al, byte [es:bx+00231h]               ; 26 8a 87 31 02
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    cmp AL, strict byte 004h                  ; 3c 04
+    jc short 0960eh                           ; 72 03
+    jmp near 09973h                           ; e9 65 03
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    add ax, 00118h                            ; 05 18 01
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    xor cx, cx                                ; 31 c9
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    add bx, strict byte 00004h                ; 83 c3 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 010h                   ; 0c 10
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, word [bp-016h]                    ; 8b 46 ea
+    add ax, 00124h                            ; 05 24 01
+    cwd                                       ; 99
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov es, [bp-010h]                         ; 8e 46 f0
+    mov dx, word [es:si+00260h]               ; 26 8b 94 60 02
+    add dx, strict byte 00004h                ; 83 c2 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    mov cl, byte [bp-00ch]                    ; 8a 4e f4
+    add cl, 00ch                              ; 80 c1 0c
+    test dx, dx                               ; 85 d2
+    jne short 096d9h                          ; 75 55
+    cmp bx, 00101h                            ; 81 fb 01 01
+    jne short 096d9h                          ; 75 4f
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00
+    mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov bx, 000ech                            ; bb ec 00
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov dx, es                                ; 8c c2
+    call 08b8ah                               ; e8 c0 f4
+    mov byte [bp-00ah], cl                    ; 88 4e f6
+    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
+    je short 096dch                           ; 74 08
+    mov ax, strict word 00001h                ; b8 01 00
+    jmp short 096deh                          ; eb 05
+    jmp near 098aeh                           ; e9 d2 01
+    xor ax, ax                                ; 31 c0
+    mov cl, al                                ; 88 c1
+    mov ax, word [bp-00228h]                  ; 8b 86 d8 fd
+    mov word [bp-018h], ax                    ; 89 46 e8
+    mov ax, word [bp-00224h]                  ; 8b 86 dc fd
+    mov word [bp-022h], ax                    ; 89 46 de
+    mov ax, word [bp-0021eh]                  ; 8b 86 e2 fd
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov ax, word [bp-001b2h]                  ; 8b 86 4e fe
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov di, word [bp-001b0h]                  ; 8b be 50 fe
+    xor ax, ax                                ; 31 c0
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov word [bp-012h], ax                    ; 89 46 ee
+    cmp di, 00fffh                            ; 81 ff ff 0f
+    jne short 0972dh                          ; 75 1f
+    cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
+    jne short 0972dh                          ; 75 19
+    mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
+    mov word [bp-012h], ax                    ; 89 46 ee
+    mov ax, word [bp-0015eh]                  ; 8b 86 a2 fe
+    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov di, word [bp-00160h]                  ; 8b be a0 fe
+    mov ax, word [bp-00162h]                  ; 8b 86 9e fe
+    mov word [bp-014h], ax                    ; 89 46 ec
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    add bx, word [bp-01ah]                    ; 03 5e e6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:bx+0022dh], al               ; 26 88 87 2d 02
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov si, word [bp-01ah]                    ; 8b 76 e6
+    add si, ax                                ; 01 c6
+    mov word [es:si+022h], 0ff05h             ; 26 c7 44 22 05 ff
+    mov byte [es:si+024h], cl                 ; 26 88 4c 24
+    mov byte [es:si+025h], 000h               ; 26 c6 44 25 00
+    mov word [es:si+028h], 00200h             ; 26 c7 44 28 00 02
+    mov byte [es:si+027h], 001h               ; 26 c6 44 27 01
+    mov ax, word [bp-012h]                    ; 8b 46 ee
+    mov word [es:si+03ch], ax                 ; 26 89 44 3c
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:si+03ah], ax                 ; 26 89 44 3a
+    mov word [es:si+038h], di                 ; 26 89 7c 38
+    mov ax, word [bp-014h]                    ; 8b 46 ec
+    mov word [es:si+036h], ax                 ; 26 89 44 36
+    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov word [es:si+030h], ax                 ; 26 89 44 30
+    mov ax, word [bp-018h]                    ; 8b 46 e8
+    mov word [es:si+032h], ax                 ; 26 89 44 32
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov word [es:si+034h], ax                 ; 26 89 44 34
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    cmp AL, strict byte 001h                  ; 3c 01
+    jc short 097aah                           ; 72 0c
+    jbe short 097b2h                          ; 76 12
+    cmp AL, strict byte 003h                  ; 3c 03
+    je short 097bah                           ; 74 16
+    cmp AL, strict byte 002h                  ; 3c 02
+    je short 097b6h                           ; 74 0e
+    jmp short 097fdh                          ; eb 53
+    test al, al                               ; 84 c0
+    jne short 097fdh                          ; 75 4f
+    mov DL, strict byte 040h                  ; b2 40
+    jmp short 097bch                          ; eb 0a
+    mov DL, strict byte 048h                  ; b2 48
+    jmp short 097bch                          ; eb 06
+    mov DL, strict byte 050h                  ; b2 50
+    jmp short 097bch                          ; eb 02
+    mov DL, strict byte 058h                  ; b2 58
+    mov bl, dl                                ; 88 d3
+    add bl, 007h                              ; 80 c3 07
+    xor bh, bh                                ; 30 ff
+    mov ax, bx                                ; 89 d8
+    call 016aeh                               ; e8 e6 7e
+    test al, al                               ; 84 c0
+    je short 097fdh                           ; 74 31
+    mov al, dl                                ; 88 d0
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 d9 7e
+    mov ch, al                                ; 88 c5
+    mov al, dl                                ; 88 d0
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 d0 7e
+    mov ah, ch                                ; 88 ec
+    mov word [bp-028h], ax                    ; 89 46 d8
+    mov al, dl                                ; 88 d0
+    add AL, strict byte 002h                  ; 04 02
+    xor ah, ah                                ; 30 e4
+    call 016aeh                               ; e8 c2 7e
+    xor ah, ah                                ; 30 e4
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov ax, bx                                ; 89 d8
+    call 016aeh                               ; e8 b8 7e
+    xor ah, ah                                ; 30 e4
+    mov word [bp-026h], ax                    ; 89 46 da
+    jmp short 0980fh                          ; eb 12
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-01eh]                       ; ff 76 e2
+    push di                                   ; 57
+    push word [bp-014h]                       ; ff 76 ec
+    mov dx, ss                                ; 8c d2
+    lea ax, [bp-02ah]                         ; 8d 46 d6
+    call 05b50h                               ; e8 41 c3
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 19 81
+    push word [bp-012h]                       ; ff 76 ee
+    push word [bp-01eh]                       ; ff 76 e2
+    push di                                   ; 57
+    push word [bp-014h]                       ; ff 76 ec
+    mov ax, word [bp-026h]                    ; 8b 46 da
+    push ax                                   ; 50
+    mov ax, word [bp-02ah]                    ; 8b 46 d6
+    push ax                                   ; 50
+    mov ax, word [bp-028h]                    ; 8b 46 d8
+    push ax                                   ; 50
+    push word [bp-024h]                       ; ff 76 dc
+    push word [bp-022h]                       ; ff 76 de
+    push word [bp-018h]                       ; ff 76 e8
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    push ax                                   ; 50
+    mov ax, 00cd6h                            ; b8 d6 0c
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 28 81
+    add sp, strict byte 0001ch                ; 83 c4 1c
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov di, word [bp-01ah]                    ; 8b 7e e6
+    add di, ax                                ; 01 c7
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    lea di, [di+02ah]                         ; 8d 7d 2a
+    push DS                                   ; 1e
+    push SS                                   ; 16
+    pop DS                                    ; 1f
+    lea si, [bp-02ah]                         ; 8d 76 d6
+    movsw                                     ; a5
+    movsw                                     ; a5
+    movsw                                     ; a5
+    pop DS                                    ; 1f
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov dl, byte [es:bx+001e2h]               ; 26 8a 97 e2 01
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 00ch                  ; 04 0c
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-01ah]                    ; 03 5e e6
+    mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
+    db  0feh, 0c2h
+    ; inc dl                                    ; fe c2
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov byte [es:bx+001e2h], dl               ; 26 88 97 e2 01
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01652h                               ; e8 b6 7d
+    mov bl, al                                ; 88 c3
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, strict word 00075h                ; ba 75 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 01660h                               ; e8 b5 7d
+    jmp near 09962h                           ; e9 b4 00
+    cmp dx, 0eb14h                            ; 81 fa 14 eb
+    jne short 09909h                          ; 75 55
+    cmp bx, 00101h                            ; 81 fb 01 01
+    jne short 09909h                          ; 75 4f
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
+    mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00
+    mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00
+    mov word [es:bx], strict word 00000h      ; 26 c7 07 00 00
+    lea dx, [bp-0022ah]                       ; 8d 96 d6 fd
+    mov word [es:bx+008h], dx                 ; 26 89 57 08
+    mov [es:bx+00ah], ss                      ; 26 8c 57 0a
+    mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00
+    mov word [es:bx+010h], 00200h             ; 26 c7 47 10 00 02
+    mov bx, 000a1h                            ; bb a1 00
+    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    mov dx, es                                ; 8c c2
+    call 08b8ah                               ; e8 90 f2
+    mov byte [bp-00ah], cl                    ; 88 4e f6
+    test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
+    je short 0990bh                           ; 74 07
+    mov cx, strict word 00001h                ; b9 01 00
+    jmp short 0990dh                          ; eb 04
+    jmp short 09962h                          ; eb 57
+    xor cx, cx                                ; 31 c9
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    add bx, word [bp-01ah]                    ; 03 5e e6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [es:bx+0022dh], al               ; 26 88 87 2d 02
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0001ch                ; ba 1c 00
+    imul dx                                   ; f7 ea
+    mov si, word [bp-01ah]                    ; 8b 76 e6
+    add si, ax                                ; 01 c6
+    mov word [es:si+022h], 00505h             ; 26 c7 44 22 05 05
+    mov byte [es:si+024h], cl                 ; 26 88 4c 24
+    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov dl, byte [es:bx+001f3h]               ; 26 8a 97 f3 01
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    add AL, strict byte 00ch                  ; 04 0c
+    mov bl, dl                                ; 88 d3
+    xor bh, bh                                ; 30 ff
+    add bx, word [bp-01ah]                    ; 03 5e e6
+    mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
+    db  0feh, 0c2h
+    ; inc dl                                    ; fe c2
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov byte [es:bx+001f3h], dl               ; 26 88 97 f3 01
+    inc byte [bp-00ch]                        ; fe 46 f4
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov es, [bp-00eh]                         ; 8e 46 f2
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov byte [es:bx+00231h], al               ; 26 88 87 31 02
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_mem_alloc_:                             ; 0xf997b LB 0x43
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    mov dx, 00413h                            ; ba 13 04
+    xor ax, ax                                ; 31 c0
+    call 0166eh                               ; e8 e3 7c
+    test ax, ax                               ; 85 c0
+    je short 099b4h                           ; 74 25
+    dec ax                                    ; 48
+    mov bx, ax                                ; 89 c3
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 0000ah                ; b9 0a 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 09997h                               ; e2 fa
+    mov si, ax                                ; 89 c6
+    mov di, dx                                ; 89 d7
+    mov cx, strict word 00004h                ; b9 04 00
+    shr di, 1                                 ; d1 ef
+    rcr si, 1                                 ; d1 de
+    loop 099a4h                               ; e2 fa
+    mov dx, 00413h                            ; ba 13 04
+    xor ax, ax                                ; 31 c0
+    call 0167ch                               ; e8 ca 7c
+    mov ax, si                                ; 89 f0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+ahci_hba_init_:                              ; 0xf99be LB 0x16e
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00006h                ; 83 ec 06
+    mov si, ax                                ; 89 c6
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 0166eh                               ; e8 9a 7c
+    mov bx, 00122h                            ; bb 22 01
+    mov di, ax                                ; 89 c7
+    mov ax, strict word 00010h                ; b8 10 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    call 0997bh                               ; e8 83 ff
+    mov word [bp-010h], ax                    ; 89 46 f0
+    test ax, ax                               ; 85 c0
+    jne short 09a02h                          ; 75 03
+    jmp near 09b0bh                           ; e9 09 01
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    mov es, di                                ; 8e c7
+    mov word [es:bx+00232h], ax               ; 26 89 87 32 02
+    mov byte [es:bx+00231h], 000h             ; 26 c6 87 31 02 00
+    xor bx, bx                                ; 31 db
+    mov es, ax                                ; 8e c0
+    mov byte [es:bx+00262h], 0ffh             ; 26 c6 87 62 02 ff
+    mov word [es:bx+00260h], si               ; 26 89 b7 60 02
+    mov word [es:bx+00264h], 0c000h           ; 26 c7 87 64 02 00 c0
+    mov word [es:bx+00266h], strict word 0000ch ; 26 c7 87 66 02 0c 00
+    mov ax, strict word 00004h                ; b8 04 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    or AL, strict byte 001h                   ; 0c 01
+    mov cx, dx                                ; 89 d1
+    mov dx, bx                                ; 89 da
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov ax, strict word 00004h                ; b8 04 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea bx, [si+004h]                         ; 8d 5c 04
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test AL, strict byte 001h                 ; a8 01
+    jne short 09a5ch                          ; 75 de
+    xor ax, ax                                ; 31 c0
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    mov dx, bx                                ; 89 da
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    xor bx, bx                                ; 31 db
+    push bx                                   ; 53
+    mov bx, strict word 0001fh                ; bb 1f 00
+    xor cx, cx                                ; 31 c9
+    call 089f7h                               ; e8 54 ef
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-00ch], 000h                  ; c6 46 f4 00
+    jmp short 09acfh                          ; eb 21
+    xor al, al                                ; 30 c0
+    test al, al                               ; 84 c0
+    je short 09ac6h                           ; 74 12
+    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    xor bh, bh                                ; 30 ff
+    xor ax, ax                                ; 31 c0
+    mov dx, word [bp-010h]                    ; 8b 56 f0
+    call 0947dh                               ; e8 bc f9
+    dec byte [bp-00eh]                        ; fe 4e f2
+    je short 09b09h                           ; 74 43
+    inc byte [bp-00ch]                        ; fe 46 f4
+    cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
+    jnc short 09b09h                          ; 73 3a
+    mov cl, byte [bp-00ch]                    ; 8a 4e f4
+    xor ch, ch                                ; 30 ed
+    mov bx, strict word 00001h                ; bb 01 00
+    xor di, di                                ; 31 ff
+    jcxz 09ae1h                               ; e3 06
+    sal bx, 1                                 ; d1 e3
+    rcl di, 1                                 ; d1 d7
+    loop 09adbh                               ; e2 fa
+    mov ax, strict word 0000ch                ; b8 0c 00
+    xor cx, cx                                ; 31 c9
+    mov dx, si                                ; 89 f2
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    lea dx, [si+004h]                         ; 8d 54 04
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    test dx, di                               ; 85 fa
+    jne short 09b05h                          ; 75 04
+    test ax, bx                               ; 85 d8
+    je short 09aaeh                           ; 74 a9
+    mov AL, strict byte 001h                  ; b0 01
+    jmp short 09ab0h                          ; eb a7
+    xor ax, ax                                ; 31 c0
+    lea sp, [bp-00ah]                         ; 8d 66 f6
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 011h, 09ch, 0efh, 09bh, 0f5h, 09bh, 0fbh, 09bh, 001h
+    db  09ch, 007h, 09ch, 00dh, 09ch, 011h, 09ch
+_ahci_init:                                  ; 0xf9b2c LB 0x11a
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push di                                   ; 57
+    sub sp, strict byte 0000eh                ; 83 ec 0e
+    mov ax, 00601h                            ; b8 01 06
+    mov dx, strict word 00001h                ; ba 01 00
+    call 0a065h                               ; e8 29 05
+    mov dx, ax                                ; 89 c2
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    je short 09b8ch                           ; 74 49
+    mov al, ah                                ; 88 e0
+    mov byte [bp-006h], ah                    ; 88 66 fa
+    mov byte [bp-008h], dl                    ; 88 56 f8
+    xor dh, ah                                ; 30 e6
+    xor ah, ah                                ; 30 e4
+    mov bx, strict word 00034h                ; bb 34 00
+    call 0a090h                               ; e8 3b 05
+    mov cl, al                                ; 88 c1
+    test cl, cl                               ; 84 c9
+    je short 09b8fh                           ; 74 34
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-00bh], bh                    ; 88 7e f5
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00fh], bh                    ; 88 7e f1
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    call 0a090h                               ; e8 16 05
+    cmp AL, strict byte 012h                  ; 3c 12
+    je short 09b8fh                           ; 74 11
+    mov bl, cl                                ; 88 cb
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-00ch]                    ; 8b 56 f4
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    jmp short 09b52h                          ; eb c6
+    jmp near 09c40h                           ; e9 b1 00
+    test cl, cl                               ; 84 c9
+    je short 09b8ch                           ; 74 f9
+    add cl, 002h                              ; 80 c1 02
+    mov bl, cl                                ; 88 cb
+    xor bh, bh                                ; 30 ff
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov byte [bp-00dh], bh                    ; 88 7e f3
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-009h], bh                    ; 88 7e f7
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 0a090h                               ; e8 db 04
+    cmp AL, strict byte 010h                  ; 3c 10
+    jne short 09b8ch                          ; 75 d3
+    mov byte [bp-004h], 000h                  ; c6 46 fc 00
+    mov bl, cl                                ; 88 cb
+    add bl, 002h                              ; 80 c3 02
+    xor bh, bh                                ; 30 ff
+    mov dx, word [bp-00eh]                    ; 8b 56 f2
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 0a0b7h                               ; e8 ea 04
+    mov dx, ax                                ; 89 c2
+    and ax, strict word 0000fh                ; 25 0f 00
+    sub ax, strict word 00004h                ; 2d 04 00
+    cmp ax, strict word 0000bh                ; 3d 0b 00
+    jnbe short 09c11h                         ; 77 37
+    push CS                                   ; 0e
+    pop ES                                    ; 07
+    mov cx, strict word 00008h                ; b9 08 00
+    mov di, 09b15h                            ; bf 15 9b
+    repne scasb                               ; f2 ae
+    sal cx, 1                                 ; d1 e1
+    mov di, cx                                ; 89 cf
+    mov ax, word [cs:di-064e4h]               ; 2e 8b 85 1c 9b
+    jmp ax                                    ; ff e0
+    mov byte [bp-004h], 010h                  ; c6 46 fc 10
+    jmp short 09c11h                          ; eb 1c
+    mov byte [bp-004h], 014h                  ; c6 46 fc 14
+    jmp short 09c11h                          ; eb 16
+    mov byte [bp-004h], 018h                  ; c6 46 fc 18
+    jmp short 09c11h                          ; eb 10
+    mov byte [bp-004h], 01ch                  ; c6 46 fc 1c
+    jmp short 09c11h                          ; eb 0a
+    mov byte [bp-004h], 020h                  ; c6 46 fc 20
+    jmp short 09c11h                          ; eb 04
+    mov byte [bp-004h], 024h                  ; c6 46 fc 24
+    mov CL, strict byte 004h                  ; b1 04
+    mov ax, dx                                ; 89 d0
+    shr ax, CL                                ; d3 e8
+    mov cx, ax                                ; 89 c1
+    sal cx, 1                                 ; d1 e1
+    sal cx, 1                                 ; d1 e1
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    test al, al                               ; 84 c0
+    je short 09c40h                           ; 74 1c
+    mov bl, al                                ; 88 c3
+    xor bh, bh                                ; 30 ff
+    mov dl, byte [bp-008h]                    ; 8a 56 f8
+    xor dh, dh                                ; 30 f6
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    xor ah, ah                                ; 30 e4
+    call 0a0dch                               ; e8 a7 04
+    test AL, strict byte 001h                 ; a8 01
+    je short 09c40h                           ; 74 07
+    and AL, strict byte 0f0h                  ; 24 f0
+    add ax, cx                                ; 01 c8
+    call 099beh                               ; e8 7e fd
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop di                                    ; 5f
+    pop bp                                    ; 5d
+    retn                                      ; c3
+apm_out_str_:                                ; 0xf9c46 LB 0x39
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    mov bx, ax                                ; 89 c3
+    cmp byte [bx], 000h                       ; 80 3f 00
+    je short 09c5bh                           ; 74 0a
+    mov al, byte [bx]                         ; 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov al, byte [bx]                         ; 8a 07
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    jne short 09c53h                          ; 75 f8
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    mov AL, byte [02b9ch]                     ; a0 9c 2b
+    popfw                                     ; 9d
+    mov DL, strict byte 09ch                  ; b2 9c
+    int 09ch                                  ; cd 9c
+    sub bx, word [di-06308h]                  ; 2b 9d f8 9c
+    sub bx, word [di-062cfh]                  ; 2b 9d 31 9d
+    std                                       ; fd
+    pushfw                                    ; 9c
+    std                                       ; fd
+    pushfw                                    ; 9c
+    std                                       ; fd
+    pushfw                                    ; 9c
+    jo short 09c16h                           ; 70 9d
+    std                                       ; fd
+    pushfw                                    ; 9c
+    std                                       ; fd
+    pushfw                                    ; 9c
+    db  069h
+    popfw                                     ; 9d
+_apm_function:                               ; 0xf9c7f LB 0xf6
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    and byte [bp+018h], 0feh                  ; 80 66 18 fe
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    cmp ax, strict word 0000eh                ; 3d 0e 00
+    jnbe short 09cfdh                         ; 77 6c
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    mov dx, word [bp+018h]                    ; 8b 56 18
+    or dl, 001h                               ; 80 ca 01
+    jmp word [cs:bx-0639fh]                   ; 2e ff a7 61 9c
+    mov word [bp+012h], 00102h                ; c7 46 12 02 01
+    mov word [bp+00ch], 0504dh                ; c7 46 0c 4d 50
+    mov word [bp+010h], strict word 00003h    ; c7 46 10 03 00
+    jmp near 09d2bh                           ; e9 79 00
+    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
+    mov word [bp+00ch], 0a2f4h                ; c7 46 0c f4 a2
+    mov word [bp+010h], 0f000h                ; c7 46 10 00 f0
+    mov ax, strict word 0fff0h                ; b8 f0 ff
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+004h], ax                    ; 89 46 04
+    jmp near 09d2bh                           ; e9 5e 00
+    mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
+    mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [bp+010h], ax                    ; 89 46 10
+    mov word [bp+00eh], ax                    ; 89 46 0e
+    mov ax, strict word 0fff0h                ; b8 f0 ff
+    mov word [bp+006h], ax                    ; 89 46 06
+    mov word [bp+004h], ax                    ; 89 46 04
+    xor bx, bx                                ; 31 db
+    sal ebx, 010h                             ; 66 c1 e3 10
+    mov si, ax                                ; 89 c6
+    sal esi, 010h                             ; 66 c1 e6 10
+    jmp near 09d2bh                           ; e9 33 00
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp near 09d2bh                           ; e9 2e 00
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 2b 7c
+    push word [bp+00ch]                       ; ff 76 0c
+    push word [bp+012h]                       ; ff 76 12
+    mov ax, 00d29h                            ; b8 29 0d
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 5d 7c
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+012h]                    ; 8b 46 12
+    xor ah, ah                                ; 30 e4
+    or ah, 00ch                               ; 80 cc 0c
+    mov word [bp+012h], ax                    ; 89 46 12
+    or byte [bp+018h], 001h                   ; 80 4e 18 01
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
+    je short 09d56h                           ; 74 1f
+    cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
+    je short 09d4eh                           ; 74 11
+    cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
+    jne short 09d5eh                          ; 75 1b
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d10h                            ; b8 10 0d
+    call 09c46h                               ; e8 fa fe
+    jmp short 09d2bh                          ; eb dd
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d18h                            ; b8 18 0d
+    jmp short 09d49h                          ; eb f3
+    mov dx, 08900h                            ; ba 00 89
+    mov ax, 00d20h                            ; b8 20 0d
+    jmp short 09d49h                          ; eb eb
+    or ah, 00ah                               ; 80 cc 0a
+    mov word [bp+012h], ax                    ; 89 46 12
+    mov word [bp+018h], dx                    ; 89 56 18
+    jmp short 09d2bh                          ; eb c2
+    mov word [bp+012h], 00102h                ; c7 46 12 02 01
+    jmp short 09d2bh                          ; eb bb
+    or ah, 080h                               ; 80 cc 80
+    jmp short 09d61h                          ; eb ec
+pci16_select_reg_:                           ; 0xf9d75 LB 0x24
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    and dl, 0fch                              ; 80 e2 fc
+    mov bx, dx                                ; 89 d3
+    mov dx, 00cf8h                            ; ba f8 0c
+    movzx eax, ax                             ; 66 0f b7 c0
+    sal eax, 008h                             ; 66 c1 e0 08
+    or eax, strict dword 080000000h           ; 66 0d 00 00 00 80
+    db  08ah, 0c3h
+    ; mov al, bl                                ; 8a c3
+    out DX, eax                               ; 66 ef
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci16_find_device_:                          ; 0xf9d99 LB 0xf7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 0000ch                ; 83 ec 0c
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov si, bx                                ; 89 de
+    mov di, cx                                ; 89 cf
+    test cx, cx                               ; 85 c9
+    xor bx, bx                                ; 31 db
+    mov byte [bp-006h], 000h                  ; c6 46 fa 00
+    test bl, 007h                             ; f6 c3 07
+    jne short 09de1h                          ; 75 2d
+    mov dx, strict word 0000eh                ; ba 0e 00
+    mov ax, bx                                ; 89 d8
+    call 09d75h                               ; e8 b9 ff
+    mov dx, 00cfeh                            ; ba fe 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov byte [bp-008h], al                    ; 88 46 f8
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 09dcfh                          ; 75 06
+    add bx, strict byte 00008h                ; 83 c3 08
+    jmp near 09e61h                           ; e9 92 00
+    test byte [bp-008h], 080h                 ; f6 46 f8 80
+    je short 09ddch                           ; 74 07
+    mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
+    jmp short 09de1h                          ; eb 05
+    mov word [bp-00eh], strict word 00008h    ; c7 46 f2 08 00
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    and AL, strict byte 007h                  ; 24 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 09e08h                          ; 75 1e
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    test ax, ax                               ; 85 c0
+    jne short 09e08h                          ; 75 16
+    mov dx, strict word 0001ah                ; ba 1a 00
+    mov ax, bx                                ; 89 d8
+    call 09d75h                               ; e8 7b ff
+    mov dx, 00cfeh                            ; ba fe 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    cmp al, byte [bp-006h]                    ; 3a 46 fa
+    jbe short 09e08h                          ; 76 03
+    mov byte [bp-006h], al                    ; 88 46 fa
+    test di, di                               ; 85 ff
+    je short 09e11h                           ; 74 05
+    mov dx, strict word 00008h                ; ba 08 00
+    jmp short 09e13h                          ; eb 02
+    xor dx, dx                                ; 31 d2
+    mov ax, bx                                ; 89 d8
+    call 09d75h                               ; e8 5d ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
+    test di, di                               ; 85 ff
+    je short 09e42h                           ; 74 0f
+    mov cx, strict word 00008h                ; b9 08 00
+    shr dx, 1                                 ; d1 ea
+    rcr ax, 1                                 ; d1 d8
+    loop 09e36h                               ; e2 fa
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-010h], dx                    ; 89 56 f0
+    mov ax, word [bp-010h]                    ; 8b 46 f0
+    cmp ax, word [bp-014h]                    ; 3b 46 ec
+    jne short 09e52h                          ; 75 08
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    cmp ax, word [bp-012h]                    ; 3b 46 ee
+    je short 09e58h                           ; 74 06
+    cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
+    je short 09e5eh                           ; 74 06
+    dec si                                    ; 4e
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    je short 09e71h                           ; 74 13
+    add bx, word [bp-00eh]                    ; 03 5e f2
+    mov al, bh                                ; 88 f8
+    xor ah, ah                                ; 30 e4
+    mov dl, byte [bp-006h]                    ; 8a 56 fa
+    xor dh, dh                                ; 30 f6
+    cmp ax, dx                                ; 39 d0
+    jnbe short 09e71h                         ; 77 03
+    jmp near 09dafh                           ; e9 3e ff
+    cmp si, strict byte 0ffffh                ; 83 fe ff
+    jne short 09e7ah                          ; 75 04
+    mov ax, bx                                ; 89 d8
+    jmp short 09e7dh                          ; eb 03
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    jno short 09e25h                          ; 71 9f
+    mov bl, byte [bx-06064h]                  ; 8a 9f 9c 9f
+    mov AL, strict byte 09fh                  ; b0 9f
+    retn 0d59fh                               ; c2 9f d5
+    lahf                                      ; 9f
+_pci16_function:                             ; 0xf9e90 LB 0x1d5
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    and word [bp+020h], 000ffh                ; 81 66 20 ff 00
+    and word [bp+02ch], strict byte 0fffeh    ; 83 66 2c fe
+    mov bx, word [bp+020h]                    ; 8b 5e 20
+    xor bh, bh                                ; 30 ff
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    cmp bx, strict byte 00003h                ; 83 fb 03
+    jc short 09ec2h                           ; 72 13
+    jbe short 09f15h                          ; 76 64
+    cmp bx, strict byte 0000eh                ; 83 fb 0e
+    je short 09f1dh                           ; 74 67
+    cmp bx, strict byte 00008h                ; 83 fb 08
+    jc short 09ecch                           ; 72 11
+    cmp bx, strict byte 0000dh                ; 83 fb 0d
+    jbe short 09f20h                          ; 76 60
+    jmp short 09ecch                          ; eb 0a
+    cmp bx, strict byte 00002h                ; 83 fb 02
+    je short 09eebh                           ; 74 24
+    cmp bx, strict byte 00001h                ; 83 fb 01
+    je short 09ecfh                           ; 74 03
+    jmp near 0a02eh                           ; e9 5f 01
+    mov word [bp+020h], strict word 00001h    ; c7 46 20 01 00
+    mov word [bp+014h], 00210h                ; c7 46 14 10 02
+    mov word [bp+01ch], strict word 00000h    ; c7 46 1c 00 00
+    mov word [bp+018h], 04350h                ; c7 46 18 50 43
+    mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
+    jmp near 0a05eh                           ; e9 73 01
+    cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
+    jne short 09ef7h                          ; 75 06
+    or ah, 083h                               ; 80 cc 83
+    jmp near 0a057h                           ; e9 60 01
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov dx, word [bp+01ch]                    ; 8b 56 1c
+    mov ax, word [bp+018h]                    ; 8b 46 18
+    xor cx, cx                                ; 31 c9
+    call 09d99h                               ; e8 94 fe
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 09f17h                          ; 75 0d
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0a057h                           ; e9 42 01
+    jmp short 09f22h                          ; eb 0b
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 0a05eh                           ; e9 41 01
+    jmp near 09fe9h                           ; e9 c9 00
+    jmp short 09f47h                          ; eb 25
+    mov bx, word [bp+008h]                    ; 8b 5e 08
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+01eh]                    ; 8b 56 1e
+    mov cx, strict word 00001h                ; b9 01 00
+    call 09d99h                               ; e8 68 fe
+    cmp ax, strict word 0ffffh                ; 3d ff ff
+    jne short 09f41h                          ; 75 0b
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0a057h                           ; e9 16 01
+    mov word [bp+014h], ax                    ; 89 46 14
+    jmp near 0a05eh                           ; e9 17 01
+    cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
+    jc short 09f54h                           ; 72 06
+    or ah, 087h                               ; 80 cc 87
+    jmp near 0a057h                           ; e9 03 01
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    call 09d75h                               ; e8 18 fe
+    mov bx, word [bp+020h]                    ; 8b 5e 20
+    xor bh, bh                                ; 30 ff
+    sub bx, strict byte 00008h                ; 83 eb 08
+    cmp bx, strict byte 00005h                ; 83 fb 05
+    jnbe short 09fd2h                         ; 77 68
+    sal bx, 1                                 ; d1 e3
+    jmp word [cs:bx-0617ch]                   ; 2e ff a7 84 9e
+    mov bx, word [bp+01ch]                    ; 8b 5e 1c
+    xor bl, bl                                ; 30 db
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    and dx, strict byte 00003h                ; 83 e2 03
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    or bx, ax                                 ; 09 c3
+    mov word [bp+01ch], bx                    ; 89 5e 1c
+    jmp short 09fd2h                          ; eb 48
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    in ax, DX                                 ; ed
+    mov word [bp+01ch], ax                    ; 89 46 1c
+    jmp short 09fd2h                          ; eb 36
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    shr eax, 010h                             ; 66 c1 e8 10
+    xchg dx, ax                               ; 92
+    mov word [bp+01ch], ax                    ; 89 46 1c
+    mov word [bp+01eh], dx                    ; 89 56 1e
+    jmp short 09fd2h                          ; eb 22
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    out DX, AL                                ; ee
+    jmp short 09fd2h                          ; eb 10
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov dx, word [bp+004h]                    ; 8b 56 04
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    out DX, ax                                ; ef
+    jmp near 0a05eh                           ; e9 89 00
+    mov ax, word [bp+01ch]                    ; 8b 46 1c
+    mov cx, word [bp+01eh]                    ; 8b 4e 1e
+    mov dx, 00cfch                            ; ba fc 0c
+    xchg cx, ax                               ; 91
+    sal eax, 010h                             ; 66 c1 e0 10
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    out DX, eax                               ; 66 ef
+    jmp short 0a05eh                          ; eb 75
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov es, [bp+026h]                         ; 8e 46 26
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov [bp-006h], es                         ; 8c 46 fa
+    mov cx, word [0f4a0h]                     ; 8b 0e a0 f4
+    cmp cx, word [es:bx]                      ; 26 3b 0f
+    jbe short 0a00fh                          ; 76 11
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 089h                               ; 80 cc 89
+    mov word [bp+020h], ax                    ; 89 46 20
+    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
+    jmp short 0a023h                          ; eb 14
+    les di, [es:bx+002h]                      ; 26 c4 7f 02
+    mov si, 0f2c0h                            ; be c0 f2
+    mov dx, ds                                ; 8c da
+    push DS                                   ; 1e
+    mov ds, dx                                ; 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov word [bp+014h], 00a00h                ; c7 46 14 00 0a
+    mov ax, word [0f4a0h]                     ; a1 a0 f4
+    les bx, [bp-008h]                         ; c4 5e f8
+    mov word [es:bx], ax                      ; 26 89 07
+    jmp short 0a05eh                          ; eb 30
+    mov bx, 00da0h                            ; bb a0 0d
+    mov cx, ds                                ; 8c d9
+    mov ax, strict word 00004h                ; b8 04 00
+    call 01933h                               ; e8 fa 78
+    mov ax, word [bp+014h]                    ; 8b 46 14
+    push ax                                   ; 50
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    push ax                                   ; 50
+    mov ax, 00d5ch                            ; b8 5c 0d
+    push ax                                   ; 50
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 01976h                               ; e8 2a 79
+    add sp, strict byte 00008h                ; 83 c4 08
+    mov ax, word [bp+020h]                    ; 8b 46 20
+    xor ah, ah                                ; 30 e4
+    or ah, 081h                               ; 80 cc 81
+    mov word [bp+020h], ax                    ; 89 46 20
+    or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_find_classcode_:                         ; 0xfa065 LB 0x2b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push si                                   ; 56
+    mov cx, dx                                ; 89 d1
+    xor si, si                                ; 31 f6
+    mov dx, ax                                ; 89 c2
+    mov ax, 0b103h                            ; b8 03 b1
+    sal ecx, 010h                             ; 66 c1 e1 10
+    db  08bh, 0cah
+    ; mov cx, dx                                ; 8b ca
+    int 01ah                                  ; cd 1a
+    cmp ah, 000h                              ; 80 fc 00
+    je near 0a086h                            ; 0f 84 03 00
+    mov bx, strict word 0ffffh                ; bb ff ff
+    mov ax, bx                                ; 89 d8
+    lea sp, [bp-006h]                         ; 8d 66 fa
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_byte_:                       ; 0xfa090 LB 0x27
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    mov dh, al                                ; 88 c6
+    mov bh, dl                                ; 88 d7
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    xor dl, dl                                ; 30 d2
+    mov bl, bh                                ; 88 fb
+    mov bh, dh                                ; 88 f7
+    mov di, ax                                ; 89 c7
+    mov ax, 0b108h                            ; b8 08 b1
+    int 01ah                                  ; cd 1a
+    mov al, cl                                ; 88 c8
+    xor ah, ah                                ; 30 e4
+    xor dh, dh                                ; 30 f6
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_word_:                       ; 0xfa0b7 LB 0x25
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    mov dh, al                                ; 88 c6
+    mov cl, dl                                ; 88 d1
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bh, dh                                ; 88 f7
+    xor dh, dh                                ; 30 f6
+    mov bl, dl                                ; 88 d3
+    mov di, ax                                ; 89 c7
+    mov ax, 0b109h                            ; b8 09 b1
+    int 01ah                                  ; cd 1a
+    mov ax, cx                                ; 89 c8
+    xor dl, dl                                ; 30 d2
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci_read_config_dword_:                      ; 0xfa0dc LB 0x27
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push di                                   ; 57
+    mov dh, al                                ; 88 c6
+    mov bh, dl                                ; 88 d7
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
+    mov bh, dh                                ; 88 f7
+    mov bl, dl                                ; 88 d3
+    mov di, ax                                ; 89 c7
+    mov ax, 0b10ah                            ; b8 0a b1
+    int 01ah                                  ; cd 1a
+    db  08bh, 0c1h
+    ; mov ax, cx                                ; 8b c1
+    shr ecx, 010h                             ; 66 c1 e9 10
+    mov dx, cx                                ; 89 ca
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+vds_is_present_:                             ; 0xfa103 LB 0x1d
+    push bx                                   ; 53
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, strict word 0007bh                ; bb 7b 00
+    mov ax, strict word 00040h                ; b8 40 00
+    mov es, ax                                ; 8e c0
+    test byte [es:bx], 020h                   ; 26 f6 07 20
+    je short 0a11bh                           ; 74 06
+    mov ax, strict word 00001h                ; b8 01 00
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+    xor ax, ax                                ; 31 c0
+    pop bp                                    ; 5d
+    pop bx                                    ; 5b
+    retn                                      ; c3
+vds_real_to_lin_:                            ; 0xfa120 LB 0x1e
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    mov bx, ax                                ; 89 c3
+    mov ax, dx                                ; 89 d0
+    xor dx, dx                                ; 31 d2
+    mov cx, strict word 00004h                ; b9 04 00
+    sal ax, 1                                 ; d1 e0
+    rcl dx, 1                                 ; d1 d2
+    loop 0a12eh                               ; e2 fa
+    xor cx, cx                                ; 31 c9
+    add ax, bx                                ; 01 d8
+    adc dx, cx                                ; 11 ca
+    pop bp                                    ; 5d
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    retn                                      ; c3
+vds_build_sg_list_:                          ; 0xfa13e LB 0x77
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push si                                   ; 56
+    push di                                   ; 57
+    mov di, ax                                ; 89 c7
+    mov si, dx                                ; 89 d6
+    mov ax, bx                                ; 89 d8
+    mov dx, cx                                ; 89 ca
+    mov bx, word [bp+004h]                    ; 8b 5e 04
+    mov es, si                                ; 8e c6
+    mov word [es:di], bx                      ; 26 89 1d
+    mov bx, word [bp+006h]                    ; 8b 5e 06
+    mov word [es:di+002h], bx                 ; 26 89 5d 02
+    call 0a120h                               ; e8 c3 ff
+    mov es, si                                ; 8e c6
+    mov word [es:di+004h], ax                 ; 26 89 45 04
+    mov word [es:di+006h], dx                 ; 26 89 55 06
+    mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00
+    call 0a103h                               ; e8 93 ff
+    test ax, ax                               ; 85 c0
+    je short 0a185h                           ; 74 11
+    mov es, si                                ; 8e c6
+    mov ax, 08105h                            ; b8 05 81
+    mov dx, strict word 00000h                ; ba 00 00
+    int 04bh                                  ; cd 4b
+    jc short 0a182h                           ; 72 02
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    cbw                                       ; 98
+    jmp short 0a1ach                          ; eb 27
+    mov es, si                                ; 8e c6
+    mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
+    mov dx, word [es:di+004h]                 ; 26 8b 55 04
+    mov ax, word [es:di+006h]                 ; 26 8b 45 06
+    mov word [es:di+010h], dx                 ; 26 89 55 10
+    mov word [es:di+012h], ax                 ; 26 89 45 12
+    mov ax, word [bp+004h]                    ; 8b 46 04
+    mov word [es:di+014h], ax                 ; 26 89 45 14
+    mov ax, bx                                ; 89 d8
+    mov word [es:di+016h], bx                 ; 26 89 5d 16
+    xor ax, bx                                ; 31 d8
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bp                                    ; 5d
+    retn 00004h                               ; c2 04 00
+vds_free_sg_list_:                           ; 0xfa1b5 LB 0x3b
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push di                                   ; 57
+    mov bx, ax                                ; 89 c3
+    call 0a103h                               ; e8 44 ff
+    test ax, ax                               ; 85 c0
+    je short 0a1d4h                           ; 74 11
+    mov di, bx                                ; 89 df
+    mov es, dx                                ; 8e c2
+    mov ax, 08106h                            ; b8 06 81
+    mov dx, strict word 00000h                ; ba 00 00
+    int 04bh                                  ; cd 4b
+    jc short 0a1d3h                           ; 72 02
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    cbw                                       ; 98
+    mov es, dx                                ; 8e c2
+    mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00
+    lea sp, [bp-004h]                         ; 8d 66 fc
+    pop di                                    ; 5f
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+    times 0xd db 0
+__U4D:                                       ; 0xfa1f0 LB 0x39
+    pushfw                                    ; 9c
+    push eax                                  ; 66 50
+    push edx                                  ; 66 52
+    push ecx                                  ; 66 51
+    rol eax, 010h                             ; 66 c1 c0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    shr ecx, 010h                             ; 66 c1 e9 10
+    db  08bh, 0cbh
+    ; mov cx, bx                                ; 8b cb
+    div ecx                                   ; 66 f7 f1
+    db  08bh, 0dah
+    ; mov bx, dx                                ; 8b da
+    pop ecx                                   ; 66 59
+    shr edx, 010h                             ; 66 c1 ea 10
+    db  08bh, 0cah
+    ; mov cx, dx                                ; 8b ca
+    pop edx                                   ; 66 5a
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    add sp, strict byte 00002h                ; 83 c4 02
+    pop ax                                    ; 58
+    rol eax, 010h                             ; 66 c1 c0 10
+    popfw                                     ; 9d
+    retn                                      ; c3
+__U4M:                                       ; 0xfa229 LB 0x31
+    pushfw                                    ; 9c
+    push eax                                  ; 66 50
+    push edx                                  ; 66 52
+    push ecx                                  ; 66 51
+    rol eax, 010h                             ; 66 c1 c0 10
+    db  08bh, 0c2h
+    ; mov ax, dx                                ; 8b c2
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  066h, 033h, 0d2h
+    ; xor edx, edx                              ; 66 33 d2
+    shr ecx, 010h                             ; 66 c1 e9 10
+    db  08bh, 0cbh
+    ; mov cx, bx                                ; 8b cb
+    mul ecx                                   ; 66 f7 e1
+    pop ecx                                   ; 66 59
+    pop edx                                   ; 66 5a
+    ror eax, 010h                             ; 66 c1 c8 10
+    db  08bh, 0d0h
+    ; mov dx, ax                                ; 8b d0
+    add sp, strict byte 00002h                ; 83 c4 02
+    pop ax                                    ; 58
+    rol eax, 010h                             ; 66 c1 c0 10
+    popfw                                     ; 9d
+    retn                                      ; c3
+__U8LS:                                      ; 0xfa25a LB 0x10
+    test si, si                               ; 85 f6
+    je short 0a269h                           ; 74 0b
+    sal dx, 1                                 ; d1 e2
+    rcl cx, 1                                 ; d1 d1
+    rcl bx, 1                                 ; d1 d3
+    rcl ax, 1                                 ; d1 d0
+    dec si                                    ; 4e
+    jne short 0a25eh                          ; 75 f5
+    retn                                      ; c3
+__U8RS:                                      ; 0xfa26a LB 0x10
+    test si, si                               ; 85 f6
+    je short 0a279h                           ; 74 0b
+    shr ax, 1                                 ; d1 e8
+    rcr bx, 1                                 ; d1 db
+    rcr cx, 1                                 ; d1 d9
+    rcr dx, 1                                 ; d1 da
+    dec si                                    ; 4e
+    jne short 0a26eh                          ; 75 f5
+    retn                                      ; c3
+_fmemset_:                                   ; 0xfa27a LB 0xd
+    push di                                   ; 57
+    mov es, dx                                ; 8e c2
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    xchg al, bl                               ; 86 d8
+    rep stosb                                 ; f3 aa
+    xchg al, bl                               ; 86 d8
+    pop di                                    ; 5f
+    retn                                      ; c3
+_fmemcpy_:                                   ; 0xfa287 LB 0x33
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    push di                                   ; 57
+    push DS                                   ; 1e
+    push si                                   ; 56
+    mov es, dx                                ; 8e c2
+    db  08bh, 0f8h
+    ; mov di, ax                                ; 8b f8
+    mov ds, cx                                ; 8e d9
+    db  08bh, 0f3h
+    ; mov si, bx                                ; 8b f3
+    mov cx, word [bp+004h]                    ; 8b 4e 04
+    rep movsb                                 ; f3 a4
+    pop si                                    ; 5e
+    pop DS                                    ; 1f
+    pop di                                    ; 5f
+    leave                                     ; c9
+    retn                                      ; c3
+    add al, dl                                ; 00 d0
+    mov byte [0a2d2h], AL                     ; a2 d2 a2
+    db  0d6h
+    mov byte [0a2d6h], AL                     ; a2 d6 a2
+    db  0d6h
+    mov byte [0a2d8h], AL                     ; a2 d8 a2
+    fsub dword [bp+si-05d26h]                 ; d8 a2 da a2
+    fisub word [bp+si-05d22h]                 ; de a2 de a2
+    loopne 0a258h                             ; e0 a2
+    in ax, 0a2h                               ; e5 a2
+    out 0a2h, ax                              ; e7 a2
+apm_worker:                                  ; 0xfa2ba LB 0x3a
+    sti                                       ; fb
+    push ax                                   ; 50
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    sub AL, strict byte 004h                  ; 2c 04
+    db  08bh, 0e8h
+    ; mov bp, ax                                ; 8b e8
+    sal bp, 1                                 ; d1 e5
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    pop ax                                    ; 58
+    mov AH, strict byte 053h                  ; b4 53
+    jnc short 0a2f0h                          ; 73 25
+    jmp word [cs:bp-05d60h]                   ; 2e ff a6 a0 a2
+    jmp short 0a2eeh                          ; eb 1c
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 0a2eeh                          ; eb 18
+    jmp short 0a2eeh                          ; eb 16
+    jmp short 0a2f0h                          ; eb 16
+    mov AH, strict byte 080h                  ; b4 80
+    jmp short 0a2f2h                          ; eb 14
+    jmp short 0a2f0h                          ; eb 10
+    mov ax, 00102h                            ; b8 02 01
+    jmp short 0a2eeh                          ; eb 09
+    jmp short 0a2eeh                          ; eb 07
+    mov BL, strict byte 000h                  ; b3 00
+    mov cx, strict word 00000h                ; b9 00 00
+    jmp short 0a2eeh                          ; eb 00
+    clc                                       ; f8
+    retn                                      ; c3
+    mov AH, strict byte 009h                  ; b4 09
+    stc                                       ; f9
+    retn                                      ; c3
+apm_pm16_entry:                              ; 0xfa2f4 LB 0x11
+    mov AH, strict byte 002h                  ; b4 02
+    push DS                                   ; 1e
+    push bp                                   ; 55
+    push CS                                   ; 0e
+    pop bp                                    ; 5d
+    add bp, strict byte 00008h                ; 83 c5 08
+    mov ds, bp                                ; 8e dd
+    call 0a2bah                               ; e8 b8 ff
+    pop bp                                    ; 5d
+    pop DS                                    ; 1f
+    retf                                      ; cb
+
+  ; Padding 0x36fb bytes at 0xfa305
+  times 14075 db 0
+
+section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
+bios32_service:                              ; 0xfda00 LB 0x26
+    pushfw                                    ; 9c
+    cmp bl, 000h                              ; 80 fb 00
+    jne short 0da22h                          ; 75 1c
+    cmp ax, 05024h                            ; 3d 24 50
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    mov AL, strict byte 080h                  ; b0 80
+    jne short 0da20h                          ; 75 11
+    mov bx, strict word 00000h                ; bb 00 00
+    db  00fh
+    add byte [bx+di-01000h], bh               ; 00 b9 00 f0
+    add byte [bx+si], al                      ; 00 00
+    mov dx, 0da26h                            ; ba 26 da
+    add byte [bx+si], al                      ; 00 00
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    popfw                                     ; 9d
+    retf                                      ; cb
+    mov AL, strict byte 081h                  ; b0 81
+    jmp short 0da20h                          ; eb fa
+pcibios32_entry:                             ; 0xfda26 LB 0x1a
+    pushfw                                    ; 9c
+    cld                                       ; fc
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    call 0db78h                               ; e8 4b 01
+    add byte [bx+si], al                      ; 00 00
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    popfw                                     ; 9d
+    retf                                      ; cb
+    times 0xd db 0
+apm_pm32_entry:                              ; 0xfda40 LB 0x21
+    push bp                                   ; 55
+    mov ebp, cs                               ; 66 8c cd
+    push ebp                                  ; 66 55
+    mov bp, 0da5fh                            ; bd 5f da
+    add byte [bx+si], al                      ; 00 00
+    push ebp                                  ; 66 55
+    push CS                                   ; 0e
+    pop bp                                    ; 5d
+    add bp, strict byte 00008h                ; 83 c5 08
+    push ebp                                  ; 66 55
+    mov bp, 0a2f6h                            ; bd f6 a2
+    add byte [bx+si], al                      ; 00 00
+    push ebp                                  ; 66 55
+    mov AH, strict byte 003h                  ; b4 03
+    db  066h, 0cbh
+    ; retf                                      ; 66 cb
+    pop bp                                    ; 5d
+    retf                                      ; cb
+pci32_select_reg_:                           ; 0xfda61 LB 0x22
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    and dl, 0fch                              ; 80 e2 fc
+    mov bx, dx                                ; 89 d3
+    mov dx, 00cf8h                            ; ba f8 0c
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 0c0h
+    ; movzx ax, ax                              ; 0f b7 c0
+    sal ax, 008h                              ; c1 e0 08
+    or ax, strict word 00000h                 ; 0d 00 00
+    add byte [bx+si-03c76h], al               ; 00 80 8a c3
+    out DX, ax                                ; ef
+    lea sp, [di-004h]                         ; 8d 65 fc
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pci32_find_device_:                          ; 0xfda83 LB 0xf7
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push cx                                   ; 51
+    push si                                   ; 56
+    push di                                   ; 57
+    sub sp, strict byte 00014h                ; 83 ec 14
+    push ax                                   ; 50
+    mov cx, dx                                ; 89 d1
+    mov si, bx                                ; 89 de
+    test bx, bx                               ; 85 db
+    xor bx, bx                                ; 31 db
+    mov byte [di-010h], 000h                  ; c6 45 f0 00
+    test bl, 007h                             ; f6 c3 07
+    jne short 0dad4h                          ; 75 36
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    mov dx, strict word 0000eh                ; ba 0e 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da5fh                               ; e8 b6 ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfeh                            ; ba fe 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    mov byte [di-014h], al                    ; 88 45 ec
+    cmp AL, strict byte 0ffh                  ; 3c ff
+    jne short 0dac2h                          ; 75 08
+    add bx, strict byte 00008h                ; 83 c3 08
+    jmp near 0db4ah                           ; e9 8a 00
+    add byte [bx+si], al                      ; 00 00
+    test byte [di-014h], 080h                 ; f6 45 ec 80
+    je short 0dacfh                           ; 74 07
+    mov di, strict word 00001h                ; bf 01 00
+    add byte [bx+si], al                      ; 00 00
+    jmp short 0dad4h                          ; eb 05
+    mov di, strict word 00008h                ; bf 08 00
+    add byte [bx+si], al                      ; 00 00
+    mov al, byte [di-014h]                    ; 8a 45 ec
+    and AL, strict byte 007h                  ; 24 07
+    cmp AL, strict byte 001h                  ; 3c 01
+    jne short 0db03h                          ; 75 26
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    mov dx, ax                                ; 89 c2
+    sar dx, 008h                              ; c1 fa 08
+    test dx, dx                               ; 85 d2
+    jne short 0db03h                          ; 75 1a
+    mov dx, strict word 0001ah                ; ba 1a 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da5fh                               ; e8 6e ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfeh                            ; ba fe 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    cmp al, byte [di-010h]                    ; 3a 45 f0
+    jbe short 0db03h                          ; 76 03
+    mov byte [di-010h], al                    ; 88 45 f0
+    test si, si                               ; 85 f6
+    je short 0db0eh                           ; 74 07
+    mov ax, strict word 00008h                ; b8 08 00
+    add byte [bx+si], al                      ; 00 00
+    jmp short 0db10h                          ; eb 02
+    xor ax, ax                                ; 31 c0
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    call 0da5fh                               ; e8 46 ff
+    db  0ffh
+    db  0ffh
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    in ax, DX                                 ; ed
+    mov word [di-018h], ax                    ; 89 45 e8
+    mov word [di-020h], strict word 00000h    ; c7 45 e0 00 00
+    add byte [bx+si], al                      ; 00 00
+    test si, si                               ; 85 f6
+    je short 0db35h                           ; 74 06
+    shr ax, 008h                              ; c1 e8 08
+    mov word [di-018h], ax                    ; 89 45 e8
+    mov ax, word [di-018h]                    ; 8b 45 e8
+    cmp ax, word [di-024h]                    ; 3b 45 dc
+    je short 0db43h                           ; 74 06
+    cmp word [di-020h], strict byte 00000h    ; 83 7d e0 00
+    je short 0db4ah                           ; 74 07
+    dec cx                                    ; 49
+    cmp ecx, strict byte 0ffffffffh           ; 66 83 f9 ff
+    je short 0db62h                           ; 74 18
+    add bx, di                                ; 01 fb
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    sar ax, 008h                              ; c1 f8 08
+    mov word [di-01ch], ax                    ; 89 45 e4
+    movzx ax, byte [di-010h]                  ; 0f b6 45 f0
+    cmp ax, word [di-01ch]                    ; 3b 45 e4
+    jnl near 0da97h                           ; 0f 8d 37 ff
+    db  0ffh
+    jmp word [bp-07dh]                        ; ff 66 83
+    stc                                       ; f9
+    push word [di+005h]                       ; ff 75 05
+    db  00fh, 0b7h, 0c3h
+    ; movzx ax, bx                              ; 0f b7 c3
+    jmp short 0db72h                          ; eb 05
+    mov ax, strict word 0ffffh                ; b8 ff ff
+    add byte [bx+si], al                      ; 00 00
+    lea sp, [di-00ch]                         ; 8d 65 f4
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop cx                                    ; 59
+    pop bp                                    ; 5d
+    retn                                      ; c3
+_pci32_function:                             ; 0xfdb7a LB 0x251
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push bx                                   ; 53
+    push si                                   ; 56
+    push di                                   ; 57
+    push ax                                   ; 50
+    push ax                                   ; 50
+    and dword [di+024h], strict dword 0658100ffh ; 66 81 65 24 ff 00 81 65
+    sub AL, strict byte 0feh                  ; 2c fe
+    inc word [bx+si]                          ; ff 00
+    add byte [bp+di+02445h], cl               ; 00 8b 45 24
+    xor ah, ah                                ; 30 e4
+    cmp eax, strict dword 029720003h          ; 66 3d 03 00 72 29
+    jbe near 0dc37h                           ; 0f 86 99 00
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 0840f000eh          ; 66 3d 0e 00 0f 84
+    test ax, strict word 00001h               ; a9 01 00
+    add byte [bp+03dh], ah                    ; 00 66 3d
+    or byte [bx+si], al                       ; 08 00
+    jc near 0ddb1h                            ; 0f 82 ff 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 0860f000dh          ; 66 3d 0d 00 0f 86
+    test AL, strict byte 000h                 ; a8 00
+    add byte [bx+si], al                      ; 00 00
+    jmp near 0ddb1h                           ; e9 f0 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 028740002h          ; 66 3d 02 00 74 28
+    cmp eax, strict dword 0850f0001h          ; 66 3d 01 00 0f 85
+    loopne 0dbd2h                             ; e0 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+024h], strict dword 0c7660001h ; 66 c7 45 24 01 00 66 c7
+    inc bp                                    ; 45
+    sbb byte [bx+si], dl                      ; 18 10
+    add dh, byte [bx+di]                      ; 02 31
+    sal byte [bp-077h], 045h                  ; c0 66 89 45
+    and bh, al                                ; 20 c7
+    inc bp                                    ; 45
+    sbb AL, strict byte 050h                  ; 1c 50
+    inc bx                                    ; 43
+    dec cx                                    ; 49
+    and cl, ch                                ; 20 e9
+    rol byte [bx+di], CL                      ; d2 01
+    add byte [bx+si], al                      ; 00 00
+    cmp dword [di+01ch], strict byte 0ffffffffh ; 66 83 7d 1c ff
+    jne short 0dc05h                          ; 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 083h                               ; 80 cc 83
+    jmp near 0ddb9h                           ; e9 b6 01
+    add byte [bx+si], al                      ; 00 00
+    xor bx, bx                                ; 31 db
+    db  00fh, 0b7h, 055h, 00ch
+    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
+    db  00fh, 0b7h, 045h, 020h
+    ; movzx ax, [di+020h]                       ; 0f b7 45 20
+    sal ax, 010h                              ; c1 e0 10
+    db  00fh, 0b7h, 04dh, 01ch
+    ; movzx cx, [di+01ch]                       ; 0f b7 4d 1c
+    or ax, cx                                 ; 09 c8
+    call 0da81h                               ; e8 66 fe
+    db  0ffh
+    jmp word [bp+03dh]                        ; ff 66 3d
+    db  0ffh
+    push word [di+00dh]                       ; ff 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0ddb9h                           ; e9 8b 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+018h], eax                  ; 66 89 45 18
+    jmp near 0ddc1h                           ; e9 8a 01
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 055h, 00ch
+    ; movzx dx, [di+00ch]                       ; 0f b7 55 0c
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov bx, strict word 00001h                ; bb 01 00
+    add byte [bx+si], al                      ; 00 00
+    call 0da81h                               ; e8 39 fe
+    db  0ffh
+    jmp word [bp+03dh]                        ; ff 66 3d
+    db  0ffh
+    push word [di+00dh]                       ; ff 75 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 086h                               ; 80 cc 86
+    jmp near 0ddb9h                           ; e9 5e 01
+    add byte [bx+si], al                      ; 00 00
+    mov dword [di+018h], eax                  ; 66 89 45 18
+    jmp near 0ddc1h                           ; e9 5d 01
+    add byte [bx+si], al                      ; 00 00
+    cmp dword [di+008h], strict dword 00d720100h ; 66 81 7d 08 00 01 72 0d
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 087h                               ; 80 cc 87
+    jmp near 0ddb9h                           ; e9 40 01
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 055h, 008h
+    ; movzx dx, [di+008h]                       ; 0f b7 55 08
+    db  00fh, 0b7h, 045h, 018h
+    ; movzx ax, [di+018h]                       ; 0f b7 45 18
+    call 0da5fh                               ; e8 d9 fd
+    db  0ffh
+    dec word [bp+di+02445h]                   ; ff 8b 45 24
+    xor ah, ah                                ; 30 e4
+    cmp eax, strict dword 02172000ah          ; 66 3d 0a 00 72 21
+    jbe short 0dd04h                          ; 76 6f
+    cmp eax, strict dword 0840f000dh          ; 66 3d 0d 00 0f 84
+    test ax, strict word 00000h               ; a9 00 00
+    add byte [bp+03dh], ah                    ; 00 66 3d
+    or AL, strict byte 000h                   ; 0c 00
+    je near 0dd2ah                            ; 0f 84 83 00
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 06374000bh          ; 66 3d 0b 00 74 63
+    jmp near 0ddc1h                           ; e9 0f 01
+    add byte [bx+si], al                      ; 00 00
+    cmp eax, strict dword 02d740009h          ; 66 3d 09 00 74 2d
+    cmp eax, strict dword 0850f0008h          ; 66 3d 08 00 0f 85
+    inc word [bx+si]                          ; ff 00
+    add byte [bx+si], al                      ; 00 00
+    mov bx, word [di+020h]                    ; 8b 5d 20
+    xor bl, bl                                ; 30 db
+    mov ax, word [di+008h]                    ; 8b 45 08
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 003h                  ; 24 03
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in AL, DX                                 ; ec
+    or bx, ax                                 ; 09 c3
+    mov dword [di+020h], ebx                  ; 66 89 5d 20
+    jmp near 0ddc1h                           ; e9 dc 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+008h]                    ; 8b 45 08
+    xor ah, ah                                ; 30 e4
+    and AL, strict byte 002h                  ; 24 02
+    db  00fh, 0b7h, 0d0h
+    ; movzx dx, ax                              ; 0f b7 d0
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    db  02bh, 0c0h
+    ; sub ax, ax                                ; 2b c0
+    in eax, DX                                ; 66 ed
+    mov dword [di+020h], eax                  ; 66 89 45 20
+    jmp near 0ddc1h                           ; e9 bf 00
+    add byte [bx+si], al                      ; 00 00
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    in ax, DX                                 ; ed
+    mov word [di+020h], ax                    ; 89 45 20
+    jmp near 0ddc1h                           ; e9 b1 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov dx, word [di+008h]                    ; 8b 55 08
+    xor dh, dh                                ; 30 f6
+    and dl, 003h                              ; 80 e2 03
+    db  00fh, 0b7h, 0d2h
+    ; movzx dx, dx                              ; 0f b7 d2
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, AL                                ; ee
+    jmp near 0ddc1h                           ; e9 97 00
+    add byte [bx+si], al                      ; 00 00
+    db  00fh, 0b7h, 045h, 020h
+    ; movzx ax, [di+020h]                       ; 0f b7 45 20
+    mov dx, word [di+008h]                    ; 8b 55 08
+    xor dh, dh                                ; 30 f6
+    and dl, 002h                              ; 80 e2 02
+    db  00fh, 0b7h, 0d2h
+    ; movzx dx, dx                              ; 0f b7 d2
+    add dx, 00cfch                            ; 81 c2 fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, eax                               ; 66 ef
+    jmp near 0ddc1h                           ; e9 7b 00
+    add byte [bx+si], al                      ; 00 00
+    mov ax, word [di+020h]                    ; 8b 45 20
+    mov dx, 00cfch                            ; ba fc 0c
+    add byte [bx+si], al                      ; 00 00
+    out DX, ax                                ; ef
+    jmp short 0ddc3h                          ; eb 70
+    db  00fh, 0b7h, 045h, 008h
+    ; movzx ax, [di+008h]                       ; 0f b7 45 08
+    mov es, [di+028h]                         ; 8e 45 28
+    mov [di-010h], es                         ; 8c 45 f0
+    mov bx, ax                                ; 89 c3
+    mov edx, dword [di]                       ; 66 8b 15
+    mov AL, byte [000f4h]                     ; a0 f4 00
+    add byte [bp+026h], ah                    ; 00 66 26
+    cmp dx, word [bx+si]                      ; 3b 10
+    jbe short 0dd7eh                          ; 76 12
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 089h                               ; 80 cc 89
+    mov dword [di+024h], eax                  ; 66 89 45 24
+    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
+    jmp short 0dda4h                          ; eb 26
+    db  00fh, 0b7h, 0cah
+    ; movzx cx, dx                              ; 0f b7 ca
+    db  066h, 026h, 08bh, 050h, 006h
+    ; mov edx, dword [es:bx+si+006h]            ; 66 26 8b 50 06
+    mov word [di-014h], dx                    ; 89 55 ec
+    mov di, word [es:bx+si+002h]              ; 26 8b 78 02
+    mov dx, ds                                ; 8c da
+    mov si, 0f2c0h                            ; be c0 f2
+    add byte [bx+si], al                      ; 00 00
+    mov es, [di-014h]                         ; 8e 45 ec
+    push DS                                   ; 1e
+    db  066h, 08eh, 0dah
+    ; mov ds, edx                               ; 66 8e da
+    rep movsb                                 ; f3 a4
+    pop DS                                    ; 1f
+    mov dword [di+018h], strict dword 0a1660a00h ; 66 c7 45 18 00 0a 66 a1
+    mov AL, byte [000f4h]                     ; a0 f4 00
+    add byte [bp-00fbbh], cl                  ; 00 8e 45 f0
+    db  066h, 026h, 089h, 003h
+    ; mov dword [es:bp+di], eax                 ; 66 26 89 03
+    jmp short 0ddc3h                          ; eb 10
+    mov ax, word [di+024h]                    ; 8b 45 24
+    xor ah, ah                                ; 30 e4
+    or ah, 081h                               ; 80 cc 81
+    mov dword [di+024h], eax                  ; 66 89 45 24
+    or word [di+02ch], strict byte 00001h     ; 83 4d 2c 01
+    lea sp, [di-00ch]                         ; 8d 65 f4
+    pop di                                    ; 5f
+    pop si                                    ; 5e
+    pop bx                                    ; 5b
+    pop bp                                    ; 5d
+    retn                                      ; c3
+
+  ; Padding 0x1 bytes at 0xfddcb
+  times 1 db 0
+
+section BIOS32CONST progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+section BIOS32CONST2 progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+section BIOS32_DATA progbits vstart=0xddcc align=1 ; size=0x0 class=FAR_DATA group=BIOS32_GROUP
+
+  ; Padding 0x234 bytes at 0xfddcc
+  times 564 db 0
+
+section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h, 04dh
+eoi_both_pics:                               ; 0xfe030 LB 0x4
+    mov AL, strict byte 020h                  ; b0 20
+    out strict byte 0a0h, AL                  ; e6 a0
+eoi_master_pic:                              ; 0xfe034 LB 0x5
+    mov AL, strict byte 020h                  ; b0 20
+    out strict byte 020h, AL                  ; e6 20
+    retn                                      ; c3
+set_int_vects:                               ; 0xfe039 LB 0xb
+    mov word [bx], ax                         ; 89 07
+    mov word [bx+002h], dx                    ; 89 57 02
+    add bx, strict byte 00004h                ; 83 c3 04
+    loop 0e039h                               ; e2 f6
+    retn                                      ; c3
+eoi_jmp_post:                                ; 0xfe044 LB 0x17
+    call 0e030h                               ; e8 e9 ff
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    jmp far [00467h]                          ; ff 2e 67 04
+    times 0xa db 0
+    db  'XM'
+post:                                        ; 0xfe05b LB 0x61
+    cli                                       ; fa
+    mov AL, strict byte 001h                  ; b0 01
+    out strict byte 092h, AL                  ; e6 92
+    jmp short 0e060h                          ; eb fe
+    mov AL, strict byte 00fh                  ; b0 0f
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    xchg ah, al                               ; 86 c4
+    in AL, strict byte 064h                   ; e4 64
+    test AL, strict byte 004h                 ; a8 04
+    je short 0e081h                           ; 74 11
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    jne short 0e081h                          ; 75 0b
+    push strict byte 00040h                   ; 6a 40
+    pop DS                                    ; 1f
+    cmp word [word 00072h], 01234h            ; 81 3e 72 00 34 12
+    jne short 0e05ch                          ; 75 db
+    mov AL, strict byte 00fh                  ; b0 0f
+    out strict byte 070h, AL                  ; e6 70
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 071h, AL                  ; e6 71
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    cmp AL, strict byte 009h                  ; 3c 09
+    je short 0e0a1h                           ; 74 12
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 0e0a1h                           ; 74 0e
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    out strict byte 00dh, AL                  ; e6 0d
+    out strict byte 0dah, AL                  ; e6 da
+    mov AL, strict byte 0c0h                  ; b0 c0
+    out strict byte 0d6h, AL                  ; e6 d6
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 0d4h, AL                  ; e6 d4
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0e0bch                           ; 74 15
+    cmp AL, strict byte 00dh                  ; 3c 0d
+    jnc short 0e0bch                          ; 73 11
+    cmp AL, strict byte 009h                  ; 3c 09
+    jne short 0e0b2h                          ; 75 03
+    jmp near 0e366h                           ; e9 b4 02
+    cmp AL, strict byte 005h                  ; 3c 05
+    je short 0e044h                           ; 74 8e
+    cmp AL, strict byte 00ah                  ; 3c 0a
+    je short 0e047h                           ; 74 8d
+    jmp short 0e0bch                          ; eb 00
+normal_post:                                 ; 0xfe0bc LB 0x207
+    mov ax, 07800h                            ; b8 00 78
+    db  08bh, 0e0h
+    ; mov sp, ax                                ; 8b e0
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov ss, ax                                ; 8e d0
+    mov es, ax                                ; 8e c0
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    cld                                       ; fc
+    mov cx, 00239h                            ; b9 39 02
+    rep stosw                                 ; f3 ab
+    inc di                                    ; 47
+    inc di                                    ; 47
+    mov cx, 005c6h                            ; b9 c6 05
+    rep stosw                                 ; f3 ab
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    add bx, 01000h                            ; 81 c3 00 10
+    cmp bx, 09000h                            ; 81 fb 00 90
+    jnc short 0e0efh                          ; 73 0b
+    mov es, bx                                ; 8e c3
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    mov cx, 08000h                            ; b9 00 80
+    rep stosw                                 ; f3 ab
+    jmp short 0e0dah                          ; eb eb
+    mov es, bx                                ; 8e c3
+    db  033h, 0ffh
+    ; xor di, di                                ; 33 ff
+    mov cx, 07ff8h                            ; b9 f8 7f
+    rep stosw                                 ; f3 ab
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01775h                               ; e8 75 36
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov ds, bx                                ; 8e db
+    mov cx, strict word 00060h                ; b9 60 00
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov dx, 0f000h                            ; ba 00 f0
+    call 0e039h                               ; e8 29 ff
+    mov bx, 001a0h                            ; bb a0 01
+    mov cx, strict word 00010h                ; b9 10 00
+    call 0e039h                               ; e8 20 ff
+    mov ax, 0027fh                            ; b8 7f 02
+    mov word [00413h], ax                     ; a3 13 04
+    mov ax, 0e9d6h                            ; b8 d6 e9
+    mov word [00018h], ax                     ; a3 18 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0001ah], ax                     ; a3 1a 00
+    mov ax, 0f84dh                            ; b8 4d f8
+    mov word [00044h], ax                     ; a3 44 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00046h], ax                     ; a3 46 00
+    mov ax, 0f841h                            ; b8 41 f8
+    mov word [00048h], ax                     ; a3 48 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0004ah], ax                     ; a3 4a 00
+    mov ax, 0f859h                            ; b8 59 f8
+    mov word [00054h], ax                     ; a3 54 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00056h], ax                     ; a3 56 00
+    mov ax, 0efd4h                            ; b8 d4 ef
+    mov word [0005ch], ax                     ; a3 5c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0005eh], ax                     ; a3 5e 00
+    mov ax, 0f0a4h                            ; b8 a4 f0
+    mov word [00060h], ax                     ; a3 60 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00062h], ax                     ; a3 62 00
+    mov ax, 0e6f2h                            ; b8 f2 e6
+    mov word [00064h], ax                     ; a3 64 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00066h], ax                     ; a3 66 00
+    mov ax, 0efedh                            ; b8 ed ef
+    mov word [00070h], ax                     ; a3 70 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00072h], ax                     ; a3 72 00
+    call 0e778h                               ; e8 f6 05
+    mov ax, 0fe6eh                            ; b8 6e fe
+    mov word [00068h], ax                     ; a3 68 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0006ah], ax                     ; a3 6a 00
+    mov ax, 0fea5h                            ; b8 a5 fe
+    mov word [00020h], ax                     ; a3 20 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00022h], ax                     ; a3 22 00
+    mov AL, strict byte 034h                  ; b0 34
+    out strict byte 043h, AL                  ; e6 43
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 040h, AL                  ; e6 40
+    out strict byte 040h, AL                  ; e6 40
+    mov ax, 0f065h                            ; b8 65 f0
+    mov word [00040h], ax                     ; a3 40 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00042h], ax                     ; a3 42 00
+    mov ax, 0e987h                            ; b8 87 e9
+    mov word [00024h], ax                     ; a3 24 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00026h], ax                     ; a3 26 00
+    mov ax, 0e82eh                            ; b8 2e e8
+    mov word [00058h], ax                     ; a3 58 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0005ah], ax                     ; a3 5a 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov byte [00417h], AL                     ; a2 17 04
+    mov byte [00418h], AL                     ; a2 18 04
+    mov byte [00419h], AL                     ; a2 19 04
+    mov byte [00471h], AL                     ; a2 71 04
+    mov byte [00497h], AL                     ; a2 97 04
+    mov AL, strict byte 010h                  ; b0 10
+    mov byte [00496h], AL                     ; a2 96 04
+    mov bx, strict word 0001eh                ; bb 1e 00
+    mov word [0041ah], bx                     ; 89 1e 1a 04
+    mov word [0041ch], bx                     ; 89 1e 1c 04
+    mov word [00480h], bx                     ; 89 1e 80 04
+    mov bx, strict word 0003eh                ; bb 3e 00
+    mov word [00482h], bx                     ; 89 1e 82 04
+    mov AL, strict byte 014h                  ; b0 14
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    mov byte [00410h], AL                     ; a2 10 04
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    mov ax, 0c000h                            ; b8 00 c0
+    mov dx, 0c800h                            ; ba 00 c8
+    call 01600h                               ; e8 f4 33
+    call 04ff1h                               ; e8 e2 6d
+    pop DS                                    ; 1f
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov word [0003ch], ax                     ; a3 3c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003eh], ax                     ; a3 3e 00
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov CL, strict byte 014h                  ; b1 14
+    mov dx, 00378h                            ; ba 78 03
+    call 0ecedh                               ; e8 c3 0a
+    mov dx, 00278h                            ; ba 78 02
+    call 0ecedh                               ; e8 bd 0a
+    sal bx, 00eh                              ; c1 e3 0e
+    mov ax, word [00410h]                     ; a1 10 04
+    and ax, 03fffh                            ; 25 ff 3f
+    db  00bh, 0c3h
+    ; or ax, bx                                 ; 0b c3
+    mov word [00410h], ax                     ; a3 10 04
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [0002ch], ax                     ; a3 2c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0002eh], ax                     ; a3 2e 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [00030h], ax                     ; a3 30 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00032h], ax                     ; a3 32 00
+    mov ax, 0e739h                            ; b8 39 e7
+    mov word [00050h], ax                     ; a3 50 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00052h], ax                     ; a3 52 00
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    mov CL, strict byte 00ah                  ; b1 0a
+    mov dx, 003f8h                            ; ba f8 03
+    call 0ed0bh                               ; e8 9f 0a
+    mov dx, 002f8h                            ; ba f8 02
+    call 0ed0bh                               ; e8 99 0a
+    mov dx, 003e8h                            ; ba e8 03
+    call 0ed0bh                               ; e8 93 0a
+    mov dx, 002e8h                            ; ba e8 02
+    call 0ed0bh                               ; e8 8d 0a
+    sal bx, 009h                              ; c1 e3 09
+    mov ax, word [00410h]                     ; a1 10 04
+    and ax, 0f1ffh                            ; 25 ff f1
+    db  00bh, 0c3h
+    ; or ax, bx                                 ; 0b c3
+    mov word [00410h], ax                     ; a3 10 04
+    mov ax, 0ff53h                            ; b8 53 ff
+    mov word [00128h], ax                     ; a3 28 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0012ah], ax                     ; a3 2a 01
+    mov ax, 0fe7bh                            ; b8 7b fe
+    mov word [001c0h], ax                     ; a3 c0 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001c2h], ax                     ; a3 c2 01
+    call 0edbfh                               ; e8 18 0b
+    jmp short 0e31bh                          ; eb 72
+    times 0x18 db 0
+    db  'XM'
+nmi:                                         ; 0xfe2c3 LB 0x7
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0174bh                               ; e8 82 34
+    iret                                      ; cf
+int75_handler:                               ; 0xfe2ca LB 0x8
+    out strict byte 0f0h, AL                  ; e6 f0
+    call 0e030h                               ; e8 61 fd
+    int 002h                                  ; cd 02
+    iret                                      ; cf
+hard_drive_post:                             ; 0xfe2d2 LB 0x12c
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov byte [00474h], AL                     ; a2 74 04
+    mov byte [00477h], AL                     ; a2 77 04
+    mov byte [0048ch], AL                     ; a2 8c 04
+    mov byte [0048dh], AL                     ; a2 8d 04
+    mov byte [0048eh], AL                     ; a2 8e 04
+    mov AL, strict byte 0c0h                  ; b0 c0
+    mov byte [00476h], AL                     ; a2 76 04
+    mov ax, 0e3feh                            ; b8 fe e3
+    mov word [0004ch], ax                     ; a3 4c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0004eh], ax                     ; a3 4e 00
+    mov ax, 0f8d5h                            ; b8 d5 f8
+    mov word [001d8h], ax                     ; a3 d8 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001dah], ax                     ; a3 da 01
+    mov ax, strict word 0003dh                ; b8 3d 00
+    mov word [00104h], ax                     ; a3 04 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov word [00106h], ax                     ; a3 06 01
+    mov ax, strict word 0004dh                ; b8 4d 00
+    mov word [00118h], ax                     ; a3 18 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov word [0011ah], ax                     ; a3 1a 01
+    retn                                      ; c3
+    mov ax, 0f8a7h                            ; b8 a7 f8
+    mov word [001d0h], ax                     ; a3 d0 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001d2h], ax                     ; a3 d2 01
+    mov ax, 0e2cah                            ; b8 ca e2
+    mov word [001d4h], ax                     ; a3 d4 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001d6h], ax                     ; a3 d6 01
+    call 0e753h                               ; e8 1d 04
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01cc5h                               ; e8 89 39
+    call 02154h                               ; e8 15 3e
+    call 09b2ch                               ; e8 ea b7
+    call 08991h                               ; e8 4c a6
+    call 0ed2fh                               ; e8 e7 09
+    call 0e2d2h                               ; e8 87 ff
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    mov ax, 0c800h                            ; b8 00 c8
+    mov dx, 0f000h                            ; ba 00 f0
+    call 01600h                               ; e8 a9 32
+    call 01799h                               ; e8 3f 34
+    call 03be2h                               ; e8 85 58
+    sti                                       ; fb
+    int 019h                                  ; cd 19
+    sti                                       ; fb
+    hlt                                       ; f4
+    jmp short 0e361h                          ; eb fd
+    cli                                       ; fa
+    hlt                                       ; f4
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ss, [word 00069h]                     ; 8e 16 69 00
+    mov sp, word [word 00067h]                ; 8b 26 67 00
+    in AL, strict byte 092h                   ; e4 92
+    and AL, strict byte 0fdh                  ; 24 fd
+    out strict byte 092h, AL                  ; e6 92
+    lidt [cs:0efe7h]                          ; 2e 0f 01 1e e7 ef
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    in AL, strict byte 080h                   ; e4 80
+    mov byte [bp+00fh], al                    ; 88 46 0f
+    db  03ah, 0e0h
+    ; cmp ah, al                                ; 3a e0
+    popaw                                     ; 61
+    sti                                       ; fb
+    retf 00002h                               ; ca 02 00
+    times 0x6d db 0
+    db  'XM'
+int13_handler:                               ; 0xfe3fe LB 0x3
+    jmp near 0ec5bh                           ; e9 5a 08
+rom_fdpt:                                    ; 0xfe401 LB 0x2f1
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h
+    db  04dh
+int19_handler:                               ; 0xfe6f2 LB 0x3
+    jmp near 0f0ach                           ; e9 b7 09
+biosorg_check_0E6F5h:                        ; 0xfe6f5 LB 0x34
+    or word [bx+si], ax                       ; 09 00
+    cld                                       ; fc
+    add byte [bx+di], al                      ; 00 01
+    je short 0e73ch                           ; 74 40
+    times 0x2b db 0
+    db  'XM'
+biosorg_check_0E729h:                        ; 0xfe729 LB 0x10
+    times 0xe db 0
+    db  'XM'
+biosorg_check_0E739h:                        ; 0xfe739 LB 0x1a
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 065bch                               ; e8 7a 7e
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 016e6h                               ; e8 97 2f
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+init_pic:                                    ; 0xfe753 LB 0x25
+    mov AL, strict byte 011h                  ; b0 11
+    out strict byte 020h, AL                  ; e6 20
+    out strict byte 0a0h, AL                  ; e6 a0
+    mov AL, strict byte 008h                  ; b0 08
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 070h                  ; b0 70
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 004h                  ; b0 04
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 001h                  ; b0 01
+    out strict byte 021h, AL                  ; e6 21
+    out strict byte 0a1h, AL                  ; e6 a1
+    mov AL, strict byte 0b8h                  ; b0 b8
+    out strict byte 021h, AL                  ; e6 21
+    mov AL, strict byte 08fh                  ; b0 8f
+    out strict byte 0a1h, AL                  ; e6 a1
+    retn                                      ; c3
+ebda_post:                                   ; 0xfe778 LB 0xb6
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [00034h], ax                     ; a3 34 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00036h], ax                     ; a3 36 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [0003ch], ax                     ; a3 3c 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003eh], ax                     ; a3 3e 00
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [001c8h], ax                     ; a3 c8 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001cah], ax                     ; a3 ca 01
+    mov ax, 0e746h                            ; b8 46 e7
+    mov word [001dch], ax                     ; a3 dc 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001deh], ax                     ; a3 de 01
+    mov ax, 09fc0h                            ; b8 c0 9f
+    mov ds, ax                                ; 8e d8
+    mov byte [word 00000h], 001h              ; c6 06 00 00 01
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
+    retn                                      ; c3
+    times 0x6f db 0
+    db  'XM'
+biosorg_check_0E82Eh:                        ; 0xfe82e LB 0x159
+    sti                                       ; fb
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    cmp ah, 000h                              ; 80 fc 00
+    je short 0e846h                           ; 74 0f
+    cmp ah, 010h                              ; 80 fc 10
+    je short 0e846h                           ; 74 0a
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0585ah                               ; e8 18 70
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    mov bx, strict word 00040h                ; bb 40 00
+    mov ds, bx                                ; 8e db
+    cli                                       ; fa
+    mov bx, word [word 0001ah]                ; 8b 1e 1a 00
+    cmp bx, word [word 0001ch]                ; 3b 1e 1c 00
+    jne short 0e85ah                          ; 75 04
+    sti                                       ; fb
+    nop                                       ; 90
+    jmp short 0e84bh                          ; eb f1
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0585ah                               ; e8 fa 6f
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    times 0x121 db 0
+    db  'XM'
+biosorg_check_0E987h:                        ; 0xfe987 LB 0x2d2
+    cli                                       ; fa
+    push ax                                   ; 50
+    mov AL, strict byte 0adh                  ; b0 ad
+    out strict byte 064h, AL                  ; e6 64
+    mov AL, strict byte 00bh                  ; b0 0b
+    out strict byte 020h, AL                  ; e6 20
+    in AL, strict byte 020h                   ; e4 20
+    and AL, strict byte 002h                  ; 24 02
+    je short 0e9d0h                           ; 74 39
+    in AL, strict byte 060h                   ; e4 60
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    cld                                       ; fc
+    mov AH, strict byte 04fh                  ; b4 4f
+    stc                                       ; f9
+    int 015h                                  ; cd 15
+    jnc short 0e9cah                          ; 73 27
+    sti                                       ; fb
+    cmp AL, strict byte 0e0h                  ; 3c e0
+    jne short 0e9b3h                          ; 75 0b
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    or byte [00496h], 002h                    ; 80 0e 96 04 02
+    jmp short 0e9cah                          ; eb 17
+    cmp AL, strict byte 0e1h                  ; 3c e1
+    jne short 0e9c2h                          ; 75 0b
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    or byte [00496h], 001h                    ; 80 0e 96 04 01
+    jmp short 0e9cah                          ; eb 08
+    push ES                                   ; 06
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 052f9h                               ; e8 30 69
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    cli                                       ; fa
+    call 0e034h                               ; e8 64 f6
+    mov AL, strict byte 0aeh                  ; b0 ae
+    out strict byte 064h, AL                  ; e6 64
+    pop ax                                    ; 58
+    iret                                      ; cf
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 07073h                               ; e8 94 86
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+    times 0x274 db 0
+    db  'XM'
+biosorg_check_0EC59h:                        ; 0xfec59 LB 0x2
+    jmp short 0ecb0h                          ; eb 55
+int13_relocated:                             ; 0xfec5b LB 0x55
+    cmp ah, 04ah                              ; 80 fc 4a
+    jc short 0ec71h                           ; 72 11
+    cmp ah, 04dh                              ; 80 fc 4d
+    jnbe short 0ec71h                         ; 77 0c
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 03c26h                           ; e9 b5 4f
+    push ES                                   ; 06
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push cx                                   ; 51
+    push dx                                   ; 52
+    call 03bfah                               ; e8 81 4f
+    cmp AL, strict byte 000h                  ; 3c 00
+    je short 0ecabh                           ; 74 2e
+    call 03c10h                               ; e8 90 4f
+    pop dx                                    ; 5a
+    push dx                                   ; 52
+    db  03ah, 0c2h
+    ; cmp al, dl                                ; 3a c2
+    jne short 0ec97h                          ; 75 11
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 04233h                           ; e9 9c 55
+    and dl, 0e0h                              ; 80 e2 e0
+    db  03ah, 0c2h
+    ; cmp al, dl                                ; 3a c2
+    jne short 0ecabh                          ; 75 0d
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+    db  0feh, 0cah
+    ; dec dl                                    ; fe ca
+    jmp short 0ecb4h                          ; eb 09
+    pop dx                                    ; 5a
+    pop cx                                    ; 59
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    pop ES                                    ; 07
+int13_noeltorito:                            ; 0xfecb0 LB 0x4
+    push ax                                   ; 50
+    push cx                                   ; 51
+    push dx                                   ; 52
+    push bx                                   ; 53
+int13_legacy:                                ; 0xfecb4 LB 0x14
+    push dx                                   ; 52
+    push bp                                   ; 55
+    push si                                   ; 56
+    push di                                   ; 57
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    test dl, 080h                             ; f6 c2 80
+    jne short 0ecc8h                          ; 75 06
+    push 0ece9h                               ; 68 e9 ec
+    jmp near 0322dh                           ; e9 65 45
+int13_notfloppy:                             ; 0xfecc8 LB 0x14
+    cmp dl, 0e0h                              ; 80 fa e0
+    jc short 0ecdch                           ; 72 0f
+    shr ebx, 010h                             ; 66 c1 eb 10
+    push bx                                   ; 53
+    call 04686h                               ; e8 b1 59
+    pop bx                                    ; 5b
+    sal ebx, 010h                             ; 66 c1 e3 10
+    jmp short 0ece9h                          ; eb 0d
+int13_disk:                                  ; 0xfecdc LB 0xd
+    cmp ah, 040h                              ; 80 fc 40
+    jnbe short 0ece6h                         ; 77 05
+    call 05c3bh                               ; e8 57 6f
+    jmp short 0ece9h                          ; eb 03
+    call 06081h                               ; e8 98 73
+int13_out:                                   ; 0xfece9 LB 0x4
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+detect_parport:                              ; 0xfeced LB 0x1e
+    push dx                                   ; 52
+    inc dx                                    ; 42
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    and AL, strict byte 0dfh                  ; 24 df
+    out DX, AL                                ; ee
+    pop dx                                    ; 5a
+    mov AL, strict byte 0aah                  ; b0 aa
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 0aah                  ; 3c aa
+    jne short 0ed0ah                          ; 75 0d
+    push bx                                   ; 53
+    sal bx, 1                                 ; d1 e3
+    mov word [bx+00408h], dx                  ; 89 97 08 04
+    pop bx                                    ; 5b
+    mov byte [bx+00478h], cl                  ; 88 8f 78 04
+    inc bx                                    ; 43
+    retn                                      ; c3
+detect_serial:                               ; 0xfed0b LB 0x24
+    push dx                                   ; 52
+    inc dx                                    ; 42
+    mov AL, strict byte 002h                  ; b0 02
+    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0ed2dh                          ; 75 18
+    inc dx                                    ; 42
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 002h                  ; 3c 02
+    jne short 0ed2dh                          ; 75 12
+    dec dx                                    ; 4a
+    db  032h, 0c0h
+    ; xor al, al                                ; 32 c0
+    pop dx                                    ; 5a
+    push bx                                   ; 53
+    sal bx, 1                                 ; d1 e3
+    mov word [bx+00400h], dx                  ; 89 97 00 04
+    pop bx                                    ; 5b
+    mov byte [bx+0047ch], cl                  ; 88 8f 7c 04
+    inc bx                                    ; 43
+    retn                                      ; c3
+    pop dx                                    ; 5a
+    retn                                      ; c3
+floppy_post:                                 ; 0xfed2f LB 0x87
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov AL, strict byte 000h                  ; b0 00
+    mov byte [0043eh], AL                     ; a2 3e 04
+    mov byte [0043fh], AL                     ; a2 3f 04
+    mov byte [00440h], AL                     ; a2 40 04
+    mov byte [00441h], AL                     ; a2 41 04
+    mov byte [00442h], AL                     ; a2 42 04
+    mov byte [00443h], AL                     ; a2 43 04
+    mov byte [00444h], AL                     ; a2 44 04
+    mov byte [00445h], AL                     ; a2 45 04
+    mov byte [00446h], AL                     ; a2 46 04
+    mov byte [00447h], AL                     ; a2 47 04
+    mov byte [00448h], AL                     ; a2 48 04
+    mov byte [0048bh], AL                     ; a2 8b 04
+    mov AL, strict byte 010h                  ; b0 10
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    db  08ah, 0e0h
+    ; mov ah, al                                ; 8a e0
+    shr al, 004h                              ; c0 e8 04
+    je short 0ed6ah                           ; 74 04
+    mov BL, strict byte 007h                  ; b3 07
+    jmp short 0ed6ch                          ; eb 02
+    mov BL, strict byte 000h                  ; b3 00
+    db  08ah, 0c4h
+    ; mov al, ah                                ; 8a c4
+    and AL, strict byte 00fh                  ; 24 0f
+    je short 0ed75h                           ; 74 03
+    or bl, 070h                               ; 80 cb 70
+    mov byte [0048fh], bl                     ; 88 1e 8f 04
+    mov AL, strict byte 000h                  ; b0 00
+    mov byte [00490h], AL                     ; a2 90 04
+    mov byte [00491h], AL                     ; a2 91 04
+    mov byte [00492h], AL                     ; a2 92 04
+    mov byte [00493h], AL                     ; a2 93 04
+    mov byte [00494h], AL                     ; a2 94 04
+    mov byte [00495h], AL                     ; a2 95 04
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 00ah, AL                  ; e6 0a
+    mov ax, 0efc7h                            ; b8 c7 ef
+    mov word [00078h], ax                     ; a3 78 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0007ah], ax                     ; a3 7a 00
+    mov ax, 0ec59h                            ; b8 59 ec
+    mov word [00100h], ax                     ; a3 00 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [00102h], ax                     ; a3 02 01
+    mov ax, 0ef57h                            ; b8 57 ef
+    mov word [00038h], ax                     ; a3 38 00
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [0003ah], ax                     ; a3 3a 00
+    retn                                      ; c3
+bcd_to_bin:                                  ; 0xfedb6 LB 0x9
+    sal ax, 004h                              ; c1 e0 04
+    shr al, 004h                              ; c0 e8 04
+    aad 00ah                                  ; d5 0a
+    retn                                      ; c3
+rtc_post:                                    ; 0xfedbf LB 0x198
+    mov AL, strict byte 000h                  ; b0 00
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 ee ff
+    test al, al                               ; 84 c0
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    mov dx, 01234h                            ; ba 34 12
+    mul dx                                    ; f7 e2
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    mov AL, strict byte 002h                  ; b0 02
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 da ff
+    test al, al                               ; 84 c0
+    je short 0edebh                           ; 74 0b
+    add cx, 04463h                            ; 81 c1 63 44
+    adc dx, strict byte 00004h                ; 83 d2 04
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    jne short 0ede0h                          ; 75 f5
+    mov AL, strict byte 004h                  ; b0 04
+    out strict byte 070h, AL                  ; e6 70
+    in AL, strict byte 071h                   ; e4 71
+    call 0edb6h                               ; e8 c2 ff
+    test al, al                               ; 84 c0
+    je short 0ee0ah                           ; 74 12
+    add cx, 0076ch                            ; 81 c1 6c 07
+    adc dx, 00100h                            ; 81 d2 00 01
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    jne short 0edf8h                          ; 75 f4
+    mov ax, 0046ch                            ; b8 6c 04
+    mov dx, 0046eh                            ; ba 6e 04
+    db  08ah, 0cdh
+    ; mov cl, ch                                ; 8a cd
+    db  08ah, 0eah
+    ; mov ch, dl                                ; 8a ea
+    db  08ah, 0d6h
+    ; mov dl, dh                                ; 8a d6
+    db  032h, 0f6h
+    ; xor dh, dh                                ; 32 f6
+    mov word [0046ch], cx                     ; 89 0e 6c 04
+    mov word [0046eh], dx                     ; 89 16 6e 04
+    mov byte [00470h], dh                     ; 88 36 70 04
+    retn                                      ; c3
+    times 0x136 db 0
+    db  'XM'
+int0e_handler:                               ; 0xfef57 LB 0x70
+    push ax                                   ; 50
+    push dx                                   ; 52
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0ef81h                           ; 74 1e
+    mov dx, 003f5h                            ; ba f5 03
+    mov AL, strict byte 008h                  ; b0 08
+    out DX, AL                                ; ee
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    jne short 0ef69h                          ; 75 f6
+    mov dx, 003f5h                            ; ba f5 03
+    in AL, DX                                 ; ec
+    mov dx, 003f4h                            ; ba f4 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0c0h                  ; 24 c0
+    cmp AL, strict byte 0c0h                  ; 3c c0
+    je short 0ef73h                           ; 74 f2
+    push DS                                   ; 1e
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    call 0e034h                               ; e8 ab f0
+    or byte [0043eh], 080h                    ; 80 0e 3e 04 80
+    pop DS                                    ; 1f
+    pop dx                                    ; 5a
+    pop ax                                    ; 58
+    iret                                      ; cf
+    times 0x33 db 0
+    db  'XM'
+_diskette_param_table:                       ; 0xfefc7 LB 0xb
+    scasw                                     ; af
+    add ah, byte [di]                         ; 02 25
+    add dl, byte [bp+si]                      ; 02 12
+    db  01bh, 0ffh
+    ; sbb di, di                                ; 1b ff
+    insb                                      ; 6c
+    db  0f6h
+    invd                                      ; 0f 08
+biosorg_check_0EFD2h:                        ; 0xfefd2 LB 0x2
+    jmp short 0efd4h                          ; eb 00
+int17_handler:                               ; 0xfefd4 LB 0xd
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 07a20h                               ; e8 43 8a
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    iret                                      ; cf
+_pmode_IDT:                                  ; 0xfefe1 LB 0x6
+    db  000h, 000h, 000h, 000h, 00fh, 000h
+_rmode_IDT:                                  ; 0xfefe7 LB 0x6
+    db  0ffh, 003h, 000h, 000h, 000h, 000h
+int1c_handler:                               ; 0xfefed LB 0x58
+    iret                                      ; cf
+    times 0x55 db 0
+    db  'XM'
+biosorg_check_0F045h:                        ; 0xff045 LB 0x20
+    iret                                      ; cf
+    times 0x1d db 0
+    db  'XM'
+int10_handler:                               ; 0xff065 LB 0x3f
+    iret                                      ; cf
+    times 0x3c db 0
+    db  'XM'
+biosorg_check_0F0A4h:                        ; 0xff0a4 LB 0x8
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 01760h                               ; e8 b6 26
+    hlt                                       ; f4
+    iret                                      ; cf
+int19_relocated:                             ; 0xff0ac LB 0x91
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, word [bp+002h]                    ; 8b 46 02
+    cmp ax, 0f000h                            ; 3d 00 f0
+    je short 0f0c3h                           ; 74 0d
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov ax, 01234h                            ; b8 34 12
+    mov word [001d8h], ax                     ; a3 d8 01
+    jmp near 0e05bh                           ; e9 98 ef
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, strict word 00001h                ; b8 01 00
+    push ax                                   ; 50
+    call 04d4eh                               ; e8 7e 5c
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 28
+    mov ax, strict word 00002h                ; b8 02 00
+    push ax                                   ; 50
+    call 04d4eh                               ; e8 71 5c
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 1b
+    mov ax, strict word 00003h                ; b8 03 00
+    push strict byte 00003h                   ; 6a 03
+    call 04d4eh                               ; e8 63 5c
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    jne short 0f0feh                          ; 75 0d
+    mov ax, strict word 00004h                ; b8 04 00
+    push ax                                   ; 50
+    call 04d4eh                               ; e8 56 5c
+    inc sp                                    ; 44
+    inc sp                                    ; 44
+    test ax, ax                               ; 85 c0
+    je short 0f0a4h                           ; 74 a6
+    mov word [byte bp+000h], ax               ; 89 46 00
+    sal ax, 004h                              ; c1 e0 04
+    mov word [bp+002h], ax                    ; 89 46 02
+    mov ax, word [byte bp+000h]               ; 8b 46 00
+    and ax, 0f000h                            ; 25 00 f0
+    mov word [bp+004h], ax                    ; 89 46 04
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    mov ds, ax                                ; 8e d8
+    mov es, ax                                ; 8e c0
+    mov word [byte bp+000h], ax               ; 89 46 00
+    mov ax, 0aa55h                            ; b8 55 aa
+    pop bp                                    ; 5d
+    iret                                      ; cf
+    or cx, word [bp+si]                       ; 0b 0a
+    or word [bp+di], cx                       ; 09 0b
+    push eax                                  ; 66 50
+    mov eax, strict dword 000800000h          ; 66 b8 00 00 80 00
+    db  08bh, 0c3h
+    ; mov ax, bx                                ; 8b c3
+    sal eax, 008h                             ; 66 c1 e0 08
+    and dl, 0fch                              ; 80 e2 fc
+    db  00ah, 0c2h
+    ; or al, dl                                 ; 0a c2
+    mov dx, 00cf8h                            ; ba f8 0c
+    out DX, eax                               ; 66 ef
+    pop eax                                   ; 66 58
+    retn                                      ; c3
+pcibios_init_iomem_bases:                    ; 0xff13d LB 0x16
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov eax, strict dword 0e0000000h          ; 66 b8 00 00 00 e0
+    push eax                                  ; 66 50
+    mov ax, 0d000h                            ; b8 00 d0
+    push ax                                   ; 50
+    mov ax, strict word 00010h                ; b8 10 00
+    push ax                                   ; 50
+    mov bx, strict word 00008h                ; bb 08 00
+pci_init_io_loop1:                           ; 0xff153 LB 0xe
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 ca ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    cmp ax, strict byte 0ffffh                ; 83 f8 ff
+    je short 0f19ah                           ; 74 39
+enable_iomem_space:                          ; 0xff161 LB 0x39
+    mov DL, strict byte 004h                  ; b2 04
+    call 0f122h                               ; e8 bc ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in AL, DX                                 ; ec
+    or AL, strict byte 007h                   ; 0c 07
+    out DX, AL                                ; ee
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 b0 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    cmp eax, strict dword 020001022h          ; 66 3d 22 10 00 20
+    jne short 0f19ah                          ; 75 1b
+    mov DL, strict byte 010h                  ; b2 10
+    call 0f122h                               ; e8 9e ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    and ax, strict byte 0fffch                ; 83 e0 fc
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    db  08bh, 0d1h
+    ; mov dx, cx                                ; 8b d1
+    add dx, strict byte 00014h                ; 83 c2 14
+    in ax, DX                                 ; ed
+    db  08bh, 0d1h
+    ; mov dx, cx                                ; 8b d1
+    add dx, strict byte 00018h                ; 83 c2 18
+    in eax, DX                                ; 66 ed
+next_pci_dev:                                ; 0xff19a LB 0xf
+    mov byte [bp-008h], 010h                  ; c6 46 f8 10
+    inc bx                                    ; 43
+    cmp bx, 00100h                            ; 81 fb 00 01
+    jne short 0f153h                          ; 75 ae
+    db  08bh, 0e5h
+    ; mov sp, bp                                ; 8b e5
+    pop bp                                    ; 5d
+    retn                                      ; c3
+pcibios_init_set_elcr:                       ; 0xff1a9 LB 0xc
+    push ax                                   ; 50
+    push cx                                   ; 51
+    mov dx, 004d0h                            ; ba d0 04
+    test AL, strict byte 008h                 ; a8 08
+    je short 0f1b5h                           ; 74 03
+    inc dx                                    ; 42
+    and AL, strict byte 007h                  ; 24 07
+is_master_pic:                               ; 0xff1b5 LB 0xd
+    db  08ah, 0c8h
+    ; mov cl, al                                ; 8a c8
+    mov BL, strict byte 001h                  ; b3 01
+    sal bl, CL                                ; d2 e3
+    in AL, DX                                 ; ec
+    db  00ah, 0c3h
+    ; or al, bl                                 ; 0a c3
+    out DX, AL                                ; ee
+    pop cx                                    ; 59
+    pop ax                                    ; 58
+    retn                                      ; c3
+pcibios_init_irqs:                           ; 0xff1c2 LB 0x53
+    push DS                                   ; 1e
+    push bp                                   ; 55
+    mov ax, 0f000h                            ; b8 00 f0
+    mov ds, ax                                ; 8e d8
+    mov dx, 004d0h                            ; ba d0 04
+    mov AL, strict byte 000h                  ; b0 00
+    out DX, AL                                ; ee
+    inc dx                                    ; 42
+    out DX, AL                                ; ee
+    mov si, 0f2a0h                            ; be a0 f2
+    mov bh, byte [si+008h]                    ; 8a 7c 08
+    mov bl, byte [si+009h]                    ; 8a 5c 09
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 43 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in eax, DX                                ; 66 ed
+    cmp eax, dword [si+00ch]                  ; 66 3b 44 0c
+    jne near 0f292h                           ; 0f 85 a6 00
+    mov dl, byte [si+022h]                    ; 8a 54 22
+    call 0f122h                               ; e8 30 ff
+    push bx                                   ; 53
+    mov dx, 00cfch                            ; ba fc 0c
+    mov ax, 08080h                            ; b8 80 80
+    out DX, ax                                ; ef
+    add dx, strict byte 00002h                ; 83 c2 02
+    out DX, ax                                ; ef
+    mov ax, word [si+006h]                    ; 8b 44 06
+    sub ax, strict byte 00020h                ; 83 e8 20
+    shr ax, 004h                              ; c1 e8 04
+    db  08bh, 0c8h
+    ; mov cx, ax                                ; 8b c8
+    add si, strict byte 00020h                ; 83 c6 20
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    mov ax, 0f11eh                            ; b8 1e f1
+    push ax                                   ; 50
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    push ax                                   ; 50
+pci_init_irq_loop1:                          ; 0xff215 LB 0x5
+    mov bh, byte [si]                         ; 8a 3c
+    mov bl, byte [si+001h]                    ; 8a 5c 01
+pci_init_irq_loop2:                          ; 0xff21a LB 0x15
+    mov DL, strict byte 000h                  ; b2 00
+    call 0f122h                               ; e8 03 ff
+    mov dx, 00cfch                            ; ba fc 0c
+    in ax, DX                                 ; ed
+    cmp ax, strict byte 0ffffh                ; 83 f8 ff
+    jne short 0f22fh                          ; 75 07
+    test bl, 007h                             ; f6 c3 07
+    je short 0f286h                           ; 74 59
+    jmp short 0f27ch                          ; eb 4d
+pci_test_int_pin:                            ; 0xff22f LB 0x3c
+    mov DL, strict byte 03ch                  ; b2 3c
+    call 0f122h                               ; e8 ee fe
+    mov dx, 00cfdh                            ; ba fd 0c
+    in AL, DX                                 ; ec
+    and AL, strict byte 007h                  ; 24 07
+    je short 0f27ch                           ; 74 40
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov DL, strict byte 003h                  ; b2 03
+    mul dl                                    ; f6 e2
+    add AL, strict byte 002h                  ; 04 02
+    db  032h, 0e4h
+    ; xor ah, ah                                ; 32 e4
+    db  08bh, 0d8h
+    ; mov bx, ax                                ; 8b d8
+    mov al, byte [bx+si]                      ; 8a 00
+    db  08ah, 0d0h
+    ; mov dl, al                                ; 8a d0
+    mov bx, word [byte bp+000h]               ; 8b 5e 00
+    call 0f122h                               ; e8 d0 fe
+    mov dx, 00cfch                            ; ba fc 0c
+    and AL, strict byte 003h                  ; 24 03
+    db  002h, 0d0h
+    ; add dl, al                                ; 02 d0
+    in AL, DX                                 ; ec
+    cmp AL, strict byte 080h                  ; 3c 80
+    jc short 0f26bh                           ; 72 0d
+    mov bx, word [bp-002h]                    ; 8b 5e fe
+    mov al, byte [bx]                         ; 8a 07
+    out DX, AL                                ; ee
+    inc bx                                    ; 43
+    mov word [bp-002h], bx                    ; 89 5e fe
+    call 0f1a9h                               ; e8 3e ff
+pirq_found:                                  ; 0xff26b LB 0x11
+    mov bh, byte [si]                         ; 8a 3c
+    mov bl, byte [si+001h]                    ; 8a 5c 01
+    add bl, byte [bp-003h]                    ; 02 5e fd
+    mov DL, strict byte 03ch                  ; b2 3c
+    call 0f122h                               ; e8 aa fe
+    mov dx, 00cfch                            ; ba fc 0c
+    out DX, AL                                ; ee
+next_pci_func:                               ; 0xff27c LB 0xa
+    inc byte [bp-003h]                        ; fe 46 fd
+    db  0feh, 0c3h
+    ; inc bl                                    ; fe c3
+    test bl, 007h                             ; f6 c3 07
+    jne short 0f21ah                          ; 75 94
+next_pir_entry:                              ; 0xff286 LB 0xc
+    add si, strict byte 00010h                ; 83 c6 10
+    mov byte [bp-003h], 000h                  ; c6 46 fd 00
+    loop 0f215h                               ; e2 86
+    db  08bh, 0e5h
+    ; mov sp, bp                                ; 8b e5
+    pop bx                                    ; 5b
+pci_init_end:                                ; 0xff292 LB 0x2e
+    pop bp                                    ; 5d
+    pop DS                                    ; 1f
+    retn                                      ; c3
+    db  089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 0fch, 024h, 050h, 049h, 052h, 000h
+    db  001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h
+_pci_routing_table:                          ; 0xff2c0 LB 0x1e0
+    db  000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h
+    db  000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h
+    db  000h, 018h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 002h, 000h
+    db  000h, 020h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 003h, 000h
+    db  000h, 028h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 004h, 000h
+    db  000h, 030h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 005h, 000h
+    db  000h, 038h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 006h, 000h
+    db  000h, 040h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 007h, 000h
+    db  000h, 048h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 008h, 000h
+    db  000h, 050h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 009h, 000h
+    db  000h, 058h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00ah, 000h
+    db  000h, 060h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00bh, 000h
+    db  000h, 068h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 00ch, 000h
+    db  000h, 070h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 00dh, 000h
+    db  000h, 078h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 00eh, 000h
+    db  000h, 080h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 00fh, 000h
+    db  000h, 088h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 010h, 000h
+    db  000h, 090h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 011h, 000h
+    db  000h, 098h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 012h, 000h
+    db  000h, 0a0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 013h, 000h
+    db  000h, 0a8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 014h, 000h
+    db  000h, 0b0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 015h, 000h
+    db  000h, 0b8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 016h, 000h
+    db  000h, 0c0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 017h, 000h
+    db  000h, 0c8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 018h, 000h
+    db  000h, 0d0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 019h, 000h
+    db  000h, 0d8h, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 01ah, 000h
+    db  000h, 0e0h, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 01bh, 000h
+    db  000h, 0e8h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 01ch, 000h
+    db  000h, 0f0h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 01dh, 000h
+_pci_routing_table_size:                     ; 0xff4a0 LB 0x3a1
+    loopne 0f4a3h                             ; e0 01
+    times 0x39d db 0
+    db  'XM'
+int12_handler:                               ; 0xff841 LB 0xc
+    sti                                       ; fb
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [00013h]                     ; a1 13 00
+    pop DS                                    ; 1f
+    iret                                      ; cf
+int11_handler:                               ; 0xff84d LB 0xc
+    sti                                       ; fb
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [00010h]                     ; a1 10 00
+    pop DS                                    ; 1f
+    iret                                      ; cf
+int15_handler:                               ; 0xff859 LB 0x2e
+    pushfw                                    ; 9c
+    push DS                                   ; 1e
+    push ES                                   ; 06
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    cmp ah, 086h                              ; 80 fc 86
+    je short 0f88ch                           ; 74 28
+    cmp ah, 0e8h                              ; 80 fc e8
+    je short 0f88ch                           ; 74 23
+    cmp ah, 0d0h                              ; 80 fc d0
+    je short 0f88ch                           ; 74 1e
+    pushaw                                    ; 60
+    cmp ah, 053h                              ; 80 fc 53
+    je short 0f882h                           ; 74 0e
+    cmp ah, 0c2h                              ; 80 fc c2
+    je short 0f887h                           ; 74 0e
+    call 067ceh                               ; e8 52 6f
+    popaw                                     ; 61
+    pop ES                                    ; 07
+    pop DS                                    ; 1f
+    popfw                                     ; 9d
+    jmp short 0f893h                          ; eb 11
+    call 09c7fh                               ; e8 fa a3
+    jmp short 0f87ch                          ; eb f5
+int15_handler_mouse:                         ; 0xff887 LB 0x5
+    call 07680h                               ; e8 f6 7d
+    jmp short 0f87ch                          ; eb f0
+int15_handler32:                             ; 0xff88c LB 0x7
+    pushaw                                    ; 60
+    call 06ca4h                               ; e8 14 74
+    popaw                                     ; 61
+    jmp short 0f87dh                          ; eb ea
+iret_modify_cf:                              ; 0xff893 LB 0x14
+    jc short 0f89eh                           ; 72 09
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    and byte [bp+006h], 0feh                  ; 80 66 06 fe
+    pop bp                                    ; 5d
+    iret                                      ; cf
+    push bp                                   ; 55
+    db  08bh, 0ech
+    ; mov bp, sp                                ; 8b ec
+    or byte [bp+006h], 001h                   ; 80 4e 06 01
+    pop bp                                    ; 5d
+    iret                                      ; cf
+int74_handler:                               ; 0xff8a7 LB 0x2e
+    sti                                       ; fb
+    pushaw                                    ; 60
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push strict byte 00000h                   ; 6a 00
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 075aeh                               ; e8 f3 7c
+    pop cx                                    ; 59
+    jcxz 0f8cah                               ; e3 0c
+    push strict byte 00000h                   ; 6a 00
+    pop DS                                    ; 1f
+    push word [0040eh]                        ; ff 36 0e 04
+    pop DS                                    ; 1f
+    call far [word 00022h]                    ; ff 1e 22 00
+    cli                                       ; fa
+    call 0e030h                               ; e8 62 e7
+    add sp, strict byte 00008h                ; 83 c4 08
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    popaw                                     ; 61
+    iret                                      ; cf
+int76_handler:                               ; 0xff8d5 LB 0x199
+    push ax                                   ; 50
+    push DS                                   ; 1e
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov byte [0008eh], 0ffh                   ; c6 06 8e 00 ff
+    call 0e030h                               ; e8 4c e7
+    pop DS                                    ; 1f
+    pop ax                                    ; 58
+    iret                                      ; cf
+    times 0x185 db 0
+    db  'XM'
+font8x8:                                     ; 0xffa6e LB 0x400
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh
+    db  07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h
+    db  010h, 038h, 07ch, 0feh, 07ch, 038h, 010h, 000h, 038h, 07ch, 038h, 0feh, 0feh, 07ch, 038h, 07ch
+    db  010h, 010h, 038h, 07ch, 0feh, 07ch, 038h, 07ch, 000h, 000h, 018h, 03ch, 03ch, 018h, 000h, 000h
+    db  0ffh, 0ffh, 0e7h, 0c3h, 0c3h, 0e7h, 0ffh, 0ffh, 000h, 03ch, 066h, 042h, 042h, 066h, 03ch, 000h
+    db  0ffh, 0c3h, 099h, 0bdh, 0bdh, 099h, 0c3h, 0ffh, 00fh, 007h, 00fh, 07dh, 0cch, 0cch, 0cch, 078h
+    db  03ch, 066h, 066h, 066h, 03ch, 018h, 07eh, 018h, 03fh, 033h, 03fh, 030h, 030h, 070h, 0f0h, 0e0h
+    db  07fh, 063h, 07fh, 063h, 063h, 067h, 0e6h, 0c0h, 099h, 05ah, 03ch, 0e7h, 0e7h, 03ch, 05ah, 099h
+    db  080h, 0e0h, 0f8h, 0feh, 0f8h, 0e0h, 080h, 000h, 002h, 00eh, 03eh, 0feh, 03eh, 00eh, 002h, 000h
+    db  018h, 03ch, 07eh, 018h, 018h, 07eh, 03ch, 018h, 066h, 066h, 066h, 066h, 066h, 000h, 066h, 000h
+    db  07fh, 0dbh, 0dbh, 07bh, 01bh, 01bh, 01bh, 000h, 03eh, 063h, 038h, 06ch, 06ch, 038h, 0cch, 078h
+    db  000h, 000h, 000h, 000h, 07eh, 07eh, 07eh, 000h, 018h, 03ch, 07eh, 018h, 07eh, 03ch, 018h, 0ffh
+    db  018h, 03ch, 07eh, 018h, 018h, 018h, 018h, 000h, 018h, 018h, 018h, 018h, 07eh, 03ch, 018h, 000h
+    db  000h, 018h, 00ch, 0feh, 00ch, 018h, 000h, 000h, 000h, 030h, 060h, 0feh, 060h, 030h, 000h, 000h
+    db  000h, 000h, 0c0h, 0c0h, 0c0h, 0feh, 000h, 000h, 000h, 024h, 066h, 0ffh, 066h, 024h, 000h, 000h
+    db  000h, 018h, 03ch, 07eh, 0ffh, 0ffh, 000h, 000h, 000h, 0ffh, 0ffh, 07eh, 03ch, 018h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h, 078h, 078h, 030h, 030h, 000h, 030h, 000h
+    db  06ch, 06ch, 06ch, 000h, 000h, 000h, 000h, 000h, 06ch, 06ch, 0feh, 06ch, 0feh, 06ch, 06ch, 000h
+    db  030h, 07ch, 0c0h, 078h, 00ch, 0f8h, 030h, 000h, 000h, 0c6h, 0cch, 018h, 030h, 066h, 0c6h, 000h
+    db  038h, 06ch, 038h, 076h, 0dch, 0cch, 076h, 000h, 060h, 060h, 0c0h, 000h, 000h, 000h, 000h, 000h
+    db  018h, 030h, 060h, 060h, 060h, 030h, 018h, 000h, 060h, 030h, 018h, 018h, 018h, 030h, 060h, 000h
+    db  000h, 066h, 03ch, 0ffh, 03ch, 066h, 000h, 000h, 000h, 030h, 030h, 0fch, 030h, 030h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 060h, 000h, 000h, 000h, 0fch, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 030h, 030h, 000h, 006h, 00ch, 018h, 030h, 060h, 0c0h, 080h, 000h
+    db  07ch, 0c6h, 0ceh, 0deh, 0f6h, 0e6h, 07ch, 000h, 030h, 070h, 030h, 030h, 030h, 030h, 0fch, 000h
+    db  078h, 0cch, 00ch, 038h, 060h, 0cch, 0fch, 000h, 078h, 0cch, 00ch, 038h, 00ch, 0cch, 078h, 000h
+    db  01ch, 03ch, 06ch, 0cch, 0feh, 00ch, 01eh, 000h, 0fch, 0c0h, 0f8h, 00ch, 00ch, 0cch, 078h, 000h
+    db  038h, 060h, 0c0h, 0f8h, 0cch, 0cch, 078h, 000h, 0fch, 0cch, 00ch, 018h, 030h, 030h, 030h, 000h
+    db  078h, 0cch, 0cch, 078h, 0cch, 0cch, 078h, 000h, 078h, 0cch, 0cch, 07ch, 00ch, 018h, 070h, 000h
+    db  000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 000h, 000h, 030h, 030h, 060h
+    db  018h, 030h, 060h, 0c0h, 060h, 030h, 018h, 000h, 000h, 000h, 0fch, 000h, 000h, 0fch, 000h, 000h
+    db  060h, 030h, 018h, 00ch, 018h, 030h, 060h, 000h, 078h, 0cch, 00ch, 018h, 030h, 000h, 030h, 000h
+    db  07ch, 0c6h, 0deh, 0deh, 0deh, 0c0h, 078h, 000h, 030h, 078h, 0cch, 0cch, 0fch, 0cch, 0cch, 000h
+    db  0fch, 066h, 066h, 07ch, 066h, 066h, 0fch, 000h, 03ch, 066h, 0c0h, 0c0h, 0c0h, 066h, 03ch, 000h
+    db  0f8h, 06ch, 066h, 066h, 066h, 06ch, 0f8h, 000h, 0feh, 062h, 068h, 078h, 068h, 062h, 0feh, 000h
+    db  0feh, 062h, 068h, 078h, 068h, 060h, 0f0h, 000h, 03ch, 066h, 0c0h, 0c0h, 0ceh, 066h, 03eh, 000h
+    db  0cch, 0cch, 0cch, 0fch, 0cch, 0cch, 0cch, 000h, 078h, 030h, 030h, 030h, 030h, 030h, 078h, 000h
+    db  01eh, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 000h, 0e6h, 066h, 06ch, 078h, 06ch, 066h, 0e6h, 000h
+    db  0f0h, 060h, 060h, 060h, 062h, 066h, 0feh, 000h, 0c6h, 0eeh, 0feh, 0feh, 0d6h, 0c6h, 0c6h, 000h
+    db  0c6h, 0e6h, 0f6h, 0deh, 0ceh, 0c6h, 0c6h, 000h, 038h, 06ch, 0c6h, 0c6h, 0c6h, 06ch, 038h, 000h
+    db  0fch, 066h, 066h, 07ch, 060h, 060h, 0f0h, 000h, 078h, 0cch, 0cch, 0cch, 0dch, 078h, 01ch, 000h
+    db  0fch, 066h, 066h, 07ch, 06ch, 066h, 0e6h, 000h, 078h, 0cch, 0e0h, 070h, 01ch, 0cch, 078h, 000h
+    db  0fch, 0b4h, 030h, 030h, 030h, 030h, 078h, 000h, 0cch, 0cch, 0cch, 0cch, 0cch, 0cch, 0fch, 000h
+    db  0cch, 0cch, 0cch, 0cch, 0cch, 078h, 030h, 000h, 0c6h, 0c6h, 0c6h, 0d6h, 0feh, 0eeh, 0c6h, 000h
+    db  0c6h, 0c6h, 06ch, 038h, 038h, 06ch, 0c6h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 030h, 078h, 000h
+    db  0feh, 0c6h, 08ch, 018h, 032h, 066h, 0feh, 000h, 078h, 060h, 060h, 060h, 060h, 060h, 078h, 000h
+    db  0c0h, 060h, 030h, 018h, 00ch, 006h, 002h, 000h, 078h, 018h, 018h, 018h, 018h, 018h, 078h, 000h
+    db  010h, 038h, 06ch, 0c6h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0ffh
+    db  030h, 030h, 018h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 078h, 00ch, 07ch, 0cch, 076h, 000h
+    db  0e0h, 060h, 060h, 07ch, 066h, 066h, 0dch, 000h, 000h, 000h, 078h, 0cch, 0c0h, 0cch, 078h, 000h
+    db  01ch, 00ch, 00ch, 07ch, 0cch, 0cch, 076h, 000h, 000h, 000h, 078h, 0cch, 0fch, 0c0h, 078h, 000h
+    db  038h, 06ch, 060h, 0f0h, 060h, 060h, 0f0h, 000h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  0e0h, 060h, 06ch, 076h, 066h, 066h, 0e6h, 000h, 030h, 000h, 070h, 030h, 030h, 030h, 078h, 000h
+    db  00ch, 000h, 00ch, 00ch, 00ch, 0cch, 0cch, 078h, 0e0h, 060h, 066h, 06ch, 078h, 06ch, 0e6h, 000h
+    db  070h, 030h, 030h, 030h, 030h, 030h, 078h, 000h, 000h, 000h, 0cch, 0feh, 0feh, 0d6h, 0c6h, 000h
+    db  000h, 000h, 0f8h, 0cch, 0cch, 0cch, 0cch, 000h, 000h, 000h, 078h, 0cch, 0cch, 0cch, 078h, 000h
+    db  000h, 000h, 0dch, 066h, 066h, 07ch, 060h, 0f0h, 000h, 000h, 076h, 0cch, 0cch, 07ch, 00ch, 01eh
+    db  000h, 000h, 0dch, 076h, 066h, 060h, 0f0h, 000h, 000h, 000h, 07ch, 0c0h, 078h, 00ch, 0f8h, 000h
+    db  010h, 030h, 07ch, 030h, 030h, 034h, 018h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 0cch, 076h, 000h
+    db  000h, 000h, 0cch, 0cch, 0cch, 078h, 030h, 000h, 000h, 000h, 0c6h, 0d6h, 0feh, 0feh, 06ch, 000h
+    db  000h, 000h, 0c6h, 06ch, 038h, 06ch, 0c6h, 000h, 000h, 000h, 0cch, 0cch, 0cch, 07ch, 00ch, 0f8h
+    db  000h, 000h, 0fch, 098h, 030h, 064h, 0fch, 000h, 01ch, 030h, 030h, 0e0h, 030h, 030h, 01ch, 000h
+    db  018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h
+    db  076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h
+biosorg_check_0FE6Eh:                        ; 0xffe6e LB 0xd
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0730ah                               ; e8 93 74
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+int70_handler:                               ; 0xffe7b LB 0x2a
+    push ES                                   ; 06
+    push DS                                   ; 1e
+    pushaw                                    ; 60
+    push CS                                   ; 0e
+    pop DS                                    ; 1f
+    cld                                       ; fc
+    call 0724bh                               ; e8 c7 73
+    popaw                                     ; 61
+    pop DS                                    ; 1f
+    pop ES                                    ; 07
+    iret                                      ; cf
+    times 0x1b db 0
+    db  'XM'
+int08_handler:                               ; 0xffea5 LB 0x4e
+    sti                                       ; fb
+    push ax                                   ; 50
+    push bx                                   ; 53
+    push DS                                   ; 1e
+    push dx                                   ; 52
+    mov ax, strict word 00040h                ; b8 40 00
+    mov ds, ax                                ; 8e d8
+    mov ax, word [0006ch]                     ; a1 6c 00
+    mov bx, word [word 0006eh]                ; 8b 1e 6e 00
+    add ax, strict byte 00001h                ; 83 c0 01
+    adc bx, strict byte 00000h                ; 83 d3 00
+    cmp bx, strict byte 00018h                ; 83 fb 18
+    jc short 0fed0h                           ; 72 0f
+    jnbe short 0fec8h                         ; 77 05
+    cmp ax, 000b0h                            ; 3d b0 00
+    jc short 0fed0h                           ; 72 08
+    db  033h, 0c0h
+    ; xor ax, ax                                ; 33 c0
+    db  033h, 0dbh
+    ; xor bx, bx                                ; 33 db
+    inc byte [word 00070h]                    ; fe 06 70 00
+    mov word [0006ch], ax                     ; a3 6c 00
+    mov word [word 0006eh], bx                ; 89 1e 6e 00
+    mov AL, byte [00040h]                     ; a0 40 00
+    db  00ah, 0c0h
+    ; or al, al                                 ; 0a c0
+    je short 0feech                           ; 74 0e
+    db  0feh, 0c8h
+    ; dec al                                    ; fe c8
+    mov byte [00040h], AL                     ; a2 40 00
+    jne short 0feech                          ; 75 07
+    mov dx, 003f2h                            ; ba f2 03
+    in AL, DX                                 ; ec
+    and AL, strict byte 0cfh                  ; 24 cf
+    out DX, AL                                ; ee
+    int 01ch                                  ; cd 1c
+    cli                                       ; fa
+    call 05734h                               ; e8 42 58
+    dec bp                                    ; 4d
+biosorg_check_0FEF3h:                        ; 0xffef3 LB 0xd
+    pop DS                                    ; 1f
+    pop bx                                    ; 5b
+    pop ax                                    ; 58
+    iret                                      ; cf
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si+04dh], bl                 ; 00 58 4d
+biosorg_check_0FF00h:                        ; 0xfff00 LB 0x53
+    dec di                                    ; 4f
+    jc short 0ff64h                           ; 72 61
+    arpl [si+065h], bp                        ; 63 6c 65
+    and byte [bp+04dh], dl                    ; 20 56 4d
+    and byte [bp+069h], dl                    ; 20 56 69
+    jc short 0ff82h                           ; 72 74
+    jne short 0ff71h                          ; 75 61
+    insb                                      ; 6c
+    inc dx                                    ; 42
+    outsw                                     ; 6f
+    js short 0ff35h                           ; 78 20
+    inc dx                                    ; 42
+    dec cx                                    ; 49
+    dec di                                    ; 4f
+    push bx                                   ; 53
+    times 0x38 db 0
+    db  'XM'
+dummy_iret:                                  ; 0xfff53 LB 0x1
+    iret                                      ; cf
+biosorg_check_0FF54h:                        ; 0xfff54 LB 0x9c
+    iret                                      ; cf
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    mov ax, ax                                ; 89 c0
+    cld                                       ; fc
+    pop di                                    ; 5f
+    push bx                                   ; 53
+    dec bp                                    ; 4d
+    pop di                                    ; 5f
+    jnl short 0ff85h                          ; 7d 1f
+    add al, byte [di]                         ; 02 05
+    inc word [bx+si]                          ; ff 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    add byte [bx+si], al                      ; 00 00
+    pop di                                    ; 5f
+    inc sp                                    ; 44
+    dec bp                                    ; 4d
+    dec cx                                    ; 49
+    pop di                                    ; 5f
+    and ax, strict word 00000h                ; 25 00 00
+    add byte [bx+si], dl                      ; 00 10
+    push CS                                   ; 0e
+    add byte [bx+si], al                      ; 00 00
+    add byte [di], ah                         ; 00 25
+    times 0x6f db 0
+    db  'XM'
+cpu_reset:                                   ; 0xffff0 LB 0x10
+    jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0eeh
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 60422)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 60422)
@@ -0,0 +1,1 @@
+a9ff9158bb6e580db7ea0148ae4309f9 *VBoxPcBios8086.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/apm_pm.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/apm_pm.asm	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/apm_pm.asm	(revision 60422)
@@ -16,4 +16,6 @@
 
 
+include commondefs.inc
+
 ;; 16-bit protected mode APM entry point
 
@@ -25,5 +27,5 @@
 public		apm_pm16_entry
 
-.286
+SET_DEFAULT_CPU_286
 
 
Index: /trunk/src/VBox/Devices/PC/BIOS/ata.c
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/ata.c	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/ata.c	(revision 60422)
@@ -67,5 +67,6 @@
 
 void insd_discard(unsigned ndwords, unsigned port);
-#pragma aux insd_discard =  \
+#if VBOX_BIOS_CPU >= 80386
+# pragma aux insd_discard =  \
     ".386"                  \
     "push eax"              \
@@ -75,4 +76,5 @@
     "pop eax"               \
     parm [cx] [dx] modify exact [cx] nomemory;
+#endif
 
 // ---------------------------------------------------------------------------
@@ -222,12 +224,16 @@
     blksize = bios_dsk->devices[device].blksize;
     if (blksize == 0) {   /* If transfer size is exactly 64K */
+#if VBOX_BIOS_CPU >= 80386
         if (mode == ATA_MODE_PIO32)
             blksize = 0x4000;
         else
+#endif
             blksize = 0x8000;
     } else {
+#if VBOX_BIOS_CPU >= 80386
         if (mode == ATA_MODE_PIO32)
             blksize >>= 2;
         else
+#endif
             blksize >>= 1;
     }
@@ -309,9 +315,10 @@
             buffer = MK_FP(FP_SEG(buffer) + 0x80, FP_OFF(buffer) - 0x800);
 
-        if (mode == ATA_MODE_PIO32) {
+#if VBOX_BIOS_CPU >= 80386
+        if (mode == ATA_MODE_PIO32)
             buffer = rep_insd(buffer, blksize, iobase1);
-        } else {
+        else
+#endif
             buffer = rep_insw(buffer, blksize, iobase1);
-        }
         bios_dsk->drqp.trsfsectors += mult_blk_cnt;
         count--;
@@ -691,7 +698,9 @@
     mode    = bios_dsk->devices[device].mode;
     blksize = 0x200; // was = bios_dsk->devices[device].blksize;
+#if VBOX_BIOS_CPU >= 80386
     if (mode == ATA_MODE_PIO32)
         blksize >>= 2;
     else
+#endif
         blksize >>= 1;
 
@@ -768,9 +777,10 @@
             buffer = MK_FP(FP_SEG(buffer) + 0x80, FP_OFF(buffer) - 0x800);
 
-        if (mode == ATA_MODE_PIO32) {
+#if VBOX_BIOS_CPU >= 80386
+        if (mode == ATA_MODE_PIO32)
             buffer = rep_outsd(buffer, blksize, iobase1);
-        } else {
+        else
+#endif
             buffer = rep_outsw(buffer, blksize, iobase1);
-        }
 
         bios_dsk->drqp.trsfsectors++;
@@ -1051,10 +1061,12 @@
             }
 
+#if VBOX_BIOS_CPU >= 80386
             if (lmode == ATA_MODE_PIO32) {
                 lcount  >>= 2;
                 lbefore >>= 2;
                 lafter  >>= 2;
-            }
-            else {
+            } else
+#endif
+            {
                 lcount  >>= 1;
                 lbefore >>= 1;
@@ -1062,4 +1074,5 @@
             }
 
+#if VBOX_BIOS_CPU >= 80386
             if (lmode == ATA_MODE_PIO32) {
                 if (lbefore)
@@ -1068,5 +1081,7 @@
                 if (lafter)
                     insd_discard(lafter, iobase1);
-            } else {
+            } else
+#endif
+            {
                 if (lbefore)
                     insw_discard(lbefore, iobase1);
Index: /trunk/src/VBox/Devices/PC/BIOS/biosint.h
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/biosint.h	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/biosint.h	(revision 60422)
@@ -51,20 +51,52 @@
 #define BX_APM              1
 
-#define DEBUG_ATA       0
-#define DEBUG_AHCI      0
-#define DEBUG_SCSI      0
-#define DEBUG_CD_BOOT   0
-#define DEBUG_ELTORITO  0
-#define DEBUG_INT13_HD  0
-#define DEBUG_INT13_FL  0
-#define DEBUG_INT13_CD  0
-#define DEBUG_INT15     0
-#define DEBUG_INT15_MS  0
-#define DEBUG_INT16     0
-#define DEBUG_INT1A     0
-#define DEBUG_INT74     0
-#define DEBUG_PCI       0
-#define DEBUG_APM       0
-#define DEBUG_POST      0
+#ifndef DEBUG_ATA
+# define DEBUG_ATA       0
+#endif
+#ifdef DEBUG_AHCI
+# define DEBUG_AHCI      0
+#endif
+#ifndef DEBUG_SCSI
+# define DEBUG_SCSI      0
+#endif
+#ifndef DEBUG_CD_BOOT
+# define DEBUG_CD_BOOT   0
+#endif
+#ifndef DEBUG_ELTORITO
+# define DEBUG_ELTORITO  0
+#endif
+#ifndef DEBUG_INT13_HD
+# define DEBUG_INT13_HD  0
+#endif
+#ifndef DEBUG_INT13_FL
+# define DEBUG_INT13_FL  0
+#endif
+#ifndef DEBUG_INT13_CD
+# define DEBUG_INT13_CD  0
+#endif
+#ifndef DEBUG_INT15
+# define DEBUG_INT15     0
+#endif
+#ifndef DEBUG_INT15_MS
+# define DEBUG_INT15_MS  0
+#endif
+#ifndef DEBUG_INT16
+# define DEBUG_INT16     0
+#endif
+#ifndef DEBUG_INT1A
+# define DEBUG_INT1A     0
+#endif
+#ifndef DEBUG_INT74
+# define DEBUG_INT74     0
+#endif
+#ifndef DEBUG_PCI
+# define DEBUG_PCI       0
+#endif
+#ifndef DEBUG_APM
+# define DEBUG_APM       0
+#endif
+#ifndef DEBUG_POST
+# define DEBUG_POST      0
+#endif
 
 #define FP_OFF(p)   ((unsigned)(p))
Index: /trunk/src/VBox/Devices/PC/BIOS/inlines.h
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/inlines.h	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/inlines.h	(revision 60422)
@@ -106,6 +106,8 @@
 #pragma aux rep_insw = ".286" "rep insw" parm [es di] [cx] [dx] value [es di] modify exact [cx di];
 
+# if VBOX_BIOS_CPU >= 80386
 char __far *rep_insd(char __far *buffer, unsigned ndwords, unsigned port);
-#pragma aux rep_insd = ".386" "rep insd" parm [es di] [cx] [dx] value [es di] modify exact [cx di];
+#  pragma aux rep_insd = ".386" "rep insd" parm [es di] [cx] [dx] value [es di] modify exact [cx di];
+# endif
 
 char __far *rep_outsb(char __far *buffer, unsigned nbytes, unsigned port);
@@ -115,6 +117,8 @@
 #pragma aux rep_outsw = ".286" "rep outs dx,word ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
 
+# if VBOX_BIOS_CPU >= 80386
 char __far *rep_outsd(char __far *buffer, unsigned ndwords, unsigned port);
-#pragma aux rep_outsd = ".386" "rep outs dx,dword ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
+#  pragma aux rep_outsd = ".386" "rep outs dx,dword ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
+# endif
 
 uint16_t swap_16(uint16_t val);
Index: /trunk/src/VBox/Devices/PC/BIOS/orgs.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/orgs.asm	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/orgs.asm	(revision 60422)
@@ -39,5 +39,4 @@
 ;;
 
-
 ; Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
 ; other than GPL or LGPL is available it will apply instead, Oracle elects to use only
@@ -47,4 +46,7 @@
 ; of the LGPL is applied is otherwise unspecified.
 
+
+include commondefs.inc
+
 EBDA_SEG	equ	09FC0h		; starts at 639K
 EBDA_SIZE	equ	1		; 1K
@@ -75,4 +77,5 @@
 		org	addr - BIOS_FIX_BASE - 2
 		db	'XM'
+		BIOSORG_CHECK addr
 		endm
 
@@ -93,4 +96,5 @@
 		cld
 endm
+
 
 ;; External function in separate modules
@@ -192,5 +196,5 @@
 ;; and data when possible.
 
-.286p
+SET_DEFAULT_CPU_286
 
 BIOSSEG		segment	'CODE'
@@ -236,9 +240,13 @@
 		cli
 
+if VBOX_BIOS_CPU ge 80286
 		;; Check if in protected (V86) mode. If so, the CPU needs
 		;; to be reset.
+               .286p
 		smsw	ax
 		test	ax, 1
 		jz	in_real_mode
+		SET_DEFAULT_CPU_286
+endif
 
 		;; Reset processor to get out of protected mode. Use system
@@ -324,5 +332,5 @@
 		;; 0ah = jump through 40:67 (no EOI) ;ba x 1  %fe05b ; ba x 1 %18b81
 		cmp	al, 0ah
-		je	eoi_jmp_post
+		je	no_eoi_jmp_post
 
 		;; any other shutdown status values are ignored
@@ -378,5 +386,7 @@
 		call	_log_bios_start
 
+if VBOX_BIOS_CPU ge 80386
 		call	pmode_setup
+endif
 
 		;; set all interrupts in 00h-5Fh range to default handler
@@ -416,6 +426,8 @@
 
 		;; Initialize PCI devices. This can and should be done early.
+if VBOX_BIOS_CPU ge 80386
 		call	pcibios_init_iomem_bases
 		call	pcibios_init_irqs
+endif
 		SET_INT_VECTOR 1Ah, BIOSSEG, int1a_handler
 
@@ -616,4 +628,5 @@
 ;;
 return_blkmove:
+		.286p
 		mov	ax, 40h
 		mov	ds, ax
@@ -641,5 +654,6 @@
 		sti
 		retf	2
-		
+		SET_DEFAULT_CPU_286
+
 
 ;; --------------------------------------------------------
@@ -655,5 +669,5 @@
 ;; Fixed Disk Parameter Table
 ;; --------------------------------------------------------
-;;		BIOSORG	0E401h - fixed wrt preceding
+		BIOSORG_CHECK	0E401h	; fixed wrt preceding
 
 rom_fdpt:
@@ -672,5 +686,5 @@
 ;; System BIOS Configuration Table
 ;; --------------------------------------------------------
-;;		BIOSORG	0E6F5h - fixed wrt preceding
+		BIOSORG_CHECK	0E6F5h	; fixed wrt preceding
 ; must match BIOS_CONFIG_TABLE
 bios_cfg_table:
@@ -740,8 +754,8 @@
 		push	ds
 		push	es
-		pusha
+		DO_PUSHA
 		C_SETUP
 		call	_int14_function
-		popa
+		DO_POPA
 		pop	es
 		pop	ds
@@ -756,8 +770,8 @@
 		push	ds
 		push	es
-		pusha
+		DO_PUSHA
 		C_SETUP
 		call	_dummy_isr_function
-		popa
+		DO_POPA
 		pop	es
 		pop	ds
@@ -817,5 +831,5 @@
 		push	es
 		push	ds
-		pusha
+		DO_PUSHA
 
 		cmp	ah, 0
@@ -827,5 +841,5 @@
 		C_SETUP
 		call	_int16_function
-		popa
+		DO_POPA
 		pop	ds
 		pop	es
@@ -854,5 +868,5 @@
 		C_SETUP
 		call	_int16_function
-		popa
+		DO_POPA
 		pop	ds
 		pop	es
@@ -867,4 +881,5 @@
 
 
+if VBOX_BIOS_CPU ge 80386
 ;; Quick and dirty protected mode entry/exit routines
 include pmode.inc
@@ -872,4 +887,5 @@
 ;; Initialization code which needs to run in protected mode (LAPIC etc.)
 include pmsetup.inc
+endif
 
 
@@ -897,5 +913,5 @@
 		in	al, KBC_DATA
 		push	ds
-		pusha
+		DO_PUSHA
 		cld			; Before INT 15h (and any C code)
 ifdef BX_CALL_INT15_4F
@@ -930,5 +946,5 @@
 
 int09_done:
-		popa
+		DO_POPA
 		pop	ds
 		cli
@@ -947,5 +963,5 @@
 
 int06_handler:
-		pusha
+		DO_PUSHA
 		push	es
 		push	ds
@@ -954,5 +970,5 @@
 		pop	ds
 		pop	es
-		popa
+		DO_POPA
 		iret
 
@@ -977,5 +993,5 @@
 		ja	int13_not_eltorito
 
-		pusha
+		DO_PUSHA
 		push	es
 		push	ds
@@ -1009,5 +1025,5 @@
 		pop	es
 
-		pusha
+		DO_PUSHA
 		push	es
 		push	ds
@@ -1058,5 +1074,5 @@
 
 		;; now the registers can be restored with
-		;; pop ds; pop es; popa; iret
+		;; pop ds; pop es; DO_POPA; iret
 		test	dl, 80h		; non-removable?
 		jnz	int13_notfloppy
@@ -1071,4 +1087,5 @@
 		;; ebx may be modified, save here
 		;; TODO: check/review 32-bit register use
+               ;; @todo figure if 80286/8086 variant is applicable.
 		.386
 		shr	ebx, 16
@@ -1077,6 +1094,5 @@
 		pop	bx
 		shl	ebx, 16
-		.286
-
+		SET_DEFAULT_CPU_286
 		jmp	int13_out
 
@@ -1094,5 +1110,5 @@
 		pop	ds
 		pop	es
-		popa
+		DO_POPA
 		iret
 
@@ -1242,4 +1258,57 @@
 rtc_post	proc	near
 
+if VBOX_BIOS_CPU lt 80386 ;; @todo fix loopy code below
+		;; get RTC seconds
+		mov	al, 0
+		out	CMOS_ADDR, al
+		in	al, CMOS_DATA	; RTC seconds, in BCD
+		call	bcd_to_bin	; ax now has seconds in binary
+               test	al, al
+               xor	ah, ah
+               mov	dx, 0x1234      ; 18206507*0x100/1000000 = 0x1234 (4660.865792)
+               mul     dx
+               mov	cx, ax		; tick count in dx:cx
+
+		;; get RTC minutes
+		mov	al, 2
+		out	CMOS_ADDR, al
+		in	al, CMOS_DATA	; RTC minutes, in BCD
+		call	bcd_to_bin	; eax now has minutes in binary
+               test    al, al
+               jz      rtc_post_hours
+rtc_pos_min_loop:			; 18206507*60*0x100/1000000 = 0x44463 (279651.94752)
+		add	cx, 0x4463
+		adc     dx, 0x0004
+               dec	al
+               jnz	rtc_pos_min_loop
+
+		;; get RTC hours
+rtc_post_hours:
+		mov	al, 4
+		out	CMOS_ADDR, al
+		in 	al, CMOS_DATA	; RTC hours, in BCD
+		call	bcd_to_bin	; eax now has hours in binary
+               test	al, al
+               jz	rtc_pos_shift
+rtc_pos_hour_loop:			; 18206507*3600*0x100/1000000 = 0x100076C (16779116.8512)
+		add	cx, 0x076C
+		adc     dx, 0x0100
+               dec	al
+               jnz	rtc_pos_hour_loop
+
+
+		mov	ax, [46Ch]
+		mov	dx, [46Ch+2]
+
+rtc_pos_shift:
+		mov	cl, ch
+               mov	ch, dl
+               mov	dl, dh
+               xor	dh, dh
+		mov	ds:[46Ch], cx	; timer tick count
+		mov	ds:[46Ch+2], dx	; timer tick count
+		mov	ds:[470h], dh	; rollover flag
+
+else
 		.386
 		;; get RTC seconds
@@ -1286,4 +1355,5 @@
 		mov	ds:[470h], al	; rollover flag
 		.286
+endif
 		ret
 
@@ -1358,5 +1428,5 @@
 ;; INT 17h handler - Printer service
 ;; --------------------------------------------------------
-;;		BIOSORG	0EFD2h - fixed WRT preceding code
+		BIOSORG_CHECK	0EFD2h	; fixed WRT preceding code
 
 		jmp	int17_handler	; NT floppy boot workaround
@@ -1365,8 +1435,8 @@
 		push	ds
 		push	es
-		pusha
+		DO_PUSHA
 		C_SETUP
 		call	_int17_function
-		popa
+		DO_POPA
 		pop	es
 		pop	ds
@@ -1511,4 +1581,10 @@
 ; TODO: the drive should be in dl already??
 ;;		mov	dl, bl		; tell guest OS what boot drive is
+if VBOX_BIOS_CPU lt 80386
+		mov	[bp], ax
+               shl	ax, 4
+		mov	[bp+2], ax	; set ip
+		mov	ax, [bp]
+else
 		.386	; NB: We're getting garbage into high eax bits
 		shl	eax, 4		; convert seg to ip
@@ -1517,4 +1593,5 @@
 		shr	eax, 4		; get cs back
 		.286
+endif
 		and	ax, BIOSSEG	; remove what went in ip
 		mov	[bp+4], ax	; set cs
@@ -1552,5 +1629,5 @@
 ;; INT 11h handler - Equipment list service
 ;; --------------------------------------------------------
-;;		BIOSORG	0F84Dh - fixed wrt preceding code
+		BIOSORG_CHECK	0F84Dh	; fixed wrt preceding code
 int11_handler:
 		;; Don't touch - fixed size!
@@ -1567,5 +1644,5 @@
 ;; INT 15h handler - System services
 ;; --------------------------------------------------------
-;;		BIOSORG	0F859h - fixed wrt preceding code
+		BIOSORG_CHECK	0F859h	; fixed wrt preceding code
 int15_handler:
 		pushf
@@ -1579,5 +1656,5 @@
 		cmp	ah, 0d0h
 		je	int15_handler32
-		pusha
+		DO_PUSHA
 		cmp	ah, 53h		; APM function?
 		je	apm_call
@@ -1587,5 +1664,5 @@
 		call	_int15_function
 int15_handler_popa_ret:
-		popa
+		DO_POPA
 int15_handler32_ret:
 		pop	es
@@ -1603,4 +1680,5 @@
 
 int15_handler32:
+if VBOX_BIOS_CPU ge 80386
 		;; need to save/restore 32-bit registers
 		.386
@@ -1609,4 +1687,9 @@
 		popad
 		.286
+else
+		DO_PUSHA
+		call	_int15_function32
+		DO_POPA
+endif
 		jmp	int15_handler32_ret
 
@@ -1634,5 +1717,5 @@
 
 		sti
-		pusha
+		DO_PUSHA
 		push	es
 		push	ds
@@ -1659,5 +1742,5 @@
 		pop	ds
 		pop	es
-		popa
+		DO_POPA
 		iret
 
@@ -1689,6 +1772,7 @@
 ;; INT 1Ah handler - Time of the day + PCI BIOS
 ;; --------------------------------------------------------
-;;		BIOSORG	0FE6Eh - fixed wrt preceding table
+		BIOSORG_CHECK	0FE6Eh	; fixed wrt preceding table
 int1a_handler:
+if VBOX_BIOS_CPU ge 80386
 		cmp	ah, 0B1h
 		jne	int1a_normal
@@ -1705,13 +1789,14 @@
 		pop	es
 		iret
+endif
 
 int1a_normal:
 		push	es
 		push	ds
-		pusha
+		DO_PUSHA
 		C_SETUP
 int1a_callfunction:
 		call	_int1a_function
-		popa
+		DO_POPA
 		pop	ds
 		pop	es
@@ -1725,8 +1810,8 @@
 		push	es
 		push	ds
-		pusha
+		DO_PUSHA
 		C_SETUP
 		call	_int70_function
-		popa
+		DO_POPA
 		pop	ds
 		pop	es
@@ -1739,7 +1824,13 @@
 		BIOSORG	0FEA5h
 int08_handler:
+if VBOX_BIOS_CPU ge 80386
 		.386
 		sti
 		push	eax
+else
+		sti
+		push	ax
+		push	bx
+endif
 		push	ds
 		push	dx
@@ -1747,16 +1838,41 @@
 		mov	ds, ax
 
+if VBOX_BIOS_CPU ge 80386
 		mov	eax, ds:[6Ch]	; get ticks dword
 		inc	eax
+else
+		mov	ax, ds:[6Ch]	; get ticks dword
+               mov     bx, ds:[6Ch+2]
+		add	ax, 1
+               adc	bx, 0
+endif
 
 		;; compare eax to one day's worth of ticks (at 18.2 Hz)
+if VBOX_BIOS_CPU ge 80386
 		cmp	eax, 1800B0h
+else
+		cmp	bx, 18h
+               jb	int08_store_ticks
+               ja	int08_rollover
+               cmp	ax, 00B0h
+endif
 		jb	int08_store_ticks
 		;; there has been a midnight rollover
+int08_rollover:
+if VBOX_BIOS_CPU ge 80386
 		xor	eax, eax
+else
+		xor	ax, ax
+		xor	bx, bx
+endif
 		inc	byte ptr ds:[70h]	; increment rollover flag
 
 int08_store_ticks:
+if VBOX_BIOS_CPU ge 80386
 		mov	ds:[6Ch], eax
+else
+		mov	ds:[6Ch], ax
+		mov	ds:[6Ch+2], bx
+endif
 
 		;; time to turn off floppy drive motor(s)?
@@ -1780,6 +1896,11 @@
 		pop	dx
 		pop	ds
+if VBOX_BIOS_CPU ge 80386
 		pop	eax
 		.286
+else
+		pop     bx
+		pop     ax
+endif
 		iret
 
@@ -1813,5 +1934,5 @@
 ;; INT 05h - Print Screen service
 ;; --------------------------------------------------------
-;;		BIOSORG	0FF54h - fixed wrt preceding
+		BIOSORG_CHECK	0FF54h	; fixed wrt preceding
 int05_handler:
 		;; Not implemented
Index: /trunk/src/VBox/Devices/PC/BIOS/pcibios.inc
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/pcibios.inc	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/pcibios.inc	(revision 60422)
@@ -336,8 +336,8 @@
 		ret
 
-.286
-
 endif		 ; !BX_ROMBIOS32
 
 endif		 ; BX_PCIBIOS
 
+SET_DEFAULT_CPU_286
+
Index: /trunk/src/VBox/Devices/PC/BIOS/pmode.inc
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/pmode.inc	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/pmode.inc	(revision 60422)
@@ -54,5 +54,5 @@
 		and	al, 0FEh
 		mov	cr0, eax
-		.286
+		SET_DEFAULT_CPU_286
 		jmp	far ptr really_exit_pm
 really_exit_pm:
Index: /trunk/src/VBox/Devices/PC/BIOS/pmsetup.inc
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/pmsetup.inc	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/BIOS/pmsetup.inc	(revision 60422)
@@ -58,5 +58,5 @@
 		pop	esi
 		pop	eax
-		.286
+		SET_DEFAULT_CPU_286
 		ret
 
Index: /trunk/src/VBox/Devices/PC/DevPcBios.cpp
===================================================================
--- /trunk/src/VBox/Devices/PC/DevPcBios.cpp	(revision 60421)
+++ /trunk/src/VBox/Devices/PC/DevPcBios.cpp	(revision 60422)
@@ -25,4 +25,6 @@
 #include <VBox/vmm/mm.h>
 #include <VBox/vmm/pgm.h>
+#include <VBox/vmm/cpum.h>
+#include <VBox/vmm/vm.h>
 
 #include <VBox/log.h>
@@ -1401,16 +1403,40 @@
     {
         /*
-         * Use the embedded BIOS ROM image.
+         * Use one of the embedded BIOS ROM images.
          */
-        pThis->pu8PcBios = (uint8_t *)PDMDevHlpMMHeapAlloc(pDevIns, g_cbPcBiosBinary);
+        PVM pVM = PDMDevHlpGetVM(pDevIns);
+        CPUMMICROARCH enmMicroarch = pVM ? pVM->cpum.ro.GuestFeatures.enmMicroarch : kCpumMicroarch_Intel_P6;
+        uint8_t const *pbBios;
+        uint32_t       cbBios;
+        if (   enmMicroarch == kCpumMicroarch_Intel_8086
+            || enmMicroarch == kCpumMicroarch_Intel_80186
+            || enmMicroarch == kCpumMicroarch_NEC_V20
+            || enmMicroarch == kCpumMicroarch_NEC_V30)
+        {
+            pbBios = g_abPcBiosBinary8086;
+            cbBios = g_cbPcBiosBinary8086;
+            LogRel(("PcBios: Using the 8086 BIOS image!\n"));
+        }
+        else if (enmMicroarch == kCpumMicroarch_Intel_80286)
+        {
+            pbBios = g_abPcBiosBinary286;
+            cbBios = g_cbPcBiosBinary286;
+            LogRel(("PcBios: Using the 286 BIOS image!\n"));
+        }
+        else
+        {
+            pbBios = g_abPcBiosBinary386;
+            cbBios = g_cbPcBiosBinary386;
+            LogRel(("PcBios: Using the 386+ BIOS image.\n"));
+        }
+        pThis->pu8PcBios = (uint8_t *)PDMDevHlpMMHeapAlloc(pDevIns, cbBios);
         if (pThis->pu8PcBios)
         {
-            pThis->cbPcBios = g_cbPcBiosBinary;
-            memcpy(pThis->pu8PcBios, g_abPcBiosBinary, pThis->cbPcBios);
+            pThis->cbPcBios = cbBios;
+            memcpy(pThis->pu8PcBios, pbBios, cbBios);
         }
         else
             return PDMDevHlpVMSetError(pDevIns, VERR_NO_MEMORY, RT_SRC_POS,
-                                       N_("Failed to allocate %#x bytes for loading the embedded BIOS image"),
-                                       g_cbPcBiosBinary);
+                                       N_("Failed to allocate %#x bytes for loading the embedded BIOS image"), cbBios);
     }
     const uint8_t *pu8PcBiosBinary = pThis->pu8PcBios;
Index: /trunk/src/VBox/Devices/build/VBoxDD2.cpp
===================================================================
--- /trunk/src/VBox/Devices/build/VBoxDD2.cpp	(revision 60421)
+++ /trunk/src/VBox/Devices/build/VBoxDD2.cpp	(revision 60422)
@@ -38,6 +38,10 @@
 const void *g_apvVBoxDDDependencies2[] =
 {
-    (void *)&g_abPcBiosBinary,
-    (void *)&g_abVgaBiosBinary,
+    (void *)&g_abPcBiosBinary386,
+    (void *)&g_abPcBiosBinary286,
+    (void *)&g_abPcBiosBinary8086,
+    (void *)&g_abVgaBiosBinary386,
+    (void *)&g_abVgaBiosBinary286,
+    (void *)&g_abVgaBiosBinary8086,
 #ifdef VBOX_WITH_PXE_ROM
     (void *)&g_abNetBiosBinary,
Index: /trunk/src/VBox/Devices/build/VBoxDD2.h
===================================================================
--- /trunk/src/VBox/Devices/build/VBoxDD2.h	(revision 60421)
+++ /trunk/src/VBox/Devices/build/VBoxDD2.h	(revision 60422)
@@ -26,8 +26,16 @@
 
 #ifdef IN_VBOXDD2
-extern DECLEXPORT(const unsigned char)  g_abPcBiosBinary[];
-extern DECLEXPORT(const unsigned)       g_cbPcBiosBinary;
-extern DECLEXPORT(const unsigned char)  g_abVgaBiosBinary[];
-extern DECLEXPORT(const unsigned)       g_cbVgaBiosBinary;
+extern DECLEXPORT(const unsigned char)  g_abPcBiosBinary386[];
+extern DECLEXPORT(const unsigned)       g_cbPcBiosBinary386;
+extern DECLEXPORT(const unsigned char)  g_abPcBiosBinary286[];
+extern DECLEXPORT(const unsigned)       g_cbPcBiosBinary286;
+extern DECLEXPORT(const unsigned char)  g_abPcBiosBinary8086[];
+extern DECLEXPORT(const unsigned)       g_cbPcBiosBinary8086;
+extern DECLEXPORT(const unsigned char)  g_abVgaBiosBinary386[];
+extern DECLEXPORT(const unsigned)       g_cbVgaBiosBinary386;
+extern DECLEXPORT(const unsigned char)  g_abVgaBiosBinary286[];
+extern DECLEXPORT(const unsigned)       g_cbVgaBiosBinary286;
+extern DECLEXPORT(const unsigned char)  g_abVgaBiosBinary8086[];
+extern DECLEXPORT(const unsigned)       g_cbVgaBiosBinary8086;
 # ifdef VBOX_WITH_PXE_ROM
 extern DECLEXPORT(const unsigned char)  g_abNetBiosBinary[];
@@ -35,8 +43,16 @@
 # endif
 #else  /* !IN_VBOXDD2 */
-extern DECLIMPORT(const unsigned char)  g_abPcBiosBinary[];
-extern DECLIMPORT(const unsigned)       g_cbPcBiosBinary;
-extern DECLIMPORT(const unsigned char)  g_abVgaBiosBinary[];
-extern DECLIMPORT(const unsigned)       g_cbVgaBiosBinary;
+extern DECLIMPORT(const unsigned char)  g_abPcBiosBinary386[];
+extern DECLIMPORT(const unsigned)       g_cbPcBiosBinary386;
+extern DECLIMPORT(const unsigned char)  g_abPcBiosBinary286[];
+extern DECLIMPORT(const unsigned)       g_cbPcBiosBinary286;
+extern DECLIMPORT(const unsigned char)  g_abPcBiosBinary8086[];
+extern DECLIMPORT(const unsigned)       g_cbPcBiosBinary8086;
+extern DECLIMPORT(const unsigned char)  g_abVgaBiosBinary386[];
+extern DECLIMPORT(const unsigned)       g_cbVgaBiosBinary386;
+extern DECLIMPORT(const unsigned char)  g_abVgaBiosBinary286[];
+extern DECLIMPORT(const unsigned)       g_cbVgaBiosBinary286;
+extern DECLIMPORT(const unsigned char)  g_abVgaBiosBinary8086[];
+extern DECLIMPORT(const unsigned)       g_cbVgaBiosBinary8086;
 # ifdef VBOX_WITH_PXE_ROM
 extern DECLIMPORT(const unsigned char)  g_abNetBiosBinary[];
