Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 68289)
+++ /trunk/Config.kmk	(revision 68290)
@@ -207,9 +207,9 @@
 VBOX_VERSION_MAJOR = 5
 # Minor version.
-VBOX_VERSION_MINOR = 1
+VBOX_VERSION_MINOR = 2
 # This is the current build number. It should be increased every time we publish a
 # new build. The define is available in every source file. Only even build numbers
 # will be published, odd numbers are set during development.
-VBOX_VERSION_BUILD = 51
+VBOX_VERSION_BUILD = 0
 # The raw version string. This *must not* contain any other information/fields than
 # major, minor and build revision (as it is now) -- also will be used for host/guest version
@@ -223,7 +223,7 @@
 #       publisher so that RTStrVersionCompare have a chance of comparing
 #       prerelease from different publishers correctly.
-VBOX_VERSION_STRING = $(VBOX_VERSION_STRING_RAW)$(VBOX_BUILD_PUBLISHER)
+VBOX_VERSION_STRING = $(VBOX_VERSION_STRING_RAW)_BETA1$(VBOX_BUILD_PUBLISHER)
 # Just the BETA[n],ALPHA[n],RC[n] indicators. Set to empty string for release.
-VBOX_VERSION_PRERELEASE =
+VBOX_VERSION_PRERELEASE = BETA1
 
 # Force the additions.sh script to get an exact additions build when we're doing the release.
Index: /trunk/doc/manual/user_ChangeLogImpl.xml
===================================================================
--- /trunk/doc/manual/user_ChangeLogImpl.xml	(revision 68289)
+++ /trunk/doc/manual/user_ChangeLogImpl.xml	(revision 68290)
@@ -5,5 +5,5 @@
 
   <sect1>
-    <title>Version 5.2.0 (2017-xx-xx)</title>
+    <title>Version 5.2.0 Beta 1 (2017-08-03)</title>
 
     <para>This is a major update. The following major new features
@@ -22,6 +22,6 @@
 
       <listitem>
-        <para>Overhauled VM selector GUI (better tools layout,
-          new icons</para>
+        <para>Overhauled VM selector GUI (improved tools VM / global
+          tools handling, new icons)</para>
       </listitem>
 
@@ -48,9 +48,13 @@
       <listitem>
         <para>Audio: HDA emulation now uses asynchronous data processing in 
-          own threads</para>
+          separate threads</para>
       </listitem>
 
       <listitem>
         <para>EFI: better video mode handling</para>
+      </listitem>
+
+      <listitem>
+        <para>many unlisted fixes and improvements</para>
       </listitem>
 
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm	(revision 68289)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm	(revision 68290)
@@ -250,5 +250,5 @@
     mov bx, 0c000h                            ; bb 00 c0
     mov ds, bx                                ; 8e db
-    call 03245h                               ; e8 5e 31
+    call 03268h                               ; e8 81 31
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -1447,5 +1447,5 @@
   times 259 db 0
 
-section _TEXT progbits vstart=0xa00 align=1 ; size=0x3282 class=CODE group=AUTO
+section _TEXT progbits vstart=0xa00 align=1 ; size=0x32ed class=CODE group=AUTO
 set_int_vector_:                             ; 0xc0a00 LB 0x1b
     push bx                                   ; 53
@@ -1503,5 +1503,5 @@
     call 00a1bh                               ; e8 ab ff
     call 00a37h                               ; e8 c4 ff
-    call 036f0h                               ; e8 7a 2c
+    call 0372ch                               ; e8 b6 2c
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, strict word 00010h                ; b8 10 00
@@ -1531,5 +1531,5 @@
     mov dx, strict word 00060h                ; ba 60 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 d2 26
+    call 031a4h                               ; e8 f5 26
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1541,5 +1541,5 @@
     add dx, strict byte 00050h                ; 83 c2 50
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 bc 26
+    call 031a4h                               ; e8 df 26
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1562,7 +1562,7 @@
     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
+    call 03188h                               ; e8 9f 26
+    xor ah, ah                                ; 30 e4
+    call 03160h                               ; e8 72 26
     mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -1581,5 +1581,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 48 26
+    call 03188h                               ; e8 6b 26
     xor ah, ah                                ; 30 e4
     mov di, ax                                ; 89 c7
@@ -1587,10 +1587,10 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 56 26
+    call 031a4h                               ; e8 79 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 00b68h                          ; 75 2c
     mul di                                    ; f7 e7
@@ -1610,6 +1610,6 @@
     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 ax, word [bx+04638h]                  ; 8b 87 38 46
+    call 031a4h                               ; e8 3f 26
     mov word [ss:si], ax                      ; 36 89 04
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -1649,5 +1649,5 @@
     mov dx, strict word 0007ch                ; ba 7c 00
     xor ax, ax                                ; 31 c0
-    call 0319dh                               ; e8 ff 25
+    call 031c0h                               ; e8 22 26
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1656,5 +1656,5 @@
     mov dx, 00085h                            ; ba 85 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 b6 25
+    call 03188h                               ; e8 d9 25
     xor ah, ah                                ; 30 e4
     push SS                                   ; 16
@@ -1664,5 +1664,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 a4 25
+    call 03188h                               ; e8 c7 25
     xor ah, ah                                ; 30 e4
     push SS                                   ; 16
@@ -1677,16 +1677,16 @@
     mov dx, 0010ch                            ; ba 0c 01
     jmp short 00b99h                          ; eb c0
-    mov ax, 05bedh                            ; b8 ed 5b
+    mov ax, 05bf2h                            ; b8 f2 5b
     mov dx, 0c000h                            ; ba 00 c0
     jmp short 00b9eh                          ; eb bd
-    mov ax, 053edh                            ; b8 ed 53
+    mov ax, 053f2h                            ; b8 f2 53
     jmp short 00bdch                          ; eb f6
-    mov ax, 057edh                            ; b8 ed 57
+    mov ax, 057f2h                            ; b8 f2 57
     jmp short 00bdch                          ; eb f1
-    mov ax, 079edh                            ; b8 ed 79
+    mov ax, 079f2h                            ; b8 f2 79
     jmp short 00bdch                          ; eb ec
-    mov ax, 069edh                            ; b8 ed 69
+    mov ax, 069f2h                            ; b8 f2 69
     jmp short 00bdch                          ; eb e7
-    mov ax, 07b1ah                            ; b8 1a 7b
+    mov ax, 07b1fh                            ; b8 1f 7b
     jmp short 00bdch                          ; eb e2
     jmp short 00bcbh                          ; eb cf
@@ -1702,7 +1702,7 @@
     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
+    call 03188h                               ; e8 74 25
+    xor ah, ah                                ; 30 e4
+    call 03160h                               ; e8 47 25
     mov cl, al                                ; 88 c1
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -1711,8 +1711,8 @@
     xor bh, bh                                ; 30 ff
     sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 00c30h                          ; 75 03
     jmp near 00d37h                           ; e9 07 01
-    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     cmp bl, 003h                              ; 80 fb 03
     jc short 00c48h                           ; 72 0f
@@ -1728,5 +1728,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 28 25
+    call 031a4h                               ; e8 4b 25
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -1752,5 +1752,5 @@
     mov dx, bx                                ; 89 da
     mov ax, 0a000h                            ; b8 00 a0
-    call 03165h                               ; e8 d0 24
+    call 03188h                               ; e8 f3 24
     and al, byte [bp-008h]                    ; 22 46 f8
     test al, al                               ; 84 c0
@@ -1775,9 +1775,9 @@
     mov dx, bx                                ; 89 da
     mov ax, 0b800h                            ; b8 00 b8
-    call 03165h                               ; e8 96 24
+    call 03188h                               ; e8 b9 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
+    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     jne short 00cf8h                          ; 75 1b
     mov cx, si                                ; 89 f1
@@ -1806,5 +1806,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 67 24
+    call 031a4h                               ; e8 8a 24
     mov bx, ax                                ; 89 c3
     sal bx, 003h                              ; c1 e3 03
@@ -1814,5 +1814,5 @@
     add dx, ax                                ; 01 c2
     mov ax, 0a000h                            ; b8 00 a0
-    call 03165h                               ; e8 37 24
+    call 03188h                               ; e8 5a 24
     mov ch, al                                ; 88 c5
     jmp short 00d34h                          ; eb 02
@@ -1927,12 +1927,12 @@
     mov dx, strict word 00060h                ; ba 60 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 97 23
+    call 031b2h                               ; e8 ba 23
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 64 23
+    call 03188h                               ; e8 87 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
+    call 031a4h                               ; e8 97 23
     mov bx, ax                                ; 89 c3
     mov word [bp-00ch], ax                    ; 89 46 f4
@@ -1967,5 +1967,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 2a 23
+    call 031a4h                               ; e8 4d 23
     mov bx, ax                                ; 89 c3
     mov AL, strict byte 00ah                  ; b0 0a
@@ -2008,17 +2008,17 @@
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 f0 22
+    call 031b2h                               ; e8 13 23
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 bd 22
+    call 03188h                               ; e8 e0 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
+    call 031a4h                               ; e8 ef 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
+    call 03188h                               ; e8 c8 22
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -2050,5 +2050,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 7d 22
+    call 031a4h                               ; e8 a0 22
     mov bx, ax                                ; 89 c3
     mov AL, strict byte 00eh                  ; b0 0e
@@ -2087,7 +2087,7 @@
     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
+    call 03188h                               ; e8 40 22
+    xor ah, ah                                ; 30 e4
+    call 03160h                               ; e8 13 22
     mov cl, al                                ; 88 c1
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -2103,13 +2103,13 @@
     mov si, bx                                ; 89 de
     sal si, 003h                              ; c1 e6 03
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    cmp byte [si+04635h], 000h                ; 80 bc 35 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
+    call 031a4h                               ; e8 27 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
+    call 03188h                               ; e8 00 22
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -2130,5 +2130,5 @@
     mov dx, strict word 0004eh                ; ba 4e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 df 21
+    call 031b2h                               ; e8 02 22
     or cl, 0ffh                               ; 80 c9 ff
     mov ax, cx                                ; 89 c8
@@ -2136,5 +2136,5 @@
     mul si                                    ; f7 e6
     jmp short 00fd0h                          ; eb 16
-    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -2143,9 +2143,9 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    mul word [bx+046c6h]                      ; f7 a7 c6 46
+    mul word [bx+046cbh]                      ; f7 a7 cb 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
+    call 031a4h                               ; e8 c9 21
     mov cx, ax                                ; 89 c1
     mov AL, strict byte 00ch                  ; b0 0c
@@ -2171,5 +2171,5 @@
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 68 21
+    call 03196h                               ; e8 8b 21
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, cx                                ; 89 c8
@@ -2182,5 +2182,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_set_video_mode_:                      ; 0xc101c LB 0x3b6
+biosfn_set_video_mode_:                      ; 0xc101c LB 0x3d9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2190,5 +2190,5 @@
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 00012h                ; 83 ec 12
+    sub sp, strict byte 00014h                ; 83 ec 14
     mov byte [bp-00ch], al                    ; 88 46 f4
     and AL, strict byte 080h                  ; 24 80
@@ -2209,39 +2209,39 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
-    call 0313dh                               ; e8 e5 20
+    call 03160h                               ; e8 08 21
     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
+    jmp near 013ebh                           ; e9 89 03
+    mov byte [bp-01ch], al                    ; 88 46 e4
+    mov byte [bp-01bh], 000h                  ; c6 46 e5 00
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
+    mov al, byte [bx+046b4h]                  ; 8a 87 b4 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
+    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
     xor ah, ah                                ; 30 e4
     mov word [bp-016h], ax                    ; 89 46 ea
-    mov al, byte [bx+046c4h]                  ; 8a 87 c4 46
+    mov al, byte [bx+046c9h]                  ; 8a 87 c9 46
     mov word [bp-014h], ax                    ; 89 46 ec
-    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov al, byte [bx+046cah]                  ; 8a 87 ca 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
+    call 03188h                               ; e8 ee 20
     mov dx, 00088h                            ; ba 88 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 c2 20
+    call 03188h                               ; e8 e5 20
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 b9 20
+    call 03188h                               ; e8 dc 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
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     sal bx, 003h                              ; c1 e3 03
-    mov al, byte [bx+04635h]                  ; 8a 87 35 46
+    mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
     mov dx, 003c6h                            ; ba c6 03
     out DX, AL                                ; ee
@@ -2249,5 +2249,5 @@
     mov dx, 003c8h                            ; ba c8 03
     out DX, AL                                ; ee
-    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
+    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
     cmp bl, 001h                              ; 80 fb 01
     jc short 010ddh                           ; 72 0e
@@ -2260,11 +2260,11 @@
     test bl, bl                               ; 84 db
     jne short 010f3h                          ; 75 12
-    mov di, 04e43h                            ; bf 43 4e
+    mov di, 04e48h                            ; bf 48 4e
     jmp short 010f3h                          ; eb 0d
-    mov di, 04f03h                            ; bf 03 4f
+    mov di, 04f08h                            ; bf 08 4f
     jmp short 010f3h                          ; eb 08
-    mov di, 04fc3h                            ; bf c3 4f
+    mov di, 04fc8h                            ; bf c8 4f
     jmp short 010f3h                          ; eb 03
-    mov di, 05083h                            ; bf 83 50
+    mov di, 05088h                            ; bf 88 50
     xor bx, bx                                ; 31 db
     jmp short 010ffh                          ; eb 08
@@ -2276,7 +2276,7 @@
     mov si, ax                                ; 89 c6
     sal si, 003h                              ; c1 e6 03
-    mov al, byte [si+04636h]                  ; 8a 84 36 46
+    mov al, byte [si+0463bh]                  ; 8a 84 3b 46
     mov si, ax                                ; 89 c6
-    mov al, byte [si+046bfh]                  ; 8a 84 bf 46
+    mov al, byte [si+046c4h]                  ; 8a 84 c4 46
     cmp bx, ax                                ; 39 c3
     jnbe short 0112ch                         ; 77 15
@@ -2319,5 +2319,5 @@
     sal si, 006h                              ; c1 e6 06
     add si, bx                                ; 01 de
-    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
+    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
     out DX, AL                                ; ee
     inc bx                                    ; 43
@@ -2345,5 +2345,5 @@
     sal si, 006h                              ; c1 e6 06
     add si, bx                                ; 01 de
-    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
+    mov al, byte [si+046cch]                  ; 8a 84 cc 46
     mov dx, 003c5h                            ; ba c5 03
     out DX, AL                                ; ee
@@ -2362,5 +2362,5 @@
     sal si, 006h                              ; c1 e6 06
     add si, bx                                ; 01 de
-    mov al, byte [si+046fah]                  ; 8a 84 fa 46
+    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
     mov dx, 003cfh                            ; ba cf 03
     out DX, AL                                ; ee
@@ -2370,5 +2370,5 @@
     xor bh, bh                                ; 30 ff
     sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
+    cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
     jne short 011e1h                          ; 75 05
     mov dx, 003b4h                            ; ba b4 03
@@ -2392,10 +2392,10 @@
     add di, bx                                ; 01 df
     lea dx, [si+001h]                         ; 8d 54 01
-    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
+    mov al, byte [di+046d2h]                  ; 8a 85 d2 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 al, byte [bx+046d1h]                  ; 8a 87 d1 46
     mov dx, 003c2h                            ; ba c2 03
     out DX, AL                                ; ee
@@ -2412,7 +2412,7 @@
     xor bh, ch                                ; 30 ef
     sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 0124fh                          ; 75 13
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 04000h                            ; b9 00 40
     mov ax, 00720h                            ; b8 20 07
@@ -2424,5 +2424,5 @@
     cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
     jnc short 01267h                          ; 73 12
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 04000h                            ; b9 00 40
     xor ax, ax                                ; 31 c0
@@ -2439,8 +2439,8 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov word [bp-01eh], ax                    ; 89 46 e2
     mov AL, strict byte 00fh                  ; b0 0f
     out DX, AL                                ; ee
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 08000h                            ; b9 00 80
     xor ax, ax                                ; 31 c0
@@ -2449,35 +2449,37 @@
     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 al, byte [bp-01eh]                    ; 8a 46 e2
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    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 dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 d8 1e
+    call 03196h                               ; e8 f3 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
+    call 031b2h                               ; e8 03 1f
     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 bx, word [bx+046cbh]                  ; 8b 9f cb 46
     mov dx, strict word 0004ch                ; ba 4c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 d3 1e
+    call 031b2h                               ; e8 ee 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
+    call 031b2h                               ; e8 e3 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
+    call 03196h                               ; e8 b9 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
+    call 031b2h                               ; e8 c9 1e
     mov bl, byte [bp-012h]                    ; 8a 5e ee
     or bl, 060h                               ; 80 cb 60
@@ -2485,12 +2487,12 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 81 1e
+    call 03196h                               ; e8 9c 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
+    call 03196h                               ; e8 90 1e
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 5e 1e
+    call 03188h                               ; e8 79 1e
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
@@ -2498,47 +2500,56 @@
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 5c 1e
+    call 03196h                               ; e8 77 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
+    call 03196h                               ; e8 6b 1e
     mov cx, ds                                ; 8c d9
-    mov bx, 053d1h                            ; bb d1 53
+    mov bx, 053d6h                            ; bb d6 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
+    call 031d2h                               ; e8 99 1e
+    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
+    jnbe short 0136ah                         ; 77 2b
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov bl, byte [bx+07c63h]                  ; 8a 9f 63 7c
+    xor bh, bh                                ; 30 ff
     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
+    call 03196h                               ; e8 45 1e
+    cmp byte [bp-00ch], 006h                  ; 80 7e f4 06
+    jne short 0135ch                          ; 75 05
+    mov bx, strict word 0003fh                ; bb 3f 00
+    jmp short 0135fh                          ; eb 03
+    mov bx, strict word 00030h                ; bb 30 00
+    xor bh, bh                                ; 30 ff
     mov dx, strict word 00066h                ; ba 66 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 2c 1e
+    call 03196h                               ; 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 01382h                          ; 75 09
     mov dx, strict word 00007h                ; ba 07 00
     mov ax, strict word 00006h                ; b8 06 00
-    call 00dcbh                               ; e8 6c fa
+    call 00dcbh                               ; e8 49 fa
     xor bx, bx                                ; 31 db
-    jmp short 01368h                          ; eb 05
+    jmp short 0138bh                          ; eb 05
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jnc short 01374h                          ; 73 0c
+    jnc short 01397h                          ; 73 0c
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 00e79h                               ; e8 08 fb
+    call 00e79h                               ; e8 e5 fa
     inc bx                                    ; 43
-    jmp short 01363h                          ; eb ef
+    jmp short 01386h                          ; eb ef
     xor ax, ax                                ; 31 c0
-    call 00f2eh                               ; e8 b5 fb
+    call 00f2eh                               ; e8 92 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 013bbh                          ; 75 10
     xor bl, bl                                ; 30 db
     mov AL, strict byte 004h                  ; b0 04
@@ -2549,22 +2560,22 @@
     mov AH, strict byte 011h                  ; b4 11
     int 010h                                  ; cd 10
-    mov dx, 057edh                            ; ba ed 57
+    mov dx, 057f2h                            ; ba f2 57
     mov ax, strict word 0001fh                ; b8 1f 00
-    call 00a00h                               ; e8 5f f6
+    call 00a00h                               ; e8 3c f6
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, strict word 00010h                ; 3d 10 00
-    je short 013c3h                           ; 74 1a
+    je short 013e6h                           ; 74 1a
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    je short 013beh                           ; 74 10
+    je short 013e1h                           ; 74 10
     cmp ax, strict word 00008h                ; 3d 08 00
-    jne short 013c8h                          ; 75 15
-    mov dx, 053edh                            ; ba ed 53
+    jne short 013ebh                          ; 75 15
+    mov dx, 053f2h                            ; ba f2 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
+    call 00a00h                               ; e8 21 f6
+    jmp short 013ebh                          ; eb 0a
+    mov dx, 05bf2h                            ; ba f2 5b
+    jmp short 013d9h                          ; eb f3
+    mov dx, 069f2h                            ; ba f2 69
+    jmp short 013d9h                          ; eb ee
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -2575,5 +2586,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vgamem_copy_pl4_:                            ; 0xc13d2 LB 0x8f
+vgamem_copy_pl4_:                            ; 0xc13f5 LB 0x8f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2610,5 +2621,5 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 01451h                          ; 73 30
+    jnc short 01474h                          ; 73 30
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -2627,5 +2638,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0144dh                               ; e3 06
+    jcxz 01470h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2634,5 +2645,5 @@
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 0141ch                          ; eb cb
+    jmp short 0143fh                          ; eb cb
     mov ax, strict word 00005h                ; b8 05 00
     mov dx, 003ceh                            ; ba ce 03
@@ -2643,5 +2654,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_fill_pl4_:                            ; 0xc1461 LB 0x7c
+vgamem_fill_pl4_:                            ; 0xc1484 LB 0x7c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2672,5 +2683,5 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 014cdh                          ; 73 2d
+    jnc short 014f0h                          ; 73 2d
     mov cl, byte [bp-006h]                    ; 8a 4e fa
     xor ch, ch                                ; 30 ed
@@ -2690,9 +2701,9 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 014c9h                               ; e3 02
+    jcxz 014ech                               ; e3 02
     rep stosb                                 ; f3 aa
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 0149bh                          ; eb ce
+    jmp short 014beh                          ; eb ce
     mov ax, strict word 00005h                ; b8 05 00
     mov dx, 003ceh                            ; ba ce 03
@@ -2703,5 +2714,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_copy_cga_:                            ; 0xc14dd LB 0xc2
+vgamem_copy_cga_:                            ; 0xc1500 LB 0xc2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2737,7 +2748,7 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 01596h                          ; 73 70
+    jnc short 015b9h                          ; 73 70
     test bl, 001h                             ; f6 c3 01
-    je short 01562h                           ; 74 37
+    je short 01585h                           ; 74 37
     mov cl, bh                                ; 88 f9
     xor ch, ch                                ; 30 ed
@@ -2759,10 +2770,10 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01560h                               ; e3 06
+    jcxz 01583h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
     rep movsb                                 ; f3 a4
     pop DS                                    ; 1f
-    jmp short 01592h                          ; eb 30
+    jmp short 015b5h                          ; eb 30
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -2782,5 +2793,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01592h                               ; e3 06
+    jcxz 015b5h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2789,5 +2800,5 @@
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 01521h                          ; eb 8b
+    jmp short 01544h                          ; eb 8b
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2795,5 +2806,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_fill_cga_:                            ; 0xc159f LB 0xa8
+vgamem_fill_cga_:                            ; 0xc15c2 LB 0xa8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2822,7 +2833,7 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 0163eh                          ; 73 65
+    jnc short 01661h                          ; 73 65
     test bl, 001h                             ; f6 c3 01
-    je short 0160fh                           ; 74 31
+    je short 01632h                           ; 74 31
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -2844,7 +2855,7 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0160dh                               ; e3 02
+    jcxz 01630h                               ; e3 02
     rep stosb                                 ; f3 aa
-    jmp short 0163ah                          ; eb 2b
+    jmp short 0165dh                          ; eb 2b
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -2865,9 +2876,9 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0163ah                               ; e3 02
+    jcxz 0165dh                               ; e3 02
     rep stosb                                 ; f3 aa
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 015d4h                          ; eb 96
+    jmp short 015f7h                          ; eb 96
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2875,5 +2886,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-biosfn_scroll_:                              ; 0xc1647 LB 0x55a
+biosfn_scroll_:                              ; 0xc166a LB 0x55a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2886,19 +2897,19 @@
     mov byte [bp-008h], cl                    ; 88 4e f8
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnbe short 0167ah                         ; 77 1a
+    jnbe short 0169dh                         ; 77 1a
     cmp cl, byte [bp+006h]                    ; 3a 4e 06
-    jnbe short 0167ah                         ; 77 15
+    jnbe short 0169dh                         ; 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
+    call 03188h                               ; e8 f7 1a
+    xor ah, ah                                ; 30 e4
+    call 03160h                               ; 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
+    jne short 016a0h                          ; 75 03
+    jmp near 01bbbh                           ; e9 1b 05
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 df 1a
+    call 03188h                               ; e8 df 1a
     xor ah, ah                                ; 30 e4
     mov cx, ax                                ; 89 c1
@@ -2906,16 +2917,16 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 ed 1a
+    call 031a4h                               ; 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
+    jne short 016cch                          ; 75 0c
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 bf 1a
+    call 03188h                               ; 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
+    jc short 016dch                           ; 72 07
     mov al, cl                                ; 88 c8
     db  0feh, 0c8h
@@ -2925,5 +2936,5 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 016cbh                           ; 72 08
+    jc short 016eeh                           ; 72 08
     mov al, byte [bp-018h]                    ; 8a 46 e8
     db  0feh, 0c8h
@@ -2933,5 +2944,5 @@
     xor ah, ah                                ; 30 e4
     cmp ax, cx                                ; 39 c8
-    jbe short 016d7h                          ; 76 03
+    jbe short 016fah                          ; 76 03
     mov byte [bp-006h], ah                    ; 88 66 fa
     mov al, byte [bp+006h]                    ; 8a 46 06
@@ -2953,6 +2964,6 @@
     mul cx                                    ; f7 e1
     mov si, ax                                ; 89 c6
-    cmp byte [di+04630h], 000h                ; 80 bd 30 46 00
-    jne short 01758h                          ; 75 51
+    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
+    jne short 0177bh                          ; 75 51
     add ax, ax                                ; 01 c0
     or AL, strict byte 0ffh                   ; 0c ff
@@ -2966,29 +2977,29 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 0175bh                          ; 75 3a
+    jne short 0177eh                          ; 75 3a
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 0175bh                          ; 75 34
+    jne short 0177eh                          ; 75 34
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 0175bh                          ; 75 2e
+    jne short 0177eh                          ; 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
+    jne short 0177eh                          ; 75 24
     mov al, byte [bp+006h]                    ; 8a 46 06
     cmp ax, word [bp-01ah]                    ; 3b 46 e6
-    jne short 0175bh                          ; 75 1c
+    jne short 0177eh                          ; 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 es, [di+04638h]                       ; 8e 85 38 46
     mov cx, si                                ; 89 f1
     mov di, bx                                ; 89 df
     cld                                       ; fc
-    jcxz 01755h                               ; e3 02
+    jcxz 01778h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp near 01b98h                           ; e9 40 04
-    jmp near 018d6h                           ; e9 7b 01
+    jmp near 01bbbh                           ; e9 40 04
+    jmp near 018f9h                           ; e9 7b 01
     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 017c5h                          ; 75 64
+    jne short 017e8h                          ; 75 64
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -2997,12 +3008,12 @@
     xor dh, dh                                ; 30 f6
     cmp dx, word [bp-016h]                    ; 3b 56 ea
-    jc short 017c7h                           ; 72 54
+    jc short 017eah                           ; 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
+    jnbe short 017a8h                         ; 77 06
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 017cah                          ; 75 45
+    jne short 017edh                          ; 75 45
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
@@ -3025,12 +3036,12 @@
     mov si, ax                                ; 89 c6
     sal si, 003h                              ; c1 e6 03
-    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov es, [si+04638h]                       ; 8e 84 38 46
     mov ax, word [bp-01eh]                    ; 8b 46 e2
     cld                                       ; fc
-    jcxz 017c3h                               ; e3 02
+    jcxz 017e6h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 0180eh                          ; eb 49
-    jmp short 01814h                          ; eb 4d
-    jmp near 01b98h                           ; e9 ce 03
+    jmp short 01831h                          ; eb 49
+    jmp short 01837h                          ; eb 4d
+    jmp near 01bbbh                           ; e9 ce 03
     mov dl, byte [bp-00eh]                    ; 8a 56 f2
     mov cx, dx                                ; 89 d1
@@ -3046,5 +3057,5 @@
     mov si, ax                                ; 89 c6
     sal si, 003h                              ; c1 e6 03
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov word [bp-01eh], ax                    ; 89 46 e2
     mov ax, word [bp-016h]                    ; 8b 46 ea
@@ -3057,5 +3068,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0180eh                               ; e3 06
+    jcxz 01831h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -3063,5 +3074,5 @@
     pop DS                                    ; 1f
     inc word [bp-016h]                        ; ff 46 ea
-    jmp near 01769h                           ; e9 55 ff
+    jmp near 0178ch                           ; e9 55 ff
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3070,12 +3081,12 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 017c7h                         ; 77 a1
+    jnbe short 017eah                         ; 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
+    jnbe short 01859h                         ; 77 04
     test al, al                               ; 84 c0
-    jne short 01874h                          ; 75 3e
+    jne short 01897h                          ; 75 3e
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
@@ -3097,10 +3108,10 @@
     mov si, ax                                ; 89 c6
     sal si, 003h                              ; c1 e6 03
-    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov es, [si+04638h]                       ; 8e 84 38 46
     mov ax, word [bp-01eh]                    ; 8b 46 e2
     cld                                       ; fc
-    jcxz 01872h                               ; e3 02
+    jcxz 01895h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 018c6h                          ; eb 52
+    jmp short 018e9h                          ; eb 52
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov di, ax                                ; 89 c7
@@ -3120,5 +3131,5 @@
     mov si, ax                                ; 89 c6
     sal si, 003h                              ; c1 e6 03
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov word [bp-014h], ax                    ; 89 46 ec
     mov ax, word [bp-016h]                    ; 8b 46 ea
@@ -3133,5 +3144,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 018c6h                               ; e3 06
+    jcxz 018e9h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -3141,27 +3152,27 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 018fbh                           ; 72 2b
+    jc short 0191eh                           ; 72 2b
     dec word [bp-016h]                        ; ff 4e ea
-    jmp near 0181ch                           ; e9 46 ff
-    mov al, byte [bx+046afh]                  ; 8a 87 af 46
+    jmp near 0183fh                           ; e9 46 ff
+    mov al, byte [bx+046b4h]                  ; 8a 87 b4 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 al, byte [bx+046cah]                  ; 8a 87 ca 46
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov bl, byte [di+04631h]                  ; 8a 9d 31 46
+    mov bl, byte [di+04636h]                  ; 8a 9d 36 46
     cmp bl, 004h                              ; 80 fb 04
-    je short 018feh                           ; 74 0d
+    je short 01921h                           ; 74 0d
     cmp bl, 003h                              ; 80 fb 03
-    je short 018feh                           ; 74 08
+    je short 01921h                           ; 74 08
     cmp bl, 002h                              ; 80 fb 02
-    je short 0192dh                           ; 74 32
-    jmp near 01b98h                           ; e9 9a 02
+    je short 01950h                           ; 74 32
+    jmp near 01bbbh                           ; e9 9a 02
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01968h                          ; 75 64
+    jne short 0198bh                          ; 75 64
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01968h                          ; 75 5e
+    jne short 0198bh                          ; 75 5e
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 01968h                          ; 75 58
+    jne short 0198bh                          ; 75 58
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3170,5 +3181,5 @@
     dec ax                                    ; 48
     cmp dx, ax                                ; 39 c2
-    jne short 01968h                          ; 75 4a
+    jne short 0198bh                          ; 75 4a
     mov al, byte [bp+006h]                    ; 8a 46 06
     xor ah, ah                                ; 30 e4
@@ -3176,7 +3187,7 @@
     dec dx                                    ; 4a
     cmp ax, dx                                ; 39 d0
-    je short 01930h                           ; 74 05
-    jmp short 01968h                          ; eb 3b
-    jmp near 01a5dh                           ; e9 2d 01
+    je short 01953h                           ; 74 05
+    jmp short 0198bh                          ; eb 3b
+    jmp near 01a80h                           ; e9 2d 01
     mov ax, 00205h                            ; b8 05 02
     mov dx, 003ceh                            ; ba ce 03
@@ -3194,15 +3205,15 @@
     mov bx, dx                                ; 89 d3
     sal bx, 003h                              ; c1 e3 03
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 0195fh                               ; e3 02
+    jcxz 01982h                               ; 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
+    jmp short 0191eh                          ; eb 93
     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 019beh                          ; 75 50
+    jne short 019e1h                          ; 75 50
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -3212,11 +3223,11 @@
     mov dx, ax                                ; 89 c2
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 019e4h                           ; 72 62
+    jc short 01a07h                           ; 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
+    jnbe short 019b5h                         ; 77 06
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 019c0h                          ; 75 2e
+    jne short 019e3h                          ; 75 2e
     mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
@@ -3235,7 +3246,7 @@
     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
+    call 01484h                               ; e8 a5 fa
+    jmp short 01a02h                          ; eb 21
+    jmp short 01a0ah                          ; eb 27
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3250,8 +3261,8 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 013d2h                               ; e8 f3 f9
+    call 013f5h                               ; e8 f3 f9
     inc word [bp-016h]                        ; ff 46 ea
-    jmp short 01976h                          ; eb 92
-    jmp near 01b98h                           ; e9 b1 01
+    jmp short 01999h                          ; eb 92
+    jmp near 01bbbh                           ; e9 b1 01
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3260,12 +3271,12 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 019e4h                         ; 77 eb
+    jnbe short 01a07h                         ; 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
+    jnbe short 01a2eh                         ; 77 06
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01a2ch                          ; 75 21
+    jne short 01a4fh                          ; 75 21
     mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
@@ -3280,6 +3291,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 01461h                               ; e8 37 fa
-    jmp short 01a4eh                          ; eb 22
+    call 01484h                               ; e8 37 fa
+    jmp short 01a71h                          ; eb 22
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3295,24 +3306,24 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 013d2h                               ; e8 84 f9
+    call 013f5h                               ; 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
+    jc short 01ac5h                           ; 72 4a
     dec word [bp-016h]                        ; ff 4e ea
-    jmp short 019efh                          ; eb 92
-    mov bl, byte [di+04632h]                  ; 8a 9d 32 46
+    jmp short 01a12h                          ; eb 92
+    mov bl, byte [di+04637h]                  ; 8a 9d 37 46
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01aa5h                          ; 75 3e
+    jne short 01ac8h                          ; 75 3e
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01aa5h                          ; 75 38
+    jne short 01ac8h                          ; 75 38
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 01aa5h                          ; 75 32
+    jne short 01ac8h                          ; 75 32
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp ax, word [bp-01ch]                    ; 3b 46 e4
-    jne short 01aa5h                          ; 75 2a
+    jne short 01ac8h                          ; 75 2a
     mov al, byte [bp+006h]                    ; 8a 46 06
     cmp ax, word [bp-01ah]                    ; 3b 46 e6
-    jne short 01aa5h                          ; 75 22
+    jne short 01ac8h                          ; 75 22
     mov al, byte [bp-012h]                    ; 8a 46 ee
     mov dx, ax                                ; 89 c2
@@ -3322,19 +3333,19 @@
     mul bx                                    ; f7 e3
     mov bl, byte [bp-010h]                    ; 8a 5e f0
-    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov es, [di+04638h]                       ; 8e 85 38 46
     mov cx, ax                                ; 89 c1
     mov ax, bx                                ; 89 d8
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 01aa2h                               ; e3 02
+    jcxz 01ac5h                               ; e3 02
     rep stosb                                 ; f3 aa
-    jmp near 01b98h                           ; e9 f3 00
+    jmp near 01bbbh                           ; e9 f3 00
     cmp bl, 002h                              ; 80 fb 02
-    jne short 01ab3h                          ; 75 09
+    jne short 01ad6h                          ; 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
+    jne short 01b45h                          ; 75 69
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -3344,11 +3355,11 @@
     mov dx, ax                                ; 89 c2
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 01aa2h                           ; 72 d5
+    jc short 01ac5h                           ; 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
+    jnbe short 01b00h                         ; 77 06
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01afeh                          ; 75 21
+    jne short 01b21h                          ; 75 21
     mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
@@ -3363,6 +3374,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 0159fh                               ; e8 a3 fa
-    jmp short 01b1dh                          ; eb 1f
+    call 015c2h                               ; e8 a3 fa
+    jmp short 01b40h                          ; eb 1f
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3377,7 +3388,7 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 014ddh                               ; e8 c0 f9
+    call 01500h                               ; e8 c0 f9
     inc word [bp-016h]                        ; ff 46 ea
-    jmp short 01ac1h                          ; eb 9f
+    jmp short 01ae4h                          ; eb 9f
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3386,12 +3397,12 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 01b98h                         ; 77 64
+    jnbe short 01bbbh                         ; 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
+    jnbe short 01b69h                         ; 77 06
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01b67h                          ; 75 21
+    jne short 01b8ah                          ; 75 21
     mov al, byte [bp-010h]                    ; 8a 46 f0
     xor ah, ah                                ; 30 e4
@@ -3406,6 +3417,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 0159fh                               ; e8 3a fa
-    jmp short 01b89h                          ; eb 22
+    call 015c2h                               ; e8 3a fa
+    jmp short 01bach                          ; eb 22
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3421,11 +3432,11 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    call 014ddh                               ; e8 54 f9
+    call 01500h                               ; 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
+    jc short 01bbbh                           ; 72 05
     dec word [bp-016h]                        ; ff 4e ea
-    jmp short 01b2ah                          ; eb 92
+    jmp short 01b4dh                          ; eb 92
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3433,5 +3444,5 @@
     pop bp                                    ; 5d
     retn 00008h                               ; c2 08 00
-write_gfx_char_pl4_:                         ; 0xc1ba1 LB 0xfb
+write_gfx_char_pl4_:                         ; 0xc1bc4 LB 0xfb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3444,12 +3455,12 @@
     mov al, cl                                ; 88 c8
     cmp byte [bp+006h], 010h                  ; 80 7e 06 10
-    je short 01bc5h                           ; 74 0b
+    je short 01be8h                           ; 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
+    jne short 01bedh                          ; 75 0a
+    mov di, 05bf2h                            ; bf f2 5b
+    jmp short 01bf0h                          ; eb 08
+    mov di, 069f2h                            ; bf f2 69
+    jmp short 01bf0h                          ; eb 03
+    mov di, 053f2h                            ; bf f2 53
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -3476,13 +3487,13 @@
     out DX, ax                                ; ef
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01c0fh                           ; 74 06
+    je short 01c32h                           ; 74 06
     mov ax, 01803h                            ; b8 03 18
     out DX, ax                                ; ef
-    jmp short 01c13h                          ; eb 04
+    jmp short 01c36h                          ; 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
+    jnc short 01ca7h                          ; 73 6a
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -3495,12 +3506,12 @@
     add si, ax                                ; 01 c6
     mov byte [bp-00ch], bh                    ; 88 7e f4
-    jmp short 01c46h                          ; eb 13
+    jmp short 01c69h                          ; eb 13
     xor bx, bx                                ; 31 db
     mov dx, si                                ; 89 f2
     mov ax, 0a000h                            ; b8 00 a0
-    call 03173h                               ; e8 36 15
+    call 03196h                               ; e8 36 15
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 008h                  ; 80 7e f4 08
-    jnc short 01c80h                          ; 73 3a
+    jnc short 01ca3h                          ; 73 3a
     mov cl, byte [bp-00ch]                    ; 8a 4e f4
     mov ax, 00080h                            ; b8 80 00
@@ -3514,5 +3525,5 @@
     mov dx, si                                ; 89 f2
     mov ax, 0a000h                            ; b8 00 a0
-    call 03165h                               ; e8 01 15
+    call 03188h                               ; e8 01 15
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -3522,12 +3533,12 @@
     mov al, byte [bx]                         ; 8a 07
     test word [bp-012h], ax                   ; 85 46 ee
-    je short 01c33h                           ; 74 bd
+    je short 01c56h                           ; 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
+    jmp short 01c58h                          ; eb b5
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 01c15h                          ; eb 91
+    jmp short 01c38h                          ; eb 91
     mov ax, 0ff08h                            ; b8 08 ff
     mov dx, 003ceh                            ; ba ce 03
@@ -3542,5 +3553,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-write_gfx_char_cga_:                         ; 0xc1c9c LB 0x138
+write_gfx_char_cga_:                         ; 0xc1cbf LB 0x138
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3551,5 +3562,5 @@
     mov byte [bp-008h], dl                    ; 88 56 f8
     mov al, bl                                ; 88 d8
-    mov si, 053edh                            ; be ed 53
+    mov si, 053f2h                            ; be f2 53
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -3569,8 +3580,8 @@
     sal di, 003h                              ; c1 e7 03
     mov byte [bp-006h], ah                    ; 88 66 fa
-    jmp near 01d2dh                           ; e9 52 00
+    jmp near 01d50h                           ; e9 52 00
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 01cech                          ; eb 0b
+    jmp short 01d0fh                          ; eb 0b
     or al, bl                                 ; 08 d8
     shr ch, 1                                 ; d0 ed
@@ -3578,5 +3589,5 @@
     ; inc ah                                    ; fe c4
     cmp ah, 008h                              ; 80 fc 08
-    jnc short 01d17h                          ; 73 2b
+    jnc short 01d3ah                          ; 73 2b
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -3588,5 +3599,5 @@
     mov bl, ch                                ; 88 eb
     test dx, bx                               ; 85 da
-    je short 01ce3h                           ; 74 e2
+    je short 01d06h                           ; 74 e2
     mov CL, strict byte 007h                  ; b1 07
     sub cl, ah                                ; 28 e1
@@ -3595,15 +3606,15 @@
     sal bl, CL                                ; d2 e3
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01ce1h                           ; 74 ce
+    je short 01d04h                           ; 74 ce
     xor al, bl                                ; 30 d8
-    jmp short 01ce3h                          ; eb cc
+    jmp short 01d06h                          ; 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
+    call 03196h                               ; e8 4f 14
     inc byte [bp-006h]                        ; fe 46 fa
     cmp byte [bp-006h], 008h                  ; 80 7e fa 08
-    jnc short 01d7dh                          ; 73 50
+    jnc short 01da0h                          ; 73 50
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -3614,29 +3625,29 @@
     mov word [bp-00ch], dx                    ; 89 56 f4
     test byte [bp-006h], 001h                 ; f6 46 fa 01
-    je short 01d49h                           ; 74 04
+    je short 01d6ch                           ; 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
+    jne short 01d85h                          ; 75 11
     test byte [bp-008h], ch                   ; 84 6e f8
-    je short 01cdbh                           ; 74 85
+    je short 01cfeh                           ; 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
+    call 03188h                               ; e8 06 14
+    jmp near 01d00h                           ; e9 7b ff
     test ch, ch                               ; 84 ed
-    jbe short 01d24h                          ; 76 be
+    jbe short 01d47h                          ; 76 be
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01d77h                           ; 74 0b
+    je short 01d9ah                           ; 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
+    call 03188h                               ; e8 f0 13
+    jmp short 01d9ch                          ; eb 02
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 01d84h                          ; eb 07
-    jmp short 01dcbh                          ; eb 4c
+    jmp short 01da7h                          ; eb 07
+    jmp short 01deeh                          ; eb 4c
     cmp ah, 004h                              ; 80 fc 04
-    jnc short 01db9h                          ; 73 35
+    jnc short 01ddch                          ; 73 35
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -3648,5 +3659,5 @@
     mov bl, ch                                ; 88 eb
     test dx, bx                               ; 85 da
-    je short 01db3h                           ; 74 1a
+    je short 01dd6h                           ; 74 1a
     mov CL, strict byte 003h                  ; b1 03
     sub cl, ah                                ; 28 e1
@@ -3656,19 +3667,19 @@
     sal bl, CL                                ; d2 e3
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01db1h                           ; 74 04
+    je short 01dd4h                           ; 74 04
     xor al, bl                                ; 30 d8
-    jmp short 01db3h                          ; eb 02
+    jmp short 01dd6h                          ; eb 02
     or al, bl                                 ; 08 d8
     shr ch, 1                                 ; d0 ed
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 01d7fh                          ; eb c6
+    jmp short 01da2h                          ; 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
+    call 03196h                               ; e8 ad 13
     inc word [bp-00ch]                        ; ff 46 f4
-    jmp short 01d62h                          ; eb 97
+    jmp short 01d85h                          ; eb 97
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3676,5 +3687,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-write_gfx_char_lin_:                         ; 0xc1dd4 LB 0xaa
+write_gfx_char_lin_:                         ; 0xc1df7 LB 0xaa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3686,5 +3697,5 @@
     mov byte [bp-006h], bl                    ; 88 5e fa
     mov al, cl                                ; 88 c8
-    mov si, 053edh                            ; be ed 53
+    mov si, 053f2h                            ; be f2 53
     xor ah, ah                                ; 30 e4
     mov bl, byte [bp+004h]                    ; 8a 5e 04
@@ -3701,7 +3712,7 @@
     sal di, 003h                              ; c1 e7 03
     xor cl, cl                                ; 30 c9
-    jmp short 01e53h                          ; eb 44
+    jmp short 01e76h                          ; eb 44
     cmp ch, 008h                              ; 80 fd 08
-    jnc short 01e4ch                          ; 73 38
+    jnc short 01e6fh                          ; 73 38
     xor dl, dl                                ; 30 d2
     mov al, cl                                ; 88 c8
@@ -3715,5 +3726,5 @@
     xor bh, bh                                ; 30 ff
     test ax, bx                               ; 85 d8
-    je short 01e30h                           ; 74 03
+    je short 01e53h                           ; 74 03
     mov dl, byte [bp-00ch]                    ; 8a 56 f4
     mov bl, dl                                ; 88 d3
@@ -3725,13 +3736,13 @@
     mov bx, ax                                ; 89 c3
     mov ax, 0a000h                            ; b8 00 a0
-    call 03173h                               ; e8 2e 13
+    call 03196h                               ; e8 2e 13
     shr byte [bp-008h], 1                     ; d0 6e f8
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 01e0fh                          ; eb c3
+    jmp short 01e32h                          ; eb c3
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
     cmp cl, 008h                              ; 80 f9 08
-    jnc short 01e75h                          ; 73 22
+    jnc short 01e98h                          ; 73 22
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -3747,5 +3758,5 @@
     mov byte [bp-008h], 080h                  ; c6 46 f8 80
     xor ch, ch                                ; 30 ed
-    jmp short 01e14h                          ; eb 9f
+    jmp short 01e37h                          ; eb 9f
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3753,5 +3764,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-biosfn_write_char_attr_:                     ; 0xc1e7e LB 0x18d
+biosfn_write_char_attr_:                     ; 0xc1ea1 LB 0x18d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3765,17 +3776,17 @@
     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
+    call 03188h                               ; e8 cb 12
+    xor ah, ah                                ; 30 e4
+    call 03160h                               ; 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
+    jne short 01eceh                          ; 75 03
+    jmp near 02027h                           ; 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
+    call 00a8bh                               ; e8 af eb
     mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [bp-006h], al                    ; 88 46 fa
@@ -3786,5 +3797,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 92 12
+    call 03188h                               ; e8 92 12
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -3792,5 +3803,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 9f 12
+    call 031a4h                               ; e8 9f 12
     mov bx, ax                                ; 89 c3
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -3799,6 +3810,6 @@
     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
+    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
+    jne short 01f6ch                          ; 75 52
     mov ax, bx                                ; 89 d8
     mul word [bp-018h]                        ; f7 66 e8
@@ -3830,42 +3841,42 @@
     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 es, [di+04638h]                       ; 8e 85 38 46
     mov cx, si                                ; 89 f1
     mov di, dx                                ; 89 d7
     cld                                       ; fc
-    jcxz 01f46h                               ; e3 02
+    jcxz 01f69h                               ; 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
+    jmp near 02027h                           ; e9 bb 00
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+046b4h]                  ; 8a 87 b4 46
     mov bx, ax                                ; 89 c3
     sal bx, 006h                              ; c1 e3 06
-    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     mov byte [bp-00eh], al                    ; 88 46 f2
-    mov al, byte [di+04632h]                  ; 8a 85 32 46
+    mov al, byte [di+04637h]                  ; 8a 85 37 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
+    je short 01f95h                           ; 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
+    jc short 01f98h                           ; 72 03
+    jmp near 02027h                           ; 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
+    mov al, byte [bx+04636h]                  ; 8a 87 36 46
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 01f91h                           ; 72 0c
-    jbe short 01f97h                          ; 76 10
+    jc short 01fb4h                           ; 72 0c
+    jbe short 01fbah                          ; 76 10
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 01fe5h                           ; 74 5a
+    je short 02008h                           ; 74 5a
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 01f97h                           ; 74 08
-    jmp short 01ffeh                          ; eb 6d
+    je short 01fbah                           ; 74 08
+    jmp short 02021h                          ; eb 6d
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 01fc0h                           ; 74 2b
-    jmp short 01ffeh                          ; eb 67
+    je short 01fe3h                           ; 74 2b
+    jmp short 02021h                          ; eb 67
     mov bl, byte [bp-00eh]                    ; 8a 5e f2
     xor bh, bh                                ; 30 ff
@@ -3884,6 +3895,6 @@
     mov dx, ax                                ; 89 c2
     mov ax, di                                ; 89 f8
-    call 01ba1h                               ; e8 e3 fb
-    jmp short 01ffeh                          ; eb 3e
+    call 01bc4h                               ; e8 e3 fb
+    jmp short 02021h                          ; eb 3e
     mov al, byte [bp-010h]                    ; 8a 46 f0
     push ax                                   ; 50
@@ -3900,6 +3911,6 @@
     mov bx, ax                                ; 89 c3
     mov ax, di                                ; 89 f8
-    call 01c9ch                               ; e8 b9 fc
-    jmp short 01ffeh                          ; eb 19
+    call 01cbfh                               ; e8 b9 fc
+    jmp short 02021h                          ; eb 19
     mov al, byte [bp-016h]                    ; 8a 46 ea
     push ax                                   ; 50
@@ -3911,7 +3922,7 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00ah]                    ; 8a 46 f6
-    call 01dd4h                               ; e8 d6 fd
+    call 01df7h                               ; e8 d6 fd
     inc byte [bp-006h]                        ; fe 46 fa
-    jmp near 01f62h                           ; e9 5e ff
+    jmp near 01f85h                           ; e9 5e ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3919,5 +3930,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_char_only_:                     ; 0xc200b LB 0x196
+biosfn_write_char_only_:                     ; 0xc202e LB 0x196
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3931,19 +3942,19 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 3e 11
+    call 03188h                               ; e8 3e 11
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 0313dh                               ; e8 0d 11
+    call 03160h                               ; 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
+    jne short 02060h                          ; 75 03
+    jmp near 021bdh                           ; 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
+    call 00a8bh                               ; e8 1d ea
     mov al, byte [bp-01eh]                    ; 8a 46 e2
     mov byte [bp-014h], al                    ; 88 46 ec
@@ -3954,5 +3965,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 00 11
+    call 03188h                               ; e8 00 11
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -3961,5 +3972,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 0b 11
+    call 031a4h                               ; e8 0b 11
     mov cx, ax                                ; 89 c1
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -3968,6 +3979,6 @@
     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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 020f6h                          ; 75 47
     mul word [bp-01ah]                        ; f7 66 e6
     add ax, ax                                ; 01 c0
@@ -3988,5 +3999,5 @@
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 0203ah                           ; 74 85
+    je short 0205dh                           ; 74 85
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -3995,41 +4006,41 @@
     mov bx, ax                                ; 89 c3
     sal bx, 003h                              ; c1 e3 03
-    mov ax, word [bx+04633h]                  ; 8b 87 33 46
+    mov ax, word [bx+04638h]                  ; 8b 87 38 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
+    call 03196h                               ; e8 a4 10
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 020d2h                          ; eb dc
+    mov al, byte [di+046b4h]                  ; 8a 85 b4 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 al, byte [di+046cah]                  ; 8a 85 ca 46
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+04632h]                  ; 8a 87 32 46
+    mov al, byte [bx+04637h]                  ; 8a 87 37 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
+    je short 0216dh                           ; 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
+    jnc short 0216dh                          ; 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
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     cmp bl, 003h                              ; 80 fb 03
-    jc short 0211ch                           ; 72 0f
-    jbe short 02123h                          ; 76 14
+    jc short 0213fh                           ; 72 0f
+    jbe short 02146h                          ; 76 14
     cmp bl, 005h                              ; 80 fb 05
-    je short 02173h                           ; 74 5f
+    je short 02196h                           ; 74 5f
     cmp bl, 004h                              ; 80 fb 04
-    je short 02123h                           ; 74 0a
-    jmp near 02194h                           ; e9 78 00
+    je short 02146h                           ; 74 0a
+    jmp near 021b7h                           ; e9 78 00
     cmp bl, 002h                              ; 80 fb 02
-    je short 0214ch                           ; 74 2b
-    jmp short 02194h                          ; eb 71
+    je short 0216fh                           ; 74 2b
+    jmp short 021b7h                          ; eb 71
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -4047,7 +4058,7 @@
     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
+    call 01bc4h                               ; e8 59 fa
+    jmp short 021b7h                          ; eb 4a
+    jmp short 021bdh                          ; eb 4e
     mov al, byte [bp-016h]                    ; 8a 46 ea
     push ax                                   ; 50
@@ -4065,6 +4076,6 @@
     mov bx, ax                                ; 89 c3
     mov ax, di                                ; 89 f8
-    call 01c9ch                               ; e8 2b fb
-    jmp short 02194h                          ; eb 21
+    call 01cbfh                               ; e8 2b fb
+    jmp short 021b7h                          ; eb 21
     mov al, byte [bp-018h]                    ; 8a 46 e8
     push ax                                   ; 50
@@ -4080,7 +4091,7 @@
     mov bx, dx                                ; 89 d3
     mov dx, di                                ; 89 fa
-    call 01dd4h                               ; e8 40 fc
+    call 01df7h                               ; e8 40 fc
     inc byte [bp-014h]                        ; fe 46 ec
-    jmp near 020ech                           ; e9 52 ff
+    jmp near 0210fh                           ; e9 52 ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4088,5 +4099,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_pixel_:                         ; 0xc21a1 LB 0x17b
+biosfn_write_pixel_:                         ; 0xc21c4 LB 0x17b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4097,33 +4108,33 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 ae 0f
+    call 03188h                               ; e8 ae 0f
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 0313dh                               ; e8 7d 0f
+    call 03160h                               ; e8 7d 0f
     mov byte [bp-004h], al                    ; 88 46 fc
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 021edh                           ; 74 26
+    je short 02210h                           ; 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 byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    je short 02210h                           ; 74 18
+    mov al, byte [bx+04636h]                  ; 8a 87 36 46
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 021e9h                           ; 72 0c
-    jbe short 021f3h                          ; 76 14
+    jc short 0220ch                           ; 72 0c
+    jbe short 02216h                          ; 76 14
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 021f0h                           ; 74 0d
+    je short 02213h                           ; 74 0d
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 021f3h                           ; 74 0c
-    jmp short 021edh                          ; eb 04
+    je short 02216h                           ; 74 0c
+    jmp short 02210h                          ; 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
+    je short 02283h                           ; 74 73
+    jmp near 02312h                           ; e9 ff 00
+    jmp near 02318h                           ; e9 02 01
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 85 0f
+    call 031a4h                               ; e8 85 0f
     mov bx, ax                                ; 89 c3
     mov ax, cx                                ; 89 c8
@@ -4148,7 +4159,7 @@
     mov dx, word [bp-008h]                    ; 8b 56 f8
     mov ax, 0a000h                            ; b8 00 a0
-    call 03165h                               ; e8 31 0f
+    call 03188h                               ; e8 31 0f
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 02241h                           ; 74 07
+    je short 02264h                           ; 74 07
     mov ax, 01803h                            ; b8 03 18
     mov dx, 003ceh                            ; ba ce 03
@@ -4158,5 +4169,5 @@
     mov dx, word [bp-008h]                    ; 8b 56 f8
     mov ax, 0a000h                            ; b8 00 a0
-    call 03173h                               ; e8 24 0f
+    call 03196h                               ; e8 24 0f
     mov ax, 0ff08h                            ; b8 08 ff
     mov dx, 003ceh                            ; ba ce 03
@@ -4166,13 +4177,13 @@
     mov ax, strict word 00003h                ; b8 03 00
     out DX, ax                                ; ef
-    jmp short 021edh                          ; eb 8d
+    jmp short 02210h                          ; 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
+    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
+    jne short 02299h                          ; 75 08
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     shr bx, 002h                              ; c1 eb 02
-    jmp short 0227ch                          ; eb 06
+    jmp short 0229fh                          ; eb 06
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     shr bx, 003h                              ; c1 eb 03
@@ -4180,9 +4191,9 @@
     mov word [bp-008h], bx                    ; 89 5e f8
     test cl, 001h                             ; f6 c1 01
-    je short 0228ah                           ; 74 04
+    je short 022adh                           ; 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
+    call 03188h                               ; e8 d2 0e
     mov bl, al                                ; 88 c3
     mov al, byte [bp-004h]                    ; 8a 46 fc
@@ -4190,6 +4201,6 @@
     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
+    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
+    jne short 022e2h                          ; 75 19
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 003h                  ; 24 03
@@ -4202,5 +4213,5 @@
     sal bh, CL                                ; d2 e7
     mov AL, strict byte 003h                  ; b0 03
-    jmp short 022d2h                          ; eb 13
+    jmp short 022f5h                          ; eb 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 007h                  ; 24 07
@@ -4213,7 +4224,7 @@
     sal al, CL                                ; d2 e0
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 022deh                           ; 74 04
+    je short 02301h                           ; 74 04
     xor bl, bh                                ; 30 fb
-    jmp short 022e4h                          ; eb 06
+    jmp short 02307h                          ; eb 06
     not al                                    ; f6 d0
     and bl, al                                ; 20 c3
@@ -4222,5 +4233,5 @@
     mov dx, word [bp-008h]                    ; 8b 56 f8
     mov ax, 0b800h                            ; b8 00 b8
-    call 03173h                               ; e8 84 0e
+    call 03196h                               ; e8 84 0e
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
@@ -4229,5 +4240,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 83 0e
+    call 031a4h                               ; e8 83 0e
     mov bx, ax                                ; 89 c3
     sal bx, 003h                              ; c1 e3 03
@@ -4241,6 +4252,6 @@
     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
+    jmp short 0230fh                          ; eb d0
+biosfn_write_teletype_:                      ; 0xc233f LB 0x26f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4253,24 +4264,24 @@
     mov byte [bp-014h], cl                    ; 88 4e ec
     cmp dl, 0ffh                              ; 80 fa ff
-    jne short 02341h                          ; 75 0c
+    jne short 02364h                          ; 75 0c
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 27 0e
+    call 03188h                               ; 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
+    call 03188h                               ; e8 1b 0e
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 0313dh                               ; e8 ea 0d
+    call 03160h                               ; e8 ea 0d
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 023c2h                           ; 74 68
+    je short 023e5h                           ; 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
+    call 00a8bh                               ; e8 00 e7
     mov al, byte [bp-01eh]                    ; 8a 46 e2
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -4281,5 +4292,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 e3 0d
+    call 03188h                               ; e8 e3 0d
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -4288,32 +4299,32 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 ee 0d
+    call 031a4h                               ; 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
+    jc short 023cch                           ; 72 0c
+    jbe short 023d3h                          ; 76 11
     cmp AL, strict byte 00dh                  ; 3c 0d
-    je short 023bbh                           ; 74 18
+    je short 023deh                           ; 74 18
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 023c5h                           ; 74 1e
-    jmp short 023c8h                          ; eb 1f
+    je short 023e8h                           ; 74 1e
+    jmp short 023ebh                          ; eb 1f
     cmp AL, strict byte 007h                  ; 3c 07
-    jne short 023c8h                          ; 75 1b
-    jmp near 024d0h                           ; e9 20 01
+    jne short 023ebh                          ; 75 1b
+    jmp near 024f3h                           ; e9 20 01
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jbe short 023bfh                          ; 76 09
+    jbe short 023e2h                          ; 76 09
     dec byte [bp-00ch]                        ; fe 4e f4
-    jmp short 023bfh                          ; eb 04
+    jmp short 023e2h                          ; 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
+    jmp near 024f3h                           ; e9 0e 01
+    jmp near 025a7h                           ; e9 bf 01
+    jmp near 024f0h                           ; 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
+    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
+    jne short 0244ah                          ; 75 4e
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mul word [bp-01ah]                        ; f7 66 e6
@@ -4336,32 +4347,32 @@
     add cx, ax                                ; 01 c1
     mov bl, byte [bp-00eh]                    ; 8a 5e f2
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov dx, cx                                ; 89 ca
-    call 03173h                               ; e8 63 0d
+    call 03196h                               ; e8 63 0d
     cmp byte [bp-014h], 003h                  ; 80 7e ec 03
-    jne short 02470h                          ; 75 5a
+    jne short 02493h                          ; 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
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
+    call 03196h                               ; e8 4e 0d
+    jmp short 02493h                          ; eb 49
+    mov bl, byte [bx+046b4h]                  ; 8a 9f b4 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
+    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
+    mov ah, byte [si+04637h]                  ; 8a a4 37 46
+    mov cl, byte [si+04636h]                  ; 8a 8c 36 46
     cmp cl, 003h                              ; 80 f9 03
-    jc short 0244dh                           ; 72 0e
-    jbe short 02454h                          ; 76 13
+    jc short 02470h                           ; 72 0e
+    jbe short 02477h                          ; 76 13
     cmp cl, 005h                              ; 80 f9 05
-    je short 0249ah                           ; 74 54
+    je short 024bdh                           ; 74 54
     cmp cl, 004h                              ; 80 f9 04
-    je short 02454h                           ; 74 09
-    jmp short 024bdh                          ; eb 70
+    je short 02477h                           ; 74 09
+    jmp short 024e0h                          ; eb 70
     cmp cl, 002h                              ; 80 f9 02
-    je short 02472h                           ; 74 20
-    jmp short 024bdh                          ; eb 69
+    je short 02495h                           ; 74 20
+    jmp short 024e0h                          ; eb 69
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -4375,6 +4386,6 @@
     xor dh, dh                                ; 30 f6
     mov al, byte [bp-00eh]                    ; 8a 46 f2
-    call 01ba1h                               ; e8 31 f7
-    jmp short 024bdh                          ; eb 4b
+    call 01bc4h                               ; e8 31 f7
+    jmp short 024e0h                          ; eb 4b
     mov al, ah                                ; 88 e0
     xor ah, ah                                ; 30 e4
@@ -4393,6 +4404,6 @@
     mov dx, ax                                ; 89 c2
     mov ax, di                                ; 89 f8
-    call 01c9ch                               ; e8 04 f8
-    jmp short 024bdh                          ; eb 23
+    call 01cbfh                               ; e8 04 f8
+    jmp short 024e0h                          ; eb 23
     mov al, byte [bp-018h]                    ; 8a 46 e8
     xor ah, ah                                ; 30 e4
@@ -4409,10 +4420,10 @@
     mov bx, ax                                ; 89 c3
     mov ax, si                                ; 89 f0
-    call 01dd4h                               ; e8 17 f9
+    call 01df7h                               ; 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
+    jne short 024f3h                          ; 75 06
     mov byte [bp-00ch], bh                    ; 88 7e f4
     inc byte [bp-006h]                        ; fe 46 fa
@@ -4421,5 +4432,5 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     cmp bx, ax                                ; 39 c3
-    jne short 02547h                          ; 75 6b
+    jne short 0256ah                          ; 75 6b
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, ah                                ; 30 e7
@@ -4434,6 +4445,6 @@
     ; 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
+    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
+    jne short 0256ch                          ; 75 4c
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mul word [bp-01ah]                        ; f7 66 e6
@@ -4455,6 +4466,6 @@
     add dx, ax                                ; 01 c2
     inc dx                                    ; 42
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    call 03165h                               ; e8 36 0c
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
+    call 03188h                               ; e8 36 0c
     push strict byte 00001h                   ; 6a 01
     mov bl, byte [bp-016h]                    ; 8a 5e ea
@@ -4468,6 +4479,6 @@
     xor cx, cx                                ; 31 c9
     xor bl, al                                ; 30 c3
-    jmp short 0255eh                          ; eb 17
-    jmp short 02567h                          ; eb 1e
+    jmp short 02581h                          ; eb 17
+    jmp short 0258ah                          ; eb 1e
     push strict byte 00001h                   ; 6a 01
     mov bl, byte [bp-016h]                    ; 8a 5e ea
@@ -4482,5 +4493,5 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 01647h                               ; e8 e3 f0
+    call 0166ah                               ; e8 e3 f0
     dec byte [bp-006h]                        ; fe 4e fa
     mov bl, byte [bp-006h]                    ; 8a 5e fa
@@ -4493,5 +4504,5 @@
     mov bl, byte [bp-016h]                    ; 8a 5e ea
     mov ax, bx                                ; 89 d8
-    call 00e79h                               ; e8 f5 e8
+    call 00e79h                               ; e8 d2 e8
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4499,5 +4510,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_font_access_:                            ; 0xc258b LB 0x2c
+get_font_access_:                            ; 0xc25ae LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4523,5 +4534,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-release_font_access_:                        ; 0xc25b7 LB 0x3c
+release_font_access_:                        ; 0xc25da LB 0x3c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4555,5 +4566,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_scan_lines_:                             ; 0xc25f3 LB 0xc2
+set_scan_lines_:                             ; 0xc2616 LB 0xc2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4566,5 +4577,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 7b 0b
+    call 031a4h                               ; e8 7b 0b
     mov dx, ax                                ; 89 c2
     mov si, ax                                ; 89 c6
@@ -4583,8 +4594,8 @@
     out DX, AL                                ; ee
     cmp bl, 008h                              ; 80 fb 08
-    jne short 0262ah                          ; 75 08
+    jne short 0264dh                          ; 75 08
     mov dx, strict word 00007h                ; ba 07 00
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 02637h                          ; eb 0d
+    jmp short 0265ah                          ; eb 0d
     mov dl, bl                                ; 88 da
     sub dl, 003h                              ; 80 ea 03
@@ -4593,5 +4604,5 @@
     sub AL, strict byte 004h                  ; 2c 04
     xor ah, ah                                ; 30 e4
-    call 00dcbh                               ; e8 91 e7
+    call 00dcbh                               ; e8 6e e7
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
@@ -4599,5 +4610,5 @@
     mov dx, 00085h                            ; ba 85 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 46 0b
+    call 031b2h                               ; e8 46 0b
     mov AL, strict byte 012h                  ; b0 12
     mov dx, si                                ; 89 f2
@@ -4635,8 +4646,8 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 e6 0a
+    call 03196h                               ; e8 e6 0a
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 eb 0a
+    call 031a4h                               ; e8 eb 0a
     mov dx, ax                                ; 89 c2
     mov al, cl                                ; 88 c8
@@ -4647,5 +4658,5 @@
     mov dx, strict word 0004ch                ; ba 4c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 e4 0a
+    call 031b2h                               ; e8 e4 0a
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -4656,5 +4667,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_user_pat_:                  ; 0xc26b5 LB 0x80
+biosfn_load_text_user_pat_:                  ; 0xc26d8 LB 0x80
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4666,5 +4677,5 @@
     mov word [bp-00ah], bx                    ; 89 5e f6
     mov word [bp-00eh], cx                    ; 89 4e f2
-    call 0258bh                               ; e8 bf fe
+    call 025aeh                               ; e8 bf fe
     mov al, byte [bp+006h]                    ; 8a 46 06
     and AL, strict byte 003h                  ; 24 03
@@ -4679,5 +4690,5 @@
     xor bx, bx                                ; 31 db
     cmp bx, word [bp-00eh]                    ; 3b 5e f2
-    jnc short 0271bh                          ; 73 2f
+    jnc short 0273eh                          ; 73 2f
     mov cl, byte [bp+008h]                    ; 8a 4e 08
     xor ch, ch                                ; 30 ed
@@ -4695,5 +4706,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 02718h                               ; e3 06
+    jcxz 0273bh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4701,11 +4712,11 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 026e7h                          ; eb cc
-    call 025b7h                               ; e8 99 fe
+    jmp short 0270ah                          ; eb cc
+    call 025dah                               ; e8 99 fe
     cmp byte [bp-006h], 010h                  ; 80 7e fa 10
-    jc short 0272ch                           ; 72 08
+    jc short 0274fh                           ; 72 08
     mov al, byte [bp+008h]                    ; 8a 46 08
     xor ah, ah                                ; 30 e4
-    call 025f3h                               ; e8 c7 fe
+    call 02616h                               ; e8 c7 fe
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4713,5 +4724,5 @@
     pop bp                                    ; 5d
     retn 00006h                               ; c2 06 00
-biosfn_load_text_8_14_pat_:                  ; 0xc2735 LB 0x6e
+biosfn_load_text_8_14_pat_:                  ; 0xc2758 LB 0x6e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4723,5 +4734,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 0258bh                               ; e8 47 fe
+    call 025aeh                               ; e8 47 fe
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4735,12 +4746,12 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 02765h                          ; eb 06
+    jmp short 02788h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 0278bh                          ; 73 26
+    jnc short 027aeh                          ; 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
+    add si, 05bf2h                            ; 81 c6 f2 5b
     mov cx, strict word 0000eh                ; b9 0e 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4748,5 +4759,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 02788h                               ; e3 06
+    jcxz 027abh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4754,10 +4765,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 0275fh                          ; eb d4
-    call 025b7h                               ; e8 29 fe
+    jmp short 02782h                          ; eb d4
+    call 025dah                               ; e8 29 fe
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 0279ah                           ; 72 06
+    jc short 027bdh                           ; 72 06
     mov ax, strict word 0000eh                ; b8 0e 00
-    call 025f3h                               ; e8 59 fe
+    call 02616h                               ; e8 59 fe
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4767,5 +4778,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_8_8_pat_:                   ; 0xc27a3 LB 0x70
+biosfn_load_text_8_8_pat_:                   ; 0xc27c6 LB 0x70
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4777,5 +4788,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 0258bh                               ; e8 d9 fd
+    call 025aeh                               ; e8 d9 fd
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4789,7 +4800,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 027d3h                          ; eb 06
+    jmp short 027f6h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 027fbh                          ; 73 28
+    jnc short 0281eh                          ; 73 28
     mov si, bx                                ; 89 de
     sal si, 003h                              ; c1 e6 03
@@ -4797,5 +4808,5 @@
     sal di, 005h                              ; c1 e7 05
     add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 053edh                            ; 81 c6 ed 53
+    add si, 053f2h                            ; 81 c6 f2 53
     mov cx, strict word 00008h                ; b9 08 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4803,5 +4814,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 027f8h                               ; e3 06
+    jcxz 0281bh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4809,10 +4820,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 027cdh                          ; eb d2
-    call 025b7h                               ; e8 b9 fd
+    jmp short 027f0h                          ; eb d2
+    call 025dah                               ; e8 b9 fd
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 0280ah                           ; 72 06
+    jc short 0282dh                           ; 72 06
     mov ax, strict word 00008h                ; b8 08 00
-    call 025f3h                               ; e8 e9 fd
+    call 02616h                               ; e8 e9 fd
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4822,5 +4833,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_8_16_pat_:                  ; 0xc2813 LB 0x70
+biosfn_load_text_8_16_pat_:                  ; 0xc2836 LB 0x70
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4832,5 +4843,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 0258bh                               ; e8 69 fd
+    call 025aeh                               ; e8 69 fd
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4844,7 +4855,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 02843h                          ; eb 06
+    jmp short 02866h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 0286bh                          ; 73 28
+    jnc short 0288eh                          ; 73 28
     mov si, bx                                ; 89 de
     sal si, 004h                              ; c1 e6 04
@@ -4852,5 +4863,5 @@
     sal di, 005h                              ; c1 e7 05
     add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 069edh                            ; 81 c6 ed 69
+    add si, 069f2h                            ; 81 c6 f2 69
     mov cx, strict word 00010h                ; b9 10 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4858,5 +4869,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 02868h                               ; e3 06
+    jcxz 0288bh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4864,10 +4875,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 0283dh                          ; eb d2
-    call 025b7h                               ; e8 49 fd
+    jmp short 02860h                          ; eb d2
+    call 025dah                               ; e8 49 fd
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 0287ah                           ; 72 06
+    jc short 0289dh                           ; 72 06
     mov ax, strict word 00010h                ; b8 10 00
-    call 025f3h                               ; e8 79 fd
+    call 02616h                               ; e8 79 fd
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4877,45 +4888,45 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_8_8_chars_:                  ; 0xc2883 LB 0x5
+biosfn_load_gfx_8_8_chars_:                  ; 0xc28a6 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_user_chars_:                 ; 0xc2888 LB 0x7
+biosfn_load_gfx_user_chars_:                 ; 0xc28ab 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
+biosfn_load_gfx_8_14_chars_:                 ; 0xc28b2 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
+biosfn_load_gfx_8_8_dd_chars_:               ; 0xc28b7 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_8_16_chars_:                 ; 0xc2899 LB 0x5
+biosfn_load_gfx_8_16_chars_:                 ; 0xc28bc LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_alternate_prtsc_:                     ; 0xc289e LB 0x5
+biosfn_alternate_prtsc_:                     ; 0xc28c1 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_switch_video_interface_:              ; 0xc28a3 LB 0x5
+biosfn_switch_video_interface_:              ; 0xc28c6 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_enable_video_refresh_control_:        ; 0xc28a8 LB 0x5
+biosfn_enable_video_refresh_control_:        ; 0xc28cb LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_string_:                        ; 0xc28ad LB 0xa2
+biosfn_write_string_:                        ; 0xc28d0 LB 0xa2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4932,7 +4943,7 @@
     lea bx, [bp-00eh]                         ; 8d 5e f2
     lea dx, [bp-00ch]                         ; 8d 56 f4
-    call 00a8bh                               ; e8 bb e1
+    call 00a8bh                               ; e8 98 e1
     cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
-    jne short 028e7h                          ; 75 11
+    jne short 0290ah                          ; 75 11
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp+006h], al                    ; 88 46 06
@@ -4948,19 +4959,19 @@
     add dx, ax                                ; 01 c2
     mov al, byte [bp-00ah]                    ; 8a 46 f6
-    call 00e79h                               ; e8 7d e5
+    call 00e79h                               ; e8 5a e5
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 02935h                           ; 74 33
+    je short 02958h                           ; 74 33
     mov dx, di                                ; 89 fa
     inc di                                    ; 47
     mov ax, word [bp+008h]                    ; 8b 46 08
-    call 03165h                               ; e8 5a 08
+    call 03188h                               ; e8 5a 08
     mov cl, al                                ; 88 c1
     test byte [bp-006h], 002h                 ; f6 46 fa 02
-    je short 0291fh                           ; 74 0c
+    je short 02942h                           ; 74 0c
     mov dx, di                                ; 89 fa
     inc di                                    ; 47
     mov ax, word [bp+008h]                    ; 8b 46 08
-    call 03165h                               ; e8 49 08
+    call 03188h                               ; e8 49 08
     mov byte [bp-008h], al                    ; 88 46 f8
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -4971,12 +4982,12 @@
     mov al, cl                                ; 88 c8
     mov cx, strict word 00003h                ; b9 03 00
-    call 0231ch                               ; e8 e9 f9
-    jmp short 028fch                          ; eb c7
+    call 0233fh                               ; e8 e9 f9
+    jmp short 0291fh                          ; eb c7
     test byte [bp-006h], 001h                 ; f6 46 fa 01
-    jne short 02946h                          ; 75 0b
+    jne short 02969h                          ; 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
+    call 00e79h                               ; e8 10 e5
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4984,5 +4995,5 @@
     pop bp                                    ; 5d
     retn 00008h                               ; c2 08 00
-biosfn_read_state_info_:                     ; 0xc294f LB 0x102
+biosfn_read_state_info_:                     ; 0xc2972 LB 0x102
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4993,8 +5004,8 @@
     push bx                                   ; 53
     mov cx, ds                                ; 8c d9
-    mov bx, 05383h                            ; bb 83 53
+    mov bx, 05388h                            ; bb 88 53
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 031afh                               ; e8 4a 08
+    call 031d2h                               ; e8 4a 08
     mov di, word [bp-00ah]                    ; 8b 7e f6
     add di, strict byte 00004h                ; 83 c7 04
@@ -5004,5 +5015,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 02980h                               ; e3 06
+    jcxz 029a3h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -5016,5 +5027,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 0299bh                               ; e3 06
+    jcxz 029beh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -5023,5 +5034,5 @@
     mov dx, 0008ah                            ; ba 8a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 c1 07
+    call 03188h                               ; e8 c1 07
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -5029,50 +5040,50 @@
     add dx, strict byte 00025h                ; 83 c2 25
     mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 03173h                               ; e8 bf 07
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; e8 3d 07
     mov di, word [bp-00ah]                    ; 8b 7e f6
     add di, strict byte 00033h                ; 83 c7 33
@@ -5081,5 +5092,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 02a49h                               ; e3 02
+    jcxz 02a6ch                               ; e3 02
     rep stosb                                 ; f3 aa
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -5089,5 +5100,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_read_video_state_size2_:              ; 0xc2a51 LB 0x23
+biosfn_read_video_state_size2_:              ; 0xc2a74 LB 0x23
     push dx                                   ; 52
     push bp                                   ; 55
@@ -5096,21 +5107,21 @@
     xor ax, ax                                ; 31 c0
     test dl, 001h                             ; f6 c2 01
-    je short 02a61h                           ; 74 03
+    je short 02a84h                           ; 74 03
     mov ax, strict word 00046h                ; b8 46 00
     test dl, 002h                             ; f6 c2 02
-    je short 02a69h                           ; 74 03
+    je short 02a8ch                           ; 74 03
     add ax, strict word 0002ah                ; 05 2a 00
     test dl, 004h                             ; f6 c2 04
-    je short 02a71h                           ; 74 03
+    je short 02a94h                           ; 74 03
     add ax, 00304h                            ; 05 04 03
     pop bp                                    ; 5d
     pop dx                                    ; 5a
     retn                                      ; c3
-vga_get_video_state_size_:                   ; 0xc2a74 LB 0x12
+vga_get_video_state_size_:                   ; 0xc2a97 LB 0x12
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push bx                                   ; 53
     mov bx, dx                                ; 89 d3
-    call 02a51h                               ; e8 d4 ff
+    call 02a74h                               ; e8 d4 ff
     mov word [ss:bx], ax                      ; 36 89 07
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -5118,5 +5129,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_save_video_state_:                    ; 0xc2a86 LB 0x381
+biosfn_save_video_state_:                    ; 0xc2aa9 LB 0x381
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5131,8 +5142,8 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 e5 06
+    call 031a4h                               ; e8 e5 06
     mov di, ax                                ; 89 c7
     test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je short 02b12h                           ; 74 6e
+    je short 02b35h                           ; 74 6e
     mov dx, 003c4h                            ; ba c4 03
     in AL, DX                                 ; ec
@@ -5143,5 +5154,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 be 06
+    call 03196h                               ; e8 be 06
     inc cx                                    ; 41
     mov dx, di                                ; 89 fa
@@ -5153,5 +5164,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 ad 06
+    call 03196h                               ; e8 ad 06
     inc cx                                    ; 41
     mov dx, 003ceh                            ; ba ce 03
@@ -5163,5 +5174,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 9b 06
+    call 03196h                               ; e8 9b 06
     inc cx                                    ; 41
     mov dx, 003dah                            ; ba da 03
@@ -5179,5 +5190,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 7d 06
+    call 03196h                               ; e8 7d 06
     inc cx                                    ; 41
     mov dx, 003cah                            ; ba ca 03
@@ -5189,12 +5200,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 6b 06
+    call 03196h                               ; 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
+    jmp short 02b3eh                          ; eb 09
+    jmp near 02c39h                           ; e9 01 01
     cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
-    jnbe short 02b39h                         ; 77 1e
+    jnbe short 02b5ch                         ; 77 1e
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003c4h                            ; ba c4 03
@@ -5208,8 +5219,8 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 40 06
+    call 03196h                               ; e8 40 06
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02b15h                          ; eb dc
+    jmp short 02b38h                          ; eb dc
     xor al, al                                ; 30 c0
     mov dx, 003c4h                            ; ba c4 03
@@ -5223,10 +5234,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 23 06
+    call 03196h                               ; e8 23 06
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     inc cx                                    ; 41
-    jmp short 02b5eh                          ; eb 06
+    jmp short 02b81h                          ; eb 06
     cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
-    jnbe short 02b7bh                         ; 77 1d
+    jnbe short 02b9eh                         ; 77 1d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, di                                ; 89 fa
@@ -5240,12 +5251,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 fe 05
+    call 03196h                               ; e8 fe 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02b58h                          ; eb dd
+    jmp short 02b7bh                          ; eb dd
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02b88h                          ; eb 06
+    jmp short 02babh                          ; eb 06
     cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
-    jnbe short 02bb2h                         ; 77 2a
+    jnbe short 02bd5h                         ; 77 2a
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5265,8 +5276,8 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 c7 05
+    call 03196h                               ; e8 c7 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02b82h                          ; eb d0
+    jmp short 02ba5h                          ; eb d0
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5274,7 +5285,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02bc5h                          ; eb 06
+    jmp short 02be8h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnbe short 02be3h                         ; 77 1e
+    jnbe short 02c06h                         ; 77 1e
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003ceh                            ; ba ce 03
@@ -5288,12 +5299,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 96 05
+    call 03196h                               ; e8 96 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02bbfh                          ; eb dc
+    jmp short 02be2h                          ; eb dc
     mov bx, di                                ; 89 fb
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 a3 05
+    call 031b2h                               ; e8 a3 05
     inc cx                                    ; 41
     inc cx                                    ; 41
@@ -5301,187 +5312,187 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 7c 05
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    call 03196h                               ; 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
+    jne short 02c42h                          ; 75 03
+    jmp near 02dafh                           ; e9 6d 01
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03165h                               ; e8 3d 05
+    call 03188h                               ; 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
+    call 03196h                               ; 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
+    call 031a4h                               ; e8 44 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 49 05
+    call 031b2h                               ; 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
+    call 031a4h                               ; e8 30 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 35 05
+    call 031b2h                               ; 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
+    call 031a4h                               ; e8 1c 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 21 05
+    call 031b2h                               ; 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
+    call 03188h                               ; 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
+    call 03196h                               ; 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
+    call 031a4h                               ; e8 f3 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 f8 04
+    call 031b2h                               ; 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
+    call 03188h                               ; 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
+    call 03196h                               ; 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
+    call 03188h                               ; 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
+    call 03196h                               ; 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
+    call 03188h                               ; 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
+    call 03196h                               ; 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
+    call 031a4h                               ; e8 a0 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 a5 04
+    call 031b2h                               ; 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
+    jmp short 02d1ch                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnc short 02d17h                          ; 73 1e
+    jnc short 02d3ah                          ; 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
+    call 031a4h                               ; e8 7a 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 7f 04
+    call 031b2h                               ; e8 7f 04
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02cf3h                          ; eb dc
+    jmp short 02d16h                          ; eb dc
     mov dx, strict word 0004eh                ; ba 4e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03181h                               ; e8 61 04
+    call 031a4h                               ; e8 61 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 66 04
+    call 031b2h                               ; 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
+    call 03188h                               ; 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
+    call 03196h                               ; e8 34 04
     inc cx                                    ; 41
     mov dx, strict word 0007ch                ; ba 7c 00
     xor ax, ax                                ; 31 c0
-    call 03181h                               ; e8 39 04
+    call 031a4h                               ; e8 39 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 3e 04
+    call 031b2h                               ; 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
+    call 031a4h                               ; e8 26 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 2b 04
+    call 031b2h                               ; 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
+    call 031a4h                               ; e8 13 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 18 04
+    call 031b2h                               ; 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
+    call 031a4h                               ; e8 00 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0318fh                               ; e8 05 04
+    call 031b2h                               ; e8 05 04
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00ch], 004h                 ; f6 46 f4 04
-    je short 02dfdh                           ; 74 6b
+    je short 02e20h                           ; 74 6b
     mov dx, 003c7h                            ; ba c7 03
     in AL, DX                                 ; ec
@@ -5492,5 +5503,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 d0 03
+    call 03196h                               ; e8 d0 03
     inc cx                                    ; 41
     mov dx, 003c8h                            ; ba c8 03
@@ -5502,5 +5513,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 be 03
+    call 03196h                               ; e8 be 03
     inc cx                                    ; 41
     mov dx, 003c6h                            ; ba c6 03
@@ -5512,5 +5523,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 ac 03
+    call 03196h                               ; e8 ac 03
     inc cx                                    ; 41
     xor al, al                                ; 30 c0
@@ -5519,7 +5530,7 @@
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
-    jmp short 02ddch                          ; eb 07
+    jmp short 02dffh                          ; eb 07
     cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
-    jnc short 02df3h                          ; 73 17
+    jnc short 02e16h                          ; 73 17
     mov dx, 003c9h                            ; ba c9 03
     in AL, DX                                 ; ec
@@ -5530,12 +5541,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 86 03
+    call 03196h                               ; e8 86 03
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02dd5h                          ; eb e2
+    jmp short 02df8h                          ; eb e2
     xor bx, bx                                ; 31 db
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 77 03
+    call 03196h                               ; e8 77 03
     inc cx                                    ; 41
     mov ax, cx                                ; 89 c8
@@ -5546,5 +5557,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_restore_video_state_:                 ; 0xc2e07 LB 0x336
+biosfn_restore_video_state_:                 ; 0xc2e2a LB 0x336
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5557,5 +5568,5 @@
     mov cx, bx                                ; 89 d9
     test byte [bp-00eh], 001h                 ; f6 46 f2 01
-    je short 02e72h                           ; 74 57
+    je short 02e95h                           ; 74 57
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5564,11 +5575,11 @@
     lea dx, [bx+040h]                         ; 8d 57 40
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 58 03
+    call 031a4h                               ; 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
+    jmp short 02e5eh                          ; eb 06
     cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
-    jnbe short 02e53h                         ; 77 18
+    jnbe short 02e76h                         ; 77 18
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003c4h                            ; ba c4 03
@@ -5576,10 +5587,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 1c 03
+    call 03188h                               ; 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
+    jmp short 02e58h                          ; eb e2
     xor al, al                                ; 30 c0
     mov dx, 003c4h                            ; ba c4 03
@@ -5587,5 +5598,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 05 03
+    call 03188h                               ; e8 05 03
     mov dx, 003c5h                            ; ba c5 03
     out DX, AL                                ; ee
@@ -5595,10 +5606,10 @@
     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
+    jmp short 02e9eh                          ; eb 09
+    jmp near 02f8bh                           ; e9 f3 00
     cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
-    jnbe short 02e98h                         ; 77 1d
+    jnbe short 02ebbh                         ; 77 1d
     cmp word [bp-00ah], strict byte 00011h    ; 83 7e f6 11
-    je short 02e92h                           ; 74 11
+    je short 02eb5h                           ; 74 11
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, di                                ; 89 fa
@@ -5606,10 +5617,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 d7 02
+    call 03188h                               ; 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
+    jmp short 02e98h                          ; eb dd
     mov dx, 003cch                            ; ba cc 03
     in AL, DX                                 ; ec
@@ -5619,5 +5630,5 @@
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp di, 003d4h                            ; 81 ff d4 03
-    jne short 02eadh                          ; 75 04
+    jne short 02ed0h                          ; 75 04
     or byte [bp-008h], 001h                   ; 80 4e f8 01
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -5630,10 +5641,10 @@
     add dx, strict byte 0fff9h                ; 83 c2 f9
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 a2 02
+    call 03188h                               ; 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
+    call 03188h                               ; e8 96 02
     xor ah, ah                                ; 30 e4
     mov word [bp-00ch], ax                    ; 89 46 f4
@@ -5643,7 +5654,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02ee7h                          ; eb 06
+    jmp short 02f0ah                          ; eb 06
     cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
-    jnbe short 02f05h                         ; 77 1e
+    jnbe short 02f28h                         ; 77 1e
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     and ax, strict word 00020h                ; 25 20 00
@@ -5653,10 +5664,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 6a 02
+    call 03188h                               ; 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
+    jmp short 02f04h                          ; eb dc
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     mov dx, 003c0h                            ; ba c0 03
@@ -5667,7 +5678,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02f1fh                          ; eb 06
+    jmp short 02f42h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnbe short 02f37h                         ; 77 18
+    jnbe short 02f5ah                         ; 77 18
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003ceh                            ; ba ce 03
@@ -5675,14 +5686,14 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 38 02
+    call 03188h                               ; 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
+    jmp short 02f3ch                          ; 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
+    call 03188h                               ; e8 24 02
     mov dx, 003c4h                            ; ba c4 03
     out DX, AL                                ; ee
@@ -5690,5 +5701,5 @@
     mov dx, bx                                ; 89 da
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 18 02
+    call 03188h                               ; e8 18 02
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -5696,72 +5707,72 @@
     mov dx, bx                                ; 89 da
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 0d 02
+    call 03188h                               ; 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
+    call 03188h                               ; 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
+    jne short 02f94h                          ; 75 03
+    jmp near 03109h                           ; e9 75 01
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 ed 01
+    call 03188h                               ; 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
+    call 03196h                               ; e8 ee 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 f4 01
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 f7 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 e0 01
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 e3 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 cc 01
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 cf 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 9c 01
+    call 03188h                               ; 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
+    call 03196h                               ; e8 9d 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 a3 01
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 a6 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 73 01
+    call 03188h                               ; e8 73 01
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5769,9 +5780,9 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 72 01
+    call 03196h                               ; e8 72 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 5c 01
+    call 03188h                               ; e8 5c 01
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5779,9 +5790,9 @@
     mov dx, 00088h                            ; ba 88 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 5b 01
+    call 03196h                               ; e8 5b 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 45 01
+    call 03188h                               ; e8 45 01
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5789,22 +5800,22 @@
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 44 01
+    call 03196h                               ; e8 44 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 4a 01
+    call 031a4h                               ; 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
+    call 031b2h                               ; 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
+    jmp short 03074h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnc short 0306fh                          ; 73 1e
+    jnc short 03092h                          ; 73 1e
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 29 01
+    call 031a4h                               ; e8 29 01
     mov bx, ax                                ; 89 c3
     mov dx, word [bp-00ah]                    ; 8b 56 f6
@@ -5812,21 +5823,21 @@
     add dx, strict byte 00050h                ; 83 c2 50
     mov ax, strict word 00040h                ; b8 40 00
-    call 0318fh                               ; e8 27 01
+    call 031b2h                               ; e8 27 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 0304bh                          ; eb dc
+    jmp short 0306eh                          ; eb dc
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 0b 01
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 0e 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 db 00
+    call 03188h                               ; e8 db 00
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5834,48 +5845,48 @@
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 da 00
+    call 03196h                               ; e8 da 00
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 e0 00
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 e4 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 cd 00
+    call 031a4h                               ; 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
+    call 031b2h                               ; e8 d1 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 ba 00
+    call 031a4h                               ; e8 ba 00
     mov bx, ax                                ; 89 c3
     mov dx, 0010ch                            ; ba 0c 01
     xor ax, ax                                ; 31 c0
-    call 0318fh                               ; e8 be 00
+    call 031b2h                               ; e8 be 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03181h                               ; e8 a7 00
+    call 031a4h                               ; e8 a7 00
     mov bx, ax                                ; 89 c3
     mov dx, 0010eh                            ; ba 0e 01
     xor ax, ax                                ; 31 c0
-    call 0318fh                               ; e8 ab 00
+    call 031b2h                               ; e8 ab 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00eh], 004h                 ; f6 46 f2 04
-    je short 03133h                           ; 74 47
+    je short 03156h                           ; 74 47
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 71 00
+    call 03188h                               ; e8 71 00
     xor ah, ah                                ; 30 e4
     mov word [bp-008h], ax                    ; 89 46 f8
@@ -5883,5 +5894,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 64 00
+    call 03188h                               ; e8 64 00
     mov dx, 003c6h                            ; ba c6 03
     out DX, AL                                ; ee
@@ -5892,15 +5903,15 @@
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
-    jmp short 0311ah                          ; eb 07
+    jmp short 0313dh                          ; eb 07
     cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
-    jnc short 0312bh                          ; 73 11
+    jnc short 0314eh                          ; 73 11
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 44 00
+    call 03188h                               ; 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
+    jmp short 03136h                          ; eb e8
     inc cx                                    ; 41
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -5914,5 +5925,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-find_vga_entry_:                             ; 0xc313d LB 0x28
+find_vga_entry_:                             ; 0xc3160 LB 0x28
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5922,14 +5933,14 @@
     mov AH, strict byte 0ffh                  ; b4 ff
     xor al, al                                ; 30 c0
-    jmp short 03150h                          ; eb 06
+    jmp short 03173h                          ; eb 06
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     cmp AL, strict byte 00fh                  ; 3c 0f
-    jnbe short 0315fh                         ; 77 0f
+    jnbe short 03182h                         ; 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
+    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
+    jne short 0316dh                          ; 75 ed
     mov ah, al                                ; 88 c4
     mov al, ah                                ; 88 e0
@@ -5938,5 +5949,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-read_byte_:                                  ; 0xc3165 LB 0xe
+read_byte_:                                  ; 0xc3188 LB 0xe
     push bx                                   ; 53
     push bp                                   ; 55
@@ -5948,5 +5959,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_byte_:                                 ; 0xc3173 LB 0xe
+write_byte_:                                 ; 0xc3196 LB 0xe
     push si                                   ; 56
     push bp                                   ; 55
@@ -5958,5 +5969,5 @@
     pop si                                    ; 5e
     retn                                      ; c3
-read_word_:                                  ; 0xc3181 LB 0xe
+read_word_:                                  ; 0xc31a4 LB 0xe
     push bx                                   ; 53
     push bp                                   ; 55
@@ -5968,5 +5979,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_word_:                                 ; 0xc318f LB 0xe
+write_word_:                                 ; 0xc31b2 LB 0xe
     push si                                   ; 56
     push bp                                   ; 55
@@ -5978,5 +5989,5 @@
     pop si                                    ; 5e
     retn                                      ; c3
-read_dword_:                                 ; 0xc319d LB 0x12
+read_dword_:                                 ; 0xc31c0 LB 0x12
     push bx                                   ; 53
     push bp                                   ; 55
@@ -5989,5 +6000,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_dword_:                                ; 0xc31af LB 0x96
+write_dword_:                                ; 0xc31d2 LB 0x96
     push si                                   ; 56
     push bp                                   ; 55
@@ -6011,27 +6022,28 @@
     add ax, 00304h                            ; 05 04 03
     add al, byte [bx+di]                      ; 02 01
-    add dh, cl                                ; 00 ce
-    xor ax, 03276h                            ; 35 76 32
-    mov BL, strict byte 032h                  ; b3 32
-    db  0c6h, 032h, 0d6h
-    ; mov byte [bp+si], 0d6h                    ; c6 32 d6
+    add cl, dh                                ; 00 f1
+    xor ax, 03299h                            ; 35 99 32
+    db  0d6h
     db  032h, 0e9h
     ; xor ch, cl                                ; 32 e9
     db  032h, 0f9h
     ; xor bh, cl                                ; 32 f9
-    xor al, byte [bx+si]                      ; 32 00
-    xor di, word [bx+si]                      ; 33 38
-    xor di, word [si]                         ; 33 3c
-    xor cx, word [di+033h]                    ; 33 4d 33
-    push 08333h                               ; 68 33 83
-    xor bx, word [bp+di-047cdh]               ; 33 9b 33 b8
-    db  033h, 0cch
-    ; xor cx, sp                                ; 33 cc
-    db  033h, 0d8h
-    ; xor bx, ax                                ; 33 d8
-    xor cx, word [bx-03bcch]                  ; 33 8f 34 c4
-    xor AL, strict byte 0f5h                  ; 34 f5
-    xor AL, strict byte 00ah                  ; 34 0a
-    xor ax, 03547h                            ; 35 47 35
+    xor cl, byte [si]                         ; 32 0c
+    xor bx, word [si]                         ; 33 1c
+    xor sp, word [bp+di]                      ; 33 23
+    xor bx, word [bp+di+033h]                 ; 33 5b 33
+    pop di                                    ; 5f
+    xor si, word [bx+si+033h]                 ; 33 70 33
+    mov si, word [bp+di]                      ; 8b 33
+    cmpsb                                     ; a6
+    xor di, word [bp-024cdh]                  ; 33 be 33 db
+    db  033h, 0efh
+    ; xor bp, di                                ; 33 ef
+    db  033h, 0fbh
+    ; xor di, bx                                ; 33 fb
+    xor si, word [bp+si-018cch]               ; 33 b2 34 e7
+    xor AL, strict byte 018h                  ; 34 18
+    xor ax, 0352dh                            ; 35 2d 35
+    push strict byte 00035h                   ; 6a 35
     xor byte [si], ah                         ; 30 24
     and sp, word [bp+si]                      ; 23 22
@@ -6041,27 +6053,32 @@
     add AL, strict byte 002h                  ; 04 02
     add word [bx+si], ax                      ; 01 00
-    into                                      ; ce
-    xor ax, 033f5h                            ; 35 f5 33
-    push SS                                   ; 16
-    xor AL, strict byte 025h                  ; 34 25
-    xor AL, strict byte 034h                  ; 34 34
-    xor AL, strict byte 0f5h                  ; 34 f5
-    xor dx, word [02534h]                     ; 33 16 34 25
-    xor AL, strict byte 034h                  ; 34 34
-    xor AL, strict byte 043h                  ; 34 43
-    xor AL, strict byte 04fh                  ; 34 4f
-    xor AL, strict byte 068h                  ; 34 68
-    xor AL, strict byte 06dh                  ; 34 6d
+    db  0f1h
+    xor ax, 03418h                            ; 35 18 34
+    cmp word [si], si                         ; 39 34
+    dec ax                                    ; 48
+    xor AL, strict byte 057h                  ; 34 57
+    xor AL, strict byte 018h                  ; 34 18
+    xor AL, strict byte 039h                  ; 34 39
+    xor AL, strict byte 048h                  ; 34 48
+    xor AL, strict byte 057h                  ; 34 57
+    xor AL, strict byte 066h                  ; 34 66
     xor AL, strict byte 072h                  ; 34 72
-    xor AL, strict byte 077h                  ; 34 77
+    xor AL, strict byte 08bh                  ; 34 8b
+    xor AL, strict byte 090h                  ; 34 90
+    xor AL, strict byte 095h                  ; 34 95
+    xor AL, strict byte 09ah                  ; 34 9a
     xor AL, strict byte 00ah                  ; 34 0a
     or word [00204h], ax                      ; 09 06 04 02
     add word [bx+si], ax                      ; 01 00
-    retn 06d35h                               ; c2 35 6d
-    xor ax, 0357ah                            ; 35 7a 35
-    mov dh, byte [di]                         ; 8a 35
-    call far 0c235h:0af35h                    ; 9a 35 af 35 c2
-    xor ax, 035c2h                            ; 35 c2 35
-_int10_func:                                 ; 0xc3245 LB 0x390
+    in ax, 035h                               ; e5 35
+    nop                                       ; 90
+    xor ax, 0359dh                            ; 35 9d 35
+    lodsw                                     ; ad
+    xor ax, 035bdh                            ; 35 bd 35
+    db  0d2h, 035h
+    ; sal byte [di], CL                         ; d2 35
+    in ax, 035h                               ; e5 35
+    in ax, 035h                               ; e5 35
+_int10_func:                                 ; 0xc3268 LB 0x390
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6073,13 +6090,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    jnbe short 032c3h                         ; 77 6a
+    jnbe short 032e6h                         ; 77 6a
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00016h                ; b9 16 00
-    mov di, 031c1h                            ; bf c1 31
+    mov di, 031e4h                            ; bf e4 31
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov bx, word [cs:di+031d6h]               ; 2e 8b 9d d6 31
+    mov bx, word [cs:di+031f9h]               ; 2e 8b 9d f9 31
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -6088,27 +6105,27 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 0101ch                               ; e8 9e dd
+    call 0101ch                               ; e8 7b 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 0329eh                           ; 74 15
+    je short 032c1h                           ; 74 15
     cmp ax, strict word 00006h                ; 3d 06 00
-    je short 03295h                           ; 74 07
+    je short 032b8h                           ; 74 07
     cmp ax, strict word 00005h                ; 3d 05 00
-    jbe short 0329eh                          ; 76 0b
-    jmp short 032a7h                          ; eb 12
+    jbe short 032c1h                          ; 76 0b
+    jmp short 032cah                          ; eb 12
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 03fh                   ; 0c 3f
-    jmp short 032aeh                          ; eb 10
+    jmp short 032d1h                          ; eb 10
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp short 032aeh                          ; eb 07
+    jmp short 032d1h                          ; 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 032c3h                          ; eb 10
+    jmp short 032e6h                          ; eb 10
     mov al, byte [bp+010h]                    ; 8a 46 10
     mov dx, ax                                ; 89 c2
@@ -6116,12 +6133,12 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 00dcbh                               ; e8 08 db
-    jmp near 035ceh                           ; e9 08 03
+    call 00dcbh                               ; e8 e5 da
+    jmp near 035f1h                           ; e9 08 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 a5 db
-    jmp short 032c3h                          ; eb ed
+    call 00e79h                               ; e8 82 db
+    jmp short 032e6h                          ; eb ed
     lea bx, [bp+00eh]                         ; 8d 5e 0e
     lea dx, [bp+010h]                         ; 8d 56 10
@@ -6129,6 +6146,6 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 00a8bh                               ; e8 a4 d7
-    jmp short 032c3h                          ; eb da
+    call 00a8bh                               ; e8 81 d7
+    jmp short 032e6h                          ; eb da
     xor al, al                                ; 30 c0
     mov word [bp+012h], ax                    ; 89 46 12
@@ -6136,8 +6153,8 @@
     mov word [bp+010h], ax                    ; 89 46 10
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 032c3h                          ; eb ca
+    jmp short 032e6h                          ; eb ca
     mov al, dl                                ; 88 d0
-    call 00f2eh                               ; e8 30 dc
-    jmp short 032c3h                          ; eb c3
+    call 00f2eh                               ; e8 0d dc
+    jmp short 032e6h                          ; eb c3
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -6162,14 +6179,14 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 01647h                               ; e8 11 e3
-    jmp short 032c3h                          ; eb 8b
+    call 0166ah                               ; e8 11 e3
+    jmp short 032e6h                          ; eb 8b
     xor al, al                                ; 30 c0
-    jmp short 03303h                          ; eb c7
+    jmp short 03326h                          ; 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 87 d7
-    jmp near 035ceh                           ; e9 81 02
+    call 00ad1h                               ; e8 64 d7
+    jmp near 035f1h                           ; e9 81 02
     mov cx, word [bp+010h]                    ; 8b 4e 10
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -6180,6 +6197,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 01e7eh                               ; e8 19 eb
-    jmp near 035ceh                           ; e9 66 02
+    call 01ea1h                               ; e8 19 eb
+    jmp near 035f1h                           ; e9 66 02
     mov cx, word [bp+010h]                    ; 8b 4e 10
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -6190,6 +6207,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 0200bh                               ; e8 8b ec
-    jmp near 035ceh                           ; e9 4b 02
+    call 0202eh                               ; e8 8b ec
+    jmp near 035f1h                           ; e9 4b 02
     mov cx, word [bp+00eh]                    ; 8b 4e 0e
     mov bx, word [bp+010h]                    ; 8b 5e 10
@@ -6199,6 +6216,6 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 021a1h                               ; e8 09 ee
-    jmp near 035ceh                           ; e9 33 02
+    call 021c4h                               ; e8 09 ee
+    jmp near 035f1h                           ; e9 33 02
     lea cx, [bp+012h]                         ; 8d 4e 12
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
@@ -6209,6 +6226,6 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 00bfch                               ; e8 47 d8
-    jmp near 035ceh                           ; e9 16 02
+    call 00bfch                               ; e8 24 d8
+    jmp near 035f1h                           ; e9 16 02
     mov cx, strict word 00002h                ; b9 02 00
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -6216,20 +6233,20 @@
     mov dx, 000ffh                            ; ba ff 00
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 0231ch                               ; e8 53 ef
-    jmp near 035ceh                           ; e9 02 02
+    call 0233fh                               ; e8 53 ef
+    jmp near 035f1h                           ; e9 02 02
     mov dx, word [bp+010h]                    ; 8b 56 10
     mov ax, word [bp+00ch]                    ; 8b 46 0c
-    call 00d3eh                               ; e8 69 d9
-    jmp near 035ceh                           ; e9 f6 01
+    call 00d3eh                               ; e8 46 d9
+    jmp near 035f1h                           ; e9 f6 01
     cmp ax, strict word 00030h                ; 3d 30 00
-    jnbe short 0344ch                         ; 77 6f
+    jnbe short 0346fh                         ; 77 6f
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000fh                ; b9 0f 00
-    mov di, 03202h                            ; bf 02 32
+    mov di, 03225h                            ; bf 25 32
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov dx, word [cs:di+03210h]               ; 2e 8b 95 10 32
+    mov dx, word [cs:di+03233h]               ; 2e 8b 95 33 32
     mov al, byte [bp+00ch]                    ; 8a 46 0c
     jmp dx                                    ; ff e2
@@ -6245,28 +6262,28 @@
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov dx, word [bp+016h]                    ; 8b 56 16
-    call 026b5h                               ; e8 a1 f2
-    jmp short 0344ch                          ; eb 36
+    call 026d8h                               ; e8 a1 f2
+    jmp short 0346fh                          ; 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 12 f3
-    jmp short 0344ch                          ; eb 27
+    call 02758h                               ; e8 12 f3
+    jmp short 0346fh                          ; 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 71 f3
-    jmp short 0344ch                          ; eb 18
+    call 027c6h                               ; e8 71 f3
+    jmp short 0346fh                          ; 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 d2 f3
-    jmp short 0344ch                          ; eb 09
+    call 02836h                               ; e8 d2 f3
+    jmp short 0346fh                          ; eb 09
     mov dx, word [bp+008h]                    ; 8b 56 08
     mov ax, word [bp+016h]                    ; 8b 46 16
-    call 02883h                               ; e8 37 f4
-    jmp near 035ceh                           ; e9 7f 01
+    call 028a6h                               ; e8 37 f4
+    jmp near 035f1h                           ; e9 7f 01
     mov al, byte [bp+00eh]                    ; 8a 46 0e
     push ax                                   ; 50
@@ -6277,12 +6294,12 @@
     mov cx, ax                                ; 89 c1
     mov ax, si                                ; 89 f0
-    call 02888h                               ; e8 22 f4
-    jmp short 0344ch                          ; eb e4
-    call 0288fh                               ; e8 24 f4
-    jmp short 0344ch                          ; eb df
-    call 02894h                               ; e8 24 f4
-    jmp short 0344ch                          ; eb da
-    call 02899h                               ; e8 24 f4
-    jmp short 0344ch                          ; eb d5
+    call 028abh                               ; e8 22 f4
+    jmp short 0346fh                          ; eb e4
+    call 028b2h                               ; e8 24 f4
+    jmp short 0346fh                          ; eb df
+    call 028b7h                               ; e8 24 f4
+    jmp short 0346fh                          ; eb da
+    call 028bch                               ; e8 24 f4
+    jmp short 0346fh                          ; eb d5
     lea ax, [bp+00eh]                         ; 8d 46 0e
     push ax                                   ; 50
@@ -6292,27 +6309,27 @@
     lea bx, [bp+008h]                         ; 8d 5e 08
     lea dx, [bp+016h]                         ; 8d 56 16
-    call 00b81h                               ; e8 f4 d6
-    jmp short 0344ch                          ; eb bd
+    call 00b81h                               ; e8 d1 d6
+    jmp short 0346fh                          ; eb bd
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00036h                ; 3d 36 00
-    je short 034bdh                           ; 74 24
+    je short 034e0h                           ; 74 24
     cmp ax, strict word 00035h                ; 3d 35 00
-    je short 034a8h                           ; 74 0a
+    je short 034cbh                           ; 74 0a
     cmp ax, strict word 00020h                ; 3d 20 00
-    jne short 034f2h                          ; 75 4f
-    call 0289eh                               ; e8 f8 f3
-    jmp short 034f2h                          ; eb 4a
+    jne short 03515h                          ; 75 4f
+    call 028c1h                               ; e8 f8 f3
+    jmp short 03515h                          ; eb 4a
     mov al, dl                                ; 88 d0
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, word [bp+016h]                    ; 8b 56 16
-    call 028a3h                               ; e8 f0 f3
+    call 028c6h                               ; e8 f0 f3
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 012h                   ; 0c 12
-    jmp near 032aeh                           ; e9 f1 fd
+    jmp near 032d1h                           ; e9 f1 fd
     mov al, dl                                ; 88 d0
-    call 028a8h                               ; e8 e6 f3
-    jmp short 034b3h                          ; eb ef
+    call 028cbh                               ; e8 e6 f3
+    jmp short 034d6h                          ; eb ef
     push word [bp+008h]                       ; ff 76 08
     push word [bp+016h]                       ; ff 76 16
@@ -6333,70 +6350,70 @@
     mov dx, ax                                ; 89 c2
     mov ax, si                                ; 89 f0
-    call 028adh                               ; e8 bb f3
-    jmp near 035ceh                           ; e9 d9 00
+    call 028d0h                               ; e8 bb f3
+    jmp near 035f1h                           ; e9 d9 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 4f f4
+    call 02972h                               ; e8 4f f4
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 01bh                   ; 0c 1b
-    jmp near 032aeh                           ; e9 a4 fd
+    jmp near 032d1h                           ; e9 a4 fd
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 03531h                           ; 74 22
+    je short 03554h                           ; 74 22
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03523h                           ; 74 0f
+    je short 03546h                           ; 74 0f
     test ax, ax                               ; 85 c0
-    jne short 0353dh                          ; 75 25
+    jne short 03560h                          ; 75 25
     lea dx, [bp+00ch]                         ; 8d 56 0c
     mov ax, word [bp+010h]                    ; 8b 46 10
-    call 02a74h                               ; e8 53 f5
-    jmp short 0353dh                          ; eb 1a
+    call 02a97h                               ; e8 53 f5
+    jmp short 03560h                          ; 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 57 f5
-    jmp short 0353dh                          ; eb 0c
+    call 02aa9h                               ; e8 57 f5
+    jmp short 03560h                          ; 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 ca f8
+    call 02e2ah                               ; e8 ca f8
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 01ch                   ; 0c 1c
-    jmp near 032aeh                           ; e9 67 fd
-    call 007bfh                               ; e8 75 d2
+    jmp near 032d1h                           ; e9 67 fd
+    call 007bfh                               ; e8 52 d2
     test ax, ax                               ; 85 c0
-    je short 035c0h                           ; 74 72
+    je short 035e3h                           ; 74 72
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000ah                ; 3d 0a 00
-    jnbe short 035c2h                         ; 77 6a
+    jnbe short 035e5h                         ; 77 6a
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 0322eh                            ; bf 2e 32
+    mov di, 03251h                            ; bf 51 32
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+03235h]               ; 2e 8b 85 35 32
+    mov ax, word [cs:di+03258h]               ; 2e 8b 85 58 32
     jmp ax                                    ; ff e0
     mov bx, si                                ; 89 f3
     mov dx, word [bp+016h]                    ; 8b 56 16
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 03771h                               ; e8 f9 01
-    jmp short 035ceh                          ; eb 54
+    call 037adh                               ; e8 12 02
+    jmp short 035f1h                          ; eb 54
     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 038a0h                               ; e8 18 03
-    jmp short 035ceh                          ; eb 44
+    call 038dch                               ; e8 31 03
+    jmp short 035f1h                          ; eb 44
     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 0395dh                               ; e8 c5 03
-    jmp short 035ceh                          ; eb 34
+    call 03999h                               ; e8 de 03
+    jmp short 035f1h                          ; eb 34
     lea ax, [bp+00ch]                         ; 8d 46 0c
     push ax                                   ; 50
@@ -6405,15 +6422,15 @@
     mov dx, word [bp+010h]                    ; 8b 56 10
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 03b46h                               ; e8 99 05
-    jmp short 035ceh                          ; eb 1f
+    call 03b82h                               ; e8 b2 05
+    jmp short 035f1h                          ; eb 1f
     lea cx, [bp+00eh]                         ; 8d 4e 0e
     lea bx, [bp+010h]                         ; 8d 5e 10
     lea dx, [bp+00ch]                         ; 8d 56 0c
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 03bd2h                               ; e8 14 06
-    jmp short 035ceh                          ; eb 0e
-    jmp short 035c9h                          ; eb 07
+    call 03c0eh                               ; e8 2d 06
+    jmp short 035f1h                          ; eb 0e
+    jmp short 035ech                          ; eb 07
     mov word [bp+012h], 00100h                ; c7 46 12 00 01
-    jmp short 035ceh                          ; eb 05
+    jmp short 035f1h                          ; eb 05
     mov word [bp+012h], 00100h                ; c7 46 12 00 01
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6422,5 +6439,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_xres_:                             ; 0xc35d5 LB 0x1f
+dispi_set_xres_:                             ; 0xc35f8 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6430,8 +6447,8 @@
     mov ax, strict word 00001h                ; b8 01 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 8b cf
+    call 00570h                               ; e8 68 cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 83 cf
+    call 00570h                               ; e8 60 cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6439,5 +6456,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_yres_:                             ; 0xc35f4 LB 0x1f
+dispi_set_yres_:                             ; 0xc3617 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6447,8 +6464,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 6c cf
+    call 00570h                               ; e8 49 cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 64 cf
+    call 00570h                               ; e8 41 cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6456,5 +6473,18 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_bpp_:                              ; 0xc3613 LB 0x1f
+dispi_get_yres_:                             ; 0xc3636 LB 0x19
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 2d cf
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 2e cf
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_bpp_:                              ; 0xc364f LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6464,8 +6494,8 @@
     mov ax, strict word 00003h                ; b8 03 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 4d cf
+    call 00570h                               ; e8 11 cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 45 cf
+    call 00570h                               ; e8 09 cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6473,5 +6503,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_bpp_:                              ; 0xc3632 LB 0x19
+dispi_get_bpp_:                              ; 0xc366e LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6479,12 +6509,12 @@
     mov ax, strict word 00003h                ; b8 03 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 31 cf
+    call 00570h                               ; e8 f5 ce
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 32 cf
+    call 00577h                               ; e8 f6 ce
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_virt_width_:                       ; 0xc364b LB 0x1f
+dispi_set_virt_width_:                       ; 0xc3687 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6494,8 +6524,8 @@
     mov ax, strict word 00006h                ; b8 06 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 15 cf
+    call 00570h                               ; e8 d9 ce
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 0d cf
+    call 00570h                               ; e8 d1 ce
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6503,5 +6533,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_virt_width_:                       ; 0xc366a LB 0x19
+dispi_get_virt_width_:                       ; 0xc36a6 LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6509,12 +6539,12 @@
     mov ax, strict word 00006h                ; b8 06 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 f9 ce
+    call 00570h                               ; e8 bd ce
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 fa ce
+    call 00577h                               ; e8 be ce
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_virt_height_:                      ; 0xc3683 LB 0x19
+dispi_get_virt_height_:                      ; 0xc36bf LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6522,12 +6552,12 @@
     mov ax, strict word 00007h                ; b8 07 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 e0 ce
+    call 00570h                               ; e8 a4 ce
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 e1 ce
+    call 00577h                               ; e8 a5 ce
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-in_word_:                                    ; 0xc369c LB 0x12
+in_word_:                                    ; 0xc36d8 LB 0x12
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6542,5 +6572,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-in_byte_:                                    ; 0xc36ae LB 0x14
+in_byte_:                                    ; 0xc36ea LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6557,5 +6587,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_id_:                               ; 0xc36c2 LB 0x14
+dispi_get_id_:                               ; 0xc36fe LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6570,5 +6600,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_id_:                               ; 0xc36d6 LB 0x1a
+dispi_set_id_:                               ; 0xc3712 LB 0x1a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6587,5 +6617,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_init_:                                   ; 0xc36f0 LB 0x2c
+vbe_init_:                                   ; 0xc372c LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6593,14 +6623,14 @@
     push dx                                   ; 52
     mov ax, 0b0c0h                            ; b8 c0 b0
-    call 036d6h                               ; e8 db ff
-    call 036c2h                               ; e8 c4 ff
+    call 03712h                               ; e8 db ff
+    call 036feh                               ; e8 c4 ff
     cmp ax, 0b0c0h                            ; 3d c0 b0
-    jne short 03715h                          ; 75 12
+    jne short 03751h                          ; 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 64 fa
+    call 03196h                               ; e8 4b fa
     mov ax, 0b0c4h                            ; b8 c4 b0
-    call 036d6h                               ; e8 c1 ff
+    call 03712h                               ; e8 c1 ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6608,5 +6638,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-mode_info_find_mode_:                        ; 0xc371c LB 0x55
+mode_info_find_mode_:                        ; 0xc3758 LB 0x55
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6619,28 +6649,28 @@
     xor dx, dx                                ; 31 d2
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 6d ff
+    call 036d8h                               ; e8 6d ff
     cmp ax, 077cch                            ; 3d cc 77
-    jne short 03766h                          ; 75 32
+    jne short 037a2h                          ; 75 32
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, bx                                ; 89 da
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 5d ff
+    call 036d8h                               ; e8 5d ff
     mov cx, ax                                ; 89 c1
     cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 03766h                           ; 74 20
+    je short 037a2h                           ; 74 20
     lea dx, [bx+002h]                         ; 8d 57 02
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 4d ff
+    call 036d8h                               ; e8 4d ff
     lea dx, [bx+044h]                         ; 8d 57 44
     cmp cx, di                                ; 39 f9
-    jne short 03762h                          ; 75 0c
+    jne short 0379eh                          ; 75 0c
     test si, si                               ; 85 f6
-    jne short 0375eh                          ; 75 04
+    jne short 0379ah                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 03768h                          ; eb 0a
+    jmp short 037a4h                          ; eb 0a
     test AL, strict byte 080h                 ; a8 80
-    jne short 0375ah                          ; 75 f8
+    jne short 03796h                          ; 75 f8
     mov bx, dx                                ; 89 d3
-    jmp short 03739h                          ; eb d3
+    jmp short 03775h                          ; eb d3
     xor ax, ax                                ; 31 c0
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -6651,5 +6681,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_return_controller_information_: ; 0xc3771 LB 0x12f
+vbe_biosfn_return_controller_information_: ; 0xc37ad LB 0x12f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6662,5 +6692,5 @@
     mov word [bp-00ah], bx                    ; 89 5e f6
     mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
-    call 005b7h                               ; e8 2e ce
+    call 005b7h                               ; e8 f2 cd
     mov word [bp-010h], ax                    ; 89 46 f0
     mov bx, word [bp-00ah]                    ; 8b 5e f6
@@ -6668,22 +6698,22 @@
     xor dx, dx                                ; 31 d2
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 02 ff
+    call 036d8h                               ; e8 02 ff
     cmp ax, 077cch                            ; 3d cc 77
-    je short 037a9h                           ; 74 0a
+    je short 037e5h                           ; 74 0a
     push SS                                   ; 16
     pop ES                                    ; 07
     mov word [es:si], 00100h                  ; 26 c7 04 00 01
-    jmp near 03898h                           ; e9 ef 00
+    jmp near 038d4h                           ; 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 037c3h                          ; 75 07
+    jne short 037ffh                          ; 75 07
     cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
-    je short 037d2h                           ; 74 0f
+    je short 0380eh                           ; 74 0f
     cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
-    jne short 037d7h                          ; 75 0c
+    jne short 03813h                          ; 75 0c
     cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
-    jne short 037d7h                          ; 75 05
+    jne short 03813h                          ; 75 05
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
     mov es, [bp-008h]                         ; 8e 46 f8
@@ -6691,5 +6721,5 @@
     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 word [es:bx+006h], 07c6ch             ; 26 c7 47 06 6c 7c
     mov [es:bx+008h], ds                      ; 26 8c 5f 08
     mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
@@ -6701,43 +6731,43 @@
     mov dx, strict word 0ffffh                ; ba ff ff
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 84 fe
+    call 036d8h                               ; 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 03849h                           ; 74 24
+    je short 03885h                           ; 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 word [es:bx+016h], 07c81h             ; 26 c7 47 16 81 7c
     mov [es:bx+018h], ds                      ; 26 8c 5f 18
-    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
+    mov word [es:bx+01ah], 07c94h             ; 26 c7 47 1a 94 7c
     mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
-    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
+    mov word [es:bx+01eh], 07cb5h             ; 26 c7 47 1e b5 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 036aeh                               ; e8 5a fe
+    call 036eah                               ; e8 5a fe
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jnbe short 03874h                         ; 77 19
+    jnbe short 038b0h                         ; 77 19
     mov dx, cx                                ; 89 ca
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 39 fe
+    call 036d8h                               ; 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 1f f9
+    call 031b2h                               ; e8 06 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 0369ch                               ; e8 1d fe
+    call 036d8h                               ; e8 1d fe
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 03849h                          ; 75 c3
+    jne short 03885h                          ; 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 fe f8
+    call 031b2h                               ; e8 e5 f8
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -6749,5 +6779,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_return_mode_information_:         ; 0xc38a0 LB 0xbd
+vbe_biosfn_return_mode_information_:         ; 0xc38dc LB 0xbd
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6761,13 +6791,13 @@
     mov word [bp-006h], cx                    ; 89 4e fa
     test dh, 040h                             ; f6 c6 40
-    je short 038b9h                           ; 74 05
+    je short 038f5h                           ; 74 05
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 038bbh                          ; eb 02
+    jmp short 038f7h                          ; eb 02
     xor dx, dx                                ; 31 d2
     and ah, 001h                              ; 80 e4 01
-    call 0371ch                               ; e8 5b fe
+    call 03758h                               ; e8 5b fe
     mov word [bp-008h], ax                    ; 89 46 f8
     test ax, ax                               ; 85 c0
-    je short 038feh                           ; 74 36
+    je short 0393ah                           ; 74 36
     mov cx, 00100h                            ; b9 00 01
     xor ax, ax                                ; 31 c0
@@ -6775,10 +6805,10 @@
     mov es, si                                ; 8e c6
     cld                                       ; fc
-    jcxz 038d7h                               ; e3 02
+    jcxz 03913h                               ; e3 02
     rep stosb                                 ; f3 aa
     xor cx, cx                                ; 31 c9
-    jmp short 038e0h                          ; eb 05
+    jmp short 0391ch                          ; eb 05
     cmp cx, strict byte 00042h                ; 83 f9 42
-    jnc short 03900h                          ; 73 20
+    jnc short 0393ch                          ; 73 20
     mov dx, word [bp-008h]                    ; 8b 56 f8
     inc dx                                    ; 42
@@ -6786,5 +6816,5 @@
     add dx, cx                                ; 01 ca
     mov ax, 003b6h                            ; b8 b6 03
-    call 036aeh                               ; e8 c1 fd
+    call 036eah                               ; e8 c1 fd
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -6792,37 +6822,37 @@
     add dx, cx                                ; 01 ca
     mov ax, si                                ; 89 f0
-    call 03173h                               ; e8 78 f8
-    inc cx                                    ; 41
-    jmp short 038dbh                          ; eb dd
-    jmp short 0394bh                          ; eb 4b
+    call 03196h                               ; e8 5f f8
+    inc cx                                    ; 41
+    jmp short 03917h                          ; eb dd
+    jmp short 03987h                          ; eb 4b
     mov dx, word [bp-006h]                    ; 8b 56 fa
     inc dx                                    ; 42
     inc dx                                    ; 42
     mov ax, si                                ; 89 f0
-    call 03165h                               ; e8 5b f8
+    call 03188h                               ; e8 42 f8
     test AL, strict byte 001h                 ; a8 01
-    je short 0392ah                           ; 74 1c
+    je short 03966h                           ; 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 73 f8
+    call 031b2h                               ; e8 5a 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 65 f8
+    call 031b2h                               ; e8 4c f8
     mov ax, strict word 0000bh                ; b8 0b 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 3d cc
+    call 00570h                               ; e8 01 cc
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 3e cc
+    call 00577h                               ; e8 02 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 49 f8
+    call 031b2h                               ; e8 30 f8
     mov ax, strict word 0004fh                ; b8 4f 00
-    jmp short 0394eh                          ; eb 03
+    jmp short 0398ah                          ; eb 03
     mov ax, 00100h                            ; b8 00 01
     push SS                                   ; 16
@@ -6835,5 +6865,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_set_mode_:                        ; 0xc395d LB 0xeb
+vbe_biosfn_set_mode_:                        ; 0xc3999 LB 0xeb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6844,63 +6874,63 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     test byte [bp-009h], 040h                 ; f6 46 f7 40
-    je short 03975h                           ; 74 05
+    je short 039b1h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 03977h                          ; eb 02
+    jmp short 039b3h                          ; eb 02
     xor ax, ax                                ; 31 c0
     mov dx, ax                                ; 89 c2
     test ax, ax                               ; 85 c0
-    je short 03980h                           ; 74 03
+    je short 039bch                           ; 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 0398eh                           ; 74 05
+    je short 039cah                           ; 74 05
     mov ax, 00080h                            ; b8 80 00
-    jmp short 03990h                          ; eb 02
+    jmp short 039cch                          ; 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 039b1h                          ; 73 13
+    jnc short 039edh                          ; 73 13
     xor ax, ax                                ; 31 c0
-    call 005ddh                               ; e8 3a cc
+    call 005ddh                               ; e8 fe cb
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
-    call 0101ch                               ; e8 71 d6
+    call 0101ch                               ; e8 35 d6
     mov ax, strict word 0004fh                ; b8 4f 00
-    jmp near 03a3eh                           ; e9 8d 00
+    jmp near 03a7ah                           ; e9 8d 00
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 0371ch                               ; e8 65 fd
+    call 03758h                               ; e8 65 fd
     mov bx, ax                                ; 89 c3
     test ax, ax                               ; 85 c0
-    jne short 039c0h                          ; 75 03
-    jmp near 03a3bh                           ; e9 7b 00
+    jne short 039fch                          ; 75 03
+    jmp near 03a77h                           ; e9 7b 00
     lea dx, [bx+014h]                         ; 8d 57 14
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 d3 fc
+    call 036d8h                               ; e8 d3 fc
     mov cx, ax                                ; 89 c1
     lea dx, [bx+016h]                         ; 8d 57 16
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 c8 fc
+    call 036d8h                               ; e8 c8 fc
     mov di, ax                                ; 89 c7
     lea dx, [bx+01bh]                         ; 8d 57 1b
     mov ax, 003b6h                            ; b8 b6 03
-    call 036aeh                               ; e8 cf fc
+    call 036eah                               ; e8 cf fc
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    call 005ddh                               ; e8 f5 cb
+    call 005ddh                               ; e8 b9 cb
     cmp bl, 004h                              ; 80 fb 04
-    jne short 039f3h                          ; 75 06
+    jne short 03a2fh                          ; 75 06
     mov ax, strict word 0006ah                ; b8 6a 00
-    call 0101ch                               ; e8 29 d6
+    call 0101ch                               ; e8 ed d5
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 03613h                               ; e8 19 fc
+    call 0364fh                               ; e8 19 fc
     mov ax, cx                                ; 89 c8
-    call 035d5h                               ; e8 d6 fb
+    call 035f8h                               ; e8 bd fb
     mov ax, di                                ; 89 f8
-    call 035f4h                               ; e8 f0 fb
+    call 03617h                               ; e8 d7 fb
     xor ax, ax                                ; 31 c0
-    call 00603h                               ; e8 fa cb
+    call 00603h                               ; e8 be cb
     mov al, byte [bp-008h]                    ; 8a 46 f8
     or AL, strict byte 001h                   ; 0c 01
@@ -6908,10 +6938,10 @@
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     or al, dl                                 ; 08 d0
-    call 005ddh                               ; e8 c5 cb
-    call 006d2h                               ; e8 b7 cc
+    call 005ddh                               ; e8 89 cb
+    call 006d2h                               ; e8 7b cc
     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 68 f7
+    call 031b2h                               ; e8 4f f7
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     or bl, 060h                               ; 80 cb 60
@@ -6919,6 +6949,6 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 03173h                               ; e8 3b f7
-    jmp near 039abh                           ; e9 70 ff
+    call 03196h                               ; e8 22 f7
+    jmp near 039e7h                           ; e9 70 ff
     mov ax, 00100h                            ; b8 00 01
     mov word [ss:si], ax                      ; 36 89 04
@@ -6928,5 +6958,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_read_video_state_size_:           ; 0xc3a48 LB 0x8
+vbe_biosfn_read_video_state_size_:           ; 0xc3a84 LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6934,5 +6964,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_save_video_state_:                ; 0xc3a50 LB 0x5b
+vbe_biosfn_save_video_state_:                ; 0xc3a8c LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6953,15 +6983,15 @@
     mov dx, cx                                ; 89 ca
     mov ax, di                                ; 89 f8
-    call 0318fh                               ; e8 1c f7
+    call 031b2h                               ; e8 03 f7
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 03aa2h                           ; 74 27
+    je short 03adeh                           ; 74 27
     mov si, strict word 00001h                ; be 01 00
-    jmp short 03a85h                          ; eb 05
+    jmp short 03ac1h                          ; eb 05
     cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 03aa2h                         ; 77 1d
+    jnbe short 03adeh                         ; 77 1d
     cmp si, strict byte 00004h                ; 83 fe 04
-    je short 03a9fh                           ; 74 15
+    je short 03adbh                           ; 74 15
     mov ax, si                                ; 89 f0
     mov dx, 001ceh                            ; ba ce 01
@@ -6972,9 +7002,9 @@
     mov dx, cx                                ; 89 ca
     mov ax, di                                ; 89 f8
-    call 0318fh                               ; e8 f2 f6
+    call 031b2h                               ; e8 d9 f6
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc si                                    ; 46
-    jmp short 03a80h                          ; eb de
+    jmp short 03abch                          ; eb de
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -6984,5 +7014,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_restore_video_state_:             ; 0xc3aab LB 0x9b
+vbe_biosfn_restore_video_state_:             ; 0xc3ae7 LB 0x9b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6993,10 +7023,10 @@
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
-    call 03181h                               ; e8 c8 f6
+    call 031a4h                               ; e8 af f6
     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 03ad4h                          ; 75 10
+    jne short 03b10h                          ; 75 10
     mov ax, strict word 00004h                ; b8 04 00
     mov dx, 001ceh                            ; ba ce 01
@@ -7005,5 +7035,5 @@
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
-    jmp short 03b3eh                          ; eb 6a
+    jmp short 03b7ah                          ; eb 6a
     mov ax, strict word 00001h                ; b8 01 00
     mov dx, 001ceh                            ; ba ce 01
@@ -7011,5 +7041,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 03181h                               ; e8 9f f6
+    call 031a4h                               ; e8 86 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7021,5 +7051,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 03181h                               ; e8 8b f6
+    call 031a4h                               ; e8 72 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7031,5 +7061,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 03181h                               ; e8 77 f6
+    call 031a4h                               ; e8 5e f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7043,7 +7073,7 @@
     out DX, ax                                ; ef
     mov si, strict word 00005h                ; be 05 00
-    jmp short 03b28h                          ; eb 05
+    jmp short 03b64h                          ; eb 05
     cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 03b3eh                         ; 77 16
+    jnbe short 03b7ah                         ; 77 16
     mov ax, si                                ; 89 f0
     mov dx, 001ceh                            ; ba ce 01
@@ -7051,5 +7081,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 03181h                               ; e8 4c f6
+    call 031a4h                               ; e8 33 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7057,5 +7087,5 @@
     inc bx                                    ; 43
     inc si                                    ; 46
-    jmp short 03b23h                          ; eb e5
+    jmp short 03b5fh                          ; eb e5
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
@@ -7064,5 +7094,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_save_restore_state_:              ; 0xc3b46 LB 0x8c
+vbe_biosfn_save_restore_state_:              ; 0xc3b82 LB 0x8c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7077,15 +7107,15 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 03ba5h                           ; 74 45
+    je short 03be1h                           ; 74 45
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03b89h                           ; 74 24
+    je short 03bc5h                           ; 74 24
     test ax, ax                               ; 85 c0
-    jne short 03bc1h                          ; 75 58
+    jne short 03bfdh                          ; 75 58
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02a51h                               ; e8 e2 ee
+    call 02a74h                               ; e8 c9 ee
     mov cx, ax                                ; 89 c1
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03b7ch                           ; 74 05
-    call 03a48h                               ; e8 ce fe
+    je short 03bb8h                           ; 74 05
+    call 03a84h                               ; e8 ce fe
     add ax, cx                                ; 01 c8
     add ax, strict word 0003fh                ; 05 3f 00
@@ -7094,5 +7124,5 @@
     pop ES                                    ; 07
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 03bc4h                          ; eb 3b
+    jmp short 03c00h                          ; eb 3b
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -7100,11 +7130,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02a86h                               ; e8 f0 ee
+    call 02aa9h                               ; e8 d7 ee
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03bc4h                           ; 74 28
+    je short 03c00h                           ; 74 28
     mov dx, ax                                ; 89 c2
     mov ax, cx                                ; 89 c8
-    call 03a50h                               ; e8 ad fe
-    jmp short 03bc4h                          ; eb 1f
+    call 03a8ch                               ; e8 ad fe
+    jmp short 03c00h                          ; eb 1f
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -7112,11 +7142,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02e07h                               ; e8 55 f2
+    call 02e2ah                               ; e8 3c f2
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03bc4h                           ; 74 0c
+    je short 03c00h                           ; 74 0c
     mov dx, ax                                ; 89 c2
     mov ax, cx                                ; 89 c8
-    call 03aabh                               ; e8 ec fe
-    jmp short 03bc4h                          ; eb 03
+    call 03ae7h                               ; e8 ec fe
+    jmp short 03c00h                          ; eb 03
     mov di, 00100h                            ; bf 00 01
     push SS                                   ; 16
@@ -7128,33 +7158,42 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-vbe_biosfn_get_set_scanline_length_:         ; 0xc3bd2 LB 0xb0
+vbe_biosfn_get_set_scanline_length_:         ; 0xc3c0e LB 0xdf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    push ax                                   ; 50
-    mov si, dx                                ; 89 d6
-    mov di, bx                                ; 89 df
-    mov word [bp-008h], cx                    ; 89 4e f8
-    call 03632h                               ; e8 4d fa
-    mov cl, al                                ; 88 c1
-    mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
+    sub sp, strict byte 00008h                ; 83 ec 08
+    push ax                                   ; 50
+    mov di, dx                                ; 89 d7
+    mov word [bp-008h], bx                    ; 89 5e f8
+    mov si, cx                                ; 89 ce
+    call 0366eh                               ; e8 4d fa
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jne short 03c2ah                          ; 75 05
+    mov bx, strict word 00010h                ; bb 10 00
+    jmp short 03c2eh                          ; eb 04
+    xor ah, ah                                ; 30 e4
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-006h], bl                    ; 88 5e fa
+    call 036a6h                               ; e8 72 fa
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00ch], strict word 0004fh    ; c7 46 f4 4f 00
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov bx, word [es:di]                      ; 26 8b 1d
-    mov al, byte [es:si]                      ; 26 8a 04
-    cmp AL, strict byte 002h                  ; 3c 02
-    je short 03c02h                           ; 74 0a
-    cmp AL, strict byte 001h                  ; 3c 01
-    je short 03c2ah                           ; 74 2e
-    test al, al                               ; 84 c0
-    je short 03c25h                           ; 74 25
-    jmp short 03c6bh                          ; eb 69
-    cmp cl, 004h                              ; 80 f9 04
-    jne short 03c0ch                          ; 75 05
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov cl, byte [es:di]                      ; 26 8a 0d
+    cmp cl, 002h                              ; 80 f9 02
+    je short 03c58h                           ; 74 0c
+    cmp cl, 001h                              ; 80 f9 01
+    je short 03c7eh                           ; 74 2d
+    test cl, cl                               ; 84 c9
+    je short 03c79h                           ; 74 24
+    jmp near 03cd6h                           ; e9 7e 00
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jne short 03c64h                          ; 75 05
     sal bx, 003h                              ; c1 e3 03
-    jmp short 03c25h                          ; eb 19
-    mov al, cl                                ; 88 c8
+    jmp short 03c79h                          ; eb 15
     xor ah, ah                                ; 30 e4
     cwd                                       ; 99
@@ -7163,21 +7202,23 @@
     ; sbb ax, dx                                ; 1b c2
     sar ax, 003h                              ; c1 f8 03
-    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov cx, ax                                ; 89 c1
     mov ax, bx                                ; 89 d8
     xor dx, dx                                ; 31 d2
-    div word [bp-00ah]                        ; f7 76 f6
+    div cx                                    ; f7 f1
     mov bx, ax                                ; 89 c3
     mov ax, bx                                ; 89 d8
-    call 0364bh                               ; e8 21 fa
-    call 0366ah                               ; e8 3d fa
-    mov bx, ax                                ; 89 c3
+    call 03687h                               ; e8 09 fa
+    call 036a6h                               ; e8 25 fa
+    mov cx, ax                                ; 89 c1
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov word [es:di], ax                      ; 26 89 05
-    cmp cl, 004h                              ; 80 f9 04
-    jne short 03c3eh                          ; 75 05
+    mov bx, word [bp-008h]                    ; 8b 5e f8
+    mov word [es:bx], ax                      ; 26 89 07
+    mov al, byte [bp-006h]                    ; 8a 46 fa
+    cmp AL, strict byte 004h                  ; 3c 04
+    jne short 03c99h                          ; 75 07
+    mov bx, cx                                ; 89 cb
     shr bx, 003h                              ; c1 eb 03
-    jmp short 03c53h                          ; eb 15
-    mov al, cl                                ; 88 c8
+    jmp short 03cach                          ; eb 13
     xor ah, ah                                ; 30 e4
     cwd                                       ; 99
@@ -7186,7 +7227,7 @@
     ; sbb ax, dx                                ; 1b c2
     sar ax, 003h                              ; c1 f8 03
-    mov di, ax                                ; 89 c7
-    mov ax, bx                                ; 89 d8
-    mul di                                    ; f7 e7
+    mov bx, ax                                ; 89 c3
+    mov ax, cx                                ; 89 c8
+    mul bx                                    ; f7 e3
     mov bx, ax                                ; 89 c3
     add bx, strict byte 00003h                ; 83 c3 03
@@ -7194,16 +7235,23 @@
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov word [es:si], bx                      ; 26 89 1c
-    call 03683h                               ; e8 22 fa
+    mov word [es:di], bx                      ; 26 89 1d
+    call 036bfh                               ; e8 05 fa
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov bx, word [bp-008h]                    ; 8b 5e f8
-    mov word [es:bx], ax                      ; 26 89 07
-    jmp short 03c70h                          ; eb 05
-    mov word [bp-006h], 00100h                ; c7 46 fa 00 01
+    mov word [es:si], ax                      ; 26 89 04
+    call 03636h                               ; e8 74 f9
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    cmp ax, word [es:si]                      ; 26 3b 04
+    jbe short 03cdbh                          ; 76 12
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 03687h                               ; e8 b8 f9
+    mov word [bp-00ch], 00200h                ; c7 46 f4 00 02
+    jmp short 03cdbh                          ; eb 05
+    mov word [bp-00ch], 00100h                ; c7 46 f4 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
     mov word [es:bx], ax                      ; 26 89 07
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -7213,6 +7261,6 @@
     retn                                      ; c3
 
-  ; Padding 0x77e bytes at 0xc3c82
-  times 1918 db 0
+  ; Padding 0x713 bytes at 0xc3ced
+  times 1811 db 0
 
 section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
@@ -7346,8 +7394,8 @@
   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.1.51 VGA BIOS', 00dh, 00ah, 000h
-_vga_modes:                                  ; 0xc462f LB 0x80
+section _DATA progbits vstart=0x4600 align=1 ; size=0x3732 class=DATA group=DGROUP
+_msg_vga_init:                               ; 0xc4600 LB 0x34
+    db  'Oracle VM VirtualBox Version 5.2.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
+_vga_modes:                                  ; 0xc4634 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
@@ -7358,9 +7406,9 @@
     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
+_line_to_vpti:                               ; 0xc46b4 LB 0x10
     db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
-_dac_regs:                                   ; 0xc46bf LB 0x4
+_dac_regs:                                   ; 0xc46c4 LB 0x4
     dd  0ff3f3f3fh
-_video_param_table:                          ; 0xc46c3 LB 0x780
+_video_param_table:                          ; 0xc46c8 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
@@ -7483,5 +7531,5 @@
     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
+_palette0:                                   ; 0xc4e48 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
@@ -7496,5 +7544,5 @@
     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
+_palette1:                                   ; 0xc4f08 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
@@ -7509,5 +7557,5 @@
     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
+_palette2:                                   ; 0xc4fc8 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
@@ -7522,5 +7570,5 @@
     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
+_palette3:                                   ; 0xc5088 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
@@ -7571,17 +7619,17 @@
     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
+_static_functionality:                       ; 0xc5388 LB 0x10
     db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
-_dcc_table:                                  ; 0xc5393 LB 0x24
+_dcc_table:                                  ; 0xc5398 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
+_secondary_save_area:                        ; 0xc53bc LB 0x1a
+    db  01ah, 000h, 098h, 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
+_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
+    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont8:                                   ; 0xc53f2 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
@@ -7712,5 +7760,5 @@
     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
+_vgafont14:                                  ; 0xc5bf2 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
@@ -7937,5 +7985,5 @@
     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
+_vgafont16:                                  ; 0xc69f2 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
@@ -8194,5 +8242,5 @@
     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
+_vgafont14alt:                               ; 0xc79f2 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
@@ -8214,5 +8262,5 @@
     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
+_vgafont16alt:                               ; 0xc7b1f 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
@@ -8236,69 +8284,67 @@
     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
+_cga_msr:                                    ; 0xc7c63 LB 0x9
+    db  02ch, 028h, 02dh, 029h, 02ah, 02eh, 01eh, 029h, 000h
+_vbebios_copyright:                          ; 0xc7c6c LB 0x15
     db  'VirtualBox VESA BIOS', 000h
-_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
+_vbebios_vendor_name:                        ; 0xc7c81 LB 0x13
     db  'Oracle Corporation', 000h
-_vbebios_product_name:                       ; 0xc7c86 LB 0x21
+_vbebios_product_name:                       ; 0xc7c94 LB 0x21
     db  'Oracle VM VirtualBox VBE Adapter', 000h
-_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.1.51', 000h
-_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
+_vbebios_product_revision:                   ; 0xc7cb5 LB 0x29
+    db  'Oracle VM VirtualBox Version 5.2.0_BETA1', 000h
+_vbebios_info_string:                        ; 0xc7cde LB 0x2b
     db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
-_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
+_no_vbebios_info_string:                     ; 0xc7d09 LB 0x29
     db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
 
-  ; Padding 0x1 bytes at 0xc7d1f
-    db  001h
+section CONST progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
 
-section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+section CONST2 progbits vstart=0x7d32 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, 032h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h
-    db  042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 012h
+  ; Padding 0x2ce bytes at 0xc7d32
+    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
+    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
+    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
+    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
+    db  067h, 061h, 042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
+    db  061h, 042h, 069h, 06fh, 073h, 032h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 091h
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum	(revision 68289)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum	(revision 68290)
@@ -1,1 +1,1 @@
-c07f3ce46876cfd3480942a249080396 *VBoxVgaBios286.rom
+39faac9aa1fcedb936e9e2dfe6e8744e *VBoxVgaBios286.rom
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm	(revision 68289)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm	(revision 68290)
@@ -250,5 +250,5 @@
     mov bx, 0c000h                            ; bb 00 c0
     mov ds, bx                                ; 8e db
-    call 0301eh                               ; e8 37 2f
+    call 03037h                               ; e8 50 2f
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -1438,5 +1438,5 @@
   times 246 db 0
 
-section _TEXT progbits vstart=0xa00 align=1 ; size=0x3081 class=CODE group=AUTO
+section _TEXT progbits vstart=0xa00 align=1 ; size=0x30d9 class=CODE group=AUTO
 set_int_vector_:                             ; 0xc0a00 LB 0x1a
     push bx                                   ; 53
@@ -1492,5 +1492,5 @@
     call 00a1ah                               ; e8 ac ff
     call 00a36h                               ; e8 c5 ff
-    call 03503h                               ; e8 8f 2a
+    call 03535h                               ; e8 c1 2a
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, strict word 00010h                ; b8 10 00
@@ -1519,5 +1519,5 @@
     mov dx, strict word 00060h                ; ba 60 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 ae 24
+    call 02f73h                               ; e8 c7 24
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1527,5 +1527,5 @@
     add dx, strict byte 00050h                ; 83 c2 50
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 9b 24
+    call 02f73h                               ; e8 b4 24
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1548,7 +1548,7 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 5c 24
+    call 02f57h                               ; e8 75 24
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 30 24
+    call 02f30h                               ; e8 49 24
     mov ch, al                                ; 88 c5
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -1566,13 +1566,13 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 2b 24
+    call 02f57h                               ; e8 44 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
+    call 02f73h                               ; e8 53 24
     movzx bx, ch                              ; 0f b6 dd
     sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 00b5ah                          ; 75 2d
     mov dx, ax                                ; 89 c2
@@ -1590,6 +1590,6 @@
     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 ax, word [bx+04638h]                  ; 8b 87 38 46
+    call 02f73h                               ; e8 1c 24
     mov word [ss:si], ax                      ; 36 89 04
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -1628,5 +1628,5 @@
     mov dx, strict word 0007ch                ; ba 7c 00
     xor ax, ax                                ; 31 c0
-    call 02f76h                               ; e8 e0 23
+    call 02f8fh                               ; e8 f9 23
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1636,5 +1636,5 @@
     mov dx, 00085h                            ; ba 85 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 94 23
+    call 02f57h                               ; e8 ad 23
     xor ah, ah                                ; 30 e4
     push SS                                   ; 16
@@ -1643,5 +1643,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 84 23
+    call 02f57h                               ; e8 9d 23
     xor ah, ah                                ; 30 e4
     push SS                                   ; 16
@@ -1656,16 +1656,16 @@
     mov dx, 0010ch                            ; ba 0c 01
     jmp short 00b91h                          ; eb bf
-    mov ax, 05bedh                            ; b8 ed 5b
+    mov ax, 05bf2h                            ; b8 f2 5b
     mov dx, 0c000h                            ; ba 00 c0
     jmp short 00b96h                          ; eb bc
-    mov ax, 053edh                            ; b8 ed 53
+    mov ax, 053f2h                            ; b8 f2 53
     jmp short 00bd5h                          ; eb f6
-    mov ax, 057edh                            ; b8 ed 57
+    mov ax, 057f2h                            ; b8 f2 57
     jmp short 00bd5h                          ; eb f1
-    mov ax, 079edh                            ; b8 ed 79
+    mov ax, 079f2h                            ; b8 f2 79
     jmp short 00bd5h                          ; eb ec
-    mov ax, 069edh                            ; b8 ed 69
+    mov ax, 069f2h                            ; b8 f2 69
     jmp short 00bd5h                          ; eb e7
-    mov ax, 07b1ah                            ; b8 1a 7b
+    mov ax, 07b1fh                            ; b8 1f 7b
     jmp short 00bd5h                          ; eb e2
     jmp short 00bc4h                          ; eb cf
@@ -1681,7 +1681,7 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 31 23
+    call 02f57h                               ; e8 4a 23
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 05 23
+    call 02f30h                               ; e8 1e 23
     mov cl, al                                ; 88 c1
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -1689,7 +1689,7 @@
     movzx bx, al                              ; 0f b6 d8
     sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     je near 00d27h                            ; 0f 84 fe 00
-    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     cmp bl, 003h                              ; 80 fb 03
     jc short 00c43h                           ; 72 11
@@ -1705,5 +1705,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 06 23
+    call 02f73h                               ; e8 1f 23
     imul ax, word [bp-00ah]                   ; 0f af 46 f6
     mov bx, si                                ; 89 f3
@@ -1726,5 +1726,5 @@
     mov dx, bx                                ; 89 da
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 b0 22
+    call 02f57h                               ; e8 c9 22
     and al, byte [bp-008h]                    ; 22 46 f8
     test al, al                               ; 84 c0
@@ -1747,8 +1747,8 @@
     mov dx, bx                                ; 89 da
     mov ax, 0b800h                            ; b8 00 b8
-    call 02f3eh                               ; e8 7b 22
+    call 02f57h                               ; e8 94 22
     movzx bx, cl                              ; 0f b6 d9
     sal bx, 003h                              ; c1 e3 03
-    cmp byte [bx+04632h], 002h                ; 80 bf 32 46 02
+    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     jne short 00cebh                          ; 75 1b
     mov cx, si                                ; 89 f1
@@ -1777,5 +1777,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 4d 22
+    call 02f73h                               ; e8 66 22
     sal ax, 003h                              ; c1 e0 03
     imul ax, word [bp-00ah]                   ; 0f af 46 f6
@@ -1783,5 +1783,5 @@
     add dx, ax                                ; 01 c2
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 20 22
+    call 02f57h                               ; e8 39 22
     mov ch, al                                ; 88 c5
     jmp short 00d24h                          ; eb 02
@@ -1890,12 +1890,12 @@
     mov dx, strict word 00060h                ; ba 60 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 87 21
+    call 02f81h                               ; e8 a0 21
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 54 21
+    call 02f57h                               ; e8 6d 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
+    call 02f73h                               ; e8 7e 21
     mov dx, ax                                ; 89 c2
     test bl, 001h                             ; f6 c3 01
@@ -1928,5 +1928,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 1e 21
+    call 02f73h                               ; e8 37 21
     mov bx, ax                                ; 89 c3
     mov AL, strict byte 00ah                  ; b0 0a
@@ -1967,17 +1967,17 @@
     mov bx, cx                                ; 89 cb
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 e7 20
+    call 02f81h                               ; e8 00 21
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 b4 20
+    call 02f57h                               ; e8 cd 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
+    call 02f73h                               ; e8 db 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
+    call 02f57h                               ; e8 b4 20
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -1999,5 +1999,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 84 20
+    call 02f73h                               ; e8 9d 20
     mov bx, ax                                ; 89 c3
     mov AL, strict byte 00eh                  ; b0 0e
@@ -2038,7 +2038,7 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 23 20
+    call 02f57h                               ; e8 3c 20
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 f7 1f
+    call 02f30h                               ; e8 10 20
     mov ch, al                                ; 88 c5
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -2051,13 +2051,13 @@
     mov si, bx                                ; 89 de
     sal si, 003h                              ; c1 e6 03
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    cmp byte [si+04635h], 000h                ; 80 bc 35 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
+    call 02f73h                               ; e8 27 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
+    call 02f57h                               ; e8 00 20
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -2073,17 +2073,17 @@
     mov dx, strict word 0004eh                ; ba 4e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 f1 1f
+    call 02f81h                               ; e8 0a 20
     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
+    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
     sal bx, 006h                              ; c1 e3 06
     movzx ax, cl                              ; 0f b6 c1
-    mov bx, word [bx+046c6h]                  ; 8b 9f c6 46
+    mov bx, word [bx+046cbh]                  ; 8b 9f cb 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
+    call 02f73h                               ; e8 d5 1f
     mov si, ax                                ; 89 c6
     mov AL, strict byte 00ch                  ; b0 0c
@@ -2106,5 +2106,5 @@
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 82 1f
+    call 02f65h                               ; e8 9b 1f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, si                                ; 89 f0
@@ -2118,5 +2118,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x391
+biosfn_set_video_mode_:                      ; 0xc0fdc LB 0x3aa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2126,8 +2126,8 @@
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 00010h                ; 83 ec 10
-    mov byte [bp-00ch], al                    ; 88 46 f4
+    sub sp, strict byte 00012h                ; 83 ec 12
+    mov byte [bp-010h], al                    ; 88 46 f0
     and AL, strict byte 080h                  ; 24 80
-    mov byte [bp-010h], al                    ; 88 46 f0
+    mov byte [bp-00eh], al                    ; 88 46 f2
     call 007bfh                               ; e8 cd f7
     test ax, ax                               ; 85 c0
@@ -2139,39 +2139,39 @@
     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
+    and byte [bp-010h], 07fh                  ; 80 66 f0 7f
+    cmp byte [bp-010h], 007h                  ; 80 7e f0 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-010h], 000h                  ; c6 46 f0 00
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    call 02f30h                               ; e8 19 1f
     mov byte [bp-012h], al                    ; 88 46 ee
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 01363h                            ; 0f 84 43 03
+    je near 0137ch                            ; 0f 84 5c 03
     movzx si, al                              ; 0f b6 f0
-    mov al, byte [si+046afh]                  ; 8a 84 af 46
-    mov byte [bp-00eh], al                    ; 88 46 f2
+    mov al, byte [si+046b4h]                  ; 8a 84 b4 46
+    mov byte [bp-00ch], al                    ; 88 46 f4
     movzx bx, al                              ; 0f b6 d8
     sal bx, 006h                              ; c1 e3 06
-    movzx ax, byte [bx+046c3h]                ; 0f b6 87 c3 46
+    movzx ax, byte [bx+046c8h]                ; 0f b6 87 c8 46
+    mov word [bp-016h], ax                    ; 89 46 ea
+    movzx ax, byte [bx+046c9h]                ; 0f b6 87 c9 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
+    movzx ax, byte [bx+046cah]                ; 0f b6 87 ca 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
+    call 02f57h                               ; e8 06 1f
     mov dx, 00088h                            ; ba 88 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 e4 1e
+    call 02f57h                               ; e8 fd 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
+    call 02f57h                               ; e8 f4 1e
+    mov cl, al                                ; 88 c1
     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 al, byte [bx+0463ah]                  ; 8a 87 3a 46
     mov dx, 003c6h                            ; ba c6 03
     out DX, AL                                ; ee
@@ -2179,5 +2179,5 @@
     mov dx, 003c8h                            ; ba c8 03
     out DX, AL                                ; ee
-    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
+    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
     cmp bl, 001h                              ; 80 fb 01
     jc short 01095h                           ; 72 0e
@@ -2190,11 +2190,11 @@
     test bl, bl                               ; 84 db
     jne short 010abh                          ; 75 12
-    mov di, 04e43h                            ; bf 43 4e
+    mov di, 04e48h                            ; bf 48 4e
     jmp short 010abh                          ; eb 0d
-    mov di, 04f03h                            ; bf 03 4f
+    mov di, 04f08h                            ; bf 08 4f
     jmp short 010abh                          ; eb 08
-    mov di, 04fc3h                            ; bf c3 4f
+    mov di, 04fc8h                            ; bf c8 4f
     jmp short 010abh                          ; eb 03
-    mov di, 05083h                            ; bf 83 50
+    mov di, 05088h                            ; bf 88 50
     xor bx, bx                                ; 31 db
     jmp short 010beh                          ; eb 0f
@@ -2209,7 +2209,7 @@
     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
+    movzx si, byte [si+0463bh]                ; 0f b6 b4 3b 46
+    movzx ax, byte [si+046c4h]                ; 0f b6 84 c4 46
+    cmp bx, ax                                ; 39 c3
     jnbe short 010afh                         ; 77 dc
     imul si, bx, strict byte 00003h           ; 6b f3 03
@@ -2223,5 +2223,5 @@
     out DX, AL                                ; ee
     jmp short 010b7h                          ; eb cf
-    test ah, 002h                             ; f6 c4 02
+    test cl, 002h                             ; f6 c1 02
     je short 010f5h                           ; 74 08
     mov dx, 00100h                            ; ba 00 01
@@ -2239,8 +2239,8 @@
     mov dx, 003c0h                            ; ba c0 03
     out DX, AL                                ; ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     sal si, 006h                              ; c1 e6 06
     add si, bx                                ; 01 de
-    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
+    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
     out DX, AL                                ; ee
     inc bx                                    ; 43
@@ -2263,8 +2263,8 @@
     mov dx, 003c4h                            ; ba c4 03
     out DX, AL                                ; ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     sal si, 006h                              ; c1 e6 06
     add si, bx                                ; 01 de
-    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
+    mov al, byte [si+046cch]                  ; 8a 84 cc 46
     mov dx, 003c5h                            ; ba c5 03
     out DX, AL                                ; ee
@@ -2278,8 +2278,8 @@
     mov dx, 003ceh                            ; ba ce 03
     out DX, AL                                ; ee
-    movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
+    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
     sal si, 006h                              ; c1 e6 06
     add si, bx                                ; 01 de
-    mov al, byte [si+046fah]                  ; 8a 84 fa 46
+    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
     mov dx, 003cfh                            ; ba cf 03
     out DX, AL                                ; ee
@@ -2288,30 +2288,29 @@
     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
+    cmp byte [bx+04636h], 001h                ; 80 bf 36 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 word [bp-01ah], dx                    ; 89 56 e6
     mov ax, strict word 00011h                ; b8 11 00
     out DX, ax                                ; ef
     xor bx, bx                                ; 31 db
-    jmp short 0119ah                          ; eb 05
+    jmp short 0119bh                          ; eb 05
     cmp bx, strict byte 00018h                ; 83 fb 18
-    jnbe short 011b5h                         ; 77 1b
+    jnbe short 011b5h                         ; 77 1a
     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
+    mov dx, word [bp-01ah]                    ; 8b 56 e6
+    out DX, AL                                ; ee
+    movzx si, byte [bp-00ch]                  ; 0f b6 76 f4
+    sal si, 006h                              ; c1 e6 06
+    mov di, si                                ; 89 f7
     add di, bx                                ; 01 df
-    lea dx, [si+001h]                         ; 8d 54 01
-    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
+    inc dx                                    ; 42
+    mov al, byte [di+046d2h]                  ; 8a 85 d2 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
+    jmp short 01196h                          ; eb e1
+    mov al, byte [si+046d1h]                  ; 8a 84 d1 46
     mov dx, 003c2h                            ; ba c2 03
     out DX, AL                                ; ee
@@ -2323,28 +2322,28 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01230h                          ; 75 5f
+    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
+    jne short 0122eh                          ; 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 011f0h                          ; 75 13
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 04000h                            ; b9 00 40
     mov ax, 00720h                            ; b8 20 07
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 011f0h                               ; e3 02
+    jcxz 011eeh                               ; 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
+    jmp short 0122eh                          ; eb 3e
+    cmp byte [bp-010h], 00dh                  ; 80 7e f0 0d
+    jnc short 01208h                          ; 73 12
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 04000h                            ; b9 00 40
     xor ax, ax                                ; 31 c0
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 01208h                               ; e3 02
+    jcxz 01206h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 01230h                          ; eb 26
+    jmp short 0122eh                          ; eb 26
     mov AL, strict byte 002h                  ; b0 02
     mov dx, 003c4h                            ; ba c4 03
@@ -2354,99 +2353,107 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov word [bp-01ah], ax                    ; 89 46 e6
+    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 es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 08000h                            ; b9 00 80
     xor ax, ax                                ; 31 c0
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 0122ch                               ; e3 02
+    jcxz 0122ah                               ; e3 02
     rep stosw                                 ; f3 ab
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
-    out DX, AL                                ; ee
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    out DX, AL                                ; ee
+    movzx si, byte [bp-010h]                  ; 0f b6 76 f0
+    mov bx, si                                ; 89 f3
+    mov dx, strict word 00049h                ; ba 49 00
+    mov ax, strict word 00040h                ; b8 40 00
+    call 02f65h                               ; e8 28 1d
+    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 02f81h                               ; e8 38 1d
     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 bx, word [bx+046cbh]                  ; 8b 9f cb 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
+    call 02f81h                               ; e8 24 1d
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
     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
+    call 02f81h                               ; e8 18 1d
+    movzx bx, byte [bp-018h]                  ; 0f b6 5e e8
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 d7 1c
+    call 02f65h                               ; e8 ef 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
+    call 02f81h                               ; e8 ff 1c
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     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
+    call 02f65h                               ; e8 d2 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
+    call 02f65h                               ; e8 c6 1c
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 97 1c
+    call 02f57h                               ; e8 af 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
+    call 02f65h                               ; e8 af 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
+    call 02f65h                               ; e8 a3 1c
     mov cx, ds                                ; 8c d9
-    mov bx, 053d1h                            ; bb d1 53
+    mov bx, 053d6h                            ; bb d6 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
+    call 02fa1h                               ; e8 d1 1c
+    cmp byte [bp-010h], 007h                  ; 80 7e f0 07
+    jnbe short 012feh                         ; 77 28
+    movzx bx, byte [si+07c63h]                ; 0f b6 9c 63 7c
     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
+    call 02f65h                               ; e8 81 1c
+    cmp byte [bp-010h], 006h                  ; 80 7e f0 06
+    jne short 012efh                          ; 75 05
+    mov dx, strict word 0003fh                ; ba 3f 00
+    jmp short 012f2h                          ; eb 03
+    mov dx, strict word 00030h                ; ba 30 00
+    movzx bx, dl                              ; 0f b6 da
     mov dx, strict word 00066h                ; ba 66 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 67 1c
+    call 02f65h                               ; 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 01315h                          ; 75 09
     mov dx, strict word 00007h                ; ba 07 00
     mov ax, strict word 00006h                ; b8 06 00
-    call 00dbah                               ; e8 be fa
+    call 00dbah                               ; e8 a5 fa
     xor bx, bx                                ; 31 db
-    jmp short 01305h                          ; eb 05
+    jmp short 0131eh                          ; eb 05
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jnc short 01310h                          ; 73 0b
+    jnc short 01329h                          ; 73 0b
     movzx ax, bl                              ; 0f b6 c3
     xor dx, dx                                ; 31 d2
-    call 00e5eh                               ; e8 51 fb
+    call 00e5eh                               ; e8 38 fb
     inc bx                                    ; 43
-    jmp short 01300h                          ; eb f0
+    jmp short 01319h                          ; eb f0
     xor ax, ax                                ; 31 c0
-    call 00f00h                               ; e8 eb fb
+    call 00f00h                               ; e8 d2 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 0134ch                          ; 75 10
     xor bl, bl                                ; 30 db
     mov AL, strict byte 004h                  ; b0 04
@@ -2457,22 +2464,22 @@
     mov AH, strict byte 011h                  ; b4 11
     int 010h                                  ; cd 10
-    mov dx, 057edh                            ; ba ed 57
+    mov dx, 057f2h                            ; ba f2 57
     mov ax, strict word 0001fh                ; b8 1f 00
-    call 00a00h                               ; e8 c4 f6
+    call 00a00h                               ; e8 ab f6
     mov ax, word [bp-014h]                    ; 8b 46 ec
     cmp ax, strict word 00010h                ; 3d 10 00
-    je short 0135eh                           ; 74 1a
+    je short 01377h                           ; 74 1a
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    je short 01359h                           ; 74 10
+    je short 01372h                           ; 74 10
     cmp ax, strict word 00008h                ; 3d 08 00
-    jne short 01363h                          ; 75 15
-    mov dx, 053edh                            ; ba ed 53
+    jne short 0137ch                          ; 75 15
+    mov dx, 053f2h                            ; ba f2 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
+    call 00a00h                               ; e8 90 f6
+    jmp short 0137ch                          ; eb 0a
+    mov dx, 05bf2h                            ; ba f2 5b
+    jmp short 0136ah                          ; eb f3
+    mov dx, 069f2h                            ; ba f2 69
+    jmp short 0136ah                          ; eb ee
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -2483,5 +2490,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vgamem_copy_pl4_:                            ; 0xc136d LB 0x76
+vgamem_copy_pl4_:                            ; 0xc1386 LB 0x76
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2509,5 +2516,5 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 013d3h                          ; 73 29
+    jnc short 013ech                          ; 73 29
     movzx cx, bh                              ; 0f b6 cf
     movzx si, bl                              ; 0f b6 f3
@@ -2521,5 +2528,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 013cfh                               ; e3 06
+    jcxz 013e8h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2528,5 +2535,5 @@
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 013a5h                          ; eb d2
+    jmp short 013beh                          ; eb d2
     mov ax, strict word 00005h                ; b8 05 00
     mov dx, 003ceh                            ; ba ce 03
@@ -2537,5 +2544,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_fill_pl4_:                            ; 0xc13e3 LB 0x61
+vgamem_fill_pl4_:                            ; 0xc13fc LB 0x61
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2558,5 +2565,5 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 01435h                          ; 73 22
+    jnc short 0144eh                          ; 73 22
     movzx cx, byte [bp-004h]                  ; 0f b6 4e fc
     movzx ax, byte [bp+006h]                  ; 0f b6 46 06
@@ -2568,9 +2575,9 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01431h                               ; e3 02
+    jcxz 0144ah                               ; e3 02
     rep stosb                                 ; f3 aa
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 0140eh                          ; eb d9
+    jmp short 01427h                          ; eb d9
     mov ax, strict word 00005h                ; b8 05 00
     mov dx, 003ceh                            ; ba ce 03
@@ -2580,5 +2587,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_copy_cga_:                            ; 0xc1444 LB 0xa4
+vgamem_copy_cga_:                            ; 0xc145d LB 0xa4
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2605,7 +2612,7 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 014dfh                          ; 73 61
+    jnc short 014f8h                          ; 73 61
     test bl, 001h                             ; f6 c3 01
-    je short 014b4h                           ; 74 31
+    je short 014cdh                           ; 74 31
     movzx cx, bh                              ; 0f b6 cf
     movzx si, bl                              ; 0f b6 f3
@@ -2622,10 +2629,10 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 014b2h                               ; e3 06
+    jcxz 014cbh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
     rep movsb                                 ; f3 a4
     pop DS                                    ; 1f
-    jmp short 014dbh                          ; eb 27
+    jmp short 014f4h                          ; eb 27
     movzx cx, bh                              ; 0f b6 cf
     movzx ax, bl                              ; 0f b6 c3
@@ -2640,5 +2647,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 014dbh                               ; e3 06
+    jcxz 014f4h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2647,5 +2654,5 @@
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 01479h                          ; eb 9a
+    jmp short 01492h                          ; eb 9a
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2653,5 +2660,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_fill_cga_:                            ; 0xc14e8 LB 0x8a
+vgamem_fill_cga_:                            ; 0xc1501 LB 0x8a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2672,7 +2679,7 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 01569h                          ; 73 57
+    jnc short 01582h                          ; 73 57
     test bl, 001h                             ; f6 c3 01
-    je short 01546h                           ; 74 2f
+    je short 0155fh                           ; 74 2f
     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     movzx ax, byte [bp+006h]                  ; 0f b6 46 06
@@ -2689,7 +2696,7 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01544h                               ; e3 02
+    jcxz 0155dh                               ; e3 02
     rep stosb                                 ; f3 aa
-    jmp short 01565h                          ; eb 1f
+    jmp short 0157eh                          ; eb 1f
     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
     movzx ax, byte [bp+006h]                  ; 0f b6 46 06
@@ -2702,9 +2709,9 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01565h                               ; e3 02
+    jcxz 0157eh                               ; e3 02
     rep stosb                                 ; f3 aa
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 0150dh                          ; eb a4
+    jmp short 01526h                          ; eb a4
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2712,5 +2719,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-biosfn_scroll_:                              ; 0xc1572 LB 0x506
+biosfn_scroll_:                              ; 0xc158b LB 0x506
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2723,33 +2730,33 @@
     mov byte [bp-006h], cl                    ; 88 4e fa
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnbe near 01a6fh                          ; 0f 87 e2 04
+    jnbe near 01a88h                          ; 0f 87 e2 04
     cmp cl, byte [bp+006h]                    ; 3a 4e 06
-    jnbe near 01a6fh                          ; 0f 87 db 04
+    jnbe near 01a88h                          ; 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
+    call 02f57h                               ; e8 a1 19
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 75 19
+    call 02f30h                               ; 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
+    je near 01a88h                            ; 0f 84 c4 04
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 8a 19
+    call 02f57h                               ; 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
+    call 02f73h                               ; 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
+    jne short 015efh                          ; 75 0c
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 6b 19
+    call 02f57h                               ; 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
+    jc short 015feh                           ; 72 07
     mov al, cl                                ; 88 c8
     db  0feh, 0c8h
@@ -2758,5 +2765,5 @@
     movzx ax, byte [bp+006h]                  ; 0f b6 46 06
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 015f6h                           ; 72 08
+    jc short 0160fh                           ; 72 08
     mov al, byte [bp-016h]                    ; 8a 46 ea
     db  0feh, 0c8h
@@ -2765,5 +2772,5 @@
     movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     cmp ax, cx                                ; 39 c8
-    jbe short 01602h                          ; 76 04
+    jbe short 0161bh                          ; 76 04
     mov byte [bp-010h], 000h                  ; c6 46 f0 00
     mov al, byte [bp+006h]                    ; 8a 46 06
@@ -2783,6 +2790,6 @@
     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
+    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
+    jne near 017eah                           ; 0f 85 9f 01
     mov dx, ax                                ; 89 c2
     add dx, ax                                ; 01 c2
@@ -2792,39 +2799,39 @@
     imul bx, dx                               ; 0f af da
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01681h                          ; 75 3a
+    jne short 0169ah                          ; 75 3a
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 01681h                          ; 75 34
+    jne short 0169ah                          ; 75 34
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01681h                          ; 75 2e
+    jne short 0169ah                          ; 75 2e
     movzx dx, byte [bp+004h]                  ; 0f b6 56 04
     cmp dx, word [bp-01ah]                    ; 3b 56 e6
-    jne short 01681h                          ; 75 25
+    jne short 0169ah                          ; 75 25
     movzx dx, byte [bp+006h]                  ; 0f b6 56 06
     cmp dx, word [bp-018h]                    ; 3b 56 e8
-    jne short 01681h                          ; 75 1c
+    jne short 0169ah                          ; 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 es, [di+04638h]                       ; 8e 85 38 46
     mov cx, ax                                ; 89 c1
     mov ax, dx                                ; 89 d0
     mov di, bx                                ; 89 df
     cld                                       ; fc
-    jcxz 0167eh                               ; e3 02
+    jcxz 01697h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp near 01a6fh                           ; e9 ee 03
+    jmp near 01a88h                           ; e9 ee 03
     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne near 01726h                           ; 0f 85 9d 00
+    jne near 0173fh                           ; 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
+    jc near 01a88h                            ; 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
+    jnbe short 016c5h                         ; 77 06
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 016dfh                          ; 75 33
+    jne short 016f8h                          ; 75 33
     movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
@@ -2840,9 +2847,9 @@
     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
     sal si, 003h                              ; c1 e6 03
-    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov es, [si+04638h]                       ; 8e 84 38 46
     cld                                       ; fc
-    jcxz 016ddh                               ; e3 02
+    jcxz 016f6h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 01720h                          ; eb 41
+    jmp short 01739h                          ; eb 41
     movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
     mov word [bp-01ch], dx                    ; 89 56 e4
@@ -2854,5 +2861,5 @@
     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 ax, word [si+04638h]                  ; 8b 84 38 46
     mov si, word [bp-014h]                    ; 8b 76 ec
     imul si, word [bp-016h]                   ; 0f af 76 ea
@@ -2866,5 +2873,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 01720h                               ; e3 06
+    jcxz 01739h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2872,17 +2879,17 @@
     pop DS                                    ; 1f
     inc word [bp-014h]                        ; ff 46 ec
-    jmp near 01690h                           ; e9 6a ff
+    jmp near 016a9h                           ; 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
+    jnbe near 01a88h                          ; 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
+    jnbe short 01766h                         ; 77 06
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01780h                          ; 75 33
+    jne short 01799h                          ; 75 33
     movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
@@ -2898,9 +2905,9 @@
     movzx si, byte [bp-00eh]                  ; 0f b6 76 f2
     sal si, 003h                              ; c1 e6 03
-    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov es, [si+04638h]                       ; 8e 84 38 46
     cld                                       ; fc
-    jcxz 0177eh                               ; e3 02
+    jcxz 01797h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 017c0h                          ; eb 40
+    jmp short 017d9h                          ; eb 40
     movzx cx, byte [bp-012h]                  ; 0f b6 4e ee
     movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
@@ -2913,5 +2920,5 @@
     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 ax, word [si+04638h]                  ; 8b 84 38 46
     mov si, word [bp-014h]                    ; 8b 76 ec
     imul si, word [bp-016h]                   ; 0f af 76 ea
@@ -2923,5 +2930,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 017c0h                               ; e3 06
+    jcxz 017d9h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2930,35 +2937,35 @@
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     cmp ax, word [bp-014h]                    ; 3b 46 ec
-    jc near 01a6fh                            ; 0f 82 a4 02
+    jc near 01a88h                            ; 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
+    jmp near 01746h                           ; e9 5c ff
+    movzx bx, byte [si+046b4h]                ; 0f b6 9c b4 46
     sal bx, 006h                              ; c1 e3 06
-    mov dl, byte [bx+046c5h]                  ; 8a 97 c5 46
+    mov dl, byte [bx+046cah]                  ; 8a 97 ca 46
     mov byte [bp-00ah], dl                    ; 88 56 f6
-    mov bl, byte [di+04631h]                  ; 8a 9d 31 46
+    mov bl, byte [di+04636h]                  ; 8a 9d 36 46
     cmp bl, 004h                              ; 80 fb 04
-    je short 017f8h                           ; 74 0f
+    je short 01811h                           ; 74 0f
     cmp bl, 003h                              ; 80 fb 03
-    je short 017f8h                           ; 74 0a
+    je short 01811h                           ; 74 0a
     cmp bl, 002h                              ; 80 fb 02
-    je near 01937h                            ; 0f 84 42 01
-    jmp near 01a6fh                           ; e9 77 02
+    je near 01950h                            ; 0f 84 42 01
+    jmp near 01a88h                           ; e9 77 02
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01850h                          ; 75 52
+    jne short 01869h                          ; 75 52
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 01850h                          ; 75 4c
+    jne short 01869h                          ; 75 4c
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 01850h                          ; 75 46
+    jne short 01869h                          ; 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
+    jne short 01869h                          ; 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
+    jne short 01869h                          ; 75 2f
     mov ax, 00205h                            ; b8 05 02
     mov dx, 003ceh                            ; ba ce 03
@@ -2970,25 +2977,25 @@
     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     sal bx, 003h                              ; c1 e3 03
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 01849h                               ; e3 02
+    jcxz 01862h                               ; e3 02
     rep stosb                                 ; f3 aa
     mov ax, strict word 00005h                ; b8 05 00
     out DX, ax                                ; ef
-    jmp near 01a6fh                           ; e9 1f 02
+    jmp near 01a88h                           ; e9 1f 02
     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 018bfh                          ; 75 69
+    jne short 018d8h                          ; 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
+    jc near 01a88h                            ; 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
+    jnbe short 01892h                         ; 77 06
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01898h                          ; 75 1f
+    jne short 018b1h                          ; 75 1f
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     push ax                                   ; 50
@@ -2999,6 +3006,6 @@
     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
+    call 013fch                               ; e8 4d fb
+    jmp short 018d3h                          ; eb 22
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     push ax                                   ; 50
@@ -3011,19 +3018,19 @@
     movzx dx, al                              ; 0f b6 d0
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 0136dh                               ; e8 b3 fa
+    call 01386h                               ; e8 b3 fa
     inc word [bp-014h]                        ; ff 46 ec
-    jmp short 0185dh                          ; eb 9e
+    jmp short 01876h                          ; 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
+    jnbe near 01a88h                          ; 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
+    jnbe short 018ffh                         ; 77 06
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01905h                          ; 75 1f
+    jne short 0191eh                          ; 75 1f
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     push ax                                   ; 50
@@ -3034,6 +3041,6 @@
     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
+    call 013fch                               ; e8 e0 fa
+    jmp short 01940h                          ; eb 22
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     push ax                                   ; 50
@@ -3046,23 +3053,23 @@
     movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 0136dh                               ; e8 46 fa
+    call 01386h                               ; 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
+    jc near 01a88h                            ; 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
+    jmp short 018dfh                          ; eb 8f
+    mov dl, byte [di+04637h]                  ; 8a 95 37 46
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 0197eh                          ; 75 3d
+    jne short 01997h                          ; 75 3d
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 0197eh                          ; 75 37
+    jne short 01997h                          ; 75 37
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 0197eh                          ; 75 31
+    jne short 01997h                          ; 75 31
     movzx bx, byte [bp+004h]                  ; 0f b6 5e 04
     cmp bx, word [bp-01ah]                    ; 3b 5e e6
-    jne short 0197eh                          ; 75 28
+    jne short 01997h                          ; 75 28
     movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
     cmp bx, word [bp-018h]                    ; 3b 5e e8
-    jne short 0197eh                          ; 75 1f
+    jne short 01997h                          ; 75 1f
     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     imul ax, bx                               ; 0f af c3
@@ -3070,28 +3077,28 @@
     imul cx, ax                               ; 0f af c8
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov es, [di+04638h]                       ; 8e 85 38 46
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 0197bh                               ; e3 02
+    jcxz 01994h                               ; e3 02
     rep stosb                                 ; f3 aa
-    jmp near 01a6fh                           ; e9 f1 00
+    jmp near 01a88h                           ; e9 f1 00
     cmp dl, 002h                              ; 80 fa 02
-    jne short 0198ch                          ; 75 09
+    jne short 019a5h                          ; 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
+    jne short 01a14h                          ; 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
+    jc near 01a88h                            ; 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
+    jnbe short 019ceh                         ; 77 06
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 019d4h                          ; 75 1f
+    jne short 019edh                          ; 75 1f
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     push ax                                   ; 50
@@ -3102,6 +3109,6 @@
     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
+    call 01501h                               ; e8 16 fb
+    jmp short 01a0fh                          ; eb 22
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     push ax                                   ; 50
@@ -3114,19 +3121,19 @@
     movzx dx, al                              ; 0f b6 d0
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 01444h                               ; e8 4e fa
+    call 0145dh                               ; e8 4e fa
     inc word [bp-014h]                        ; ff 46 ec
-    jmp short 01999h                          ; eb 9e
+    jmp short 019b2h                          ; 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
+    jnbe short 01a88h                         ; 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
+    jnbe short 01a39h                         ; 77 06
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 01a3fh                          ; 75 1f
+    jne short 01a58h                          ; 75 1f
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     push ax                                   ; 50
@@ -3137,6 +3144,6 @@
     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
+    call 01501h                               ; e8 ab fa
+    jmp short 01a7ah                          ; eb 22
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     push ax                                   ; 50
@@ -3149,10 +3156,10 @@
     movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 01444h                               ; e8 e3 f9
+    call 0145dh                               ; 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
+    jc short 01a88h                           ; 72 05
     dec word [bp-014h]                        ; ff 4e ec
-    jmp short 01a02h                          ; eb 93
+    jmp short 01a1bh                          ; eb 93
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3160,5 +3167,5 @@
     pop bp                                    ; 5d
     retn 00008h                               ; c2 08 00
-write_gfx_char_pl4_:                         ; 0xc1a78 LB 0xeb
+write_gfx_char_pl4_:                         ; 0xc1a91 LB 0xeb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3169,12 +3176,12 @@
     mov ah, bl                                ; 88 dc
     cmp byte [bp+006h], 010h                  ; 80 7e 06 10
-    je short 01a96h                           ; 74 0b
+    je short 01aafh                           ; 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
+    jne short 01ab4h                          ; 75 0a
+    mov di, 05bf2h                            ; bf f2 5b
+    jmp short 01ab7h                          ; eb 08
+    mov di, 069f2h                            ; bf f2 69
+    jmp short 01ab7h                          ; eb 03
+    mov di, 053f2h                            ; bf f2 53
     movzx si, cl                              ; 0f b6 f1
     movzx bx, byte [bp+006h]                  ; 0f b6 5e 06
@@ -3195,13 +3202,13 @@
     out DX, ax                                ; ef
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 01ad9h                           ; 74 06
+    je short 01af2h                           ; 74 06
     mov ax, 01803h                            ; b8 03 18
     out DX, ax                                ; ef
-    jmp short 01addh                          ; eb 04
+    jmp short 01af6h                          ; 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
+    jnc short 01b64h                          ; 73 67
     movzx si, ch                              ; 0f b6 f5
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
@@ -3209,12 +3216,12 @@
     add si, word [bp-00eh]                    ; 03 76 f2
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp short 01b0ah                          ; eb 13
+    jmp short 01b23h                          ; eb 13
     xor bx, bx                                ; 31 db
     mov dx, si                                ; 89 f2
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f4ch                               ; e8 4b 14
+    call 02f65h                               ; e8 4b 14
     inc byte [bp-008h]                        ; fe 46 f8
     cmp byte [bp-008h], 008h                  ; 80 7e f8 08
-    jnc short 01b47h                          ; 73 3d
+    jnc short 01b60h                          ; 73 3d
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     mov cl, al                                ; 88 c1
@@ -3229,5 +3236,5 @@
     mov dx, si                                ; 89 f2
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 13 14
+    call 02f57h                               ; e8 13 14
     movzx ax, ch                              ; 0f b6 c5
     add ax, word [bp-00ah]                    ; 03 46 f6
@@ -3236,12 +3243,12 @@
     movzx ax, byte [bx]                       ; 0f b6 07
     test word [bp-00ch], ax                   ; 85 46 f4
-    je short 01af7h                           ; 74 ba
+    je short 01b10h                           ; 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
+    jmp short 01b12h                          ; eb b2
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 01adfh                          ; eb 94
+    jmp short 01af8h                          ; eb 94
     mov ax, 0ff08h                            ; b8 08 ff
     mov dx, 003ceh                            ; ba ce 03
@@ -3256,5 +3263,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-write_gfx_char_cga_:                         ; 0xc1b63 LB 0x11e
+write_gfx_char_cga_:                         ; 0xc1b7c LB 0x11e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3263,5 +3270,5 @@
     sub sp, strict byte 00008h                ; 83 ec 08
     mov byte [bp-008h], dl                    ; 88 56 f8
-    mov si, 053edh                            ; be ed 53
+    mov si, 053f2h                            ; be f2 53
     xor bh, bh                                ; 30 ff
     movzx di, byte [bp+006h]                  ; 0f b6 7e 06
@@ -3274,8 +3281,8 @@
     sal di, 003h                              ; c1 e7 03
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
-    jmp near 01be3h                           ; e9 50 00
+    jmp near 01bfch                           ; e9 50 00
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 01ba4h                          ; eb 0b
+    jmp short 01bbdh                          ; eb 0b
     or al, bl                                 ; 08 d8
     shr ch, 1                                 ; d0 ed
@@ -3283,5 +3290,5 @@
     ; inc ah                                    ; fe c4
     cmp ah, 008h                              ; 80 fc 08
-    jnc short 01bcch                          ; 73 28
+    jnc short 01be5h                          ; 73 28
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     add bx, di                                ; 01 fb
@@ -3290,5 +3297,5 @@
     movzx dx, ch                              ; 0f b6 d5
     test bx, dx                               ; 85 d3
-    je short 01b9bh                           ; 74 e5
+    je short 01bb4h                           ; 74 e5
     mov CL, strict byte 007h                  ; b1 07
     sub cl, ah                                ; 28 e1
@@ -3297,14 +3304,14 @@
     sal bl, CL                                ; d2 e3
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01b99h                           ; 74 d1
+    je short 01bb2h                           ; 74 d1
     xor al, bl                                ; 30 d8
-    jmp short 01b9bh                          ; eb cf
+    jmp short 01bb4h                          ; 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
+    call 02f65h                               ; 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
+    jnc near 01c91h                           ; 0f 83 95 00
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     sar ax, 1                                 ; d1 f8
@@ -3314,26 +3321,26 @@
     mov word [bp-00ah], bx                    ; 89 5e f6
     test byte [bp-006h], 001h                 ; f6 46 fa 01
-    je short 01bfeh                           ; 74 04
+    je short 01c17h                           ; 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
+    jne short 01c30h                          ; 75 11
     test byte [bp-008h], ch                   ; 84 6e f8
-    je short 01b93h                           ; 74 88
+    je short 01bach                           ; 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
+    call 02f57h                               ; e8 2a 13
+    jmp near 01baeh                           ; e9 7e ff
     test ch, ch                               ; 84 ed
-    jbe short 01bd8h                          ; 76 bd
+    jbe short 01bf1h                          ; 76 bd
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01c2ch                           ; 74 0b
+    je short 01c45h                           ; 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
+    call 02f57h                               ; e8 14 13
+    jmp short 01c47h                          ; eb 02
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 01c3dh                          ; eb 0b
+    jmp short 01c56h                          ; eb 0b
     or al, bl                                 ; 08 d8
     shr ch, 1                                 ; d0 ed
@@ -3341,5 +3348,5 @@
     ; inc ah                                    ; fe c4
     cmp ah, 004h                              ; 80 fc 04
-    jnc short 01c67h                          ; 73 2a
+    jnc short 01c80h                          ; 73 2a
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     add bx, di                                ; 01 fb
@@ -3348,5 +3355,5 @@
     movzx bx, ch                              ; 0f b6 dd
     test bx, dx                               ; 85 d3
-    je short 01c34h                           ; 74 e5
+    je short 01c4dh                           ; 74 e5
     mov CL, strict byte 003h                  ; b1 03
     sub cl, ah                                ; 28 e1
@@ -3356,13 +3363,13 @@
     sal bl, CL                                ; d2 e3
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 01c32h                           ; 74 cf
+    je short 01c4bh                           ; 74 cf
     xor al, bl                                ; 30 d8
-    jmp short 01c34h                          ; eb cd
+    jmp short 01c4dh                          ; 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
+    call 02f65h                               ; e8 d9 12
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 01c17h                          ; eb 9f
+    jmp short 01c30h                          ; eb 9f
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3370,5 +3377,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-write_gfx_char_lin_:                         ; 0xc1c81 LB 0x91
+write_gfx_char_lin_:                         ; 0xc1c9a LB 0x91
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3377,5 +3384,5 @@
     sub sp, strict byte 00008h                ; 83 ec 08
     mov byte [bp-006h], dl                    ; 88 56 fa
-    mov di, 053edh                            ; bf ed 53
+    mov di, 053f2h                            ; bf f2 53
     movzx dx, cl                              ; 0f b6 d1
     movzx cx, byte [bp+004h]                  ; 0f b6 4e 04
@@ -3389,7 +3396,7 @@
     sal si, 003h                              ; c1 e6 03
     xor cl, cl                                ; 30 c9
-    jmp short 01cech                          ; eb 3b
+    jmp short 01d05h                          ; eb 3b
     cmp ch, 008h                              ; 80 fd 08
-    jnc short 01ce5h                          ; 73 2f
+    jnc short 01cfeh                          ; 73 2f
     xor al, al                                ; 30 c0
     movzx dx, cl                              ; 0f b6 d1
@@ -3400,5 +3407,5 @@
     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     test dx, bx                               ; 85 da
-    je short 01ccfh                           ; 74 03
+    je short 01ce8h                           ; 74 03
     mov al, byte [bp-006h]                    ; 8a 46 fa
     movzx bx, al                              ; 0f b6 d8
@@ -3406,13 +3413,13 @@
     add dx, word [bp-00ah]                    ; 03 56 f6
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f4ch                               ; e8 6e 12
+    call 02f65h                               ; e8 6e 12
     shr byte [bp-008h], 1                     ; d0 6e f8
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 01cb1h                          ; eb cc
+    jmp short 01ccah                          ; eb cc
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
     cmp cl, 008h                              ; 80 f9 08
-    jnc short 01d09h                          ; 73 1d
+    jnc short 01d22h                          ; 73 1d
     movzx bx, cl                              ; 0f b6 d9
     movzx dx, byte [bp+004h]                  ; 0f b6 56 04
@@ -3424,5 +3431,5 @@
     mov byte [bp-008h], 080h                  ; c6 46 f8 80
     xor ch, ch                                ; 30 ed
-    jmp short 01cb6h                          ; eb ad
+    jmp short 01ccfh                          ; eb ad
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3430,5 +3437,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-biosfn_write_char_attr_:                     ; 0xc1d12 LB 0x168
+biosfn_write_char_attr_:                     ; 0xc1d2b LB 0x168
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3442,15 +3449,15 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 10 12
+    call 02f57h                               ; e8 10 12
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 e4 11
+    call 02f30h                               ; 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
+    je near 01e8ch                            ; 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
+    call 00a88h                               ; e8 24 ed
     mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -3461,5 +3468,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 d9 11
+    call 02f57h                               ; e8 d9 11
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -3467,11 +3474,11 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 e6 11
+    call 02f73h                               ; 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
+    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
+    jne short 01de6h                          ; 75 47
     mov bx, word [bp-018h]                    ; 8b 5e e8
     imul bx, ax                               ; 0f af d8
@@ -3493,37 +3500,37 @@
     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 es, [di+04638h]                       ; 8e 85 38 46
     mov cx, si                                ; 89 f1
     mov di, dx                                ; 89 d7
     cld                                       ; fc
-    jcxz 01dcah                               ; e3 02
+    jcxz 01de3h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp near 01e73h                           ; e9 a6 00
-    movzx bx, byte [bx+046afh]                ; 0f b6 9f af 46
+    jmp near 01e8ch                           ; e9 a6 00
+    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 46
     sal bx, 006h                              ; c1 e3 06
-    mov al, byte [bx+046c5h]                  ; 8a 87 c5 46
+    mov al, byte [bx+046cah]                  ; 8a 87 ca 46
     mov byte [bp-008h], al                    ; 88 46 f8
-    mov al, byte [di+04632h]                  ; 8a 85 32 46
+    mov al, byte [di+04637h]                  ; 8a 85 37 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
+    je near 01e8ch                            ; 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
+    jnc near 01e8ch                           ; 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
+    mov al, byte [bx+04636h]                  ; 8a 87 36 46
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 01e11h                           ; 72 0c
-    jbe short 01e17h                          ; 76 10
+    jc short 01e2ah                           ; 72 0c
+    jbe short 01e30h                          ; 76 10
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 01e55h                           ; 74 4a
+    je short 01e6eh                           ; 74 4a
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 01e17h                           ; 74 08
-    jmp short 01e6dh                          ; eb 5c
+    je short 01e30h                           ; 74 08
+    jmp short 01e86h                          ; eb 5c
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 01e36h                           ; 74 21
-    jmp short 01e6dh                          ; eb 56
+    je short 01e4fh                           ; 74 21
+    jmp short 01e86h                          ; eb 56
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
@@ -3534,6 +3541,6 @@
     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
+    call 01a91h                               ; e8 44 fc
+    jmp short 01e86h                          ; eb 37
     movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     push ax                                   ; 50
@@ -3544,6 +3551,6 @@
     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
+    call 01b7ch                               ; e8 10 fd
+    jmp short 01e86h                          ; eb 18
     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     push ax                                   ; 50
@@ -3552,7 +3559,7 @@
     movzx dx, byte [bp-012h]                  ; 0f b6 56 ee
     movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
-    call 01c81h                               ; e8 14 fe
+    call 01c9ah                               ; e8 14 fe
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 01de3h                           ; e9 70 ff
+    jmp near 01dfch                           ; e9 70 ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3560,5 +3567,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_char_only_:                     ; 0xc1e7a LB 0x16f
+biosfn_write_char_only_:                     ; 0xc1e93 LB 0x16f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3572,15 +3579,15 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 a8 10
+    call 02f57h                               ; e8 a8 10
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 7c 10
+    call 02f30h                               ; 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
+    je near 01ffbh                            ; 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
+    call 00a88h                               ; e8 bc eb
     mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -3591,5 +3598,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 71 10
+    call 02f57h                               ; e8 71 10
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -3597,11 +3604,11 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 7e 10
+    call 02f73h                               ; 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 01f51h                          ; 75 4a
     mov dx, word [bp-018h]                    ; 8b 56 e8
     imul dx, ax                               ; 0f af d0
@@ -3620,42 +3627,42 @@
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je near 01fe2h                            ; 0f 84 c6 00
+    je near 01ffbh                            ; 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 di, word [bx+04638h]                  ; 8b bf 38 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
+    call 02f65h                               ; e8 18 10
+    inc cx                                    ; 41
+    inc cx                                    ; 41
+    jmp short 01f2dh                          ; eb dc
+    movzx di, byte [di+046b4h]                ; 0f b6 bd b4 46
     sal di, 006h                              ; c1 e7 06
-    mov al, byte [di+046c5h]                  ; 8a 85 c5 46
+    mov al, byte [di+046cah]                  ; 8a 85 ca 46
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov al, byte [bx+04632h]                  ; 8a 87 32 46
+    mov al, byte [bx+04637h]                  ; 8a 87 37 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
+    je near 01ffbh                            ; 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
+    jnc near 01ffbh                           ; 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
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     cmp bl, 003h                              ; 80 fb 03
-    jc short 01f7fh                           ; 72 0e
-    jbe short 01f86h                          ; 76 13
+    jc short 01f98h                           ; 72 0e
+    jbe short 01f9fh                          ; 76 13
     cmp bl, 005h                              ; 80 fb 05
-    je short 01fc4h                           ; 74 4c
+    je short 01fddh                           ; 74 4c
     cmp bl, 004h                              ; 80 fb 04
-    je short 01f86h                           ; 74 09
-    jmp short 01fdch                          ; eb 5d
+    je short 01f9fh                           ; 74 09
+    jmp short 01ff5h                          ; eb 5d
     cmp bl, 002h                              ; 80 fb 02
-    je short 01fa5h                           ; 74 21
-    jmp short 01fdch                          ; eb 56
+    je short 01fbeh                           ; 74 21
+    jmp short 01ff5h                          ; eb 56
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     push ax                                   ; 50
@@ -3666,6 +3673,6 @@
     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
+    call 01a91h                               ; e8 d5 fa
+    jmp short 01ff5h                          ; eb 37
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
@@ -3676,6 +3683,6 @@
     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
+    call 01b7ch                               ; e8 a1 fb
+    jmp short 01ff5h                          ; eb 18
     movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     push ax                                   ; 50
@@ -3684,7 +3691,7 @@
     movzx dx, byte [bp-014h]                  ; 0f b6 56 ec
     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
-    call 01c81h                               ; e8 a5 fc
+    call 01c9ah                               ; e8 a5 fc
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 01f4eh                           ; e9 6c ff
+    jmp near 01f67h                           ; e9 6c ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3692,5 +3699,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_pixel_:                         ; 0xc1fe9 LB 0x16a
+biosfn_write_pixel_:                         ; 0xc2002 LB 0x16a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3701,29 +3708,29 @@
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 3f 0f
+    call 02f57h                               ; e8 3f 0f
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 13 0f
+    call 02f30h                               ; 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
+    je near 02144h                            ; 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 byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    je near 02144h                            ; 0f 84 0f 01
+    mov al, byte [bx+04636h]                  ; 8a 87 36 46
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 02033h                           ; 72 0f
-    jbe short 0203ah                          ; 76 14
+    jc short 0204ch                           ; 72 0f
+    jbe short 02053h                          ; 76 14
     cmp AL, strict byte 005h                  ; 3c 05
-    je near 02131h                            ; 0f 84 05 01
+    je near 0214ah                            ; 0f 84 05 01
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 0203ah                           ; 74 0a
-    jmp near 0212bh                           ; e9 f8 00
+    je short 02053h                           ; 74 0a
+    jmp near 02144h                           ; e9 f8 00
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0209fh                           ; 74 68
-    jmp near 0212bh                           ; e9 f1 00
+    je short 020b8h                           ; 74 68
+    jmp near 02144h                           ; e9 f1 00
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 17 0f
+    call 02f73h                               ; e8 17 0f
     imul ax, cx                               ; 0f af c1
     mov bx, word [bp-00ah]                    ; 8b 5e f6
@@ -3744,7 +3751,7 @@
     mov dx, bx                                ; 89 da
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f3eh                               ; e8 cb 0e
+    call 02f57h                               ; e8 cb 0e
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 02080h                           ; 74 07
+    je short 02099h                           ; 74 07
     mov ax, 01803h                            ; b8 03 18
     mov dx, 003ceh                            ; ba ce 03
@@ -3753,5 +3760,5 @@
     mov dx, word [bp-008h]                    ; 8b 56 f8
     mov ax, 0a000h                            ; b8 00 a0
-    call 02f4ch                               ; e8 bf 0e
+    call 02f65h                               ; e8 bf 0e
     mov ax, 0ff08h                            ; b8 08 ff
     mov dx, 003ceh                            ; ba ce 03
@@ -3761,13 +3768,13 @@
     mov ax, strict word 00003h                ; b8 03 00
     out DX, ax                                ; ef
-    jmp near 0212bh                           ; e9 8c 00
+    jmp near 02144h                           ; 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
+    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
+    jne short 020ceh                          ; 75 08
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     shr bx, 002h                              ; c1 eb 02
-    jmp short 020bbh                          ; eb 06
+    jmp short 020d4h                          ; eb 06
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     shr bx, 003h                              ; c1 eb 03
@@ -3775,14 +3782,14 @@
     mov word [bp-008h], bx                    ; 89 5e f8
     test cl, 001h                             ; f6 c1 01
-    je short 020c9h                           ; 74 04
+    je short 020e2h                           ; 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
+    call 02f57h                               ; 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
+    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
+    jne short 02114h                          ; 75 19
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 003h                  ; 24 03
@@ -3795,5 +3802,5 @@
     sal bh, CL                                ; d2 e7
     mov AL, strict byte 003h                  ; b0 03
-    jmp short 0210eh                          ; eb 13
+    jmp short 02127h                          ; eb 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 007h                  ; 24 07
@@ -3806,7 +3813,7 @@
     sal al, CL                                ; d2 e0
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 0211ah                           ; 74 04
+    je short 02133h                           ; 74 04
     xor bl, bh                                ; 30 fb
-    jmp short 02120h                          ; eb 06
+    jmp short 02139h                          ; eb 06
     not al                                    ; f6 d0
     and bl, al                                ; 20 c3
@@ -3815,5 +3822,5 @@
     mov dx, word [bp-008h]                    ; 8b 56 f8
     mov ax, 0b800h                            ; b8 00 b8
-    call 02f4ch                               ; e8 21 0e
+    call 02f65h                               ; e8 21 0e
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
@@ -3822,5 +3829,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 20 0e
+    call 02f73h                               ; e8 20 0e
     sal ax, 003h                              ; c1 e0 03
     imul cx, ax                               ; 0f af c8
@@ -3831,6 +3838,6 @@
     mov dx, ax                                ; 89 c2
     mov ax, 0a000h                            ; b8 00 a0
-    jmp short 02128h                          ; eb d5
-biosfn_write_teletype_:                      ; 0xc2153 LB 0x241
+    jmp short 02141h                          ; eb d5
+biosfn_write_teletype_:                      ; 0xc216c LB 0x241
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3842,21 +3849,21 @@
     mov byte [bp-00eh], cl                    ; 88 4e f2
     cmp dl, 0ffh                              ; 80 fa ff
-    jne short 02177h                          ; 75 0c
+    jne short 02190h                          ; 75 0c
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 ca 0d
+    call 02f57h                               ; 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
+    call 02f57h                               ; e8 be 0d
     xor ah, ah                                ; 30 e4
-    call 02f17h                               ; e8 92 0d
+    call 02f30h                               ; 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
+    je near 023a7h                            ; 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
+    call 00a88h                               ; e8 d4 e8
     mov al, byte [bp-018h]                    ; 8a 46 e8
     mov byte [bp-008h], al                    ; 88 46 f8
@@ -3867,5 +3874,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 89 0d
+    call 02f57h                               ; e8 89 0d
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -3873,29 +3880,29 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 96 0d
+    call 02f73h                               ; 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
+    jc short 021f5h                           ; 72 0e
+    jbe short 021fdh                          ; 76 14
     cmp AL, strict byte 00dh                  ; 3c 0d
-    je short 021f2h                           ; 74 1e
+    je short 0220bh                           ; 74 1e
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je near 022e4h                            ; 0f 84 0a 01
-    jmp short 021f9h                          ; eb 1d
+    je near 022fdh                            ; 0f 84 0a 01
+    jmp short 02212h                          ; eb 1d
     cmp AL, strict byte 007h                  ; 3c 07
-    je near 022e7h                            ; 0f 84 05 01
-    jmp short 021f9h                          ; eb 15
+    je near 02300h                            ; 0f 84 05 01
+    jmp short 02212h                          ; eb 15
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jbe near 022e7h                           ; 0f 86 fb 00
+    jbe near 02300h                           ; 0f 86 fb 00
     dec byte [bp-008h]                        ; fe 4e f8
-    jmp near 022e7h                           ; e9 f5 00
+    jmp near 02300h                           ; e9 f5 00
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp near 022e7h                           ; e9 ee 00
+    jmp near 02300h                           ; 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
+    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
+    jne short 0226fh                          ; 75 4d
     mov ax, word [bp-012h]                    ; 8b 46 ee
     imul ax, word [bp-014h]                   ; 0f af 46 ec
@@ -3913,31 +3920,31 @@
     add cx, ax                                ; 01 c1
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov dx, cx                                ; 89 ca
-    call 02f4ch                               ; e8 0f 0d
+    call 02f65h                               ; e8 0f 0d
     cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
-    jne near 022d4h                           ; 0f 85 8f 00
+    jne near 022edh                           ; 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
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
+    call 02f65h                               ; e8 f9 0c
+    jmp near 022edh                           ; e9 7e 00
+    movzx bx, byte [bx+046b4h]                ; 0f b6 9f b4 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
+    mov ah, byte [bx+046cah]                  ; 8a a7 ca 46
+    mov dl, byte [si+04637h]                  ; 8a 94 37 46
+    mov al, byte [si+04636h]                  ; 8a 84 36 46
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 0227ah                           ; 72 0c
-    jbe short 02280h                          ; 76 10
+    jc short 02293h                           ; 72 0c
+    jbe short 02299h                          ; 76 10
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 022bch                           ; 74 48
+    je short 022d5h                           ; 74 48
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 02280h                           ; 74 08
-    jmp short 022d4h                          ; eb 5a
+    je short 02299h                           ; 74 08
+    jmp short 022edh                          ; eb 5a
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0229eh                           ; 74 20
-    jmp short 022d4h                          ; eb 54
+    je short 022b7h                           ; 74 20
+    jmp short 022edh                          ; eb 54
     movzx ax, ah                              ; 0f b6 c4
     push ax                                   ; 50
@@ -3948,6 +3955,6 @@
     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
+    call 01a91h                               ; e8 dc f7
+    jmp short 022edh                          ; eb 36
     movzx ax, dl                              ; 0f b6 c2
     push ax                                   ; 50
@@ -3958,6 +3965,6 @@
     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
+    call 01b7ch                               ; e8 a9 f8
+    jmp short 022edh                          ; eb 18
     movzx ax, byte [bp-012h]                  ; 0f b6 46 ee
     push ax                                   ; 50
@@ -3966,14 +3973,14 @@
     movzx dx, byte [bp-004h]                  ; 0f b6 56 fc
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 01c81h                               ; e8 ad f9
+    call 01c9ah                               ; 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
+    jne short 02300h                          ; 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
+    jne near 0238bh                           ; 0f 85 80 00
     movzx si, byte [bp-010h]                  ; 0f b6 76 f0
     sal si, 003h                              ; c1 e6 03
@@ -3984,6 +3991,6 @@
     db  0feh, 0cbh
     ; dec bl                                    ; fe cb
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
-    jne short 02354h                          ; 75 4a
+    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
+    jne short 0236dh                          ; 75 4a
     mov ax, word [bp-012h]                    ; 8b 46 ee
     imul ax, word [bp-014h]                   ; 0f af 46 ec
@@ -4003,6 +4010,6 @@
     add dx, ax                                ; 01 c2
     inc dx                                    ; 42
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    call 02f3eh                               ; e8 02 0c
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
+    call 02f57h                               ; e8 02 0c
     push strict byte 00001h                   ; 6a 01
     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
@@ -4015,5 +4022,5 @@
     xor cx, cx                                ; 31 c9
     xor bx, bx                                ; 31 db
-    jmp short 02369h                          ; eb 15
+    jmp short 02382h                          ; eb 15
     push strict byte 00001h                   ; 6a 01
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
@@ -4027,5 +4034,5 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 01572h                               ; e8 03 f2
+    call 0158bh                               ; e8 03 f2
     dec byte [bp-00ah]                        ; fe 4e f6
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
@@ -4036,10 +4043,10 @@
     mov dx, word [bp-018h]                    ; 8b 56 e8
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
-    call 00e5eh                               ; e8 d0 ea
+    call 00e5eh                               ; e8 b7 ea
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-get_font_access_:                            ; 0xc2394 LB 0x2c
+get_font_access_:                            ; 0xc23ad LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4065,5 +4072,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-release_font_access_:                        ; 0xc23c0 LB 0x3c
+release_font_access_:                        ; 0xc23d9 LB 0x3c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4097,5 +4104,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_scan_lines_:                             ; 0xc23fc LB 0xbf
+set_scan_lines_:                             ; 0xc2415 LB 0xbf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4108,5 +4115,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 4b 0b
+    call 02f73h                               ; e8 4b 0b
     mov dx, ax                                ; 89 c2
     mov si, ax                                ; 89 c6
@@ -4125,8 +4132,8 @@
     out DX, AL                                ; ee
     cmp bl, 008h                              ; 80 fb 08
-    jne short 02433h                          ; 75 08
+    jne short 0244ch                          ; 75 08
     mov dx, strict word 00007h                ; ba 07 00
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 02440h                          ; eb 0d
+    jmp short 02459h                          ; eb 0d
     mov al, bl                                ; 88 d8
     sub AL, strict byte 003h                  ; 2c 03
@@ -4135,10 +4142,10 @@
     sub AL, strict byte 004h                  ; 2c 04
     xor ah, ah                                ; 30 e4
-    call 00dbah                               ; e8 77 e9
+    call 00dbah                               ; e8 5e 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
+    call 02f81h                               ; e8 17 0b
     mov AL, strict byte 012h                  ; b0 12
     mov dx, si                                ; 89 f2
@@ -4175,8 +4182,8 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 b7 0a
+    call 02f65h                               ; e8 b7 0a
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 bc 0a
+    call 02f73h                               ; e8 bc 0a
     movzx dx, cl                              ; 0f b6 d1
     mov bx, ax                                ; 89 c3
@@ -4185,5 +4192,5 @@
     mov dx, strict word 0004ch                ; ba 4c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 b7 0a
+    call 02f81h                               ; e8 b7 0a
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -4194,5 +4201,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_user_pat_:                  ; 0xc24bb LB 0x7d
+biosfn_load_text_user_pat_:                  ; 0xc24d4 LB 0x7d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4204,5 +4211,5 @@
     mov word [bp-008h], bx                    ; 89 5e f8
     mov word [bp-00ah], cx                    ; 89 4e f6
-    call 02394h                               ; e8 c2 fe
+    call 023adh                               ; e8 c2 fe
     mov al, byte [bp+006h]                    ; 8a 46 06
     and AL, strict byte 003h                  ; 24 03
@@ -4218,5 +4225,5 @@
     xor bx, bx                                ; 31 db
     cmp bx, word [bp-00ah]                    ; 3b 5e f6
-    jnc short 0251fh                          ; 73 2b
+    jnc short 02538h                          ; 73 2b
     movzx cx, byte [bp+008h]                  ; 0f b6 4e 08
     mov si, bx                                ; 89 de
@@ -4231,5 +4238,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 0251ch                               ; e3 06
+    jcxz 02535h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4237,10 +4244,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 024efh                          ; eb d0
-    call 023c0h                               ; e8 9e fe
+    jmp short 02508h                          ; eb d0
+    call 023d9h                               ; e8 9e fe
     cmp byte [bp-006h], 010h                  ; 80 7e fa 10
-    jc short 0252fh                           ; 72 07
+    jc short 02548h                           ; 72 07
     movzx ax, byte [bp+008h]                  ; 0f b6 46 08
-    call 023fch                               ; e8 cd fe
+    call 02415h                               ; e8 cd fe
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4248,5 +4255,5 @@
     pop bp                                    ; 5d
     retn 00006h                               ; c2 06 00
-biosfn_load_text_8_14_pat_:                  ; 0xc2538 LB 0x70
+biosfn_load_text_8_14_pat_:                  ; 0xc2551 LB 0x70
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4258,5 +4265,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 02394h                               ; e8 4d fe
+    call 023adh                               ; e8 4d fe
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4271,12 +4278,12 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 0256ah                          ; eb 06
+    jmp short 02583h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02590h                          ; 73 26
+    jnc short 025a9h                          ; 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
+    add si, 05bf2h                            ; 81 c6 f2 5b
     mov cx, strict word 0000eh                ; b9 0e 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4284,5 +4291,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 0258dh                               ; e3 06
+    jcxz 025a6h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4290,10 +4297,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 02564h                          ; eb d4
-    call 023c0h                               ; e8 2d fe
+    jmp short 0257dh                          ; eb d4
+    call 023d9h                               ; e8 2d fe
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 0259fh                           ; 72 06
+    jc short 025b8h                           ; 72 06
     mov ax, strict word 0000eh                ; b8 0e 00
-    call 023fch                               ; e8 5d fe
+    call 02415h                               ; e8 5d fe
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4303,5 +4310,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_8_8_pat_:                   ; 0xc25a8 LB 0x72
+biosfn_load_text_8_8_pat_:                   ; 0xc25c1 LB 0x72
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4313,5 +4320,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 02394h                               ; e8 dd fd
+    call 023adh                               ; e8 dd fd
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4326,7 +4333,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 025dah                          ; eb 06
+    jmp short 025f3h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02602h                          ; 73 28
+    jnc short 0261bh                          ; 73 28
     mov si, bx                                ; 89 de
     sal si, 003h                              ; c1 e6 03
@@ -4334,5 +4341,5 @@
     sal di, 005h                              ; c1 e7 05
     add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 053edh                            ; 81 c6 ed 53
+    add si, 053f2h                            ; 81 c6 f2 53
     mov cx, strict word 00008h                ; b9 08 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4340,5 +4347,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 025ffh                               ; e3 06
+    jcxz 02618h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4346,10 +4353,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 025d4h                          ; eb d2
-    call 023c0h                               ; e8 bb fd
+    jmp short 025edh                          ; eb d2
+    call 023d9h                               ; e8 bb fd
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 02611h                           ; 72 06
+    jc short 0262ah                           ; 72 06
     mov ax, strict word 00008h                ; b8 08 00
-    call 023fch                               ; e8 eb fd
+    call 02415h                               ; e8 eb fd
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4359,5 +4366,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_8_16_pat_:                  ; 0xc261a LB 0x72
+biosfn_load_text_8_16_pat_:                  ; 0xc2633 LB 0x72
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4369,5 +4376,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 02394h                               ; e8 6b fd
+    call 023adh                               ; e8 6b fd
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4382,7 +4389,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 0264ch                          ; eb 06
+    jmp short 02665h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02674h                          ; 73 28
+    jnc short 0268dh                          ; 73 28
     mov si, bx                                ; 89 de
     sal si, 004h                              ; c1 e6 04
@@ -4390,5 +4397,5 @@
     sal di, 005h                              ; c1 e7 05
     add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 069edh                            ; 81 c6 ed 69
+    add si, 069f2h                            ; 81 c6 f2 69
     mov cx, strict word 00010h                ; b9 10 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4396,5 +4403,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 02671h                               ; e3 06
+    jcxz 0268ah                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4402,10 +4409,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 02646h                          ; eb d2
-    call 023c0h                               ; e8 49 fd
+    jmp short 0265fh                          ; eb d2
+    call 023d9h                               ; e8 49 fd
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 02683h                           ; 72 06
+    jc short 0269ch                           ; 72 06
     mov ax, strict word 00010h                ; b8 10 00
-    call 023fch                               ; e8 79 fd
+    call 02415h                               ; e8 79 fd
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4415,45 +4422,45 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_8_8_chars_:                  ; 0xc268c LB 0x5
+biosfn_load_gfx_8_8_chars_:                  ; 0xc26a5 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_user_chars_:                 ; 0xc2691 LB 0x7
+biosfn_load_gfx_user_chars_:                 ; 0xc26aa 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
+biosfn_load_gfx_8_14_chars_:                 ; 0xc26b1 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
+biosfn_load_gfx_8_8_dd_chars_:               ; 0xc26b6 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_8_16_chars_:                 ; 0xc26a2 LB 0x5
+biosfn_load_gfx_8_16_chars_:                 ; 0xc26bb LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_alternate_prtsc_:                     ; 0xc26a7 LB 0x5
+biosfn_alternate_prtsc_:                     ; 0xc26c0 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_switch_video_interface_:              ; 0xc26ac LB 0x5
+biosfn_switch_video_interface_:              ; 0xc26c5 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_enable_video_refresh_control_:        ; 0xc26b1 LB 0x5
+biosfn_enable_video_refresh_control_:        ; 0xc26ca LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_string_:                        ; 0xc26b6 LB 0x9c
+biosfn_write_string_:                        ; 0xc26cf LB 0x9c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4469,7 +4476,7 @@
     lea bx, [bp-00eh]                         ; 8d 5e f2
     lea dx, [bp-00ch]                         ; 8d 56 f4
-    call 00a88h                               ; e8 b0 e3
+    call 00a88h                               ; e8 97 e3
     cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
-    jne short 026efh                          ; 75 11
+    jne short 02708h                          ; 75 11
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp+006h], al                    ; 88 46 06
@@ -4483,19 +4490,19 @@
     add dx, ax                                ; 01 c2
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 00e5eh                               ; e8 5b e7
+    call 00e5eh                               ; e8 42 e7
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 02739h                           ; 74 30
+    je short 02752h                           ; 74 30
     mov dx, di                                ; 89 fa
     inc di                                    ; 47
     mov ax, word [bp+008h]                    ; 8b 46 08
-    call 02f3eh                               ; e8 2c 08
+    call 02f57h                               ; e8 2c 08
     mov cl, al                                ; 88 c1
     test byte [bp-00ah], 002h                 ; f6 46 f6 02
-    je short 02726h                           ; 74 0c
+    je short 0273fh                           ; 74 0c
     mov dx, di                                ; 89 fa
     inc di                                    ; 47
     mov ax, word [bp+008h]                    ; 8b 46 08
-    call 02f3eh                               ; e8 1b 08
+    call 02f57h                               ; e8 1b 08
     mov byte [bp-006h], al                    ; 88 46 fa
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
@@ -4503,11 +4510,11 @@
     movzx ax, cl                              ; 0f b6 c1
     mov cx, strict word 00003h                ; b9 03 00
-    call 02153h                               ; e8 1c fa
-    jmp short 02703h                          ; eb ca
+    call 0216ch                               ; e8 1c fa
+    jmp short 0271ch                          ; eb ca
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    jne short 02749h                          ; 75 0a
+    jne short 02762h                          ; 75 0a
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 00e5eh                               ; e8 15 e7
+    call 00e5eh                               ; e8 fc e6
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4515,5 +4522,5 @@
     pop bp                                    ; 5d
     retn 00008h                               ; c2 08 00
-biosfn_read_state_info_:                     ; 0xc2752 LB 0x101
+biosfn_read_state_info_:                     ; 0xc276b LB 0x101
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4524,8 +4531,8 @@
     push bx                                   ; 53
     mov cx, ds                                ; 8c d9
-    mov bx, 05383h                            ; bb 83 53
+    mov bx, 05388h                            ; bb 88 53
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 02f88h                               ; e8 20 08
+    call 02fa1h                               ; e8 20 08
     mov di, word [bp-00ah]                    ; 8b 7e f6
     add di, strict byte 00004h                ; 83 c7 04
@@ -4535,5 +4542,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 02783h                               ; e3 06
+    jcxz 0279ch                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4547,5 +4554,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 0279eh                               ; e3 06
+    jcxz 027b7h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4554,55 +4561,55 @@
     mov dx, 0008ah                            ; ba 8a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f3eh                               ; e8 97 07
+    call 02f57h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; e8 14 07
     mov di, word [bp-00ah]                    ; 8b 7e f6
     add di, strict byte 00033h                ; 83 c7 33
@@ -4611,5 +4618,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 0284bh                               ; e3 02
+    jcxz 02864h                               ; e3 02
     rep stosb                                 ; f3 aa
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -4619,5 +4626,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_read_video_state_size2_:              ; 0xc2853 LB 0x23
+biosfn_read_video_state_size2_:              ; 0xc286c LB 0x23
     push dx                                   ; 52
     push bp                                   ; 55
@@ -4626,21 +4633,21 @@
     xor ax, ax                                ; 31 c0
     test dl, 001h                             ; f6 c2 01
-    je short 02863h                           ; 74 03
+    je short 0287ch                           ; 74 03
     mov ax, strict word 00046h                ; b8 46 00
     test dl, 002h                             ; f6 c2 02
-    je short 0286bh                           ; 74 03
+    je short 02884h                           ; 74 03
     add ax, strict word 0002ah                ; 05 2a 00
     test dl, 004h                             ; f6 c2 04
-    je short 02873h                           ; 74 03
+    je short 0288ch                           ; 74 03
     add ax, 00304h                            ; 05 04 03
     pop bp                                    ; 5d
     pop dx                                    ; 5a
     retn                                      ; c3
-vga_get_video_state_size_:                   ; 0xc2876 LB 0x12
+vga_get_video_state_size_:                   ; 0xc288f LB 0x12
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push bx                                   ; 53
     mov bx, dx                                ; 89 d3
-    call 02853h                               ; e8 d4 ff
+    call 0286ch                               ; e8 d4 ff
     mov word [ss:bx], ax                      ; 36 89 07
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -4648,5 +4655,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_save_video_state_:                    ; 0xc2888 LB 0x369
+biosfn_save_video_state_:                    ; 0xc28a1 LB 0x369
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4661,8 +4668,8 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 bc 06
+    call 02f73h                               ; e8 bc 06
     mov di, ax                                ; 89 c7
     test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je near 02a0bh                            ; 0f 84 63 01
+    je near 02a24h                            ; 0f 84 63 01
     mov dx, 003c4h                            ; ba c4 03
     in AL, DX                                 ; ec
@@ -4672,5 +4679,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 94 06
+    call 02f65h                               ; e8 94 06
     inc cx                                    ; 41
     mov dx, di                                ; 89 fa
@@ -4681,5 +4688,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 84 06
+    call 02f65h                               ; e8 84 06
     inc cx                                    ; 41
     mov dx, 003ceh                            ; ba ce 03
@@ -4690,5 +4697,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 73 06
+    call 02f65h                               ; e8 73 06
     inc cx                                    ; 41
     mov dx, 003dah                            ; ba da 03
@@ -4704,5 +4711,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 58 06
+    call 02f65h                               ; e8 58 06
     inc cx                                    ; 41
     mov dx, 003cah                            ; ba ca 03
@@ -4713,11 +4720,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 47 06
+    call 02f65h                               ; 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
+    jmp short 0292eh                          ; eb 06
     cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
-    jnbe short 02932h                         ; 77 1d
+    jnbe short 0294bh                         ; 77 1d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003c4h                            ; ba c4 03
@@ -4730,8 +4737,8 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 20 06
+    call 02f65h                               ; e8 20 06
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 0290fh                          ; eb dd
+    jmp short 02928h                          ; eb dd
     xor al, al                                ; 30 c0
     mov dx, 003c4h                            ; ba c4 03
@@ -4744,10 +4751,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 04 06
+    call 02f65h                               ; e8 04 06
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     inc cx                                    ; 41
-    jmp short 02956h                          ; eb 06
+    jmp short 0296fh                          ; eb 06
     cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
-    jnbe short 02972h                         ; 77 1c
+    jnbe short 0298bh                         ; 77 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, di                                ; 89 fa
@@ -4760,12 +4767,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 e0 05
+    call 02f65h                               ; e8 e0 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02950h                          ; eb de
+    jmp short 02969h                          ; eb de
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 0297fh                          ; eb 06
+    jmp short 02998h                          ; eb 06
     cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
-    jnbe short 029a8h                         ; 77 29
+    jnbe short 029c1h                         ; 77 29
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -4784,8 +4791,8 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 aa 05
+    call 02f65h                               ; e8 aa 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02979h                          ; eb d1
+    jmp short 02992h                          ; eb d1
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -4793,7 +4800,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 029bbh                          ; eb 06
+    jmp short 029d4h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnbe short 029d8h                         ; 77 1d
+    jnbe short 029f1h                         ; 77 1d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003ceh                            ; ba ce 03
@@ -4806,12 +4813,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 7a 05
+    call 02f65h                               ; e8 7a 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 029b5h                          ; eb dd
+    jmp short 029ceh                          ; eb dd
     mov bx, di                                ; 89 fb
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 87 05
+    call 02f81h                               ; e8 87 05
     inc cx                                    ; 41
     inc cx                                    ; 41
@@ -4819,180 +4826,180 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 60 05
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; 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
+    call 02f65h                               ; e8 42 05
     inc cx                                    ; 41
     test byte [bp-00ch], 002h                 ; f6 46 f4 02
-    je near 02b7ah                            ; 0f 84 67 01
+    je near 02b93h                            ; 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
+    call 02f57h                               ; e8 22 05
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 26 05
+    call 02f65h                               ; 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
+    call 02f73h                               ; e8 2a 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 2f 05
+    call 02f81h                               ; 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
+    call 02f73h                               ; e8 16 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 1b 05
+    call 02f81h                               ; 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
+    call 02f73h                               ; e8 02 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 07 05
+    call 02f81h                               ; 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
+    call 02f57h                               ; e8 d2 04
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 d6 04
+    call 02f65h                               ; 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
+    call 02f73h                               ; e8 da 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 df 04
+    call 02f81h                               ; 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
+    call 02f57h                               ; e8 aa 04
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 ae 04
+    call 02f65h                               ; 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
+    call 02f57h                               ; e8 96 04
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 9a 04
+    call 02f65h                               ; 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
+    call 02f57h                               ; e8 82 04
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 86 04
+    call 02f65h                               ; 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
+    call 02f73h                               ; e8 8a 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 8f 04
+    call 02f81h                               ; 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
+    jmp short 02b01h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnc short 02b06h                          ; 73 1e
+    jnc short 02b1fh                          ; 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
+    call 02f73h                               ; e8 64 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 69 04
+    call 02f81h                               ; e8 69 04
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02ae2h                          ; eb dc
+    jmp short 02afbh                          ; eb dc
     mov dx, strict word 0004eh                ; ba 4e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f5ah                               ; e8 4b 04
+    call 02f73h                               ; e8 4b 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 50 04
+    call 02f81h                               ; 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
+    call 02f57h                               ; e8 1b 04
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 1f 04
+    call 02f65h                               ; e8 1f 04
     inc cx                                    ; 41
     mov dx, strict word 0007ch                ; ba 7c 00
     xor ax, ax                                ; 31 c0
-    call 02f5ah                               ; e8 24 04
+    call 02f73h                               ; e8 24 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 29 04
+    call 02f81h                               ; 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
+    call 02f73h                               ; e8 11 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 16 04
+    call 02f81h                               ; 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
+    call 02f73h                               ; e8 fe 03
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 03 04
+    call 02f81h                               ; 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
+    call 02f73h                               ; e8 eb 03
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f68h                               ; e8 f0 03
+    call 02f81h                               ; e8 f0 03
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00ch], 004h                 ; f6 46 f4 04
-    je short 02be7h                           ; 74 67
+    je short 02c00h                           ; 74 67
     mov dx, 003c7h                            ; ba c7 03
     in AL, DX                                 ; ec
@@ -5002,5 +5009,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 bc 03
+    call 02f65h                               ; e8 bc 03
     inc cx                                    ; 41
     mov dx, 003c8h                            ; ba c8 03
@@ -5011,5 +5018,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 ab 03
+    call 02f65h                               ; e8 ab 03
     inc cx                                    ; 41
     mov dx, 003c6h                            ; ba c6 03
@@ -5020,5 +5027,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 9a 03
+    call 02f65h                               ; e8 9a 03
     inc cx                                    ; 41
     xor al, al                                ; 30 c0
@@ -5027,7 +5034,7 @@
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
-    jmp short 02bc7h                          ; eb 07
+    jmp short 02be0h                          ; eb 07
     cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
-    jnc short 02bddh                          ; 73 16
+    jnc short 02bf6h                          ; 73 16
     mov dx, 003c9h                            ; ba c9 03
     in AL, DX                                 ; ec
@@ -5037,12 +5044,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 75 03
+    call 02f65h                               ; e8 75 03
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02bc0h                          ; eb e3
+    jmp short 02bd9h                          ; eb e3
     xor bx, bx                                ; 31 db
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f4ch                               ; e8 66 03
+    call 02f65h                               ; e8 66 03
     inc cx                                    ; 41
     mov ax, cx                                ; 89 c8
@@ -5053,5 +5060,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_restore_video_state_:                 ; 0xc2bf1 LB 0x326
+biosfn_restore_video_state_:                 ; 0xc2c0a LB 0x326
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5064,5 +5071,5 @@
     mov cx, bx                                ; 89 d9
     test byte [bp-00eh], 001h                 ; f6 46 f2 01
-    je near 02d51h                            ; 0f 84 4a 01
+    je near 02d6ah                            ; 0f 84 4a 01
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5071,11 +5078,11 @@
     lea dx, [bx+040h]                         ; 8d 57 40
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 45 03
+    call 02f73h                               ; 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
+    jmp short 02c40h                          ; eb 06
     cmp word [bp-008h], strict byte 00004h    ; 83 7e f8 04
-    jnbe short 02c3fh                         ; 77 18
+    jnbe short 02c58h                         ; 77 18
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov dx, 003c4h                            ; ba c4 03
@@ -5083,10 +5090,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 09 03
+    call 02f57h                               ; 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
+    jmp short 02c3ah                          ; eb e2
     xor al, al                                ; 30 c0
     mov dx, 003c4h                            ; ba c4 03
@@ -5094,5 +5101,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 f2 02
+    call 02f57h                               ; e8 f2 02
     mov dx, 003c5h                            ; ba c5 03
     out DX, AL                                ; ee
@@ -5102,9 +5109,9 @@
     out DX, ax                                ; ef
     mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    jmp short 02c64h                          ; eb 06
+    jmp short 02c7dh                          ; eb 06
     cmp word [bp-008h], strict byte 00018h    ; 83 7e f8 18
-    jnbe short 02c81h                         ; 77 1d
+    jnbe short 02c9ah                         ; 77 1d
     cmp word [bp-008h], strict byte 00011h    ; 83 7e f8 11
-    je short 02c7bh                           ; 74 11
+    je short 02c94h                           ; 74 11
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov dx, di                                ; 89 fa
@@ -5112,10 +5119,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 c7 02
+    call 02f57h                               ; 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
+    jmp short 02c77h                          ; eb dd
     mov dx, 003cch                            ; ba cc 03
     in AL, DX                                 ; ec
@@ -5125,5 +5132,5 @@
     mov word [bp-00ah], ax                    ; 89 46 f6
     cmp di, 003d4h                            ; 81 ff d4 03
-    jne short 02c96h                          ; 75 04
+    jne short 02cafh                          ; 75 04
     or byte [bp-00ah], 001h                   ; 80 4e f6 01
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -5136,10 +5143,10 @@
     add dx, strict byte 0fff9h                ; 83 c2 f9
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 92 02
+    call 02f57h                               ; 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
+    call 02f57h                               ; e8 86 02
     xor ah, ah                                ; 30 e4
     mov word [bp-00ch], ax                    ; 89 46 f4
@@ -5149,7 +5156,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    jmp short 02cd0h                          ; eb 06
+    jmp short 02ce9h                          ; eb 06
     cmp word [bp-008h], strict byte 00013h    ; 83 7e f8 13
-    jnbe short 02ceeh                         ; 77 1e
+    jnbe short 02d07h                         ; 77 1e
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     and ax, strict word 00020h                ; 25 20 00
@@ -5159,10 +5166,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 5a 02
+    call 02f57h                               ; 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
+    jmp short 02ce3h                          ; eb dc
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     mov dx, 003c0h                            ; ba c0 03
@@ -5173,7 +5180,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-008h], strict word 00000h    ; c7 46 f8 00 00
-    jmp short 02d08h                          ; eb 06
+    jmp short 02d21h                          ; eb 06
     cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
-    jnbe short 02d20h                         ; 77 18
+    jnbe short 02d39h                         ; 77 18
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov dx, 003ceh                            ; ba ce 03
@@ -5181,14 +5188,14 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 28 02
+    call 02f57h                               ; 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
+    jmp short 02d1bh                          ; 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
+    call 02f57h                               ; e8 14 02
     mov dx, 003c4h                            ; ba c4 03
     out DX, AL                                ; ee
@@ -5196,5 +5203,5 @@
     mov dx, bx                                ; 89 da
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 08 02
+    call 02f57h                               ; e8 08 02
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -5202,106 +5209,106 @@
     mov dx, bx                                ; 89 da
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 fd 01
+    call 02f57h                               ; 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
+    call 02f57h                               ; 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
+    je near 02ed9h                            ; 0f 84 67 01
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 de 01
+    call 02f57h                               ; 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
+    call 02f65h                               ; e8 e0 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 e6 01
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 e9 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 d2 01
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 d5 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 be 01
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 c1 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 8e 01
+    call 02f57h                               ; 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
+    call 02f65h                               ; e8 90 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 96 01
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 99 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 66 01
+    call 02f57h                               ; 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
+    call 02f65h                               ; e8 68 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 52 01
+    call 02f57h                               ; 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
+    call 02f65h                               ; e8 54 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 3e 01
+    call 02f57h                               ; 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
+    call 02f65h                               ; e8 40 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 46 01
+    call 02f73h                               ; 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
+    call 02f81h                               ; 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
+    jmp short 02e47h                          ; eb 06
     cmp word [bp-008h], strict byte 00008h    ; 83 7e f8 08
-    jnc short 02e4ch                          ; 73 1e
+    jnc short 02e65h                          ; 73 1e
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 25 01
+    call 02f73h                               ; e8 25 01
     mov bx, ax                                ; 89 c3
     mov dx, word [bp-008h]                    ; 8b 56 f8
@@ -5309,68 +5316,68 @@
     add dx, strict byte 00050h                ; 83 c2 50
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f68h                               ; e8 23 01
+    call 02f81h                               ; e8 23 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc word [bp-008h]                        ; ff 46 f8
-    jmp short 02e28h                          ; eb dc
+    jmp short 02e41h                          ; eb dc
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 07 01
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 0a 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 d7 00
+    call 02f57h                               ; 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
+    call 02f65h                               ; e8 d9 00
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 df 00
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 e3 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 cc 00
+    call 02f73h                               ; 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
+    call 02f81h                               ; e8 d0 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 b9 00
+    call 02f73h                               ; e8 b9 00
     mov bx, ax                                ; 89 c3
     mov dx, 0010ch                            ; ba 0c 01
     xor ax, ax                                ; 31 c0
-    call 02f68h                               ; e8 bd 00
+    call 02f81h                               ; e8 bd 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f5ah                               ; e8 a6 00
+    call 02f73h                               ; e8 a6 00
     mov bx, ax                                ; 89 c3
     mov dx, 0010eh                            ; ba 0e 01
     xor ax, ax                                ; 31 c0
-    call 02f68h                               ; e8 aa 00
+    call 02f81h                               ; e8 aa 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00eh], 004h                 ; f6 46 f2 04
-    je short 02f0dh                           ; 74 47
+    je short 02f26h                           ; 74 47
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 70 00
+    call 02f57h                               ; e8 70 00
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
@@ -5378,5 +5385,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 63 00
+    call 02f57h                               ; e8 63 00
     mov dx, 003c6h                            ; ba c6 03
     out DX, AL                                ; ee
@@ -5387,15 +5394,15 @@
     xor ah, ah                                ; 30 e4
     mov word [bp-008h], ax                    ; 89 46 f8
-    jmp short 02ef4h                          ; eb 07
+    jmp short 02f0dh                          ; eb 07
     cmp word [bp-008h], 00300h                ; 81 7e f8 00 03
-    jnc short 02f05h                          ; 73 11
+    jnc short 02f1eh                          ; 73 11
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 43 00
+    call 02f57h                               ; 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
+    jmp short 02f06h                          ; eb e8
     inc cx                                    ; 41
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -5409,5 +5416,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-find_vga_entry_:                             ; 0xc2f17 LB 0x27
+find_vga_entry_:                             ; 0xc2f30 LB 0x27
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5417,13 +5424,13 @@
     mov AH, strict byte 0ffh                  ; b4 ff
     xor al, al                                ; 30 c0
-    jmp short 02f2ah                          ; eb 06
+    jmp short 02f43h                          ; eb 06
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     cmp AL, strict byte 00fh                  ; 3c 0f
-    jnbe short 02f38h                         ; 77 0e
+    jnbe short 02f51h                         ; 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
+    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
+    jne short 02f3dh                          ; 75 ee
     mov ah, al                                ; 88 c4
     mov al, ah                                ; 88 e0
@@ -5432,5 +5439,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-read_byte_:                                  ; 0xc2f3e LB 0xe
+read_byte_:                                  ; 0xc2f57 LB 0xe
     push bx                                   ; 53
     push bp                                   ; 55
@@ -5442,5 +5449,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_byte_:                                 ; 0xc2f4c LB 0xe
+write_byte_:                                 ; 0xc2f65 LB 0xe
     push si                                   ; 56
     push bp                                   ; 55
@@ -5452,5 +5459,5 @@
     pop si                                    ; 5e
     retn                                      ; c3
-read_word_:                                  ; 0xc2f5a LB 0xe
+read_word_:                                  ; 0xc2f73 LB 0xe
     push bx                                   ; 53
     push bp                                   ; 55
@@ -5462,5 +5469,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_word_:                                 ; 0xc2f68 LB 0xe
+write_word_:                                 ; 0xc2f81 LB 0xe
     push si                                   ; 56
     push bp                                   ; 55
@@ -5472,5 +5479,5 @@
     pop si                                    ; 5e
     retn                                      ; c3
-read_dword_:                                 ; 0xc2f76 LB 0x12
+read_dword_:                                 ; 0xc2f8f LB 0x12
     push bx                                   ; 53
     push bp                                   ; 55
@@ -5483,5 +5490,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_dword_:                                ; 0xc2f88 LB 0x96
+write_dword_:                                ; 0xc2fa1 LB 0x96
     push si                                   ; 56
     push bp                                   ; 55
@@ -5505,59 +5512,53 @@
     add ax, 00304h                            ; 05 04 03
     add al, byte [bx+di]                      ; 02 01
-    add cl, ah                                ; 00 e1
-    xor dx, word [bx+di+030h]                 ; 33 51 30
-    db  08fh, 030h
-    ; pop word [bx+si]                          ; 8f 30
-    mov word [0b430h], ax                     ; a3 30 b4
-    xor al, cl                                ; 30 c8
-    xor cl, bl                                ; 30 d9
-    xor bl, ah                                ; 30 e3
-    xor byte [di], bl                         ; 30 1d
-    xor word [bx+di], sp                      ; 31 21
-    xor word [bp+si], si                      ; 31 32
-    xor word [bx+031h], cx                    ; 31 4f 31
-    insb                                      ; 6c
-    xor word [bp+di-057cfh], cx               ; 31 8b 31 a8
-    xor word [bx-034cfh], di                  ; 31 bf 31 cb
-    xor word [bp+di-02aceh], bx               ; 31 9b 32 d5
-    xor cl, byte [bx+si]                      ; 32 08
-    xor bx, word [di]                         ; 33 1d
-    xor bx, word [bp+si+033h]                 ; 33 5a 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
-    loope 0301eh                              ; e1 33
-    jmp far 02132h:01031h                     ; ea 31 10 32 21
-    xor dh, byte [bp+si]                      ; 32 32
-    db  032h, 0eah
-    ; xor ch, dl                                ; 32 ea
-    xor word [bx+si], dx                      ; 31 10
+    add dl, bh                                ; 00 fa
+    xor bp, word [bp+si+030h]                 ; 33 6a 30
+    test AL, strict byte 030h                 ; a8 30
+    mov sp, 0cd30h                            ; bc 30 cd
+    xor cl, ah                                ; 30 e1
+    xor dl, dh                                ; 30 f2
+    xor ah, bh                                ; 30 fc
+    xor byte [03a31h], dh                     ; 30 36 31 3a
+    xor word [bp+di+031h], cx                 ; 31 4b 31
+    push 08531h                               ; 68 31 85
+    xor word [si-03ecfh], sp                  ; 31 a4 31 c1
+    xor ax, bx                                ; 31 d8
+    xor sp, sp                                ; 31 e4
+    xor word [si-011ceh], si                  ; 31 b4 32 ee
     xor ah, byte [bx+di]                      ; 32 21
-    xor dh, byte [bp+si]                      ; 32 32
-    xor al, byte [bp+di+032h]                 ; 32 43 32
-    dec di                                    ; 4f
-    xor ch, byte [bp+si+032h]                 ; 32 6a 32
-    jc short 03035h                           ; 72 32
-    jp short 03037h                           ; 7a 32
-    db  082h, 032h, 00ah
-    ; xor byte [bp+si], 00ah                    ; 82 32 0a
+    xor si, word [07333h]                     ; 33 36 33 73
+    xor si, word [bx+si]                      ; 33 30
+    and AL, strict byte 023h                  ; 24 23
+    and ah, byte [bx+di]                      ; 22 21
+    and byte [si], dl                         ; 20 14
+    adc dl, byte [bx+di]                      ; 12 11
+    adc byte [si], al                         ; 10 04
+    add al, byte [bx+di]                      ; 02 01
+    add dl, bh                                ; 00 fa
+    xor ax, word [bp+di]                      ; 33 03
+    xor ch, byte [bx+di]                      ; 32 29
+    xor bh, byte [bp+si]                      ; 32 3a
+    xor cl, byte [bp+di+032h]                 ; 32 4b 32
+    add si, word [bp+si]                      ; 03 32
+    sub word [bp+si], si                      ; 29 32
+    cmp dh, byte [bp+si]                      ; 3a 32
+    dec bx                                    ; 4b
+    xor bl, byte [si+032h]                    ; 32 5c 32
+    push 08332h                               ; 68 32 83
+    xor cl, byte [bp+di-06cceh]               ; 32 8b 32 93
+    xor bl, byte [bp+di+00a32h]               ; 32 9b 32 0a
     or word [00204h], ax                      ; 09 06 04 02
     add word [bx+si], ax                      ; 01 00
-    aad 033h                                  ; d5 33
-    db  082h, 033h, 08fh
-    ; xor byte [bp+di], 08fh                    ; 82 33 8f
-    xor bx, word [bx-050cdh]                  ; 33 9f 33 af
-    db  033h, 0c4h
-    ; xor ax, sp                                ; 33 c4
-    db  033h, 0d5h
-    ; xor dx, bp                                ; 33 d5
-    db  033h, 0d5h
-    ; xor dx, bp                                ; 33 d5
+    out DX, AL                                ; ee
+    xor bx, word [bp+di-057cdh]               ; 33 9b 33 a8
+    xor di, word [bx+si-037cdh]               ; 33 b8 33 c8
+    db  033h, 0ddh
+    ; xor bx, bp                                ; 33 dd
+    db  033h, 0eeh
+    ; xor bp, si                                ; 33 ee
+    db  033h, 0eeh
+    ; xor bp, si                                ; 33 ee
     db  033h
-_int10_func:                                 ; 0xc301e LB 0x3ca
+_int10_func:                                 ; 0xc3037 LB 0x3ca
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5569,13 +5570,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    jnbe near 033e1h                          ; 0f 87 ad 03
+    jnbe near 033fah                          ; 0f 87 ad 03
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00016h                ; b9 16 00
-    mov di, 02f9ah                            ; bf 9a 2f
+    mov di, 02fb3h                            ; bf b3 2f
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov bx, word [cs:di+02fafh]               ; 2e 8b 9d af 2f
+    mov bx, word [cs:di+02fc8h]               ; 2e 8b 9d c8 2f
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -5584,27 +5585,27 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 00fdch                               ; e8 83 df
+    call 00fdch                               ; e8 6a 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 03079h                           ; 74 15
+    je short 03092h                           ; 74 15
     cmp ax, strict word 00006h                ; 3d 06 00
-    je short 03070h                           ; 74 07
+    je short 03089h                           ; 74 07
     cmp ax, strict word 00005h                ; 3d 05 00
-    jbe short 03079h                          ; 76 0b
-    jmp short 03082h                          ; eb 12
+    jbe short 03092h                          ; 76 0b
+    jmp short 0309bh                          ; eb 12
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 03fh                   ; 0c 3f
-    jmp short 03089h                          ; eb 10
+    jmp short 030a2h                          ; eb 10
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp short 03089h                          ; eb 07
+    jmp short 030a2h                          ; 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 033e1h                           ; e9 52 03
+    jmp near 033fah                           ; e9 52 03
     mov al, byte [bp+010h]                    ; 8a 46 10
     movzx dx, al                              ; 0f b6 d0
@@ -5612,12 +5613,12 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 00dbah                               ; e8 1a dd
-    jmp near 033e1h                           ; e9 3e 03
+    call 00dbah                               ; e8 01 dd
+    jmp near 033fah                           ; e9 3e 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 ad dd
-    jmp near 033e1h                           ; e9 2d 03
+    call 00e5eh                               ; e8 94 dd
+    jmp near 033fah                           ; e9 2d 03
     lea bx, [bp+00eh]                         ; 8d 5e 0e
     lea dx, [bp+010h]                         ; 8d 56 10
@@ -5625,6 +5626,6 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 00a88h                               ; e8 c3 d9
-    jmp near 033e1h                           ; e9 19 03
+    call 00a88h                               ; e8 aa d9
+    jmp near 033fah                           ; e9 19 03
     xor al, al                                ; 30 c0
     mov word [bp+012h], ax                    ; 89 46 12
@@ -5632,9 +5633,9 @@
     mov word [bp+010h], ax                    ; 89 46 10
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp near 033e1h                           ; e9 08 03
+    jmp near 033fah                           ; e9 08 03
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 00f00h                               ; e8 20 de
-    jmp near 033e1h                           ; e9 fe 02
+    call 00f00h                               ; e8 07 de
+    jmp near 033fah                           ; e9 fe 02
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -5658,14 +5659,14 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 01572h                               ; e8 58 e4
-    jmp near 033e1h                           ; e9 c4 02
+    call 0158bh                               ; e8 58 e4
+    jmp near 033fah                           ; e9 c4 02
     xor al, al                                ; 30 c0
-    jmp short 030e6h                          ; eb c5
+    jmp short 030ffh                          ; 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 9c d9
-    jmp near 033e1h                           ; e9 af 02
+    call 00acbh                               ; e8 83 d9
+    jmp near 033fah                           ; e9 af 02
     mov cx, word [bp+010h]                    ; 8b 4e 10
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -5676,6 +5677,6 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 01d12h                               ; e8 c6 eb
-    jmp near 033e1h                           ; e9 92 02
+    call 01d2bh                               ; e8 c6 eb
+    jmp near 033fah                           ; e9 92 02
     mov cx, word [bp+010h]                    ; 8b 4e 10
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -5686,6 +5687,6 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 01e7ah                               ; e8 11 ed
-    jmp near 033e1h                           ; e9 75 02
+    call 01e93h                               ; e8 11 ed
+    jmp near 033fah                           ; e9 75 02
     mov cx, word [bp+00eh]                    ; 8b 4e 0e
     mov bx, word [bp+010h]                    ; 8b 5e 10
@@ -5697,6 +5698,6 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 01fe9h                               ; e8 61 ee
-    jmp near 033e1h                           ; e9 56 02
+    call 02002h                               ; e8 61 ee
+    jmp near 033fah                           ; e9 56 02
     lea cx, [bp+012h]                         ; 8d 4e 12
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
@@ -5707,6 +5708,6 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 00bf5h                               ; e8 50 da
-    jmp near 033e1h                           ; e9 39 02
+    call 00bf5h                               ; e8 37 da
+    jmp near 033fah                           ; e9 39 02
     mov cx, strict word 00002h                ; b9 02 00
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -5715,20 +5716,20 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 02153h                               ; e8 97 ef
-    jmp near 033e1h                           ; e9 22 02
+    call 0216ch                               ; e8 97 ef
+    jmp near 033fah                           ; e9 22 02
     mov dx, word [bp+010h]                    ; 8b 56 10
     mov ax, word [bp+00ch]                    ; 8b 46 0c
-    call 00d2eh                               ; e8 66 db
-    jmp near 033e1h                           ; e9 16 02
+    call 00d2eh                               ; e8 4d db
+    jmp near 033fah                           ; e9 16 02
     cmp ax, strict word 00030h                ; 3d 30 00
-    jnbe near 033e1h                          ; 0f 87 0f 02
+    jnbe near 033fah                          ; 0f 87 0f 02
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000fh                ; b9 0f 00
-    mov di, 02fdbh                            ; bf db 2f
+    mov di, 02ff4h                            ; bf f4 2f
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov dx, word [cs:di+02fe9h]               ; 2e 8b 95 e9 2f
+    mov dx, word [cs:di+03002h]               ; 2e 8b 95 02 30
     mov al, byte [bp+00ch]                    ; 8a 46 0c
     jmp dx                                    ; ff e2
@@ -5746,28 +5747,28 @@
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov dx, word [bp+016h]                    ; 8b 56 16
-    call 024bbh                               ; e8 ae f2
-    jmp near 033e1h                           ; e9 d1 01
+    call 024d4h                               ; e8 ae f2
+    jmp near 033fah                           ; e9 d1 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 1a f3
-    jmp near 033e1h                           ; e9 c0 01
+    call 02551h                               ; e8 1a f3
+    jmp near 033fah                           ; e9 c0 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 79 f3
-    jmp near 033e1h                           ; e9 af 01
+    call 025c1h                               ; e8 79 f3
+    jmp near 033fah                           ; e9 af 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 da f3
-    jmp near 033e1h                           ; e9 9e 01
+    call 02633h                               ; e8 da f3
+    jmp near 033fah                           ; e9 9e 01
     mov dx, word [bp+008h]                    ; 8b 56 08
     mov ax, word [bp+016h]                    ; 8b 46 16
-    call 0268ch                               ; e8 40 f4
-    jmp near 033e1h                           ; e9 92 01
+    call 026a5h                               ; e8 40 f4
+    jmp near 033fah                           ; e9 92 01
     mov al, byte [bp+00eh]                    ; 8a 46 0e
     xor ah, ah                                ; 30 e4
@@ -5778,15 +5779,15 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     mov ax, word [bp+016h]                    ; 8b 46 16
-    call 02691h                               ; e8 2a f4
-    jmp near 033e1h                           ; e9 77 01
+    call 026aah                               ; e8 2a f4
+    jmp near 033fah                           ; e9 77 01
     xor ah, ah                                ; 30 e4
-    call 02698h                               ; e8 29 f4
-    jmp near 033e1h                           ; e9 6f 01
+    call 026b1h                               ; e8 29 f4
+    jmp near 033fah                           ; e9 6f 01
     xor ah, ah                                ; 30 e4
-    call 0269dh                               ; e8 26 f4
-    jmp near 033e1h                           ; e9 67 01
+    call 026b6h                               ; e8 26 f4
+    jmp near 033fah                           ; e9 67 01
     xor ah, ah                                ; 30 e4
-    call 026a2h                               ; e8 23 f4
-    jmp near 033e1h                           ; e9 5f 01
+    call 026bbh                               ; e8 23 f4
+    jmp near 033fah                           ; e9 5f 01
     lea ax, [bp+00eh]                         ; 8d 46 0e
     push ax                                   ; 50
@@ -5796,27 +5797,27 @@
     lea bx, [bp+008h]                         ; 8d 5e 08
     lea dx, [bp+016h]                         ; 8d 56 16
-    call 00b73h                               ; e8 db d8
-    jmp near 033e1h                           ; e9 46 01
+    call 00b73h                               ; e8 c2 d8
+    jmp near 033fah                           ; e9 46 01
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00036h                ; 3d 36 00
-    je short 032cdh                           ; 74 28
+    je short 032e6h                           ; 74 28
     cmp ax, strict word 00035h                ; 3d 35 00
-    je short 032b7h                           ; 74 0d
+    je short 032d0h                           ; 74 0d
     cmp ax, strict word 00020h                ; 3d 20 00
-    jne near 033e1h                           ; 0f 85 30 01
-    call 026a7h                               ; e8 f3 f3
-    jmp near 033e1h                           ; e9 2a 01
+    jne near 033fah                           ; 0f 85 30 01
+    call 026c0h                               ; e8 f3 f3
+    jmp near 033fah                           ; e9 2a 01
     movzx ax, dl                              ; 0f b6 c2
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, word [bp+016h]                    ; 8b 56 16
-    call 026ach                               ; e8 e9 f3
+    call 026c5h                               ; e8 e9 f3
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 012h                   ; 0c 12
-    jmp near 03089h                           ; e9 bc fd
+    jmp near 030a2h                           ; e9 bc fd
     movzx ax, dl                              ; 0f b6 c2
-    call 026b1h                               ; e8 de f3
-    jmp short 032c3h                          ; eb ee
+    call 026cah                               ; e8 de f3
+    jmp short 032dch                          ; eb ee
     push word [bp+008h]                       ; ff 76 08
     push word [bp+016h]                       ; ff 76 16
@@ -5837,70 +5838,70 @@
     mov dx, ax                                ; 89 c2
     mov ax, si                                ; 89 f0
-    call 026b6h                               ; e8 b1 f3
-    jmp near 033e1h                           ; e9 d9 00
+    call 026cfh                               ; e8 b1 f3
+    jmp near 033fah                           ; e9 d9 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 3f f4
+    call 0276bh                               ; e8 3f f4
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 01bh                   ; 0c 1b
-    jmp near 03089h                           ; e9 6c fd
+    jmp near 030a2h                           ; e9 6c fd
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 03344h                           ; 74 22
+    je short 0335dh                           ; 74 22
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03336h                           ; 74 0f
+    je short 0334fh                           ; 74 0f
     test ax, ax                               ; 85 c0
-    jne short 03350h                          ; 75 25
+    jne short 03369h                          ; 75 25
     lea dx, [bp+00ch]                         ; 8d 56 0c
     mov ax, word [bp+010h]                    ; 8b 46 10
-    call 02876h                               ; e8 42 f5
-    jmp short 03350h                          ; eb 1a
+    call 0288fh                               ; e8 42 f5
+    jmp short 03369h                          ; 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 46 f5
-    jmp short 03350h                          ; eb 0c
+    call 028a1h                               ; e8 46 f5
+    jmp short 03369h                          ; 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 a1 f8
+    call 02c0ah                               ; e8 a1 f8
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 01ch                   ; 0c 1c
-    jmp near 03089h                           ; e9 2f fd
-    call 007bfh                               ; e8 62 d4
+    jmp near 030a2h                           ; e9 2f fd
+    call 007bfh                               ; e8 49 d4
     test ax, ax                               ; 85 c0
-    je near 033dch                            ; 0f 84 79 00
+    je near 033f5h                            ; 0f 84 79 00
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000ah                ; 3d 0a 00
-    jnbe short 033d5h                         ; 77 68
+    jnbe short 033eeh                         ; 77 68
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 03007h                            ; bf 07 30
+    mov di, 03020h                            ; bf 20 30
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0300eh]               ; 2e 8b 85 0e 30
+    mov ax, word [cs:di+03027h]               ; 2e 8b 85 27 30
     jmp ax                                    ; ff e0
     mov bx, si                                ; 89 f3
     mov dx, word [bp+016h]                    ; 8b 56 16
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 03584h                               ; e8 f7 01
-    jmp short 033e1h                          ; eb 52
+    call 035b6h                               ; e8 10 02
+    jmp short 033fah                          ; eb 52
     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 036adh                               ; e8 10 03
-    jmp short 033e1h                          ; eb 42
+    call 036dfh                               ; e8 29 03
+    jmp short 033fah                          ; eb 42
     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 03765h                               ; e8 b8 03
-    jmp short 033e1h                          ; eb 32
+    call 03797h                               ; e8 d1 03
+    jmp short 033fah                          ; eb 32
     lea ax, [bp+00ch]                         ; 8d 46 0c
     push ax                                   ; 50
@@ -5909,14 +5910,14 @@
     mov dx, word [bp+010h]                    ; 8b 56 10
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 0394ch                               ; e8 8a 05
-    jmp short 033e1h                          ; eb 1d
+    call 0397eh                               ; e8 a3 05
+    jmp short 033fah                          ; eb 1d
     lea cx, [bp+00eh]                         ; 8d 4e 0e
     lea bx, [bp+010h]                         ; 8d 5e 10
     lea dx, [bp+00ch]                         ; 8d 56 0c
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 039d8h                               ; e8 05 06
-    jmp short 033e1h                          ; eb 0c
+    call 03a0ah                               ; e8 1e 06
+    jmp short 033fah                          ; eb 0c
     mov word [bp+012h], 00100h                ; c7 46 12 00 01
-    jmp short 033e1h                          ; eb 05
+    jmp short 033fah                          ; eb 05
     mov word [bp+012h], 00100h                ; c7 46 12 00 01
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5925,5 +5926,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_xres_:                             ; 0xc33e8 LB 0x1f
+dispi_set_xres_:                             ; 0xc3401 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5933,8 +5934,8 @@
     mov ax, strict word 00001h                ; b8 01 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 78 d1
+    call 00570h                               ; e8 5f d1
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 70 d1
+    call 00570h                               ; e8 57 d1
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -5942,5 +5943,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_yres_:                             ; 0xc3407 LB 0x1f
+dispi_set_yres_:                             ; 0xc3420 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5950,8 +5951,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 59 d1
+    call 00570h                               ; e8 40 d1
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 51 d1
+    call 00570h                               ; e8 38 d1
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -5959,5 +5960,18 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_bpp_:                              ; 0xc3426 LB 0x1f
+dispi_get_yres_:                             ; 0xc343f LB 0x19
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00570h                               ; e8 24 d1
+    mov dx, 001cfh                            ; ba cf 01
+    call 00577h                               ; e8 25 d1
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_bpp_:                              ; 0xc3458 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5967,8 +5981,8 @@
     mov ax, strict word 00003h                ; b8 03 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 3a d1
+    call 00570h                               ; e8 08 d1
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 32 d1
+    call 00570h                               ; e8 00 d1
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -5976,5 +5990,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_bpp_:                              ; 0xc3445 LB 0x19
+dispi_get_bpp_:                              ; 0xc3477 LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5982,12 +5996,12 @@
     mov ax, strict word 00003h                ; b8 03 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 1e d1
+    call 00570h                               ; e8 ec d0
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 1f d1
+    call 00577h                               ; e8 ed d0
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_virt_width_:                       ; 0xc345e LB 0x1f
+dispi_set_virt_width_:                       ; 0xc3490 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5997,8 +6011,8 @@
     mov ax, strict word 00006h                ; b8 06 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 02 d1
+    call 00570h                               ; e8 d0 d0
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00570h                               ; e8 fa d0
+    call 00570h                               ; e8 c8 d0
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6006,5 +6020,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_virt_width_:                       ; 0xc347d LB 0x19
+dispi_get_virt_width_:                       ; 0xc34af LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6012,12 +6026,12 @@
     mov ax, strict word 00006h                ; b8 06 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 e6 d0
+    call 00570h                               ; e8 b4 d0
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 e7 d0
+    call 00577h                               ; e8 b5 d0
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_virt_height_:                      ; 0xc3496 LB 0x19
+dispi_get_virt_height_:                      ; 0xc34c8 LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6025,12 +6039,12 @@
     mov ax, strict word 00007h                ; b8 07 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 cd d0
+    call 00570h                               ; e8 9b d0
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 ce d0
+    call 00577h                               ; e8 9c d0
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-in_word_:                                    ; 0xc34af LB 0x12
+in_word_:                                    ; 0xc34e1 LB 0x12
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6045,5 +6059,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-in_byte_:                                    ; 0xc34c1 LB 0x14
+in_byte_:                                    ; 0xc34f3 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6060,5 +6074,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_id_:                               ; 0xc34d5 LB 0x14
+dispi_get_id_:                               ; 0xc3507 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6073,5 +6087,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_id_:                               ; 0xc34e9 LB 0x1a
+dispi_set_id_:                               ; 0xc351b LB 0x1a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6090,5 +6104,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_init_:                                   ; 0xc3503 LB 0x2c
+vbe_init_:                                   ; 0xc3535 LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6096,14 +6110,14 @@
     push dx                                   ; 52
     mov ax, 0b0c0h                            ; b8 c0 b0
-    call 034e9h                               ; e8 db ff
-    call 034d5h                               ; e8 c4 ff
+    call 0351bh                               ; e8 db ff
+    call 03507h                               ; e8 c4 ff
     cmp ax, 0b0c0h                            ; 3d c0 b0
-    jne short 03528h                          ; 75 12
+    jne short 0355ah                          ; 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 2a fa
+    call 02f65h                               ; e8 11 fa
     mov ax, 0b0c4h                            ; b8 c4 b0
-    call 034e9h                               ; e8 c1 ff
+    call 0351bh                               ; e8 c1 ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6111,5 +6125,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-mode_info_find_mode_:                        ; 0xc352f LB 0x55
+mode_info_find_mode_:                        ; 0xc3561 LB 0x55
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6122,28 +6136,28 @@
     xor dx, dx                                ; 31 d2
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 6d ff
+    call 034e1h                               ; e8 6d ff
     cmp ax, 077cch                            ; 3d cc 77
-    jne short 03579h                          ; 75 32
+    jne short 035abh                          ; 75 32
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, bx                                ; 89 da
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 5d ff
+    call 034e1h                               ; e8 5d ff
     mov cx, ax                                ; 89 c1
     cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 03579h                           ; 74 20
+    je short 035abh                           ; 74 20
     lea dx, [bx+002h]                         ; 8d 57 02
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 4d ff
+    call 034e1h                               ; e8 4d ff
     lea dx, [bx+044h]                         ; 8d 57 44
     cmp cx, di                                ; 39 f9
-    jne short 03575h                          ; 75 0c
+    jne short 035a7h                          ; 75 0c
     test si, si                               ; 85 f6
-    jne short 03571h                          ; 75 04
+    jne short 035a3h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 0357bh                          ; eb 0a
+    jmp short 035adh                          ; eb 0a
     test AL, strict byte 080h                 ; a8 80
-    jne short 0356dh                          ; 75 f8
+    jne short 0359fh                          ; 75 f8
     mov bx, dx                                ; 89 d3
-    jmp short 0354ch                          ; eb d3
+    jmp short 0357eh                          ; eb d3
     xor ax, ax                                ; 31 c0
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -6154,5 +6168,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_return_controller_information_: ; 0xc3584 LB 0x129
+vbe_biosfn_return_controller_information_: ; 0xc35b6 LB 0x129
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6165,5 +6179,5 @@
     mov word [bp-00ah], bx                    ; 89 5e f6
     mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
-    call 005b7h                               ; e8 1b d0
+    call 005b7h                               ; e8 e9 cf
     mov word [bp-010h], ax                    ; 89 46 f0
     mov bx, word [bp-00ah]                    ; 8b 5e f6
@@ -6171,22 +6185,22 @@
     xor dx, dx                                ; 31 d2
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 02 ff
+    call 034e1h                               ; e8 02 ff
     cmp ax, 077cch                            ; 3d cc 77
-    je short 035bch                           ; 74 0a
+    je short 035eeh                           ; 74 0a
     push SS                                   ; 16
     pop ES                                    ; 07
     mov word [es:si], 00100h                  ; 26 c7 04 00 01
-    jmp near 036a5h                           ; e9 e9 00
+    jmp near 036d7h                           ; 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 035d6h                          ; 75 07
+    jne short 03608h                          ; 75 07
     cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
-    je short 035e5h                           ; 74 0f
+    je short 03617h                           ; 74 0f
     cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
-    jne short 035eah                          ; 75 0c
+    jne short 0361ch                          ; 75 0c
     cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
-    jne short 035eah                          ; 75 05
+    jne short 0361ch                          ; 75 05
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
     mov es, [bp-008h]                         ; 8e 46 f8
@@ -6194,5 +6208,5 @@
     ; 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 word [es:bx+006h], 07c6ch             ; 26 c7 47 06 6c 7c
     mov [es:bx+008h], ds                      ; 26 8c 5f 08
     db  066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 000h
@@ -6204,43 +6218,43 @@
     mov dx, strict word 0ffffh                ; ba ff ff
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 8a fe
+    call 034e1h                               ; 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 03656h                           ; 74 24
+    je short 03688h                           ; 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 word [es:bx+016h], 07c81h             ; 26 c7 47 16 81 7c
     mov [es:bx+018h], ds                      ; 26 8c 5f 18
-    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
+    mov word [es:bx+01ah], 07c94h             ; 26 c7 47 1a 94 7c
     mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
-    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
+    mov word [es:bx+01eh], 07cb5h             ; 26 c7 47 1e b5 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 034c1h                               ; e8 60 fe
+    call 034f3h                               ; e8 60 fe
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jnbe short 03681h                         ; 77 19
+    jnbe short 036b3h                         ; 77 19
     mov dx, cx                                ; 89 ca
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 3f fe
+    call 034e1h                               ; 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 eb f8
+    call 02f81h                               ; e8 d2 f8
     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 034afh                               ; e8 23 fe
+    call 034e1h                               ; e8 23 fe
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 03656h                          ; 75 c3
+    jne short 03688h                          ; 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 ca f8
+    call 02f81h                               ; e8 b1 f8
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -6252,5 +6266,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_return_mode_information_:         ; 0xc36ad LB 0xb8
+vbe_biosfn_return_mode_information_:         ; 0xc36df LB 0xb8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6268,8 +6282,8 @@
     xor dh, dh                                ; 30 f6
     and ah, 001h                              ; 80 e4 01
-    call 0352fh                               ; e8 65 fe
+    call 03561h                               ; e8 65 fe
     mov word [bp-008h], ax                    ; 89 46 f8
     test ax, ax                               ; 85 c0
-    je near 03753h                            ; 0f 84 80 00
+    je near 03785h                            ; 0f 84 80 00
     mov cx, 00100h                            ; b9 00 01
     xor ax, ax                                ; 31 c0
@@ -6277,10 +6291,10 @@
     mov es, bx                                ; 8e c3
     cld                                       ; fc
-    jcxz 036e2h                               ; e3 02
+    jcxz 03714h                               ; e3 02
     rep stosb                                 ; f3 aa
     xor cx, cx                                ; 31 c9
-    jmp short 036ebh                          ; eb 05
+    jmp short 0371dh                          ; eb 05
     cmp cx, strict byte 00042h                ; 83 f9 42
-    jnc short 03708h                          ; 73 1d
+    jnc short 0373ah                          ; 73 1d
     mov dx, word [bp-008h]                    ; 8b 56 f8
     inc dx                                    ; 42
@@ -6288,41 +6302,41 @@
     add dx, cx                                ; 01 ca
     mov ax, 003b6h                            ; b8 b6 03
-    call 034c1h                               ; e8 c9 fd
+    call 034f3h                               ; 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 47 f8
-    inc cx                                    ; 41
-    jmp short 036e6h                          ; eb de
+    call 02f65h                               ; e8 2e f8
+    inc cx                                    ; 41
+    jmp short 03718h                          ; eb de
     mov dx, word [bp-006h]                    ; 8b 56 fa
     inc dx                                    ; 42
     inc dx                                    ; 42
     mov ax, si                                ; 89 f0
-    call 02f3eh                               ; e8 2c f8
+    call 02f57h                               ; e8 13 f8
     test AL, strict byte 001h                 ; a8 01
-    je short 03732h                           ; 74 1c
+    je short 03764h                           ; 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 44 f8
+    call 02f81h                               ; e8 2b 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 36 f8
+    call 02f81h                               ; e8 1d f8
     mov ax, strict word 0000bh                ; b8 0b 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00570h                               ; e8 35 ce
+    call 00570h                               ; e8 03 ce
     mov dx, 001cfh                            ; ba cf 01
-    call 00577h                               ; e8 36 ce
+    call 00577h                               ; e8 04 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 1a f8
+    call 02f81h                               ; e8 01 f8
     mov ax, strict word 0004fh                ; b8 4f 00
-    jmp short 03756h                          ; eb 03
+    jmp short 03788h                          ; eb 03
     mov ax, 00100h                            ; b8 00 01
     push SS                                   ; 16
@@ -6335,5 +6349,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_set_mode_:                        ; 0xc3765 LB 0xe9
+vbe_biosfn_set_mode_:                        ; 0xc3797 LB 0xe9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6349,55 +6363,55 @@
     mov ax, dx                                ; 89 d0
     test dx, dx                               ; 85 d2
-    je short 03785h                           ; 74 03
+    je short 037b7h                           ; 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 03793h                           ; 74 05
+    je short 037c5h                           ; 74 05
     mov dx, 00080h                            ; ba 80 00
-    jmp short 03795h                          ; eb 02
+    jmp short 037c7h                          ; 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 037b5h                          ; 73 12
+    jnc short 037e7h                          ; 73 12
     xor ax, ax                                ; 31 c0
-    call 005ddh                               ; e8 35 ce
+    call 005ddh                               ; e8 03 ce
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 00fdch                               ; e8 2d d8
+    call 00fdch                               ; e8 fb d7
     mov ax, strict word 0004fh                ; b8 4f 00
-    jmp near 03844h                           ; e9 8f 00
+    jmp near 03876h                           ; e9 8f 00
     mov dx, ax                                ; 89 c2
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 0352fh                               ; e8 72 fd
+    call 03561h                               ; e8 72 fd
     mov bx, ax                                ; 89 c3
     test ax, ax                               ; 85 c0
-    je near 03841h                            ; 0f 84 7c 00
+    je near 03873h                            ; 0f 84 7c 00
     lea dx, [bx+014h]                         ; 8d 57 14
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 e1 fc
+    call 034e1h                               ; e8 e1 fc
     mov cx, ax                                ; 89 c1
     lea dx, [bx+016h]                         ; 8d 57 16
     mov ax, 003b6h                            ; b8 b6 03
-    call 034afh                               ; e8 d6 fc
+    call 034e1h                               ; e8 d6 fc
     mov di, ax                                ; 89 c7
     lea dx, [bx+01bh]                         ; 8d 57 1b
     mov ax, 003b6h                            ; b8 b6 03
-    call 034c1h                               ; e8 dd fc
+    call 034f3h                               ; e8 dd fc
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    call 005ddh                               ; e8 f0 cd
+    call 005ddh                               ; e8 be cd
     cmp bl, 004h                              ; 80 fb 04
-    jne short 037f8h                          ; 75 06
+    jne short 0382ah                          ; 75 06
     mov ax, strict word 0006ah                ; b8 6a 00
-    call 00fdch                               ; e8 e4 d7
+    call 00fdch                               ; e8 b2 d7
     movzx ax, dl                              ; 0f b6 c2
-    call 03426h                               ; e8 28 fc
+    call 03458h                               ; e8 28 fc
     mov ax, cx                                ; 89 c8
-    call 033e8h                               ; e8 e5 fb
+    call 03401h                               ; e8 cc fb
     mov ax, di                                ; 89 f8
-    call 03407h                               ; e8 ff fb
+    call 03420h                               ; e8 e6 fb
     xor ax, ax                                ; 31 c0
-    call 00603h                               ; e8 f6 cd
+    call 00603h                               ; e8 c4 cd
     mov al, byte [bp-008h]                    ; 8a 46 f8
     or AL, strict byte 001h                   ; 0c 01
@@ -6405,10 +6419,10 @@
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     or ax, dx                                 ; 09 d0
-    call 005ddh                               ; e8 bf cd
-    call 006d2h                               ; e8 b1 ce
+    call 005ddh                               ; e8 8d cd
+    call 006d2h                               ; e8 7f ce
     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 3b f7
+    call 02f81h                               ; e8 22 f7
     mov al, byte [bp-008h]                    ; 8a 46 f8
     or AL, strict byte 060h                   ; 0c 60
@@ -6416,6 +6430,6 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 02f4ch                               ; e8 0e f7
-    jmp near 037afh                           ; e9 6e ff
+    call 02f65h                               ; e8 f5 f6
+    jmp near 037e1h                           ; e9 6e ff
     mov ax, 00100h                            ; b8 00 01
     mov word [ss:si], ax                      ; 36 89 04
@@ -6425,5 +6439,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_read_video_state_size_:           ; 0xc384e LB 0x8
+vbe_biosfn_read_video_state_size_:           ; 0xc3880 LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6431,5 +6445,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_save_video_state_:                ; 0xc3856 LB 0x5b
+vbe_biosfn_save_video_state_:                ; 0xc3888 LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6450,15 +6464,15 @@
     mov dx, cx                                ; 89 ca
     mov ax, di                                ; 89 f8
-    call 02f68h                               ; e8 ef f6
+    call 02f81h                               ; e8 d6 f6
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 038a8h                           ; 74 27
+    je short 038dah                           ; 74 27
     mov si, strict word 00001h                ; be 01 00
-    jmp short 0388bh                          ; eb 05
+    jmp short 038bdh                          ; eb 05
     cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 038a8h                         ; 77 1d
+    jnbe short 038dah                         ; 77 1d
     cmp si, strict byte 00004h                ; 83 fe 04
-    je short 038a5h                           ; 74 15
+    je short 038d7h                           ; 74 15
     mov ax, si                                ; 89 f0
     mov dx, 001ceh                            ; ba ce 01
@@ -6469,9 +6483,9 @@
     mov dx, cx                                ; 89 ca
     mov ax, di                                ; 89 f8
-    call 02f68h                               ; e8 c5 f6
+    call 02f81h                               ; e8 ac f6
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc si                                    ; 46
-    jmp short 03886h                          ; eb de
+    jmp short 038b8h                          ; eb de
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -6481,5 +6495,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_restore_video_state_:             ; 0xc38b1 LB 0x9b
+vbe_biosfn_restore_video_state_:             ; 0xc38e3 LB 0x9b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6490,10 +6504,10 @@
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
-    call 02f5ah                               ; e8 9b f6
+    call 02f73h                               ; e8 82 f6
     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 038dah                          ; 75 10
+    jne short 0390ch                          ; 75 10
     mov ax, strict word 00004h                ; b8 04 00
     mov dx, 001ceh                            ; ba ce 01
@@ -6502,5 +6516,5 @@
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
-    jmp short 03944h                          ; eb 6a
+    jmp short 03976h                          ; eb 6a
     mov ax, strict word 00001h                ; b8 01 00
     mov dx, 001ceh                            ; ba ce 01
@@ -6508,5 +6522,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 72 f6
+    call 02f73h                               ; e8 59 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -6518,5 +6532,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 5e f6
+    call 02f73h                               ; e8 45 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -6528,5 +6542,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 4a f6
+    call 02f73h                               ; e8 31 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -6540,7 +6554,7 @@
     out DX, ax                                ; ef
     mov si, strict word 00005h                ; be 05 00
-    jmp short 0392eh                          ; eb 05
+    jmp short 03960h                          ; eb 05
     cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 03944h                         ; 77 16
+    jnbe short 03976h                         ; 77 16
     mov ax, si                                ; 89 f0
     mov dx, 001ceh                            ; ba ce 01
@@ -6548,5 +6562,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 02f5ah                               ; e8 1f f6
+    call 02f73h                               ; e8 06 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -6554,5 +6568,5 @@
     inc bx                                    ; 43
     inc si                                    ; 46
-    jmp short 03929h                          ; eb e5
+    jmp short 0395bh                          ; eb e5
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
@@ -6561,5 +6575,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_save_restore_state_:              ; 0xc394c LB 0x8c
+vbe_biosfn_save_restore_state_:              ; 0xc397e LB 0x8c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6574,15 +6588,15 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 039abh                           ; 74 45
+    je short 039ddh                           ; 74 45
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 0398fh                           ; 74 24
+    je short 039c1h                           ; 74 24
     test ax, ax                               ; 85 c0
-    jne short 039c7h                          ; 75 58
+    jne short 039f9h                          ; 75 58
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02853h                               ; e8 de ee
+    call 0286ch                               ; e8 c5 ee
     mov cx, ax                                ; 89 c1
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03982h                           ; 74 05
-    call 0384eh                               ; e8 ce fe
+    je short 039b4h                           ; 74 05
+    call 03880h                               ; e8 ce fe
     add ax, cx                                ; 01 c8
     add ax, strict word 0003fh                ; 05 3f 00
@@ -6591,5 +6605,5 @@
     pop ES                                    ; 07
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 039cah                          ; eb 3b
+    jmp short 039fch                          ; eb 3b
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -6597,11 +6611,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02888h                               ; e8 ec ee
+    call 028a1h                               ; e8 d3 ee
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 039cah                           ; 74 28
+    je short 039fch                           ; 74 28
     mov dx, ax                                ; 89 c2
     mov ax, cx                                ; 89 c8
-    call 03856h                               ; e8 ad fe
-    jmp short 039cah                          ; eb 1f
+    call 03888h                               ; e8 ad fe
+    jmp short 039fch                          ; eb 1f
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -6609,11 +6623,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02bf1h                               ; e8 39 f2
+    call 02c0ah                               ; e8 20 f2
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 039cah                           ; 74 0c
+    je short 039fch                           ; 74 0c
     mov dx, ax                                ; 89 c2
     mov ax, cx                                ; 89 c8
-    call 038b1h                               ; e8 ec fe
-    jmp short 039cah                          ; eb 03
+    call 038e3h                               ; e8 ec fe
+    jmp short 039fch                          ; eb 03
     mov di, 00100h                            ; bf 00 01
     push SS                                   ; 16
@@ -6625,32 +6639,38 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-vbe_biosfn_get_set_scanline_length_:         ; 0xc39d8 LB 0xa9
+vbe_biosfn_get_set_scanline_length_:         ; 0xc3a0a LB 0xcf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    push ax                                   ; 50
-    mov si, dx                                ; 89 d6
-    mov di, bx                                ; 89 df
+    sub sp, strict byte 00008h                ; 83 ec 08
+    push ax                                   ; 50
+    mov di, dx                                ; 89 d7
+    mov si, bx                                ; 89 de
     mov word [bp-008h], cx                    ; 89 4e f8
-    call 03445h                               ; e8 5a fa
-    mov cl, al                                ; 88 c1
+    call 03477h                               ; e8 5a fa
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jne short 03a26h                          ; 75 05
+    mov cx, strict word 00010h                ; b9 10 00
+    jmp short 03a29h                          ; eb 03
+    movzx cx, al                              ; 0f b6 c8
+    call 034afh                               ; e8 83 fa
+    mov word [bp-00ah], ax                    ; 89 46 f6
     mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov bx, word [es:di]                      ; 26 8b 1d
-    mov al, byte [es:si]                      ; 26 8a 04
+    mov bx, word [es:si]                      ; 26 8b 1c
+    mov al, byte [es:di]                      ; 26 8a 05
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 03a08h                           ; 74 0a
+    je short 03a4bh                           ; 74 0b
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 03a2fh                           ; 74 2d
+    je short 03a72h                           ; 74 2e
     test al, al                               ; 84 c0
-    je short 03a2ah                           ; 74 24
-    jmp short 03a6ah                          ; eb 62
+    je short 03a6dh                           ; 74 25
+    jmp near 03ac2h                           ; e9 77 00
     cmp cl, 004h                              ; 80 f9 04
-    jne short 03a12h                          ; 75 05
+    jne short 03a55h                          ; 75 05
     sal bx, 003h                              ; c1 e3 03
-    jmp short 03a2ah                          ; eb 18
+    jmp short 03a6dh                          ; eb 18
     movzx ax, cl                              ; 0f b6 c1
     cwd                                       ; 99
@@ -6659,20 +6679,20 @@
     ; sbb ax, dx                                ; 1b c2
     sar ax, 003h                              ; c1 f8 03
-    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00ch], ax                    ; 89 46 f4
     mov ax, bx                                ; 89 d8
     xor dx, dx                                ; 31 d2
-    div word [bp-00ah]                        ; f7 76 f6
+    div word [bp-00ch]                        ; f7 76 f4
     mov bx, ax                                ; 89 c3
     mov ax, bx                                ; 89 d8
-    call 0345eh                               ; e8 2f fa
-    call 0347dh                               ; e8 4b fa
+    call 03490h                               ; e8 1e fa
+    call 034afh                               ; e8 3a fa
     mov bx, ax                                ; 89 c3
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov word [es:di], ax                      ; 26 89 05
+    mov word [es:si], ax                      ; 26 89 04
     cmp cl, 004h                              ; 80 f9 04
-    jne short 03a43h                          ; 75 05
+    jne short 03a86h                          ; 75 05
     shr bx, 003h                              ; c1 eb 03
-    jmp short 03a52h                          ; eb 0f
+    jmp short 03a95h                          ; eb 0f
     movzx ax, cl                              ; 0f b6 c1
     cwd                                       ; 99
@@ -6686,16 +6706,24 @@
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov word [es:si], bx                      ; 26 89 1c
-    call 03496h                               ; e8 36 fa
+    mov word [es:di], bx                      ; 26 89 1d
+    call 034c8h                               ; e8 25 fa
     push SS                                   ; 16
     pop ES                                    ; 07
     mov bx, word [bp-008h]                    ; 8b 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 03a6fh                          ; eb 05
+    call 0343fh                               ; e8 91 f9
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    cmp ax, word [es:bx]                      ; 26 3b 07
+    jbe short 03ac7h                          ; 76 12
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 03490h                               ; e8 d5 f9
+    mov word [bp-006h], 00200h                ; c7 46 fa 00 02
+    jmp short 03ac7h                          ; eb 05
     mov word [bp-006h], 00100h                ; c7 46 fa 00 01
     push SS                                   ; 16
     pop ES                                    ; 07
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    mov bx, word [bp-00eh]                    ; 8b 5e f2
     mov word [es:bx], ax                      ; 26 89 07
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6705,6 +6733,6 @@
     retn                                      ; c3
 
-  ; Padding 0x97f bytes at 0xc3a81
-  times 2431 db 0
+  ; Padding 0x927 bytes at 0xc3ad9
+  times 2343 db 0
 
 section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
@@ -6838,8 +6866,8 @@
   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.1.51 VGA BIOS', 00dh, 00ah, 000h
-_vga_modes:                                  ; 0xc462f LB 0x80
+section _DATA progbits vstart=0x4600 align=1 ; size=0x3732 class=DATA group=DGROUP
+_msg_vga_init:                               ; 0xc4600 LB 0x34
+    db  'Oracle VM VirtualBox Version 5.2.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
+_vga_modes:                                  ; 0xc4634 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
@@ -6850,9 +6878,9 @@
     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
+_line_to_vpti:                               ; 0xc46b4 LB 0x10
     db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
-_dac_regs:                                   ; 0xc46bf LB 0x4
+_dac_regs:                                   ; 0xc46c4 LB 0x4
     dd  0ff3f3f3fh
-_video_param_table:                          ; 0xc46c3 LB 0x780
+_video_param_table:                          ; 0xc46c8 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
@@ -6975,5 +7003,5 @@
     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
+_palette0:                                   ; 0xc4e48 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
@@ -6988,5 +7016,5 @@
     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
+_palette1:                                   ; 0xc4f08 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
@@ -7001,5 +7029,5 @@
     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
+_palette2:                                   ; 0xc4fc8 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
@@ -7014,5 +7042,5 @@
     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
+_palette3:                                   ; 0xc5088 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
@@ -7063,17 +7091,17 @@
     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
+_static_functionality:                       ; 0xc5388 LB 0x10
     db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
-_dcc_table:                                  ; 0xc5393 LB 0x24
+_dcc_table:                                  ; 0xc5398 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
+_secondary_save_area:                        ; 0xc53bc LB 0x1a
+    db  01ah, 000h, 098h, 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
+_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
+    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont8:                                   ; 0xc53f2 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
@@ -7204,5 +7232,5 @@
     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
+_vgafont14:                                  ; 0xc5bf2 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
@@ -7429,5 +7457,5 @@
     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
+_vgafont16:                                  ; 0xc69f2 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
@@ -7686,5 +7714,5 @@
     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
+_vgafont14alt:                               ; 0xc79f2 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
@@ -7706,5 +7734,5 @@
     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
+_vgafont16alt:                               ; 0xc7b1f 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
@@ -7728,69 +7756,67 @@
     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
+_cga_msr:                                    ; 0xc7c63 LB 0x9
+    db  02ch, 028h, 02dh, 029h, 02ah, 02eh, 01eh, 029h, 000h
+_vbebios_copyright:                          ; 0xc7c6c LB 0x15
     db  'VirtualBox VESA BIOS', 000h
-_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
+_vbebios_vendor_name:                        ; 0xc7c81 LB 0x13
     db  'Oracle Corporation', 000h
-_vbebios_product_name:                       ; 0xc7c86 LB 0x21
+_vbebios_product_name:                       ; 0xc7c94 LB 0x21
     db  'Oracle VM VirtualBox VBE Adapter', 000h
-_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.1.51', 000h
-_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
+_vbebios_product_revision:                   ; 0xc7cb5 LB 0x29
+    db  'Oracle VM VirtualBox Version 5.2.0_BETA1', 000h
+_vbebios_info_string:                        ; 0xc7cde LB 0x2b
     db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
-_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
+_no_vbebios_info_string:                     ; 0xc7d09 LB 0x29
     db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
 
-  ; Padding 0x1 bytes at 0xc7d1f
-    db  001h
+section CONST progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
 
-section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+section CONST2 progbits vstart=0x7d32 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, 033h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h, 061h
-    db  042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07ch
+  ; Padding 0x2ce bytes at 0xc7d32
+    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
+    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
+    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
+    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
+    db  067h, 061h, 042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
+    db  061h, 042h, 069h, 06fh, 073h, 033h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 006h
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum	(revision 68289)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum	(revision 68290)
@@ -1,1 +1,1 @@
-899b6314ed620084b02c8bad14876d3b *VBoxVgaBios386.rom
+3ff8aafec7c5f5aa639e6a9f5ff9d76d *VBoxVgaBios386.rom
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm	(revision 68289)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm	(revision 68290)
@@ -257,5 +257,5 @@
     mov bx, 0c000h                            ; bb 00 c0
     mov ds, bx                                ; 8e db
-    call 0327bh                               ; e8 8c 31
+    call 0329eh                               ; e8 af 31
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -1513,5 +1513,5 @@
   times 190 db 0
 
-section _TEXT progbits vstart=0xa00 align=1 ; size=0x3273 class=CODE group=AUTO
+section _TEXT progbits vstart=0xa00 align=1 ; size=0x32df class=CODE group=AUTO
 set_int_vector_:                             ; 0xc0a00 LB 0x1c
     push bx                                   ; 53
@@ -1570,5 +1570,5 @@
     call 00a1ch                               ; e8 ab ff
     call 00a38h                               ; e8 c4 ff
-    call 036deh                               ; e8 67 2c
+    call 0371ah                               ; e8 a3 2c
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, strict word 00010h                ; b8 10 00
@@ -1598,5 +1598,5 @@
     mov dx, strict word 00060h                ; ba 60 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 07 27
+    call 031dah                               ; e8 2a 27
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1608,5 +1608,5 @@
     add dx, strict byte 00050h                ; 83 c2 50
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 f1 26
+    call 031dah                               ; e8 14 27
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1629,7 +1629,7 @@
     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
+    call 031beh                               ; e8 d5 26
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; e8 a5 26
     mov cl, al                                ; 88 c1
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -1648,5 +1648,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 81 26
+    call 031beh                               ; e8 a4 26
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -1654,5 +1654,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 8e 26
+    call 031dah                               ; e8 b1 26
     mov di, ax                                ; 89 c7
     mov bl, cl                                ; 88 cb
@@ -1660,5 +1660,5 @@
     mov CL, strict byte 003h                  ; b1 03
     sal bx, CL                                ; d3 e3
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 00b68h                          ; 75 2e
     mul word [bp-00ch]                        ; f7 66 f4
@@ -1679,6 +1679,6 @@
     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 ax, word [bx+04638h]                  ; 8b 87 38 46
+    call 031dah                               ; e8 75 26
     mov word [ss:si], ax                      ; 36 89 04
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -1718,5 +1718,5 @@
     mov dx, strict word 0007ch                ; ba 7c 00
     xor ax, ax                                ; 31 c0
-    call 031d3h                               ; e8 35 26
+    call 031f6h                               ; e8 58 26
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -1725,5 +1725,5 @@
     mov dx, 00085h                            ; ba 85 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 ec 25
+    call 031beh                               ; e8 0f 26
     xor ah, ah                                ; 30 e4
     push SS                                   ; 16
@@ -1733,5 +1733,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 da 25
+    call 031beh                               ; e8 fd 25
     xor ah, ah                                ; 30 e4
     push SS                                   ; 16
@@ -1746,16 +1746,16 @@
     mov dx, 0010ch                            ; ba 0c 01
     jmp short 00b99h                          ; eb c0
-    mov ax, 05bedh                            ; b8 ed 5b
+    mov ax, 05bf2h                            ; b8 f2 5b
     mov dx, 0c000h                            ; ba 00 c0
     jmp short 00b9eh                          ; eb bd
-    mov ax, 053edh                            ; b8 ed 53
+    mov ax, 053f2h                            ; b8 f2 53
     jmp short 00bdch                          ; eb f6
-    mov ax, 057edh                            ; b8 ed 57
+    mov ax, 057f2h                            ; b8 f2 57
     jmp short 00bdch                          ; eb f1
-    mov ax, 079edh                            ; b8 ed 79
+    mov ax, 079f2h                            ; b8 f2 79
     jmp short 00bdch                          ; eb ec
-    mov ax, 069edh                            ; b8 ed 69
+    mov ax, 069f2h                            ; b8 f2 69
     jmp short 00bdch                          ; eb e7
-    mov ax, 07b1ah                            ; b8 1a 7b
+    mov ax, 07b1fh                            ; b8 1f 7b
     jmp short 00bdch                          ; eb e2
     jmp short 00bcbh                          ; eb cf
@@ -1771,7 +1771,7 @@
     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
+    call 031beh                               ; e8 aa 25
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; e8 7a 25
     mov ch, al                                ; 88 c5
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -1781,8 +1781,8 @@
     mov CL, strict byte 003h                  ; b1 03
     sal bx, CL                                ; d3 e3
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 00c31h                          ; 75 03
     jmp near 00d38h                           ; e9 07 01
-    mov bl, byte [bx+04631h]                  ; 8a 9f 31 46
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     cmp bl, cl                                ; 38 cb
     jc short 00c48h                           ; 72 0f
@@ -1798,5 +1798,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 5e 25
+    call 031dah                               ; e8 81 25
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -1822,5 +1822,5 @@
     mov dx, bx                                ; 89 da
     mov ax, 0a000h                            ; b8 00 a0
-    call 0319bh                               ; e8 08 25
+    call 031beh                               ; e8 2b 25
     and al, byte [bp-008h]                    ; 22 46 f8
     test al, al                               ; 84 c0
@@ -1847,10 +1847,10 @@
     mov dx, bx                                ; 89 da
     mov ax, 0b800h                            ; b8 00 b8
-    call 0319bh                               ; e8 cb 24
+    call 031beh                               ; e8 ee 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
+    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
     jne short 00cfah                          ; 75 1b
     mov cx, si                                ; 89 f1
@@ -1879,5 +1879,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 9b 24
+    call 031dah                               ; e8 be 24
     mov bx, ax                                ; 89 c3
     sal bx, CL                                ; d3 e3
@@ -1887,5 +1887,5 @@
     add dx, ax                                ; 01 c2
     mov ax, 0a000h                            ; b8 00 a0
-    call 0319bh                               ; e8 6c 24
+    call 031beh                               ; e8 8f 24
     mov ch, al                                ; 88 c5
     jmp short 00d35h                          ; eb 02
@@ -2009,12 +2009,12 @@
     mov dx, strict word 00060h                ; ba 60 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 b8 23
+    call 031e8h                               ; e8 db 23
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 85 23
+    call 031beh                               ; e8 a8 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
+    call 031dah                               ; e8 b9 23
     mov bx, ax                                ; 89 c3
     mov di, ax                                ; 89 c7
@@ -2053,5 +2053,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 49 23
+    call 031dah                               ; e8 6c 23
     mov bx, ax                                ; 89 c3
     mov AL, strict byte 00ah                  ; b0 0a
@@ -2093,17 +2093,17 @@
     mov bx, cx                                ; 89 cb
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 10 23
+    call 031e8h                               ; e8 33 23
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 dd 22
+    call 031beh                               ; e8 00 23
     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
+    call 031dah                               ; e8 0e 23
     mov bx, ax                                ; 89 c3
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 c4 22
+    call 031beh                               ; e8 e7 22
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -2129,5 +2129,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 ae 22
+    call 031dah                               ; e8 d1 22
     mov bx, ax                                ; 89 c3
     mov AL, strict byte 00eh                  ; b0 0e
@@ -2169,7 +2169,7 @@
     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
+    call 031beh                               ; e8 71 22
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; e8 41 22
     mov cl, al                                ; 88 c1
     cmp AL, strict byte 0ffh                  ; 3c ff
@@ -2186,13 +2186,13 @@
     mov si, bx                                ; 89 de
     sal si, CL                                ; d3 e6
-    cmp byte [si+04630h], 000h                ; 80 bc 30 46 00
+    cmp byte [si+04635h], 000h                ; 80 bc 35 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
+    call 031dah                               ; e8 58 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
+    call 031beh                               ; e8 31 22
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -2213,19 +2213,19 @@
     mov dx, strict word 0004eh                ; ba 4e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 10 22
+    call 031e8h                               ; e8 33 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 bl, byte [bx+046b4h]                  ; 8a 9f b4 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
+    mul word [bx+046cbh]                      ; f7 a7 cb 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
+    call 031dah                               ; e8 ff 21
     mov si, ax                                ; 89 c6
     mov AL, strict byte 00ch                  ; b0 0c
@@ -2249,5 +2249,5 @@
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 a2 21
+    call 031cch                               ; e8 c5 21
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, si                                ; 89 f0
@@ -2261,5 +2261,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_set_video_mode_:                      ; 0xc1019 LB 0x3c7
+biosfn_set_video_mode_:                      ; 0xc1019 LB 0x3ea
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2269,5 +2269,5 @@
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 00012h                ; 83 ec 12
+    sub sp, strict byte 00014h                ; 83 ec 14
     mov byte [bp-00ch], al                    ; 88 46 f4
     and AL, strict byte 080h                  ; 24 80
@@ -2288,13 +2288,13 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
-    call 03170h                               ; e8 1b 21
+    call 03193h                               ; e8 3e 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
+    jmp near 013f9h                           ; e9 9a 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 al, byte [bx+046b4h]                  ; 8a 87 b4 46
     mov byte [bp-00eh], al                    ; 88 46 f2
     mov bl, al                                ; 88 c3
@@ -2302,20 +2302,20 @@
     mov CL, strict byte 006h                  ; b1 06
     sal bx, CL                                ; d3 e3
-    mov al, byte [bx+046c3h]                  ; 8a 87 c3 46
+    mov al, byte [bx+046c8h]                  ; 8a 87 c8 46
     xor ah, ah                                ; 30 e4
     mov word [bp-016h], ax                    ; 89 46 ea
-    mov al, byte [bx+046c4h]                  ; 8a 87 c4 46
+    mov al, byte [bx+046c9h]                  ; 8a 87 c9 46
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov al, byte [bx+046cah]                  ; 8a 87 ca 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
+    call 031beh                               ; e8 26 21
     mov dx, 00088h                            ; ba 88 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 fa 20
+    call 031beh                               ; e8 1d 21
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 f1 20
+    call 031beh                               ; e8 14 21
     mov ch, al                                ; 88 c5
     test AL, strict byte 008h                 ; a8 08
@@ -2324,5 +2324,5 @@
     mov bx, word [bp-014h]                    ; 8b 5e ec
     sal bx, CL                                ; d3 e3
-    mov al, byte [bx+04635h]                  ; 8a 87 35 46
+    mov al, byte [bx+0463ah]                  ; 8a 87 3a 46
     mov dx, 003c6h                            ; ba c6 03
     out DX, AL                                ; ee
@@ -2330,5 +2330,5 @@
     mov dx, 003c8h                            ; ba c8 03
     out DX, AL                                ; ee
-    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
+    mov bl, byte [bx+0463bh]                  ; 8a 9f 3b 46
     cmp bl, 001h                              ; 80 fb 01
     jc short 010dbh                           ; 72 0d
@@ -2341,11 +2341,11 @@
     test bl, bl                               ; 84 db
     jne short 010f1h                          ; 75 12
-    mov di, 04e43h                            ; bf 43 4e
+    mov di, 04e48h                            ; bf 48 4e
     jmp short 010f1h                          ; eb 0d
-    mov di, 04f03h                            ; bf 03 4f
+    mov di, 04f08h                            ; bf 08 4f
     jmp short 010f1h                          ; eb 08
-    mov di, 04fc3h                            ; bf c3 4f
+    mov di, 04fc8h                            ; bf c8 4f
     jmp short 010f1h                          ; eb 03
-    mov di, 05083h                            ; bf 83 50
+    mov di, 05088h                            ; bf 88 50
     xor bx, bx                                ; 31 db
     jmp short 010fdh                          ; eb 08
@@ -2358,7 +2358,7 @@
     mov si, ax                                ; 89 c6
     sal si, CL                                ; d3 e6
-    mov al, byte [si+04636h]                  ; 8a 84 36 46
+    mov al, byte [si+0463bh]                  ; 8a 84 3b 46
     mov si, ax                                ; 89 c6
-    mov al, byte [si+046bfh]                  ; 8a 84 bf 46
+    mov al, byte [si+046c4h]                  ; 8a 84 c4 46
     cmp bx, ax                                ; 39 c3
     jnbe short 01131h                         ; 77 1b
@@ -2405,5 +2405,5 @@
     sal si, CL                                ; d3 e6
     add si, bx                                ; 01 de
-    mov al, byte [si+046e6h]                  ; 8a 84 e6 46
+    mov al, byte [si+046ebh]                  ; 8a 84 eb 46
     out DX, AL                                ; ee
     inc bx                                    ; 43
@@ -2432,5 +2432,5 @@
     sal si, CL                                ; d3 e6
     add si, bx                                ; 01 de
-    mov al, byte [si+046c7h]                  ; 8a 84 c7 46
+    mov al, byte [si+046cch]                  ; 8a 84 cc 46
     mov dx, 003c5h                            ; ba c5 03
     out DX, AL                                ; ee
@@ -2450,5 +2450,5 @@
     sal si, CL                                ; d3 e6
     add si, bx                                ; 01 de
-    mov al, byte [si+046fah]                  ; 8a 84 fa 46
+    mov al, byte [si+046ffh]                  ; 8a 84 ff 46
     mov dx, 003cfh                            ; ba cf 03
     out DX, AL                                ; ee
@@ -2459,5 +2459,5 @@
     mov CL, strict byte 003h                  ; b1 03
     sal bx, CL                                ; d3 e3
-    cmp byte [bx+04631h], 001h                ; 80 bf 31 46 01
+    cmp byte [bx+04636h], 001h                ; 80 bf 36 46 01
     jne short 011eah                          ; 75 05
     mov dx, 003b4h                            ; ba b4 03
@@ -2482,10 +2482,10 @@
     add di, bx                                ; 01 df
     lea dx, [si+001h]                         ; 8d 54 01
-    mov al, byte [di+046cdh]                  ; 8a 85 cd 46
+    mov al, byte [di+046d2h]                  ; 8a 85 d2 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 al, byte [bx+046d1h]                  ; 8a 87 d1 46
     mov dx, 003c2h                            ; ba c2 03
     out DX, AL                                ; ee
@@ -2503,7 +2503,7 @@
     mov CL, strict byte 003h                  ; b1 03
     sal bx, CL                                ; d3 e3
-    cmp byte [bx+04630h], 000h                ; 80 bf 30 46 00
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
     jne short 0125ah                          ; 75 13
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 04000h                            ; b9 00 40
     mov ax, 00720h                            ; b8 20 07
@@ -2515,5 +2515,5 @@
     cmp byte [bp-00ch], 00dh                  ; 80 7e f4 0d
     jnc short 01272h                          ; 73 12
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 04000h                            ; b9 00 40
     xor ax, ax                                ; 31 c0
@@ -2530,8 +2530,8 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov word [bp-01eh], ax                    ; 89 46 e2
     mov AL, strict byte 00fh                  ; b0 0f
     out DX, AL                                ; ee
-    mov es, [bx+04633h]                       ; 8e 87 33 46
+    mov es, [bx+04638h]                       ; 8e 87 38 46
     mov cx, 08000h                            ; b9 00 80
     xor ax, ax                                ; 31 c0
@@ -2540,36 +2540,38 @@
     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 al, byte [bp-01eh]                    ; 8a 46 e2
+    out DX, AL                                ; ee
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    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 dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 03 1f
+    call 031cch                               ; e8 1e 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
+    call 031e8h                               ; e8 2e 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 bx, word [bx+046cbh]                  ; 8b 9f cb 46
     mov dx, strict word 0004ch                ; ba 4c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 fd 1e
+    call 031e8h                               ; e8 18 1f
     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
+    call 031e8h                               ; e8 0d 1f
+    mov bl, byte [bp-01ch]                    ; 8a 5e e4
     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
+    call 031cch                               ; e8 e3 1e
+    mov bx, word [bp-018h]                    ; 8b 5e e8
     mov dx, 00085h                            ; ba 85 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 d8 1e
+    call 031e8h                               ; e8 f3 1e
     mov bl, byte [bp-012h]                    ; 8a 5e ee
     or bl, 060h                               ; 80 cb 60
@@ -2577,12 +2579,12 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 ab 1e
+    call 031cch                               ; e8 c6 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
+    call 031cch                               ; e8 ba 1e
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 88 1e
+    call 031beh                               ; e8 a3 1e
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
@@ -2590,49 +2592,58 @@
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 86 1e
+    call 031cch                               ; e8 a1 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
+    call 031cch                               ; e8 95 1e
     mov cx, ds                                ; 8c d9
-    mov bx, 053d1h                            ; bb d1 53
+    mov bx, 053d6h                            ; bb d6 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
+    call 03208h                               ; e8 c3 1e
+    cmp byte [bp-00ch], 007h                  ; 80 7e f4 07
+    jnbe short 01376h                         ; 77 2b
+    mov bx, word [bp-01ah]                    ; 8b 5e e6
+    mov bl, byte [bx+07c63h]                  ; 8a 9f 63 7c
+    xor bh, bh                                ; 30 ff
     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
+    call 031cch                               ; e8 6f 1e
+    cmp byte [bp-00ch], 006h                  ; 80 7e f4 06
+    jne short 01368h                          ; 75 05
+    mov bx, strict word 0003fh                ; bb 3f 00
+    jmp short 0136bh                          ; eb 03
+    mov bx, strict word 00030h                ; bb 30 00
+    xor bh, bh                                ; 30 ff
     mov dx, strict word 00066h                ; ba 66 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 56 1e
+    call 031cch                               ; 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 0138fh                          ; 75 09
     mov dx, strict word 00007h                ; ba 07 00
     mov ax, strict word 00006h                ; b8 06 00
-    call 00ddeh                               ; e8 72 fa
+    call 00ddeh                               ; e8 4f fa
     xor bx, bx                                ; 31 db
-    jmp short 01375h                          ; eb 05
+    jmp short 01398h                          ; eb 05
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jnc short 01381h                          ; 73 0c
+    jnc short 013a4h                          ; 73 0c
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 00e91h                               ; e8 13 fb
+    call 00e91h                               ; e8 f0 fa
     inc bx                                    ; 43
-    jmp short 01370h                          ; eb ef
+    jmp short 01393h                          ; eb ef
     xor ax, ax                                ; 31 c0
-    call 00f34h                               ; e8 ae fb
+    call 00f34h                               ; e8 8b 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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 013c9h                          ; 75 10
     xor bl, bl                                ; 30 db
     mov AL, strict byte 004h                  ; b0 04
@@ -2643,22 +2654,22 @@
     mov AH, strict byte 011h                  ; b4 11
     int 010h                                  ; cd 10
-    mov dx, 057edh                            ; ba ed 57
+    mov dx, 057f2h                            ; ba f2 57
     mov ax, strict word 0001fh                ; b8 1f 00
-    call 00a00h                               ; e8 51 f6
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
+    call 00a00h                               ; e8 2e f6
+    mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, strict word 00010h                ; 3d 10 00
-    je short 013d1h                           ; 74 1a
+    je short 013f4h                           ; 74 1a
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    je short 013cch                           ; 74 10
+    je short 013efh                           ; 74 10
     cmp ax, strict word 00008h                ; 3d 08 00
-    jne short 013d6h                          ; 75 15
-    mov dx, 053edh                            ; ba ed 53
+    jne short 013f9h                          ; 75 15
+    mov dx, 053f2h                            ; ba f2 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
+    call 00a00h                               ; e8 13 f6
+    jmp short 013f9h                          ; eb 0a
+    mov dx, 05bf2h                            ; ba f2 5b
+    jmp short 013e7h                          ; eb f3
+    mov dx, 069f2h                            ; ba f2 69
+    jmp short 013e7h                          ; eb ee
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -2669,5 +2680,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vgamem_copy_pl4_:                            ; 0xc13e0 LB 0x8f
+vgamem_copy_pl4_:                            ; 0xc1403 LB 0x8f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2704,5 +2715,5 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 0145fh                          ; 73 30
+    jnc short 01482h                          ; 73 30
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -2721,5 +2732,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0145bh                               ; e3 06
+    jcxz 0147eh                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2728,5 +2739,5 @@
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 0142ah                          ; eb cb
+    jmp short 0144dh                          ; eb cb
     mov ax, strict word 00005h                ; b8 05 00
     mov dx, 003ceh                            ; ba ce 03
@@ -2737,5 +2748,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_fill_pl4_:                            ; 0xc146f LB 0x7c
+vgamem_fill_pl4_:                            ; 0xc1492 LB 0x7c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2766,5 +2777,5 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 014dbh                          ; 73 2d
+    jnc short 014feh                          ; 73 2d
     mov cl, byte [bp-006h]                    ; 8a 4e fa
     xor ch, ch                                ; 30 ed
@@ -2784,9 +2795,9 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 014d7h                               ; e3 02
+    jcxz 014fah                               ; e3 02
     rep stosb                                 ; f3 aa
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 014a9h                          ; eb ce
+    jmp short 014cch                          ; eb ce
     mov ax, strict word 00005h                ; b8 05 00
     mov dx, 003ceh                            ; ba ce 03
@@ -2797,5 +2808,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_copy_cga_:                            ; 0xc14eb LB 0xc2
+vgamem_copy_cga_:                            ; 0xc150e LB 0xc2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2831,7 +2842,7 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+006h]                    ; 3a 5e 06
-    jnc short 015a4h                          ; 73 70
+    jnc short 015c7h                          ; 73 70
     test bl, 001h                             ; f6 c3 01
-    je short 01570h                           ; 74 37
+    je short 01593h                           ; 74 37
     mov cl, bh                                ; 88 f9
     xor ch, ch                                ; 30 ed
@@ -2853,10 +2864,10 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0156eh                               ; e3 06
+    jcxz 01591h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
     rep movsb                                 ; f3 a4
     pop DS                                    ; 1f
-    jmp short 015a0h                          ; eb 30
+    jmp short 015c3h                          ; eb 30
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -2876,5 +2887,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 015a0h                               ; e3 06
+    jcxz 015c3h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -2883,5 +2894,5 @@
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 0152fh                          ; eb 8b
+    jmp short 01552h                          ; eb 8b
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2889,5 +2900,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vgamem_fill_cga_:                            ; 0xc15ad LB 0xa8
+vgamem_fill_cga_:                            ; 0xc15d0 LB 0xa8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2916,7 +2927,7 @@
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnc short 0164ch                          ; 73 65
+    jnc short 0166fh                          ; 73 65
     test bl, 001h                             ; f6 c3 01
-    je short 0161dh                           ; 74 31
+    je short 01640h                           ; 74 31
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -2938,7 +2949,7 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 0161bh                               ; e3 02
+    jcxz 0163eh                               ; e3 02
     rep stosb                                 ; f3 aa
-    jmp short 01648h                          ; eb 2b
+    jmp short 0166bh                          ; eb 2b
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -2959,9 +2970,9 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01648h                               ; e3 02
+    jcxz 0166bh                               ; e3 02
     rep stosb                                 ; f3 aa
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp short 015e2h                          ; eb 96
+    jmp short 01605h                          ; eb 96
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -2969,5 +2980,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-biosfn_scroll_:                              ; 0xc1655 LB 0x576
+biosfn_scroll_:                              ; 0xc1678 LB 0x576
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2981,19 +2992,19 @@
     mov ch, byte [bp+006h]                    ; 8a 6e 06
     cmp bl, byte [bp+004h]                    ; 3a 5e 04
-    jnbe short 0168ah                         ; 77 19
+    jnbe short 016adh                         ; 77 19
     cmp ch, cl                                ; 38 cd
-    jc short 0168ah                           ; 72 15
+    jc short 016adh                           ; 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
+    call 031beh                               ; e8 1d 1b
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; 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
+    jne short 016b0h                          ; 75 03
+    jmp near 01be5h                           ; e9 35 05
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 05 1b
+    call 031beh                               ; e8 05 1b
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -3001,16 +3012,16 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 13 1b
+    call 031dah                               ; 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
+    jne short 016dch                          ; 75 0c
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 e5 1a
+    call 031beh                               ; 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
+    jc short 016ech                           ; 72 07
     mov al, bl                                ; 88 d8
     db  0feh, 0c8h
@@ -3020,5 +3031,5 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 016d7h                           ; 72 05
+    jc short 016fah                           ; 72 05
     mov ch, byte [bp-018h]                    ; 8a 6e e8
     db  0feh, 0cdh
@@ -3027,5 +3038,5 @@
     xor ah, ah                                ; 30 e4
     cmp ax, bx                                ; 39 d8
-    jbe short 016e3h                          ; 76 03
+    jbe short 01706h                          ; 76 03
     mov byte [bp-00ah], ah                    ; 88 66 f6
     mov al, ch                                ; 88 e8
@@ -3048,6 +3059,6 @@
     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
+    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
+    jne short 01789h                          ; 75 50
     sal ax, 1                                 ; d1 e0
     or AL, strict byte 0ffh                   ; 0c ff
@@ -3060,29 +3071,29 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01769h                          ; 75 39
+    jne short 0178ch                          ; 75 39
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 01769h                          ; 75 33
+    jne short 0178ch                          ; 75 33
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 01769h                          ; 75 2d
+    jne short 0178ch                          ; 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
+    jne short 0178ch                          ; 75 23
     mov al, ch                                ; 88 e8
     cmp ax, word [bp-01ch]                    ; 3b 46 e4
-    jne short 01769h                          ; 75 1c
+    jne short 0178ch                          ; 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 es, [di+04638h]                       ; 8e 85 38 46
     mov cx, word [bp-01ah]                    ; 8b 4e e6
     mov di, bx                                ; 89 df
     cld                                       ; fc
-    jcxz 01763h                               ; e3 02
+    jcxz 01786h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp near 01bc2h                           ; e9 5c 04
-    jmp near 018f7h                           ; e9 8e 01
+    jmp near 01be5h                           ; e9 5c 04
+    jmp near 0191ah                           ; e9 8e 01
     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 017d7h                          ; 75 68
+    jne short 017fah                          ; 75 68
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
@@ -3092,11 +3103,11 @@
     mov dx, ax                                ; 89 c2
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 017d9h                           ; 72 56
+    jc short 017fch                           ; 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
+    jnbe short 017b6h                         ; 77 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 017dch                          ; 75 49
+    jne short 017ffh                          ; 75 49
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -3120,14 +3131,14 @@
     mov si, ax                                ; 89 c6
     sal si, CL                                ; d3 e6
-    mov es, [si+04633h]                       ; 8e 84 33 46
+    mov es, [si+04638h]                       ; 8e 84 38 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
+    jcxz 017f8h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 01827h                          ; eb 50
-    jmp short 0182dh                          ; eb 54
-    jmp near 01bc2h                           ; e9 e6 03
+    jmp short 0184ah                          ; eb 50
+    jmp short 01850h                          ; eb 54
+    jmp near 01be5h                           ; e9 e6 03
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     mov di, dx                                ; 89 d7
@@ -3144,5 +3155,5 @@
     mov si, ax                                ; 89 c6
     sal si, CL                                ; d3 e6
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov word [bp-022h], ax                    ; 89 46 de
     mov ax, word [bp-016h]                    ; 8b 46 ea
@@ -3157,5 +3168,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 01827h                               ; e3 06
+    jcxz 0184ah                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -3163,5 +3174,5 @@
     pop DS                                    ; 1f
     inc word [bp-016h]                        ; ff 46 ea
-    jmp near 01777h                           ; e9 4a ff
+    jmp near 0179ah                           ; e9 4a ff
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3170,12 +3181,12 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 017d9h                         ; 77 9a
+    jnbe short 017fch                         ; 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
+    jnbe short 01874h                         ; 77 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01890h                          ; 75 3f
+    jne short 018b3h                          ; 75 3f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -3196,5 +3207,5 @@
     mov si, ax                                ; 89 c6
     sal si, CL                                ; d3 e6
-    mov si, word [si+04633h]                  ; 8b b4 33 46
+    mov si, word [si+04638h]                  ; 8b b4 38 46
     mov cx, di                                ; 89 f9
     mov ax, word [bp-022h]                    ; 8b 46 de
@@ -3202,7 +3213,7 @@
     mov es, si                                ; 8e c6
     cld                                       ; fc
-    jcxz 0188eh                               ; e3 02
+    jcxz 018b1h                               ; e3 02
     rep stosw                                 ; f3 ab
-    jmp short 018e7h                          ; eb 57
+    jmp short 0190ah                          ; eb 57
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -3224,5 +3235,5 @@
     mov si, ax                                ; 89 c6
     sal si, CL                                ; d3 e6
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov word [bp-014h], ax                    ; 89 46 ec
     mov ax, word [bp-016h]                    ; 8b 46 ea
@@ -3237,5 +3248,5 @@
     mov es, dx                                ; 8e c2
     cld                                       ; fc
-    jcxz 018e7h                               ; e3 06
+    jcxz 0190ah                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -3245,28 +3256,28 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 0191ah                           ; 72 29
+    jc short 0193dh                           ; 72 29
     dec word [bp-016h]                        ; ff 4e ea
-    jmp near 01835h                           ; e9 3e ff
-    mov al, byte [si+046afh]                  ; 8a 84 af 46
+    jmp near 01858h                           ; e9 3e ff
+    mov al, byte [si+046b4h]                  ; 8a 84 b4 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 al, byte [si+046cah]                  ; 8a 84 ca 46
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [di+04631h]                  ; 8a 85 31 46
+    mov al, byte [di+04636h]                  ; 8a 85 36 46
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 0191dh                           ; 74 0b
+    je short 01940h                           ; 74 0b
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0191dh                           ; 74 07
+    je short 01940h                           ; 74 07
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0194bh                           ; 74 31
-    jmp near 01bc2h                           ; e9 a5 02
+    je short 0196eh                           ; 74 31
+    jmp near 01be5h                           ; e9 a5 02
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01989h                          ; 75 66
+    jne short 019ach                          ; 75 66
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 01989h                          ; 75 60
+    jne short 019ach                          ; 75 60
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 01989h                          ; 75 5a
+    jne short 019ach                          ; 75 5a
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3274,5 +3285,5 @@
     lea ax, [bx-001h]                         ; 8d 47 ff
     cmp dx, ax                                ; 39 c2
-    jne short 01989h                          ; 75 4c
+    jne short 019ach                          ; 75 4c
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -3280,7 +3291,7 @@
     dec dx                                    ; 4a
     cmp ax, dx                                ; 39 d0
-    je short 0194eh                           ; 74 05
-    jmp short 01989h                          ; eb 3e
-    jmp near 01a85h                           ; e9 37 01
+    je short 01971h                           ; 74 05
+    jmp short 019ach                          ; eb 3e
+    jmp near 01aa8h                           ; e9 37 01
     mov ax, 00205h                            ; b8 05 02
     mov dx, 003ceh                            ; ba ce 03
@@ -3297,5 +3308,5 @@
     mov CL, strict byte 003h                  ; b1 03
     sal bx, CL                                ; d3 e3
-    mov bx, word [bx+04633h]                  ; 8b 9f 33 46
+    mov bx, word [bx+04638h]                  ; 8b 9f 38 46
     mov cx, ax                                ; 89 c1
     mov ax, dx                                ; 89 d0
@@ -3303,12 +3314,12 @@
     mov es, bx                                ; 8e c3
     cld                                       ; fc
-    jcxz 01980h                               ; e3 02
+    jcxz 019a3h                               ; 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
+    jmp short 0193dh                          ; eb 91
     cmp byte [bp+00ah], 001h                  ; 80 7e 0a 01
-    jne short 019d4h                          ; 75 45
+    jne short 019f7h                          ; 75 45
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
@@ -3318,11 +3329,11 @@
     mov dx, ax                                ; 89 c2
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 01a05h                           ; 72 62
+    jc short 01a28h                           ; 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
+    jnbe short 019d6h                         ; 77 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 019d6h                          ; 75 23
+    jne short 019f9h                          ; 75 23
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -3337,7 +3348,7 @@
     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
+    call 01492h                               ; e8 9d fa
+    jmp short 01a23h                          ; eb 2c
+    jmp short 01a2bh                          ; eb 32
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3356,8 +3367,8 @@
     mov dx, ax                                ; 89 c2
     mov ax, si                                ; 89 f0
-    call 013e0h                               ; e8 e0 f9
+    call 01403h                               ; e8 e0 f9
     inc word [bp-016h]                        ; ff 46 ea
-    jmp short 01997h                          ; eb 92
-    jmp near 01bc2h                           ; e9 ba 01
+    jmp short 019bah                          ; eb 92
+    jmp near 01be5h                           ; e9 ba 01
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3366,12 +3377,12 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 01a05h                         ; 77 eb
+    jnbe short 01a28h                         ; 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
+    jnbe short 01a4dh                         ; 77 04
     test al, al                               ; 84 c0
-    jne short 01a4bh                          ; 75 21
+    jne short 01a6eh                          ; 75 21
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -3386,6 +3397,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
-    call 0146fh                               ; e8 26 fa
-    jmp short 01a76h                          ; eb 2b
+    call 01492h                               ; e8 26 fa
+    jmp short 01a99h                          ; eb 2b
     mov al, byte [bp-012h]                    ; 8a 46 ee
     push ax                                   ; 50
@@ -3404,24 +3415,24 @@
     mov dx, ax                                ; 89 c2
     mov ax, si                                ; 89 f0
-    call 013e0h                               ; e8 6a f9
+    call 01403h                               ; 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
+    jc short 01aefh                           ; 72 4c
     dec word [bp-016h]                        ; ff 4e ea
-    jmp short 01a10h                          ; eb 8b
-    mov bl, byte [di+04632h]                  ; 8a 9d 32 46
+    jmp short 01a33h                          ; eb 8b
+    mov bl, byte [di+04637h]                  ; 8a 9d 37 46
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01acfh                          ; 75 40
+    jne short 01af2h                          ; 75 40
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 01acfh                          ; 75 3a
+    jne short 01af2h                          ; 75 3a
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 01acfh                          ; 75 34
+    jne short 01af2h                          ; 75 34
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp ax, word [bp-01eh]                    ; 3b 46 e2
-    jne short 01acfh                          ; 75 2c
+    jne short 01af2h                          ; 75 2c
     mov al, ch                                ; 88 e8
     cmp ax, word [bp-01ch]                    ; 3b 46 e4
-    jne short 01acfh                          ; 75 25
+    jne short 01af2h                          ; 75 25
     mov al, byte [bp-012h]                    ; 8a 46 ee
     mov dx, ax                                ; 89 c2
@@ -3432,19 +3443,19 @@
     mov dl, byte [bp-008h]                    ; 8a 56 f8
     xor dh, dh                                ; 30 f6
-    mov es, [di+04633h]                       ; 8e 85 33 46
+    mov es, [di+04638h]                       ; 8e 85 38 46
     mov cx, ax                                ; 89 c1
     mov ax, dx                                ; 89 d0
     xor di, di                                ; 31 ff
     cld                                       ; fc
-    jcxz 01acch                               ; e3 02
+    jcxz 01aefh                               ; e3 02
     rep stosb                                 ; f3 aa
-    jmp near 01bc2h                           ; e9 f3 00
+    jmp near 01be5h                           ; e9 f3 00
     cmp bl, 002h                              ; 80 fb 02
-    jne short 01addh                          ; 75 09
+    jne short 01b00h                          ; 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
+    jne short 01b6fh                          ; 75 69
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
@@ -3454,11 +3465,11 @@
     mov dx, ax                                ; 89 c2
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jc short 01acch                           ; 72 d5
+    jc short 01aefh                           ; 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
+    jnbe short 01b2ah                         ; 77 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01b28h                          ; 75 21
+    jne short 01b4bh                          ; 75 21
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -3473,6 +3484,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
-    call 015adh                               ; e8 87 fa
-    jmp short 01b47h                          ; eb 1f
+    call 015d0h                               ; e8 87 fa
+    jmp short 01b6ah                          ; eb 1f
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3487,7 +3498,7 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
-    call 014ebh                               ; e8 a4 f9
+    call 0150eh                               ; e8 a4 f9
     inc word [bp-016h]                        ; ff 46 ea
-    jmp short 01aebh                          ; eb 9f
+    jmp short 01b0eh                          ; eb 9f
     mov al, byte [bp+004h]                    ; 8a 46 04
     xor ah, ah                                ; 30 e4
@@ -3496,12 +3507,12 @@
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 01bc2h                         ; 77 64
+    jnbe short 01be5h                         ; 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
+    jnbe short 01b93h                         ; 77 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 01b91h                          ; 75 21
+    jne short 01bb4h                          ; 75 21
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -3516,6 +3527,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
-    call 015adh                               ; e8 1e fa
-    jmp short 01bb3h                          ; eb 22
+    call 015d0h                               ; e8 1e fa
+    jmp short 01bd6h                          ; eb 22
     mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
@@ -3531,11 +3542,11 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
-    call 014ebh                               ; e8 38 f9
+    call 0150eh                               ; 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
+    jc short 01be5h                           ; 72 05
     dec word [bp-016h]                        ; ff 4e ea
-    jmp short 01b54h                          ; eb 92
+    jmp short 01b77h                          ; eb 92
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3543,5 +3554,5 @@
     pop bp                                    ; 5d
     retn 00008h                               ; c2 08 00
-write_gfx_char_pl4_:                         ; 0xc1bcb LB 0xf8
+write_gfx_char_pl4_:                         ; 0xc1bee LB 0xf8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3554,12 +3565,12 @@
     mov al, cl                                ; 88 c8
     cmp byte [bp+006h], 010h                  ; 80 7e 06 10
-    je short 01befh                           ; 74 0b
+    je short 01c12h                           ; 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
+    jne short 01c17h                          ; 75 0a
+    mov di, 05bf2h                            ; bf f2 5b
+    jmp short 01c1ah                          ; eb 08
+    mov di, 069f2h                            ; bf f2 69
+    jmp short 01c1ah                          ; eb 03
+    mov di, 053f2h                            ; bf f2 53
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
@@ -3586,13 +3597,13 @@
     out DX, ax                                ; ef
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 01c39h                           ; 74 06
+    je short 01c5ch                           ; 74 06
     mov ax, 01803h                            ; b8 03 18
     out DX, ax                                ; ef
-    jmp short 01c3dh                          ; eb 04
+    jmp short 01c60h                          ; 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
+    jnc short 01cceh                          ; 73 67
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -3603,12 +3614,12 @@
     add si, ax                                ; 01 c6
     mov byte [bp-008h], bh                    ; 88 7e f8
-    jmp short 01c6ch                          ; eb 13
+    jmp short 01c8fh                          ; eb 13
     xor bx, bx                                ; 31 db
     mov dx, si                                ; 89 f2
     mov ax, 0a000h                            ; b8 00 a0
-    call 031a9h                               ; e8 46 15
+    call 031cch                               ; e8 46 15
     inc byte [bp-008h]                        ; fe 46 f8
     cmp byte [bp-008h], 008h                  ; 80 7e f8 08
-    jnc short 01ca7h                          ; 73 3b
+    jnc short 01ccah                          ; 73 3b
     mov cl, byte [bp-008h]                    ; 8a 4e f8
     mov ax, 00080h                            ; b8 80 00
@@ -3623,5 +3634,5 @@
     mov dx, si                                ; 89 f2
     mov ax, 0a000h                            ; b8 00 a0
-    call 0319bh                               ; e8 0f 15
+    call 031beh                               ; e8 0f 15
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -3631,12 +3642,12 @@
     mov al, byte [bx]                         ; 8a 07
     test word [bp-012h], ax                   ; 85 46 ee
-    je short 01c59h                           ; 74 bb
+    je short 01c7ch                           ; 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
+    jmp short 01c7eh                          ; eb b4
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 01c3fh                          ; eb 94
+    jmp short 01c62h                          ; eb 94
     mov ax, 0ff08h                            ; b8 08 ff
     mov dx, 003ceh                            ; ba ce 03
@@ -3651,5 +3662,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-write_gfx_char_cga_:                         ; 0xc1cc3 LB 0x13a
+write_gfx_char_cga_:                         ; 0xc1ce6 LB 0x13a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3659,5 +3670,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], dl                    ; 88 56 f6
-    mov si, 053edh                            ; be ed 53
+    mov si, 053f2h                            ; be f2 53
     xor bh, bh                                ; 30 ff
     mov al, byte [bp+006h]                    ; 8a 46 06
@@ -3679,8 +3690,8 @@
     sal di, CL                                ; d3 e7
     mov byte [bp-006h], ah                    ; 88 66 fa
-    jmp near 01d54h                           ; e9 52 00
+    jmp near 01d77h                           ; e9 52 00
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 01d13h                          ; eb 0b
+    jmp short 01d36h                          ; eb 0b
     or al, bl                                 ; 08 d8
     shr ch, 1                                 ; d0 ed
@@ -3688,5 +3699,5 @@
     ; inc ah                                    ; fe c4
     cmp ah, 008h                              ; 80 fc 08
-    jnc short 01d3eh                          ; 73 2b
+    jnc short 01d61h                          ; 73 2b
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -3698,5 +3709,5 @@
     mov bl, ch                                ; 88 eb
     test dx, bx                               ; 85 da
-    je short 01d0ah                           ; 74 e2
+    je short 01d2dh                           ; 74 e2
     mov CL, strict byte 007h                  ; b1 07
     sub cl, ah                                ; 28 e1
@@ -3705,15 +3716,15 @@
     sal bl, CL                                ; d2 e3
     test byte [bp-00ah], 080h                 ; f6 46 f6 80
-    je short 01d08h                           ; 74 ce
+    je short 01d2bh                           ; 74 ce
     xor al, bl                                ; 30 d8
-    jmp short 01d0ah                          ; eb cc
+    jmp short 01d2dh                          ; 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
+    call 031cch                               ; e8 5e 14
     inc byte [bp-006h]                        ; fe 46 fa
     cmp byte [bp-006h], 008h                  ; 80 7e fa 08
-    jnc short 01da6h                          ; 73 52
+    jnc short 01dc9h                          ; 73 52
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -3725,29 +3736,29 @@
     mov word [bp-00ch], dx                    ; 89 56 f4
     test byte [bp-006h], 001h                 ; f6 46 fa 01
-    je short 01d72h                           ; 74 04
+    je short 01d95h                           ; 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
+    jne short 01daeh                          ; 75 11
     test byte [bp-00ah], ch                   ; 84 6e f6
-    je short 01d02h                           ; 74 83
+    je short 01d25h                           ; 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
+    call 031beh                               ; e8 13 14
+    jmp near 01d27h                           ; e9 79 ff
     test ch, ch                               ; 84 ed
-    jbe short 01d4bh                          ; 76 bc
+    jbe short 01d6eh                          ; 76 bc
     test byte [bp-00ah], 080h                 ; f6 46 f6 80
-    je short 01da0h                           ; 74 0b
+    je short 01dc3h                           ; 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
+    call 031beh                               ; e8 fd 13
+    jmp short 01dc5h                          ; eb 02
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 01dadh                          ; eb 07
-    jmp short 01df4h                          ; eb 4c
+    jmp short 01dd0h                          ; eb 07
+    jmp short 01e17h                          ; eb 4c
     cmp ah, 004h                              ; 80 fc 04
-    jnc short 01de2h                          ; 73 35
+    jnc short 01e05h                          ; 73 35
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -3759,5 +3770,5 @@
     mov bl, ch                                ; 88 eb
     test dx, bx                               ; 85 da
-    je short 01ddch                           ; 74 1a
+    je short 01dffh                           ; 74 1a
     mov CL, strict byte 003h                  ; b1 03
     sub cl, ah                                ; 28 e1
@@ -3767,19 +3778,19 @@
     sal bl, CL                                ; d2 e3
     test byte [bp-00ah], 080h                 ; f6 46 f6 80
-    je short 01ddah                           ; 74 04
+    je short 01dfdh                           ; 74 04
     xor al, bl                                ; 30 d8
-    jmp short 01ddch                          ; eb 02
+    jmp short 01dffh                          ; eb 02
     or al, bl                                 ; 08 d8
     shr ch, 1                                 ; d0 ed
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 01da8h                          ; eb c6
+    jmp short 01dcbh                          ; 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
+    call 031cch                               ; e8 ba 13
     inc word [bp-00ch]                        ; ff 46 f4
-    jmp short 01d8bh                          ; eb 97
+    jmp short 01daeh                          ; eb 97
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3787,5 +3798,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-write_gfx_char_lin_:                         ; 0xc1dfd LB 0xac
+write_gfx_char_lin_:                         ; 0xc1e20 LB 0xac
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3797,5 +3808,5 @@
     mov byte [bp-006h], bl                    ; 88 5e fa
     mov al, cl                                ; 88 c8
-    mov si, 053edh                            ; be ed 53
+    mov si, 053f2h                            ; be f2 53
     xor ah, ah                                ; 30 e4
     mov bl, byte [bp+004h]                    ; 8a 5e 04
@@ -3814,7 +3825,7 @@
     sal di, CL                                ; d3 e7
     xor ch, ch                                ; 30 ed
-    jmp short 01e7dh                          ; eb 44
+    jmp short 01ea0h                          ; eb 44
     cmp cl, 008h                              ; 80 f9 08
-    jnc short 01e76h                          ; 73 38
+    jnc short 01e99h                          ; 73 38
     xor dl, dl                                ; 30 d2
     mov al, ch                                ; 88 e8
@@ -3828,5 +3839,5 @@
     xor bh, bh                                ; 30 ff
     test ax, bx                               ; 85 d8
-    je short 01e5ah                           ; 74 03
+    je short 01e7dh                           ; 74 03
     mov dl, byte [bp-00ch]                    ; 8a 56 f4
     mov bl, dl                                ; 88 d3
@@ -3838,13 +3849,13 @@
     mov bx, ax                                ; 89 c3
     mov ax, 0a000h                            ; b8 00 a0
-    call 031a9h                               ; e8 3a 13
+    call 031cch                               ; e8 3a 13
     shr byte [bp-008h], 1                     ; d0 6e f8
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
-    jmp short 01e39h                          ; eb c3
+    jmp short 01e5ch                          ; eb c3
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
     cmp ch, 008h                              ; 80 fd 08
-    jnc short 01ea0h                          ; 73 23
+    jnc short 01ec3h                          ; 73 23
     mov bl, ch                                ; 88 eb
     xor bh, bh                                ; 30 ff
@@ -3861,5 +3872,5 @@
     mov byte [bp-008h], 080h                  ; c6 46 f8 80
     xor cl, cl                                ; 30 c9
-    jmp short 01e3eh                          ; eb 9e
+    jmp short 01e61h                          ; eb 9e
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3867,5 +3878,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-biosfn_write_char_attr_:                     ; 0xc1ea9 LB 0x192
+biosfn_write_char_attr_:                     ; 0xc1ecc LB 0x192
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3879,17 +3890,17 @@
     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
+    call 031beh                               ; e8 d6 12
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; 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
+    jne short 01ef9h                          ; 75 03
+    jmp near 02057h                           ; 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
+    call 00a8ch                               ; e8 85 eb
     mov al, byte [bp-01eh]                    ; 8a 46 e2
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -3898,5 +3909,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 a2 12
+    call 031beh                               ; e8 a2 12
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -3904,5 +3915,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 af 12
+    call 031dah                               ; e8 af 12
     mov bx, ax                                ; 89 c3
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -3912,6 +3923,6 @@
     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
+    cmp byte [di+04635h], 000h                ; 80 bd 35 46 00
+    jne short 01f8ah                          ; 75 49
     mov ax, bx                                ; 89 d8
     mul word [bp-01ah]                        ; f7 66 e6
@@ -3939,44 +3950,44 @@
     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 es, [di+04638h]                       ; 8e 85 38 46
     mov cx, si                                ; 89 f1
     mov di, dx                                ; 89 d7
     cld                                       ; fc
-    jcxz 01f64h                               ; e3 02
+    jcxz 01f87h                               ; 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
+    jmp near 02057h                           ; e9 cd 00
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+046b4h]                  ; 8a 87 b4 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 al, byte [bx+046cah]                  ; 8a 87 ca 46
     mov byte [bp-010h], al                    ; 88 46 f0
-    mov al, byte [di+04632h]                  ; 8a 85 32 46
+    mov al, byte [di+04637h]                  ; 8a 85 37 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
+    je short 01fb4h                           ; 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
+    jc short 01fb7h                           ; 72 03
+    jmp near 02057h                           ; 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
+    mov al, byte [bx+04636h]                  ; 8a 87 36 46
     cmp al, cl                                ; 38 c8
-    jc short 01fb2h                           ; 72 0d
-    jbe short 01fb8h                          ; 76 11
+    jc short 01fd5h                           ; 72 0d
+    jbe short 01fdbh                          ; 76 11
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0200dh                           ; 74 62
+    je short 02030h                           ; 74 62
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 01fb8h                           ; 74 09
-    jmp near 0202eh                           ; e9 7c 00
+    je short 01fdbh                           ; 74 09
+    jmp near 02051h                           ; e9 7c 00
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 01fe1h                           ; 74 2b
-    jmp short 0202eh                          ; eb 76
+    je short 02004h                           ; 74 2b
+    jmp short 02051h                          ; eb 76
     mov bl, byte [bp-010h]                    ; 8a 5e f0
     xor bh, bh                                ; 30 ff
@@ -3995,6 +4006,6 @@
     mov bx, dx                                ; 89 d3
     mov dx, di                                ; 89 fa
-    call 01bcbh                               ; e8 ec fb
-    jmp short 0202eh                          ; eb 4d
+    call 01beeh                               ; e8 ec fb
+    jmp short 02051h                          ; eb 4d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     push ax                                   ; 50
@@ -4013,6 +4024,6 @@
     mov bx, ax                                ; 89 c3
     mov ax, di                                ; 89 f8
-    call 01cc3h                               ; e8 b8 fc
-    jmp short 0202eh                          ; eb 21
+    call 01ce6h                               ; e8 b8 fc
+    jmp short 02051h                          ; eb 21
     mov bl, byte [bp-016h]                    ; 8a 5e ea
     xor bh, bh                                ; 30 ff
@@ -4028,7 +4039,7 @@
     mov bx, dx                                ; 89 d3
     mov dx, di                                ; 89 fa
-    call 01dfdh                               ; e8 cf fd
+    call 01e20h                               ; e8 cf fd
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 01f81h                           ; e9 4d ff
+    jmp near 01fa4h                           ; e9 4d ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4036,5 +4047,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_char_only_:                     ; 0xc203b LB 0x193
+biosfn_write_char_only_:                     ; 0xc205e LB 0x193
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4048,12 +4059,12 @@
     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
+    call 031beh                               ; e8 44 11
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; 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
+    jne short 0208bh                          ; 75 03
+    jmp near 021eah                           ; e9 5f 01
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -4061,5 +4072,5 @@
     lea bx, [bp-01ch]                         ; 8d 5e e4
     lea dx, [bp-01ah]                         ; 8d 56 e6
-    call 00a8ch                               ; e8 14 ea
+    call 00a8ch                               ; e8 f1 e9
     mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [bp-00eh], al                    ; 88 46 f2
@@ -4068,5 +4079,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 0e 11
+    call 031beh                               ; e8 0e 11
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -4075,5 +4086,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 19 11
+    call 031dah                               ; e8 19 11
     mov di, ax                                ; 89 c7
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -4083,6 +4094,6 @@
     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
+    cmp byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    jne short 02125h                          ; 75 4e
     mov ax, di                                ; 89 f8
     mul word [bp-018h]                        ; f7 66 e8
@@ -4105,5 +4116,5 @@
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 02065h                           ; 74 84
+    je short 02088h                           ; 74 84
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
@@ -4113,45 +4124,45 @@
     mov bx, dx                                ; 89 d3
     sal bx, CL                                ; d3 e3
-    mov cx, word [bx+04633h]                  ; 8b 8f 33 46
+    mov cx, word [bx+04638h]                  ; 8b 8f 38 46
     mov bx, ax                                ; 89 c3
     mov dx, di                                ; 89 fa
     mov ax, cx                                ; 89 c8
-    call 031a9h                               ; e8 ab 10
+    call 031cch                               ; e8 ab 10
     inc di                                    ; 47
     inc di                                    ; 47
-    jmp short 020dbh                          ; eb d9
+    jmp short 020feh                          ; eb d9
     mov di, ax                                ; 89 c7
-    mov dl, byte [di+046afh]                  ; 8a 95 af 46
+    mov dl, byte [di+046b4h]                  ; 8a 95 b4 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 al, byte [di+046cah]                  ; 8a 85 ca 46
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+04632h]                  ; 8a 87 32 46
+    mov al, byte [bx+04637h]                  ; 8a 87 37 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
+    je short 0219ch                           ; 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
+    jnc short 0219ch                          ; 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
+    mov bl, byte [bx+04636h]                  ; 8a 9f 36 46
     cmp bl, cl                                ; 38 cb
-    jc short 0214dh                           ; 72 0e
-    jbe short 02154h                          ; 76 13
+    jc short 02170h                           ; 72 0e
+    jbe short 02177h                          ; 76 13
     cmp bl, 005h                              ; 80 fb 05
-    je short 021a0h                           ; 74 5a
+    je short 021c3h                           ; 74 5a
     cmp bl, 004h                              ; 80 fb 04
-    je short 02154h                           ; 74 09
-    jmp short 021c1h                          ; eb 74
+    je short 02177h                           ; 74 09
+    jmp short 021e4h                          ; eb 74
     cmp bl, 002h                              ; 80 fb 02
-    je short 0217bh                           ; 74 29
-    jmp short 021c1h                          ; eb 6d
+    je short 0219eh                           ; 74 29
+    jmp short 021e4h                          ; eb 6d
     mov dl, byte [bp-012h]                    ; 8a 56 ee
     xor dh, dh                                ; 30 f6
@@ -4168,7 +4179,7 @@
     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
+    call 01beeh                               ; e8 54 fa
+    jmp short 021e4h                          ; eb 48
+    jmp short 021eah                          ; eb 4c
     mov bl, byte [bp-010h]                    ; 8a 5e f0
     xor bh, bh                                ; 30 ff
@@ -4185,6 +4196,6 @@
     mov bx, dx                                ; 89 d3
     mov dx, di                                ; 89 fa
-    call 01cc3h                               ; e8 25 fb
-    jmp short 021c1h                          ; eb 21
+    call 01ce6h                               ; e8 25 fb
+    jmp short 021e4h                          ; eb 21
     mov bl, byte [bp-016h]                    ; 8a 5e ea
     xor bh, bh                                ; 30 ff
@@ -4200,7 +4211,7 @@
     mov ax, bx                                ; 89 d8
     mov bx, di                                ; 89 fb
-    call 01dfdh                               ; e8 3c fc
+    call 01e20h                               ; e8 3c fc
     inc byte [bp-00eh]                        ; fe 46 f2
-    jmp near 0211eh                           ; e9 57 ff
+    jmp near 02141h                           ; e9 57 ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4208,5 +4219,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_pixel_:                         ; 0xc21ce LB 0x17f
+biosfn_write_pixel_:                         ; 0xc21f1 LB 0x17f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4218,32 +4229,32 @@
     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
+    call 031beh                               ; e8 b4 0f
+    xor ah, ah                                ; 30 e4
+    call 03193h                               ; e8 84 0f
     mov ch, al                                ; 88 c5
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 02219h                           ; 74 27
+    je short 0223ch                           ; 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 byte [bx+04635h], 000h                ; 80 bf 35 46 00
+    je short 0223ch                           ; 74 18
+    mov al, byte [bx+04636h]                  ; 8a 87 36 46
     cmp al, cl                                ; 38 c8
-    jc short 02215h                           ; 72 0c
-    jbe short 0221fh                          ; 76 14
+    jc short 02238h                           ; 72 0c
+    jbe short 02242h                          ; 76 14
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0221ch                           ; 74 0d
+    je short 0223fh                           ; 74 0d
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 0221fh                           ; 74 0c
-    jmp short 02219h                          ; eb 04
+    je short 02242h                           ; 74 0c
+    jmp short 0223ch                          ; 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
+    je short 022adh                           ; 74 71
+    jmp near 02341h                           ; e9 02 01
+    jmp near 02347h                           ; e9 05 01
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 8f 0f
+    call 031dah                               ; e8 8f 0f
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -4267,7 +4278,7 @@
     mov dx, bx                                ; 89 da
     mov ax, 0a000h                            ; b8 00 a0
-    call 0319bh                               ; e8 3f 0f
+    call 031beh                               ; e8 3f 0f
     test byte [bp-004h], 080h                 ; f6 46 fc 80
-    je short 02269h                           ; 74 07
+    je short 0228ch                           ; 74 07
     mov ax, 01803h                            ; b8 03 18
     mov dx, 003ceh                            ; ba ce 03
@@ -4278,5 +4289,5 @@
     mov dx, word [bp-006h]                    ; 8b 56 fa
     mov ax, 0a000h                            ; b8 00 a0
-    call 031a9h                               ; e8 30 0f
+    call 031cch                               ; e8 30 0f
     mov ax, 0ff08h                            ; b8 08 ff
     mov dx, 003ceh                            ; ba ce 03
@@ -4286,15 +4297,15 @@
     mov ax, strict word 00003h                ; b8 03 00
     out DX, ax                                ; ef
-    jmp short 02219h                          ; eb 8f
+    jmp short 0223ch                          ; 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
+    cmp byte [bx+04637h], 002h                ; 80 bf 37 46 02
+    jne short 022c7h                          ; 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
+    jmp short 022cch                          ; eb 05
     mov bx, word [bp-008h]                    ; 8b 5e f8
     shr bx, CL                                ; d3 eb
@@ -4302,9 +4313,9 @@
     mov word [bp-006h], bx                    ; 89 5e fa
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 022b8h                           ; 74 04
+    je short 022dbh                           ; 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
+    call 031beh                               ; e8 da 0e
     mov bl, al                                ; 88 c3
     mov al, ch                                ; 88 e8
@@ -4313,6 +4324,6 @@
     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
+    cmp byte [si+04637h], 002h                ; 80 bc 37 46 02
+    jne short 02311h                          ; 75 1a
     mov al, byte [bp-008h]                    ; 8a 46 f8
     and al, cl                                ; 20 c8
@@ -4326,5 +4337,5 @@
     sal bh, CL                                ; d2 e7
     mov AL, strict byte 003h                  ; b0 03
-    jmp short 02301h                          ; eb 13
+    jmp short 02324h                          ; eb 13
     mov al, byte [bp-008h]                    ; 8a 46 f8
     and AL, strict byte 007h                  ; 24 07
@@ -4337,7 +4348,7 @@
     sal al, CL                                ; d2 e0
     test byte [bp-004h], 080h                 ; f6 46 fc 80
-    je short 0230dh                           ; 74 04
+    je short 02330h                           ; 74 04
     xor bl, bh                                ; 30 fb
-    jmp short 02313h                          ; eb 06
+    jmp short 02336h                          ; eb 06
     not al                                    ; f6 d0
     and bl, al                                ; 20 c3
@@ -4346,5 +4357,5 @@
     mov dx, word [bp-006h]                    ; 8b 56 fa
     mov ax, 0b800h                            ; b8 00 b8
-    call 031a9h                               ; e8 8b 0e
+    call 031cch                               ; e8 8b 0e
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
@@ -4353,5 +4364,5 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 8a 0e
+    call 031dah                               ; e8 8a 0e
     mov bx, ax                                ; 89 c3
     sal bx, CL                                ; d3 e3
@@ -4366,6 +4377,6 @@
     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
+    jmp short 0233eh                          ; eb ce
+biosfn_write_teletype_:                      ; 0xc2370 LB 0x25f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4378,24 +4389,24 @@
     mov byte [bp-00ch], cl                    ; 88 4e f4
     cmp dl, 0ffh                              ; 80 fa ff
-    jne short 02372h                          ; 75 0c
+    jne short 02395h                          ; 75 0c
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 2c 0e
+    call 031beh                               ; 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
+    call 031beh                               ; e8 20 0e
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 03170h                               ; e8 ec 0d
+    call 03193h                               ; e8 ec 0d
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 023eeh                           ; 74 63
+    je short 02411h                           ; 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
+    call 00a8ch                               ; e8 d0 e6
     mov al, byte [bp-01eh]                    ; 8a 46 e2
     mov byte [bp-006h], al                    ; 88 46 fa
@@ -4404,5 +4415,5 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 ed 0d
+    call 031beh                               ; e8 ed 0d
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -4411,26 +4422,26 @@
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 f8 0d
+    call 031dah                               ; 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
+    jc short 023f8h                           ; 72 0c
+    jbe short 023ffh                          ; 76 11
     cmp AL, strict byte 00dh                  ; 3c 0d
-    je short 023e7h                           ; 74 18
+    je short 0240ah                           ; 74 18
     cmp AL, strict byte 00ah                  ; 3c 0a
-    je short 023f1h                           ; 74 1e
-    jmp short 023f4h                          ; eb 1f
+    je short 02414h                           ; 74 1e
+    jmp short 02417h                          ; eb 1f
     cmp AL, strict byte 007h                  ; 3c 07
-    jne short 023f4h                          ; 75 1b
-    jmp near 024eah                           ; e9 0e 01
+    jne short 02417h                          ; 75 1b
+    jmp near 0250dh                           ; e9 0e 01
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jbe short 023ebh                          ; 76 09
+    jbe short 0240eh                          ; 76 09
     dec byte [bp-006h]                        ; fe 4e fa
-    jmp short 023ebh                          ; eb 04
+    jmp short 0240eh                          ; 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
+    jmp near 0250dh                           ; e9 fc 00
+    jmp near 025c8h                           ; e9 b4 01
+    jmp near 0250ah                           ; e9 f3 00
     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
@@ -4438,6 +4449,6 @@
     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
+    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
+    jne short 0246fh                          ; 75 46
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mul word [bp-018h]                        ; f7 66 e8
@@ -4456,33 +4467,33 @@
     add cx, ax                                ; 01 c1
     mov bl, byte [bp-016h]                    ; 8a 5e ea
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
     mov dx, cx                                ; 89 ca
-    call 031a9h                               ; e8 74 0d
+    call 031cch                               ; e8 74 0d
     cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
-    jne short 02492h                          ; 75 57
+    jne short 024b5h                          ; 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 ax, word [si+04638h]                  ; 8b 84 38 46
+    call 031cch                               ; e8 5f 0d
+    jmp short 024b5h                          ; eb 46
+    mov bl, byte [bx+046b4h]                  ; 8a 9f b4 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
+    mov bl, byte [bx+046cah]                  ; 8a 9f ca 46
+    mov ah, byte [si+04637h]                  ; 8a a4 37 46
+    mov al, byte [si+04636h]                  ; 8a 84 36 46
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 02470h                           ; 72 0c
-    jbe short 02476h                          ; 76 10
+    jc short 02493h                           ; 72 0c
+    jbe short 02499h                          ; 76 10
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 024b4h                           ; 74 4a
+    je short 024d7h                           ; 74 4a
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 02476h                           ; 74 08
-    jmp short 024d7h                          ; eb 67
+    je short 02499h                           ; 74 08
+    jmp short 024fah                          ; eb 67
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 02494h                           ; 74 20
-    jmp short 024d7h                          ; eb 61
+    je short 024b7h                           ; 74 20
+    jmp short 024fah                          ; eb 61
     xor bh, bh                                ; 30 ff
     push bx                                   ; 53
@@ -4496,6 +4507,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-016h]                    ; 8a 46 ea
-    call 01bcbh                               ; e8 39 f7
-    jmp short 024d7h                          ; eb 43
+    call 01beeh                               ; e8 39 f7
+    jmp short 024fah                          ; eb 43
     mov al, ah                                ; 88 e0
     xor ah, ah                                ; 30 e4
@@ -4510,6 +4521,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-016h]                    ; 8a 46 ea
-    call 01cc3h                               ; e8 11 f8
-    jmp short 024d7h                          ; eb 23
+    call 01ce6h                               ; e8 11 f8
+    jmp short 024fah                          ; eb 23
     mov al, byte [bp-01ah]                    ; 8a 46 e6
     xor ah, ah                                ; 30 e4
@@ -4526,10 +4537,10 @@
     mov bx, si                                ; 89 f3
     mov ax, di                                ; 89 f8
-    call 01dfdh                               ; e8 26 f9
+    call 01e20h                               ; 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
+    jne short 0250dh                          ; 75 06
     mov byte [bp-006h], bh                    ; 88 7e fa
     inc byte [bp-008h]                        ; fe 46 f8
@@ -4538,5 +4549,5 @@
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp bx, ax                                ; 39 c3
-    jne short 02567h                          ; 75 71
+    jne short 0258ah                          ; 75 71
     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, ah                                ; 30 e7
@@ -4552,6 +4563,6 @@
     ; 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
+    cmp byte [si+04635h], 000h                ; 80 bc 35 46 00
+    jne short 0258ch                          ; 75 51
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mul word [bp-018h]                        ; f7 66 e8
@@ -4574,6 +4585,6 @@
     add dx, ax                                ; 01 c2
     inc dx                                    ; 42
-    mov ax, word [si+04633h]                  ; 8b 84 33 46
-    call 0319bh                               ; e8 51 0c
+    mov ax, word [si+04638h]                  ; 8b 84 38 46
+    call 031beh                               ; e8 51 0c
     mov dx, strict word 00001h                ; ba 01 00
     push dx                                   ; 52
@@ -4589,6 +4600,6 @@
     xor bl, al                                ; 30 c3
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02581h                          ; eb 1a
-    jmp short 02587h                          ; eb 1e
+    jmp short 025a4h                          ; eb 1a
+    jmp short 025aah                          ; eb 1e
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -4603,5 +4614,5 @@
     xor bl, bl                                ; 30 db
     xor dx, dx                                ; 31 d2
-    call 01655h                               ; e8 d1 f0
+    call 01678h                               ; e8 d1 f0
     dec byte [bp-008h]                        ; fe 4e f8
     mov bl, byte [bp-008h]                    ; 8a 5e f8
@@ -4615,5 +4626,5 @@
     mov bl, byte [bp-014h]                    ; 8a 5e ec
     mov ax, bx                                ; 89 d8
-    call 00e91h                               ; e8 ec e8
+    call 00e91h                               ; e8 c9 e8
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4621,5 +4632,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_font_access_:                            ; 0xc25ac LB 0x2c
+get_font_access_:                            ; 0xc25cf LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4645,5 +4656,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-release_font_access_:                        ; 0xc25d8 LB 0x3f
+release_font_access_:                        ; 0xc25fb LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4679,5 +4690,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_scan_lines_:                             ; 0xc2617 LB 0xc8
+set_scan_lines_:                             ; 0xc263a LB 0xc8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4690,5 +4701,5 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 8d 0b
+    call 031dah                               ; e8 8d 0b
     mov dx, ax                                ; 89 c2
     mov si, ax                                ; 89 c6
@@ -4707,8 +4718,8 @@
     out DX, AL                                ; ee
     cmp bl, 008h                              ; 80 fb 08
-    jne short 0264eh                          ; 75 08
+    jne short 02671h                          ; 75 08
     mov dx, strict word 00007h                ; ba 07 00
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 0265bh                          ; eb 0d
+    jmp short 0267eh                          ; eb 0d
     mov dl, bl                                ; 88 da
     sub dl, 003h                              ; 80 ea 03
@@ -4717,5 +4728,5 @@
     sub AL, strict byte 004h                  ; 2c 04
     xor ah, ah                                ; 30 e4
-    call 00ddeh                               ; e8 80 e7
+    call 00ddeh                               ; e8 5d e7
     mov byte [bp-00ah], bl                    ; 88 5e f6
     mov byte [bp-009h], 000h                  ; c6 46 f7 00
@@ -4723,5 +4734,5 @@
     mov dx, 00085h                            ; ba 85 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 54 0b
+    call 031e8h                               ; e8 54 0b
     mov AL, strict byte 012h                  ; b0 12
     mov dx, si                                ; 89 f2
@@ -4761,8 +4772,8 @@
     mov dx, 00084h                            ; ba 84 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 f1 0a
+    call 031cch                               ; e8 f1 0a
     mov dx, strict word 0004ah                ; ba 4a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 f6 0a
+    call 031dah                               ; e8 f6 0a
     mov dx, ax                                ; 89 c2
     mov al, cl                                ; 88 c8
@@ -4773,5 +4784,5 @@
     mov dx, strict word 0004ch                ; ba 4c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 ef 0a
+    call 031e8h                               ; e8 ef 0a
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop si                                    ; 5e
@@ -4781,5 +4792,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_user_pat_:                  ; 0xc26df LB 0x85
+biosfn_load_text_user_pat_:                  ; 0xc2702 LB 0x85
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4791,5 +4802,5 @@
     mov word [bp-00ah], bx                    ; 89 5e f6
     mov word [bp-00ch], cx                    ; 89 4e f4
-    call 025ach                               ; e8 b6 fe
+    call 025cfh                               ; e8 b6 fe
     mov al, byte [bp+006h]                    ; 8a 46 06
     and AL, strict byte 003h                  ; 24 03
@@ -4806,5 +4817,5 @@
     xor bx, bx                                ; 31 db
     cmp bx, word [bp-00ch]                    ; 3b 5e f4
-    jnc short 0274ah                          ; 73 32
+    jnc short 0276dh                          ; 73 32
     mov al, byte [bp+008h]                    ; 8a 46 08
     xor ah, ah                                ; 30 e4
@@ -4824,5 +4835,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 02747h                               ; e3 06
+    jcxz 0276ah                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4830,11 +4841,11 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 02713h                          ; eb c9
-    call 025d8h                               ; e8 8b fe
+    jmp short 02736h                          ; eb c9
+    call 025fbh                               ; e8 8b fe
     cmp byte [bp-006h], 010h                  ; 80 7e fa 10
-    jc short 0275bh                           ; 72 08
+    jc short 0277eh                           ; 72 08
     mov al, byte [bp+008h]                    ; 8a 46 08
     xor ah, ah                                ; 30 e4
-    call 02617h                               ; e8 bc fe
+    call 0263ah                               ; e8 bc fe
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -4842,5 +4853,5 @@
     pop bp                                    ; 5d
     retn 00006h                               ; c2 06 00
-biosfn_load_text_8_14_pat_:                  ; 0xc2764 LB 0x76
+biosfn_load_text_8_14_pat_:                  ; 0xc2787 LB 0x76
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4852,5 +4863,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 025ach                               ; e8 39 fe
+    call 025cfh                               ; e8 39 fe
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4866,7 +4877,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 02796h                          ; eb 06
+    jmp short 027b9h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 027c2h                          ; 73 2c
+    jnc short 027e5h                          ; 73 2c
     mov ax, bx                                ; 89 d8
     mov si, strict word 0000eh                ; be 0e 00
@@ -4876,5 +4887,5 @@
     sal di, CL                                ; d3 e7
     add di, word [bp-00ch]                    ; 03 7e f4
-    mov si, 05bedh                            ; be ed 5b
+    mov si, 05bf2h                            ; be f2 5b
     add si, ax                                ; 01 c6
     mov cx, strict word 0000eh                ; b9 0e 00
@@ -4883,5 +4894,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 027bfh                               ; e3 06
+    jcxz 027e2h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4889,10 +4900,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 02790h                          ; eb ce
-    call 025d8h                               ; e8 13 fe
+    jmp short 027b3h                          ; eb ce
+    call 025fbh                               ; e8 13 fe
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 027d1h                           ; 72 06
+    jc short 027f4h                           ; 72 06
     mov ax, strict word 0000eh                ; b8 0e 00
-    call 02617h                               ; e8 46 fe
+    call 0263ah                               ; e8 46 fe
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4902,5 +4913,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_8_8_pat_:                   ; 0xc27da LB 0x74
+biosfn_load_text_8_8_pat_:                   ; 0xc27fd LB 0x74
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4912,5 +4923,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 025ach                               ; e8 c3 fd
+    call 025cfh                               ; e8 c3 fd
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4926,7 +4937,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 0280ch                          ; eb 06
+    jmp short 0282fh                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 02836h                          ; 73 2a
+    jnc short 02859h                          ; 73 2a
     mov CL, strict byte 003h                  ; b1 03
     mov si, bx                                ; 89 de
@@ -4936,5 +4947,5 @@
     sal di, CL                                ; d3 e7
     add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 053edh                            ; 81 c6 ed 53
+    add si, 053f2h                            ; 81 c6 f2 53
     mov cx, strict word 00008h                ; b9 08 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -4942,5 +4953,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 02833h                               ; e3 06
+    jcxz 02856h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -4948,10 +4959,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 02806h                          ; eb d0
-    call 025d8h                               ; e8 9f fd
+    jmp short 02829h                          ; eb d0
+    call 025fbh                               ; e8 9f fd
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 02845h                           ; 72 06
+    jc short 02868h                           ; 72 06
     mov ax, strict word 00008h                ; b8 08 00
-    call 02617h                               ; e8 d2 fd
+    call 0263ah                               ; e8 d2 fd
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -4961,5 +4972,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_text_8_16_pat_:                  ; 0xc284e LB 0x74
+biosfn_load_text_8_16_pat_:                  ; 0xc2871 LB 0x74
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4971,5 +4982,5 @@
     push ax                                   ; 50
     mov byte [bp-00ah], al                    ; 88 46 f6
-    call 025ach                               ; e8 4f fd
+    call 025cfh                               ; e8 4f fd
     mov al, dl                                ; 88 d0
     and AL, strict byte 003h                  ; 24 03
@@ -4985,7 +4996,7 @@
     mov word [bp-00ch], bx                    ; 89 5e f4
     xor bx, bx                                ; 31 db
-    jmp short 02880h                          ; eb 06
+    jmp short 028a3h                          ; eb 06
     cmp bx, 00100h                            ; 81 fb 00 01
-    jnc short 028aah                          ; 73 2a
+    jnc short 028cdh                          ; 73 2a
     mov CL, strict byte 004h                  ; b1 04
     mov si, bx                                ; 89 de
@@ -4995,5 +5006,5 @@
     sal di, CL                                ; d3 e7
     add di, word [bp-00ch]                    ; 03 7e f4
-    add si, 069edh                            ; 81 c6 ed 69
+    add si, 069f2h                            ; 81 c6 f2 69
     mov cx, strict word 00010h                ; b9 10 00
     mov dx, 0c000h                            ; ba 00 c0
@@ -5001,5 +5012,5 @@
     mov es, ax                                ; 8e c0
     cld                                       ; fc
-    jcxz 028a7h                               ; e3 06
+    jcxz 028cah                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -5007,10 +5018,10 @@
     pop DS                                    ; 1f
     inc bx                                    ; 43
-    jmp short 0287ah                          ; eb d0
-    call 025d8h                               ; e8 2b fd
+    jmp short 0289dh                          ; eb d0
+    call 025fbh                               ; e8 2b fd
     cmp byte [bp-00ah], 010h                  ; 80 7e f6 10
-    jc short 028b9h                           ; 72 06
+    jc short 028dch                           ; 72 06
     mov ax, strict word 00010h                ; b8 10 00
-    call 02617h                               ; e8 5e fd
+    call 0263ah                               ; e8 5e fd
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -5020,45 +5031,45 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_8_8_chars_:                  ; 0xc28c2 LB 0x5
+biosfn_load_gfx_8_8_chars_:                  ; 0xc28e5 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_user_chars_:                 ; 0xc28c7 LB 0x7
+biosfn_load_gfx_user_chars_:                 ; 0xc28ea 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
+biosfn_load_gfx_8_14_chars_:                 ; 0xc28f1 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
+biosfn_load_gfx_8_8_dd_chars_:               ; 0xc28f6 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_load_gfx_8_16_chars_:                 ; 0xc28d8 LB 0x5
+biosfn_load_gfx_8_16_chars_:                 ; 0xc28fb LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_alternate_prtsc_:                     ; 0xc28dd LB 0x5
+biosfn_alternate_prtsc_:                     ; 0xc2900 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_switch_video_interface_:              ; 0xc28e2 LB 0x5
+biosfn_switch_video_interface_:              ; 0xc2905 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_enable_video_refresh_control_:        ; 0xc28e7 LB 0x5
+biosfn_enable_video_refresh_control_:        ; 0xc290a LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_write_string_:                        ; 0xc28ec LB 0x96
+biosfn_write_string_:                        ; 0xc290f LB 0x96
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5075,7 +5086,7 @@
     lea bx, [bp-00eh]                         ; 8d 5e f2
     lea dx, [bp-00ch]                         ; 8d 56 f4
-    call 00a8ch                               ; e8 7d e1
+    call 00a8ch                               ; e8 5a e1
     cmp byte [bp+004h], 0ffh                  ; 80 7e 04 ff
-    jne short 02921h                          ; 75 0c
+    jne short 02944h                          ; 75 0c
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp+006h], al                    ; 88 46 06
@@ -5086,19 +5097,19 @@
     xor ah, ah                                ; 30 e4
     mov al, byte [bp-00ah]                    ; 8a 46 f6
-    call 00e91h                               ; e8 62 e5
+    call 00e91h                               ; e8 3f e5
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 02968h                           ; 74 33
+    je short 0298bh                           ; 74 33
     mov dx, di                                ; 89 fa
     inc di                                    ; 47
     mov ax, word [bp+008h]                    ; 8b 46 08
-    call 0319bh                               ; e8 5d 08
+    call 031beh                               ; e8 5d 08
     mov cl, al                                ; 88 c1
     test byte [bp-008h], 002h                 ; f6 46 f8 02
-    je short 02952h                           ; 74 0c
+    je short 02975h                           ; 74 0c
     mov dx, di                                ; 89 fa
     inc di                                    ; 47
     mov ax, word [bp+008h]                    ; 8b 46 08
-    call 0319bh                               ; e8 4c 08
+    call 031beh                               ; e8 4c 08
     mov byte [bp-006h], al                    ; 88 46 fa
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -5109,12 +5120,12 @@
     mov al, cl                                ; 88 c8
     mov cx, strict word 00003h                ; b9 03 00
-    call 0234dh                               ; e8 e7 f9
-    jmp short 0292fh                          ; eb c7
+    call 02370h                               ; e8 e7 f9
+    jmp short 02952h                          ; eb c7
     test byte [bp-008h], 001h                 ; f6 46 f8 01
-    jne short 02979h                          ; 75 0b
+    jne short 0299ch                          ; 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
+    call 00e91h                               ; e8 f5 e4
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -5122,5 +5133,5 @@
     pop bp                                    ; 5d
     retn 00008h                               ; c2 08 00
-biosfn_read_state_info_:                     ; 0xc2982 LB 0x102
+biosfn_read_state_info_:                     ; 0xc29a5 LB 0x102
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5131,8 +5142,8 @@
     push bx                                   ; 53
     mov cx, ds                                ; 8c d9
-    mov bx, 05383h                            ; bb 83 53
+    mov bx, 05388h                            ; bb 88 53
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 031e5h                               ; e8 4d 08
+    call 03208h                               ; e8 4d 08
     mov di, word [bp-00ah]                    ; 8b 7e f6
     add di, strict byte 00004h                ; 83 c7 04
@@ -5142,5 +5153,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 029b3h                               ; e3 06
+    jcxz 029d6h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -5154,5 +5165,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 029ceh                               ; e3 06
+    jcxz 029f1h                               ; e3 06
     push DS                                   ; 1e
     mov ds, dx                                ; 8e da
@@ -5161,5 +5172,5 @@
     mov dx, 0008ah                            ; ba 8a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 c4 07
+    call 031beh                               ; e8 c4 07
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -5167,50 +5178,50 @@
     add dx, strict byte 00025h                ; 83 c2 25
     mov ax, word [bp-008h]                    ; 8b 46 f8
-    call 031a9h                               ; e8 c2 07
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; e8 40 07
     mov di, word [bp-00ah]                    ; 8b 7e f6
     add di, strict byte 00033h                ; 83 c7 33
@@ -5219,5 +5230,5 @@
     mov es, [bp-008h]                         ; 8e 46 f8
     cld                                       ; fc
-    jcxz 02a7ch                               ; e3 02
+    jcxz 02a9fh                               ; e3 02
     rep stosb                                 ; f3 aa
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -5227,5 +5238,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_read_video_state_size2_:              ; 0xc2a84 LB 0x23
+biosfn_read_video_state_size2_:              ; 0xc2aa7 LB 0x23
     push dx                                   ; 52
     push bp                                   ; 55
@@ -5234,21 +5245,21 @@
     xor ax, ax                                ; 31 c0
     test dl, 001h                             ; f6 c2 01
-    je short 02a94h                           ; 74 03
+    je short 02ab7h                           ; 74 03
     mov ax, strict word 00046h                ; b8 46 00
     test dl, 002h                             ; f6 c2 02
-    je short 02a9ch                           ; 74 03
+    je short 02abfh                           ; 74 03
     add ax, strict word 0002ah                ; 05 2a 00
     test dl, 004h                             ; f6 c2 04
-    je short 02aa4h                           ; 74 03
+    je short 02ac7h                           ; 74 03
     add ax, 00304h                            ; 05 04 03
     pop bp                                    ; 5d
     pop dx                                    ; 5a
     retn                                      ; c3
-vga_get_video_state_size_:                   ; 0xc2aa7 LB 0x12
+vga_get_video_state_size_:                   ; 0xc2aca LB 0x12
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push bx                                   ; 53
     mov bx, dx                                ; 89 d3
-    call 02a84h                               ; e8 d4 ff
+    call 02aa7h                               ; e8 d4 ff
     mov word [ss:bx], ax                      ; 36 89 07
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -5256,5 +5267,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_save_video_state_:                    ; 0xc2ab9 LB 0x381
+biosfn_save_video_state_:                    ; 0xc2adc LB 0x381
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5269,8 +5280,8 @@
     mov dx, strict word 00063h                ; ba 63 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 e8 06
+    call 031dah                               ; e8 e8 06
     mov di, ax                                ; 89 c7
     test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je short 02b45h                           ; 74 6e
+    je short 02b68h                           ; 74 6e
     mov dx, 003c4h                            ; ba c4 03
     in AL, DX                                 ; ec
@@ -5281,5 +5292,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 c1 06
+    call 031cch                               ; e8 c1 06
     inc cx                                    ; 41
     mov dx, di                                ; 89 fa
@@ -5291,5 +5302,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 b0 06
+    call 031cch                               ; e8 b0 06
     inc cx                                    ; 41
     mov dx, 003ceh                            ; ba ce 03
@@ -5301,5 +5312,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 9e 06
+    call 031cch                               ; e8 9e 06
     inc cx                                    ; 41
     mov dx, 003dah                            ; ba da 03
@@ -5317,5 +5328,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 80 06
+    call 031cch                               ; e8 80 06
     inc cx                                    ; 41
     mov dx, 003cah                            ; ba ca 03
@@ -5327,12 +5338,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 6e 06
+    call 031cch                               ; 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
+    jmp short 02b71h                          ; eb 09
+    jmp near 02c6ch                           ; e9 01 01
     cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
-    jnbe short 02b6ch                         ; 77 1e
+    jnbe short 02b8fh                         ; 77 1e
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003c4h                            ; ba c4 03
@@ -5346,8 +5357,8 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 43 06
+    call 031cch                               ; e8 43 06
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02b48h                          ; eb dc
+    jmp short 02b6bh                          ; eb dc
     xor al, al                                ; 30 c0
     mov dx, 003c4h                            ; ba c4 03
@@ -5361,10 +5372,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 26 06
+    call 031cch                               ; e8 26 06
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     inc cx                                    ; 41
-    jmp short 02b91h                          ; eb 06
+    jmp short 02bb4h                          ; eb 06
     cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
-    jnbe short 02baeh                         ; 77 1d
+    jnbe short 02bd1h                         ; 77 1d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, di                                ; 89 fa
@@ -5378,12 +5389,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 01 06
+    call 031cch                               ; e8 01 06
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02b8bh                          ; eb dd
+    jmp short 02baeh                          ; eb dd
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02bbbh                          ; eb 06
+    jmp short 02bdeh                          ; eb 06
     cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
-    jnbe short 02be5h                         ; 77 2a
+    jnbe short 02c08h                         ; 77 2a
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5403,8 +5414,8 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 ca 05
+    call 031cch                               ; e8 ca 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02bb5h                          ; eb d0
+    jmp short 02bd8h                          ; eb d0
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5412,7 +5423,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02bf8h                          ; eb 06
+    jmp short 02c1bh                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnbe short 02c16h                         ; 77 1e
+    jnbe short 02c39h                         ; 77 1e
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003ceh                            ; ba ce 03
@@ -5426,12 +5437,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 99 05
+    call 031cch                               ; e8 99 05
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02bf2h                          ; eb dc
+    jmp short 02c15h                          ; eb dc
     mov bx, di                                ; 89 fb
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 a6 05
+    call 031e8h                               ; e8 a6 05
     inc cx                                    ; 41
     inc cx                                    ; 41
@@ -5439,187 +5450,187 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 7f 05
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    call 031cch                               ; 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
+    jne short 02c75h                          ; 75 03
+    jmp near 02de2h                           ; e9 6d 01
     mov dx, strict word 00049h                ; ba 49 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0319bh                               ; e8 40 05
+    call 031beh                               ; 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
+    call 031cch                               ; 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
+    call 031dah                               ; e8 47 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 4c 05
+    call 031e8h                               ; 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
+    call 031dah                               ; e8 33 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 38 05
+    call 031e8h                               ; 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
+    call 031dah                               ; e8 1f 05
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 24 05
+    call 031e8h                               ; 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
+    call 031beh                               ; 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
+    call 031cch                               ; 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
+    call 031dah                               ; e8 f6 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 fb 04
+    call 031e8h                               ; 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
+    call 031beh                               ; 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
+    call 031cch                               ; 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
+    call 031beh                               ; 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
+    call 031cch                               ; 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
+    call 031beh                               ; 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
+    call 031cch                               ; 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
+    call 031dah                               ; e8 a3 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 a8 04
+    call 031e8h                               ; 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
+    jmp short 02d4fh                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnc short 02d4ah                          ; 73 1e
+    jnc short 02d6dh                          ; 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
+    call 031dah                               ; e8 7d 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 82 04
+    call 031e8h                               ; e8 82 04
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02d26h                          ; eb dc
+    jmp short 02d49h                          ; eb dc
     mov dx, strict word 0004eh                ; ba 4e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031b7h                               ; e8 64 04
+    call 031dah                               ; e8 64 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 69 04
+    call 031e8h                               ; 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
+    call 031beh                               ; 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
+    call 031cch                               ; e8 37 04
     inc cx                                    ; 41
     mov dx, strict word 0007ch                ; ba 7c 00
     xor ax, ax                                ; 31 c0
-    call 031b7h                               ; e8 3c 04
+    call 031dah                               ; e8 3c 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 41 04
+    call 031e8h                               ; 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
+    call 031dah                               ; e8 29 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 2e 04
+    call 031e8h                               ; 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
+    call 031dah                               ; e8 16 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 1b 04
+    call 031e8h                               ; 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
+    call 031dah                               ; e8 03 04
     mov bx, ax                                ; 89 c3
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 08 04
+    call 031e8h                               ; e8 08 04
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00ch], 004h                 ; f6 46 f4 04
-    je short 02e30h                           ; 74 6b
+    je short 02e53h                           ; 74 6b
     mov dx, 003c7h                            ; ba c7 03
     in AL, DX                                 ; ec
@@ -5630,5 +5641,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 d3 03
+    call 031cch                               ; e8 d3 03
     inc cx                                    ; 41
     mov dx, 003c8h                            ; ba c8 03
@@ -5640,5 +5651,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 c1 03
+    call 031cch                               ; e8 c1 03
     inc cx                                    ; 41
     mov dx, 003c6h                            ; ba c6 03
@@ -5650,5 +5661,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 af 03
+    call 031cch                               ; e8 af 03
     inc cx                                    ; 41
     xor al, al                                ; 30 c0
@@ -5657,7 +5668,7 @@
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
-    jmp short 02e0fh                          ; eb 07
+    jmp short 02e32h                          ; eb 07
     cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
-    jnc short 02e26h                          ; 73 17
+    jnc short 02e49h                          ; 73 17
     mov dx, 003c9h                            ; ba c9 03
     in AL, DX                                 ; ec
@@ -5668,12 +5679,12 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 89 03
+    call 031cch                               ; e8 89 03
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 02e08h                          ; eb e2
+    jmp short 02e2bh                          ; eb e2
     xor bx, bx                                ; 31 db
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 7a 03
+    call 031cch                               ; e8 7a 03
     inc cx                                    ; 41
     mov ax, cx                                ; 89 c8
@@ -5684,5 +5695,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-biosfn_restore_video_state_:                 ; 0xc2e3a LB 0x336
+biosfn_restore_video_state_:                 ; 0xc2e5d LB 0x336
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5695,5 +5706,5 @@
     mov cx, bx                                ; 89 d9
     test byte [bp-00eh], 001h                 ; f6 46 f2 01
-    je short 02ea5h                           ; 74 57
+    je short 02ec8h                           ; 74 57
     mov dx, 003dah                            ; ba da 03
     in AL, DX                                 ; ec
@@ -5702,11 +5713,11 @@
     lea dx, [bx+040h]                         ; 8d 57 40
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 5b 03
+    call 031dah                               ; 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
+    jmp short 02e91h                          ; eb 06
     cmp word [bp-00ah], strict byte 00004h    ; 83 7e f6 04
-    jnbe short 02e86h                         ; 77 18
+    jnbe short 02ea9h                         ; 77 18
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003c4h                            ; ba c4 03
@@ -5714,10 +5725,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 1f 03
+    call 031beh                               ; 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
+    jmp short 02e8bh                          ; eb e2
     xor al, al                                ; 30 c0
     mov dx, 003c4h                            ; ba c4 03
@@ -5725,5 +5736,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 08 03
+    call 031beh                               ; e8 08 03
     mov dx, 003c5h                            ; ba c5 03
     out DX, AL                                ; ee
@@ -5733,10 +5744,10 @@
     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
+    jmp short 02ed1h                          ; eb 09
+    jmp near 02fbeh                           ; e9 f3 00
     cmp word [bp-00ah], strict byte 00018h    ; 83 7e f6 18
-    jnbe short 02ecbh                         ; 77 1d
+    jnbe short 02eeeh                         ; 77 1d
     cmp word [bp-00ah], strict byte 00011h    ; 83 7e f6 11
-    je short 02ec5h                           ; 74 11
+    je short 02ee8h                           ; 74 11
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, di                                ; 89 fa
@@ -5744,10 +5755,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 da 02
+    call 031beh                               ; 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
+    jmp short 02ecbh                          ; eb dd
     mov dx, 003cch                            ; ba cc 03
     in AL, DX                                 ; ec
@@ -5757,5 +5768,5 @@
     mov word [bp-008h], ax                    ; 89 46 f8
     cmp di, 003d4h                            ; 81 ff d4 03
-    jne short 02ee0h                          ; 75 04
+    jne short 02f03h                          ; 75 04
     or byte [bp-008h], 001h                   ; 80 4e f8 01
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -5768,10 +5779,10 @@
     add dx, strict byte 0fff9h                ; 83 c2 f9
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 a5 02
+    call 031beh                               ; 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
+    call 031beh                               ; e8 99 02
     xor ah, ah                                ; 30 e4
     mov word [bp-00ch], ax                    ; 89 46 f4
@@ -5781,7 +5792,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02f1ah                          ; eb 06
+    jmp short 02f3dh                          ; eb 06
     cmp word [bp-00ah], strict byte 00013h    ; 83 7e f6 13
-    jnbe short 02f38h                         ; 77 1e
+    jnbe short 02f5bh                         ; 77 1e
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     and ax, strict word 00020h                ; 25 20 00
@@ -5791,10 +5802,10 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 6d 02
+    call 031beh                               ; 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
+    jmp short 02f37h                          ; eb dc
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     mov dx, 003c0h                            ; ba c0 03
@@ -5805,7 +5816,7 @@
     ; sub ah, ah                                ; 2a e4
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
-    jmp short 02f52h                          ; eb 06
+    jmp short 02f75h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnbe short 02f6ah                         ; 77 18
+    jnbe short 02f8dh                         ; 77 18
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov dx, 003ceh                            ; ba ce 03
@@ -5813,14 +5824,14 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 3b 02
+    call 031beh                               ; 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
+    jmp short 02f6fh                          ; 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
+    call 031beh                               ; e8 27 02
     mov dx, 003c4h                            ; ba c4 03
     out DX, AL                                ; ee
@@ -5828,5 +5839,5 @@
     mov dx, bx                                ; 89 da
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 1b 02
+    call 031beh                               ; e8 1b 02
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -5834,72 +5845,72 @@
     mov dx, bx                                ; 89 da
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 10 02
+    call 031beh                               ; 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
+    call 031beh                               ; 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
+    jne short 02fc7h                          ; 75 03
+    jmp near 0313ch                           ; e9 75 01
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 f0 01
+    call 031beh                               ; 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
+    call 031cch                               ; e8 f1 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 f7 01
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 fa 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 e3 01
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 e6 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 cf 01
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 d2 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 9f 01
+    call 031beh                               ; 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
+    call 031cch                               ; e8 a0 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 a6 01
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 a9 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 76 01
+    call 031beh                               ; e8 76 01
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5907,9 +5918,9 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 75 01
+    call 031cch                               ; e8 75 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 5f 01
+    call 031beh                               ; e8 5f 01
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5917,9 +5928,9 @@
     mov dx, 00088h                            ; ba 88 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 5e 01
+    call 031cch                               ; e8 5e 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 48 01
+    call 031beh                               ; e8 48 01
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5927,22 +5938,22 @@
     mov dx, 00089h                            ; ba 89 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 47 01
+    call 031cch                               ; e8 47 01
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 4d 01
+    call 031dah                               ; 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
+    call 031e8h                               ; 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
+    jmp short 030a7h                          ; eb 06
     cmp word [bp-00ah], strict byte 00008h    ; 83 7e f6 08
-    jnc short 030a2h                          ; 73 1e
+    jnc short 030c5h                          ; 73 1e
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 2c 01
+    call 031dah                               ; e8 2c 01
     mov bx, ax                                ; 89 c3
     mov dx, word [bp-00ah]                    ; 8b 56 f6
@@ -5950,21 +5961,21 @@
     add dx, strict byte 00050h                ; 83 c2 50
     mov ax, strict word 00040h                ; b8 40 00
-    call 031c5h                               ; e8 2a 01
+    call 031e8h                               ; e8 2a 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc word [bp-00ah]                        ; ff 46 f6
-    jmp short 0307eh                          ; eb dc
+    jmp short 030a1h                          ; eb dc
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 0e 01
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 11 01
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 de 00
+    call 031beh                               ; e8 de 00
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
@@ -5972,48 +5983,48 @@
     mov dx, strict word 00062h                ; ba 62 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 dd 00
+    call 031cch                               ; e8 dd 00
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 e3 00
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 e7 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 d0 00
+    call 031dah                               ; 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
+    call 031e8h                               ; e8 d4 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 bd 00
+    call 031dah                               ; e8 bd 00
     mov bx, ax                                ; 89 c3
     mov dx, 0010ch                            ; ba 0c 01
     xor ax, ax                                ; 31 c0
-    call 031c5h                               ; e8 c1 00
+    call 031e8h                               ; e8 c1 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 031b7h                               ; e8 aa 00
+    call 031dah                               ; e8 aa 00
     mov bx, ax                                ; 89 c3
     mov dx, 0010eh                            ; ba 0e 01
     xor ax, ax                                ; 31 c0
-    call 031c5h                               ; e8 ae 00
+    call 031e8h                               ; e8 ae 00
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00eh], 004h                 ; f6 46 f2 04
-    je short 03166h                           ; 74 47
+    je short 03189h                           ; 74 47
     inc cx                                    ; 41
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 74 00
+    call 031beh                               ; e8 74 00
     xor ah, ah                                ; 30 e4
     mov word [bp-008h], ax                    ; 89 46 f8
@@ -6021,5 +6032,5 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 67 00
+    call 031beh                               ; e8 67 00
     mov dx, 003c6h                            ; ba c6 03
     out DX, AL                                ; ee
@@ -6030,15 +6041,15 @@
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
-    jmp short 0314dh                          ; eb 07
+    jmp short 03170h                          ; eb 07
     cmp word [bp-00ah], 00300h                ; 81 7e f6 00 03
-    jnc short 0315eh                          ; 73 11
+    jnc short 03181h                          ; 73 11
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 47 00
+    call 031beh                               ; 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
+    jmp short 03169h                          ; eb e8
     inc cx                                    ; 41
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -6052,5 +6063,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-find_vga_entry_:                             ; 0xc3170 LB 0x2b
+find_vga_entry_:                             ; 0xc3193 LB 0x2b
     push bx                                   ; 53
     push cx                                   ; 51
@@ -6061,15 +6072,15 @@
     mov AH, strict byte 0ffh                  ; b4 ff
     xor al, al                                ; 30 c0
-    jmp short 03184h                          ; eb 06
+    jmp short 031a7h                          ; eb 06
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     cmp AL, strict byte 00fh                  ; 3c 0f
-    jnbe short 03194h                         ; 77 10
+    jnbe short 031b7h                         ; 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
+    cmp dl, byte [bx+04634h]                  ; 3a 97 34 46
+    jne short 031a1h                          ; 75 ec
     mov ah, al                                ; 88 c4
     mov al, ah                                ; 88 e0
@@ -6079,5 +6090,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-read_byte_:                                  ; 0xc319b LB 0xe
+read_byte_:                                  ; 0xc31be LB 0xe
     push bx                                   ; 53
     push bp                                   ; 55
@@ -6089,5 +6100,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_byte_:                                 ; 0xc31a9 LB 0xe
+write_byte_:                                 ; 0xc31cc LB 0xe
     push si                                   ; 56
     push bp                                   ; 55
@@ -6099,5 +6110,5 @@
     pop si                                    ; 5e
     retn                                      ; c3
-read_word_:                                  ; 0xc31b7 LB 0xe
+read_word_:                                  ; 0xc31da LB 0xe
     push bx                                   ; 53
     push bp                                   ; 55
@@ -6109,5 +6120,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_word_:                                 ; 0xc31c5 LB 0xe
+write_word_:                                 ; 0xc31e8 LB 0xe
     push si                                   ; 56
     push bp                                   ; 55
@@ -6119,5 +6130,5 @@
     pop si                                    ; 5e
     retn                                      ; c3
-read_dword_:                                 ; 0xc31d3 LB 0x12
+read_dword_:                                 ; 0xc31f6 LB 0x12
     push bx                                   ; 53
     push bp                                   ; 55
@@ -6130,5 +6141,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-write_dword_:                                ; 0xc31e5 LB 0x96
+write_dword_:                                ; 0xc3208 LB 0x96
     push si                                   ; 56
     push bp                                   ; 55
@@ -6152,26 +6163,28 @@
     add ax, 00304h                            ; 05 04 03
     add al, byte [bx+di]                      ; 02 01
-    add byte [si-054cbh], bh                  ; 00 bc 35 ab
-    db  032h, 0e8h
-    ; xor ch, al                                ; 32 e8
-    db  032h, 0f6h
-    ; xor dh, dh                                ; 32 f6
-    xor al, byte [bx+di]                      ; 32 01
-    xor cx, word [bx]                         ; 33 0f
-    xor bx, word [bx]                         ; 33 1f
-    xor sp, word [04f33h]                     ; 33 26 33 4f
-    xor dx, word [bp+di+033h]                 ; 33 53 33
-    pop si                                    ; 5e
-    xor si, word [bp+di+033h]                 ; 33 73 33
-    mov word [bp+di], si                      ; 89 33
-    mov byte [0b433h], AL                     ; a2 33 b4
-    db  033h, 0c8h
-    ; xor cx, ax                                ; 33 c8
-    db  033h, 0d4h
-    ; xor dx, sp                                ; 33 d4
-    xor ax, word [bx-043cch]                  ; 33 87 34 bc
-    xor AL, strict byte 0e3h                  ; 34 e3
-    xor AL, strict byte 0f8h                  ; 34 f8
-    xor AL, strict byte 035h                  ; 34 35
+    add bh, bl                                ; 00 df
+    xor ax, 032ceh                            ; 35 ce 32
+    or si, word [bp+di]                       ; 0b 33
+    sbb word [bp+di], si                      ; 19 33
+    and AL, strict byte 033h                  ; 24 33
+    xor dh, byte [bp+di]                      ; 32 33
+    inc dx                                    ; 42
+    xor cx, word [bx+di+033h]                 ; 33 49 33
+    jc short 03274h                           ; 72 33
+    jbe short 03276h                          ; 76 33
+    xor word [bp+di], 03396h                  ; 81 33 96 33
+    lodsb                                     ; ac
+    db  033h, 0c5h
+    ; xor ax, bp                                ; 33 c5
+    db  033h, 0d7h
+    ; xor dx, di                                ; 33 d7
+    db  033h, 0ebh
+    ; xor bp, bx                                ; 33 eb
+    db  033h, 0f7h
+    ; xor si, di                                ; 33 f7
+    xor bp, word [bp+si-020cch]               ; 33 aa 34 df
+    xor AL, strict byte 006h                  ; 34 06
+    xor ax, 0351bh                            ; 35 1b 35
+    pop ax                                    ; 58
     xor ax, 02430h                            ; 35 30 24
     and sp, word [bp+si]                      ; 23 22
@@ -6181,30 +6194,32 @@
     add AL, strict byte 002h                  ; 04 02
     add word [bx+si], ax                      ; 01 00
-    mov sp, 0f135h                            ; bc 35 f1
-    xor cx, word [bx]                         ; 33 0f
-    xor AL, strict byte 01eh                  ; 34 1e
-    xor AL, strict byte 02dh                  ; 34 2d
-    xor AL, strict byte 0f1h                  ; 34 f1
-    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 061h                  ; 34 61
-    xor AL, strict byte 066h                  ; 34 66
+    fbstp [di]                                ; df 35
+    adc AL, strict byte 034h                  ; 14 34
+    xor dh, byte [si]                         ; 32 34
+    inc cx                                    ; 41
+    xor AL, strict byte 050h                  ; 34 50
+    xor AL, strict byte 014h                  ; 34 14
+    xor AL, strict byte 032h                  ; 34 32
+    xor AL, strict byte 041h                  ; 34 41
+    xor AL, strict byte 050h                  ; 34 50
+    xor AL, strict byte 05fh                  ; 34 5f
     xor AL, strict byte 06bh                  ; 34 6b
-    xor AL, strict byte 070h                  ; 34 70
+    xor AL, strict byte 084h                  ; 34 84
+    xor AL, strict byte 089h                  ; 34 89
+    xor AL, strict byte 08eh                  ; 34 8e
+    xor AL, strict byte 093h                  ; 34 93
     xor AL, strict byte 00ah                  ; 34 0a
     or word [00204h], ax                      ; 09 06 04 02
     add word [bx+si], ax                      ; 01 00
-    mov AL, strict byte 035h                  ; b0 35
-    pop bx                                    ; 5b
-    xor ax, 03568h                            ; 35 68 35
-    js short 032a8h                           ; 78 35
-    mov byte [di], dh                         ; 88 35
-    popfw                                     ; 9d
-    xor ax, 035b0h                            ; 35 b0 35
-    mov AL, strict byte 035h                  ; b0 35
-_int10_func:                                 ; 0xc327b LB 0x348
+    db  0d3h, 035h
+    ; sal word [di], CL                         ; d3 35
+    jle short 032c7h                          ; 7e 35
+    mov si, word [di]                         ; 8b 35
+    wait                                      ; 9b
+    xor ax, 035abh                            ; 35 ab 35
+    db  0c0h, 035h, 0d3h
+    ; sal byte [di], 0d3h                       ; c0 35 d3
+    xor ax, 035d3h                            ; 35 d3 35
+_int10_func:                                 ; 0xc329e LB 0x348
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6216,13 +6231,13 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    jnbe short 032f3h                         ; 77 65
+    jnbe short 03316h                         ; 77 65
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00016h                ; b9 16 00
-    mov di, 031f7h                            ; bf f7 31
+    mov di, 0321ah                            ; bf 1a 32
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov bx, word [cs:di+0320ch]               ; 2e 8b 9d 0c 32
+    mov bx, word [cs:di+0322fh]               ; 2e 8b 9d 2f 32
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -6231,41 +6246,41 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 01019h                               ; e8 66 dd
+    call 01019h                               ; e8 43 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 032d3h                           ; 74 15
+    je short 032f6h                           ; 74 15
     cmp ax, strict word 00006h                ; 3d 06 00
-    je short 032cah                           ; 74 07
+    je short 032edh                           ; 74 07
     cmp ax, strict word 00005h                ; 3d 05 00
-    jbe short 032d3h                          ; 76 0b
-    jmp short 032dch                          ; eb 12
+    jbe short 032f6h                          ; 76 0b
+    jmp short 032ffh                          ; eb 12
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 03fh                   ; 0c 3f
-    jmp short 032e3h                          ; eb 10
+    jmp short 03306h                          ; eb 10
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp short 032e3h                          ; eb 07
+    jmp short 03306h                          ; 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 032f3h                          ; eb 0b
+    jmp short 03316h                          ; eb 0b
     mov al, byte [bp+010h]                    ; 8a 46 10
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+011h]                    ; 8a 46 11
-    call 00ddeh                               ; e8 eb da
-    jmp near 035bch                           ; e9 c6 02
+    call 00ddeh                               ; e8 c8 da
+    jmp near 035dfh                           ; e9 c6 02
     mov dx, word [bp+00eh]                    ; 8b 56 0e
     mov al, byte [bp+00dh]                    ; 8a 46 0d
-    call 00e91h                               ; e8 92 db
-    jmp short 032f3h                          ; eb f2
+    call 00e91h                               ; e8 6f db
+    jmp short 03316h                          ; eb f2
     lea bx, [bp+00eh]                         ; 8d 5e 0e
     lea dx, [bp+010h]                         ; 8d 56 10
     mov al, byte [bp+00dh]                    ; 8a 46 0d
-    call 00a8ch                               ; e8 7f d7
-    jmp short 032f3h                          ; eb e4
+    call 00a8ch                               ; e8 5c d7
+    jmp short 03316h                          ; eb e4
     xor al, al                                ; 30 c0
     mov word [bp+012h], ax                    ; 89 46 12
@@ -6273,8 +6288,8 @@
     mov word [bp+010h], ax                    ; 89 46 10
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 032f3h                          ; eb d4
+    jmp short 03316h                          ; eb d4
     mov al, dl                                ; 88 d0
-    call 00f34h                               ; e8 10 dc
-    jmp short 032f3h                          ; eb cd
+    call 00f34h                               ; e8 ed db
+    jmp short 03316h                          ; eb cd
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -6293,12 +6308,12 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 01655h                               ; e8 08 e3
-    jmp short 032f3h                          ; eb a4
+    call 01678h                               ; e8 08 e3
+    jmp short 03316h                          ; eb a4
     xor al, al                                ; 30 c0
-    jmp short 03329h                          ; eb d6
+    jmp short 0334ch                          ; eb d6
     lea dx, [bp+012h]                         ; 8d 56 12
     mov al, byte [bp+00dh]                    ; 8a 46 0d
-    call 00ad2h                               ; e8 76 d7
-    jmp short 032f3h                          ; eb 95
+    call 00ad2h                               ; e8 53 d7
+    jmp short 03316h                          ; eb 95
     mov cx, word [bp+010h]                    ; 8b 4e 10
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -6307,6 +6322,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 01ea9h                               ; e8 38 eb
-    jmp short 032f3h                          ; eb 80
+    call 01ecch                               ; e8 38 eb
+    jmp short 03316h                          ; eb 80
     mov cx, word [bp+010h]                    ; 8b 4e 10
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -6315,6 +6330,6 @@
     mov dx, ax                                ; 89 c2
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 0203bh                               ; e8 b5 ec
-    jmp near 035bch                           ; e9 33 02
+    call 0205eh                               ; e8 b5 ec
+    jmp near 035dfh                           ; e9 33 02
     mov cx, word [bp+00eh]                    ; 8b 4e 0e
     mov bx, word [bp+010h]                    ; 8b 5e 10
@@ -6324,12 +6339,12 @@
     mov word [bp-006h], ax                    ; 89 46 fa
     mov al, byte [bp-006h]                    ; 8a 46 fa
-    call 021ceh                               ; e8 2f ee
-    jmp near 035bch                           ; e9 1a 02
+    call 021f1h                               ; e8 2f ee
+    jmp near 035dfh                           ; e9 1a 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
-    call 00bfch                               ; e8 4b d8
-    jmp near 035bch                           ; e9 08 02
+    call 00bfch                               ; e8 28 d8
+    jmp near 035dfh                           ; e9 08 02
     mov cx, strict word 00002h                ; b9 02 00
     mov al, byte [bp+00ch]                    ; 8a 46 0c
@@ -6337,20 +6352,20 @@
     mov dx, 000ffh                            ; ba ff 00
     mov al, byte [bp+012h]                    ; 8a 46 12
-    call 0234dh                               ; e8 88 ef
-    jmp near 035bch                           ; e9 f4 01
+    call 02370h                               ; e8 88 ef
+    jmp near 035dfh                           ; e9 f4 01
     mov dx, word [bp+010h]                    ; 8b 56 10
     mov ax, word [bp+00ch]                    ; 8b 46 0c
-    call 00d3fh                               ; e8 6e d9
-    jmp near 035bch                           ; e9 e8 01
+    call 00d3fh                               ; e8 4b d9
+    jmp near 035dfh                           ; e9 e8 01
     cmp ax, strict word 00030h                ; 3d 30 00
-    jnbe short 03445h                         ; 77 6c
+    jnbe short 03468h                         ; 77 6c
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000fh                ; b9 0f 00
-    mov di, 03238h                            ; bf 38 32
+    mov di, 0325bh                            ; bf 5b 32
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov dx, word [cs:di+03246h]               ; 2e 8b 95 46 32
+    mov dx, word [cs:di+03269h]               ; 2e 8b 95 69 32
     mov al, byte [bp+00ch]                    ; 8a 46 0c
     jmp dx                                    ; ff e2
@@ -6365,28 +6380,28 @@
     mov bx, word [bp+008h]                    ; 8b 5e 08
     mov dx, word [bp+016h]                    ; 8b 56 16
-    call 026dfh                               ; e8 d2 f2
-    jmp short 03445h                          ; eb 36
+    call 02702h                               ; e8 d2 f2
+    jmp short 03468h                          ; eb 36
     mov dl, byte [bp+00ch]                    ; 8a 56 0c
     xor dh, dh                                ; 30 f6
     mov al, byte [bp+012h]                    ; 8a 46 12
     xor ah, ah                                ; 30 e4
-    call 02764h                               ; e8 48 f3
-    jmp short 03445h                          ; eb 27
+    call 02787h                               ; e8 48 f3
+    jmp short 03468h                          ; 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 af f3
-    jmp short 03445h                          ; eb 18
+    call 027fdh                               ; e8 af f3
+    jmp short 03468h                          ; 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 14 f4
-    jmp short 03445h                          ; eb 09
+    call 02871h                               ; e8 14 f4
+    jmp short 03468h                          ; eb 09
     mov dx, word [bp+008h]                    ; 8b 56 08
     mov ax, word [bp+016h]                    ; 8b 46 16
-    call 028c2h                               ; e8 7d f4
-    jmp near 035bch                           ; e9 74 01
+    call 028e5h                               ; e8 7d f4
+    jmp near 035dfh                           ; e9 74 01
     mov al, byte [bp+00eh]                    ; 8a 46 0e
     push ax                                   ; 50
@@ -6397,12 +6412,12 @@
     mov cx, ax                                ; 89 c1
     mov ax, si                                ; 89 f0
-    call 028c7h                               ; e8 68 f4
-    jmp short 03445h                          ; eb e4
-    call 028ceh                               ; e8 6a f4
-    jmp short 03445h                          ; eb df
-    call 028d3h                               ; e8 6a f4
-    jmp short 03445h                          ; eb da
-    call 028d8h                               ; e8 6a f4
-    jmp short 03445h                          ; eb d5
+    call 028eah                               ; e8 68 f4
+    jmp short 03468h                          ; eb e4
+    call 028f1h                               ; e8 6a f4
+    jmp short 03468h                          ; eb df
+    call 028f6h                               ; e8 6a f4
+    jmp short 03468h                          ; eb da
+    call 028fbh                               ; e8 6a f4
+    jmp short 03468h                          ; eb d5
     lea ax, [bp+00eh]                         ; 8d 46 0e
     push ax                                   ; 50
@@ -6412,27 +6427,27 @@
     lea bx, [bp+008h]                         ; 8d 5e 08
     lea dx, [bp+016h]                         ; 8d 56 16
-    call 00b81h                               ; e8 fc d6
-    jmp short 03445h                          ; eb be
+    call 00b81h                               ; e8 d9 d6
+    jmp short 03468h                          ; eb be
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00036h                ; 3d 36 00
-    je short 034b5h                           ; 74 24
+    je short 034d8h                           ; 74 24
     cmp ax, strict word 00035h                ; 3d 35 00
-    je short 034a0h                           ; 74 0a
+    je short 034c3h                           ; 74 0a
     cmp ax, strict word 00020h                ; 3d 20 00
-    jne short 034e0h                          ; 75 45
-    call 028ddh                               ; e8 3f f4
-    jmp short 034e0h                          ; eb 40
+    jne short 03503h                          ; 75 45
+    call 02900h                               ; e8 3f f4
+    jmp short 03503h                          ; eb 40
     mov al, dl                                ; 88 d0
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, word [bp+016h]                    ; 8b 56 16
-    call 028e2h                               ; e8 37 f4
+    call 02905h                               ; e8 37 f4
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 012h                   ; 0c 12
-    jmp near 032e3h                           ; e9 2e fe
+    jmp near 03306h                           ; e9 2e fe
     mov al, dl                                ; 88 d0
-    call 028e7h                               ; e8 2d f4
-    jmp short 034abh                          ; eb ef
+    call 0290ah                               ; e8 2d f4
+    jmp short 034ceh                          ; eb ef
     push word [bp+008h]                       ; ff 76 08
     push word [bp+016h]                       ; ff 76 16
@@ -6449,70 +6464,70 @@
     mov dx, ax                                ; 89 c2
     mov ax, si                                ; 89 f0
-    call 028ech                               ; e8 0c f4
-    jmp near 035bch                           ; e9 d9 00
+    call 0290fh                               ; e8 0c f4
+    jmp near 035dfh                           ; e9 d9 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 94 f4
+    call 029a5h                               ; e8 94 f4
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 01bh                   ; 0c 1b
-    jmp near 032e3h                           ; e9 eb fd
+    jmp near 03306h                           ; e9 eb fd
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 0351fh                           ; 74 22
+    je short 03542h                           ; 74 22
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03511h                           ; 74 0f
+    je short 03534h                           ; 74 0f
     test ax, ax                               ; 85 c0
-    jne short 0352bh                          ; 75 25
+    jne short 0354eh                          ; 75 25
     lea dx, [bp+00ch]                         ; 8d 56 0c
     mov ax, word [bp+010h]                    ; 8b 46 10
-    call 02aa7h                               ; e8 98 f5
-    jmp short 0352bh                          ; eb 1a
+    call 02acah                               ; e8 98 f5
+    jmp short 0354eh                          ; 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 9c f5
-    jmp short 0352bh                          ; eb 0c
+    call 02adch                               ; e8 9c f5
+    jmp short 0354eh                          ; 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 0f f9
+    call 02e5dh                               ; e8 0f f9
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 01ch                   ; 0c 1c
-    jmp near 032e3h                           ; e9 ae fd
-    call 007e8h                               ; e8 b0 d2
+    jmp near 03306h                           ; e9 ae fd
+    call 007e8h                               ; e8 8d d2
     test ax, ax                               ; 85 c0
-    je short 035aeh                           ; 74 72
+    je short 035d1h                           ; 74 72
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000ah                ; 3d 0a 00
-    jnbe short 035b0h                         ; 77 6a
+    jnbe short 035d3h                         ; 77 6a
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 03264h                            ; bf 64 32
+    mov di, 03287h                            ; bf 87 32
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0326bh]               ; 2e 8b 85 6b 32
+    mov ax, word [cs:di+0328eh]               ; 2e 8b 85 8e 32
     jmp ax                                    ; ff e0
     mov bx, si                                ; 89 f3
     mov dx, word [bp+016h]                    ; 8b 56 16
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 0375fh                               ; e8 f9 01
-    jmp short 035bch                          ; eb 54
+    call 0379bh                               ; e8 12 02
+    jmp short 035dfh                          ; eb 54
     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 0388eh                               ; e8 18 03
-    jmp short 035bch                          ; eb 44
+    call 038cah                               ; e8 31 03
+    jmp short 035dfh                          ; eb 44
     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 0394bh                               ; e8 c5 03
-    jmp short 035bch                          ; eb 34
+    call 03987h                               ; e8 de 03
+    jmp short 035dfh                          ; eb 34
     lea ax, [bp+00ch]                         ; 8d 46 0c
     push ax                                   ; 50
@@ -6521,15 +6536,15 @@
     mov dx, word [bp+010h]                    ; 8b 56 10
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 03b34h                               ; e8 99 05
-    jmp short 035bch                          ; eb 1f
+    call 03b70h                               ; e8 b2 05
+    jmp short 035dfh                          ; eb 1f
     lea cx, [bp+00eh]                         ; 8d 4e 0e
     lea bx, [bp+010h]                         ; 8d 5e 10
     lea dx, [bp+00ch]                         ; 8d 56 0c
     lea ax, [bp+012h]                         ; 8d 46 12
-    call 03bc1h                               ; e8 15 06
-    jmp short 035bch                          ; eb 0e
-    jmp short 035b7h                          ; eb 07
+    call 03bfdh                               ; e8 2e 06
+    jmp short 035dfh                          ; eb 0e
+    jmp short 035dah                          ; eb 07
     mov word [bp+012h], 00100h                ; c7 46 12 00 01
-    jmp short 035bch                          ; eb 05
+    jmp short 035dfh                          ; eb 05
     mov word [bp+012h], 00100h                ; c7 46 12 00 01
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6538,5 +6553,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_xres_:                             ; 0xc35c3 LB 0x1f
+dispi_set_xres_:                             ; 0xc35e6 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6546,8 +6561,8 @@
     mov ax, strict word 00001h                ; b8 01 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 bd cf
+    call 00590h                               ; e8 9a cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00590h                               ; e8 b5 cf
+    call 00590h                               ; e8 92 cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6555,5 +6570,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_yres_:                             ; 0xc35e2 LB 0x1f
+dispi_set_yres_:                             ; 0xc3605 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6563,8 +6578,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 9e cf
+    call 00590h                               ; e8 7b cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00590h                               ; e8 96 cf
+    call 00590h                               ; e8 73 cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6572,5 +6587,18 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_bpp_:                              ; 0xc3601 LB 0x1f
+dispi_get_yres_:                             ; 0xc3624 LB 0x19
+    push bp                                   ; 55
+    mov bp, sp                                ; 89 e5
+    push dx                                   ; 52
+    mov ax, strict word 00002h                ; b8 02 00
+    mov dx, 001ceh                            ; ba ce 01
+    call 00590h                               ; e8 5f cf
+    mov dx, 001cfh                            ; ba cf 01
+    call 00597h                               ; e8 60 cf
+    lea sp, [bp-002h]                         ; 8d 66 fe
+    pop dx                                    ; 5a
+    pop bp                                    ; 5d
+    retn                                      ; c3
+dispi_set_bpp_:                              ; 0xc363d LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6580,8 +6608,8 @@
     mov ax, strict word 00003h                ; b8 03 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 7f cf
+    call 00590h                               ; e8 43 cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00590h                               ; e8 77 cf
+    call 00590h                               ; e8 3b cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6589,5 +6617,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_bpp_:                              ; 0xc3620 LB 0x19
+dispi_get_bpp_:                              ; 0xc365c LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6595,12 +6623,12 @@
     mov ax, strict word 00003h                ; b8 03 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 63 cf
+    call 00590h                               ; e8 27 cf
     mov dx, 001cfh                            ; ba cf 01
-    call 00597h                               ; e8 64 cf
+    call 00597h                               ; e8 28 cf
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_virt_width_:                       ; 0xc3639 LB 0x1f
+dispi_set_virt_width_:                       ; 0xc3675 LB 0x1f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6610,8 +6638,8 @@
     mov ax, strict word 00006h                ; b8 06 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 47 cf
+    call 00590h                               ; e8 0b cf
     mov ax, bx                                ; 89 d8
     mov dx, 001cfh                            ; ba cf 01
-    call 00590h                               ; e8 3f cf
+    call 00590h                               ; e8 03 cf
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6619,5 +6647,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_virt_width_:                       ; 0xc3658 LB 0x19
+dispi_get_virt_width_:                       ; 0xc3694 LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6625,12 +6653,12 @@
     mov ax, strict word 00006h                ; b8 06 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 2b cf
+    call 00590h                               ; e8 ef ce
     mov dx, 001cfh                            ; ba cf 01
-    call 00597h                               ; e8 2c cf
+    call 00597h                               ; e8 f0 ce
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_virt_height_:                      ; 0xc3671 LB 0x19
+dispi_get_virt_height_:                      ; 0xc36ad LB 0x19
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6638,12 +6666,12 @@
     mov ax, strict word 00007h                ; b8 07 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 12 cf
+    call 00590h                               ; e8 d6 ce
     mov dx, 001cfh                            ; ba cf 01
-    call 00597h                               ; e8 13 cf
+    call 00597h                               ; e8 d7 ce
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-in_word_:                                    ; 0xc368a LB 0x12
+in_word_:                                    ; 0xc36c6 LB 0x12
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6658,5 +6686,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-in_byte_:                                    ; 0xc369c LB 0x14
+in_byte_:                                    ; 0xc36d8 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6673,5 +6701,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_get_id_:                               ; 0xc36b0 LB 0x14
+dispi_get_id_:                               ; 0xc36ec LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6686,5 +6714,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-dispi_set_id_:                               ; 0xc36c4 LB 0x1a
+dispi_set_id_:                               ; 0xc3700 LB 0x1a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6703,5 +6731,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_init_:                                   ; 0xc36de LB 0x2c
+vbe_init_:                                   ; 0xc371a LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6709,14 +6737,14 @@
     push dx                                   ; 52
     mov ax, 0b0c0h                            ; b8 c0 b0
-    call 036c4h                               ; e8 db ff
-    call 036b0h                               ; e8 c4 ff
+    call 03700h                               ; e8 db ff
+    call 036ech                               ; e8 c4 ff
     cmp ax, 0b0c0h                            ; 3d c0 b0
-    jne short 03703h                          ; 75 12
+    jne short 0373fh                          ; 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 ac fa
+    call 031cch                               ; e8 93 fa
     mov ax, 0b0c4h                            ; b8 c4 b0
-    call 036c4h                               ; e8 c1 ff
+    call 03700h                               ; e8 c1 ff
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop dx                                    ; 5a
@@ -6724,5 +6752,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-mode_info_find_mode_:                        ; 0xc370a LB 0x55
+mode_info_find_mode_:                        ; 0xc3746 LB 0x55
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6735,28 +6763,28 @@
     xor dx, dx                                ; 31 d2
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 6d ff
+    call 036c6h                               ; e8 6d ff
     cmp ax, 077cch                            ; 3d cc 77
-    jne short 03754h                          ; 75 32
+    jne short 03790h                          ; 75 32
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, bx                                ; 89 da
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 5d ff
+    call 036c6h                               ; e8 5d ff
     mov cx, ax                                ; 89 c1
     cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 03754h                           ; 74 20
+    je short 03790h                           ; 74 20
     lea dx, [bx+002h]                         ; 8d 57 02
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 4d ff
+    call 036c6h                               ; e8 4d ff
     lea dx, [bx+044h]                         ; 8d 57 44
     cmp cx, di                                ; 39 f9
-    jne short 03750h                          ; 75 0c
+    jne short 0378ch                          ; 75 0c
     test si, si                               ; 85 f6
-    jne short 0374ch                          ; 75 04
+    jne short 03788h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 03756h                          ; eb 0a
+    jmp short 03792h                          ; eb 0a
     test AL, strict byte 080h                 ; a8 80
-    jne short 03748h                          ; 75 f8
+    jne short 03784h                          ; 75 f8
     mov bx, dx                                ; 89 d3
-    jmp short 03727h                          ; eb d3
+    jmp short 03763h                          ; eb d3
     xor ax, ax                                ; 31 c0
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -6767,5 +6795,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_return_controller_information_: ; 0xc375f LB 0x12f
+vbe_biosfn_return_controller_information_: ; 0xc379b LB 0x12f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6778,5 +6806,5 @@
     mov word [bp-00ah], bx                    ; 89 5e f6
     mov word [bp-00ch], strict word 00022h    ; c7 46 f4 22 00
-    call 005dah                               ; e8 63 ce
+    call 005dah                               ; e8 27 ce
     mov word [bp-010h], ax                    ; 89 46 f0
     mov bx, word [bp-00ah]                    ; 8b 5e f6
@@ -6784,22 +6812,22 @@
     xor dx, dx                                ; 31 d2
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 02 ff
+    call 036c6h                               ; e8 02 ff
     cmp ax, 077cch                            ; 3d cc 77
-    je short 03797h                           ; 74 0a
+    je short 037d3h                           ; 74 0a
     push SS                                   ; 16
     pop ES                                    ; 07
     mov word [es:si], 00100h                  ; 26 c7 04 00 01
-    jmp near 03886h                           ; e9 ef 00
+    jmp near 038c2h                           ; 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 037b1h                          ; 75 07
+    jne short 037edh                          ; 75 07
     cmp word [es:bx], 04256h                  ; 26 81 3f 56 42
-    je short 037c0h                           ; 74 0f
+    je short 037fch                           ; 74 0f
     cmp word [es:bx+002h], 04153h             ; 26 81 7f 02 53 41
-    jne short 037c5h                          ; 75 0c
+    jne short 03801h                          ; 75 0c
     cmp word [es:bx], 04556h                  ; 26 81 3f 56 45
-    jne short 037c5h                          ; 75 05
+    jne short 03801h                          ; 75 05
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
     mov es, [bp-008h]                         ; 8e 46 f8
@@ -6807,5 +6835,5 @@
     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 word [es:bx+006h], 07c6ch             ; 26 c7 47 06 6c 7c
     mov [es:bx+008h], ds                      ; 26 8c 5f 08
     mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00
@@ -6817,43 +6845,43 @@
     mov dx, strict word 0ffffh                ; ba ff ff
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 84 fe
+    call 036c6h                               ; 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 03837h                           ; 74 24
+    je short 03873h                           ; 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 word [es:bx+016h], 07c81h             ; 26 c7 47 16 81 7c
     mov [es:bx+018h], ds                      ; 26 8c 5f 18
-    mov word [es:bx+01ah], 07c86h             ; 26 c7 47 1a 86 7c
+    mov word [es:bx+01ah], 07c94h             ; 26 c7 47 1a 94 7c
     mov [es:bx+01ch], ds                      ; 26 8c 5f 1c
-    mov word [es:bx+01eh], 07ca7h             ; 26 c7 47 1e a7 7c
+    mov word [es:bx+01eh], 07cb5h             ; 26 c7 47 1e b5 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 0369ch                               ; e8 5a fe
+    call 036d8h                               ; e8 5a fe
     xor ah, ah                                ; 30 e4
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jnbe short 03862h                         ; 77 19
+    jnbe short 0389eh                         ; 77 19
     mov dx, cx                                ; 89 ca
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 39 fe
+    call 036c6h                               ; 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 67 f9
+    call 031e8h                               ; e8 4e 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 0368ah                               ; e8 1d fe
+    call 036c6h                               ; e8 1d fe
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 03837h                          ; 75 c3
+    jne short 03873h                          ; 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 46 f9
+    call 031e8h                               ; e8 2d f9
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -6865,5 +6893,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_return_mode_information_:         ; 0xc388e LB 0xbd
+vbe_biosfn_return_mode_information_:         ; 0xc38ca LB 0xbd
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6877,13 +6905,13 @@
     mov word [bp-006h], cx                    ; 89 4e fa
     test dh, 040h                             ; f6 c6 40
-    je short 038a7h                           ; 74 05
+    je short 038e3h                           ; 74 05
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 038a9h                          ; eb 02
+    jmp short 038e5h                          ; eb 02
     xor dx, dx                                ; 31 d2
     and ah, 001h                              ; 80 e4 01
-    call 0370ah                               ; e8 5b fe
+    call 03746h                               ; e8 5b fe
     mov word [bp-008h], ax                    ; 89 46 f8
     test ax, ax                               ; 85 c0
-    je short 038ech                           ; 74 36
+    je short 03928h                           ; 74 36
     mov cx, 00100h                            ; b9 00 01
     xor ax, ax                                ; 31 c0
@@ -6891,10 +6919,10 @@
     mov es, si                                ; 8e c6
     cld                                       ; fc
-    jcxz 038c5h                               ; e3 02
+    jcxz 03901h                               ; e3 02
     rep stosb                                 ; f3 aa
     xor cx, cx                                ; 31 c9
-    jmp short 038ceh                          ; eb 05
+    jmp short 0390ah                          ; eb 05
     cmp cx, strict byte 00042h                ; 83 f9 42
-    jnc short 038eeh                          ; 73 20
+    jnc short 0392ah                          ; 73 20
     mov dx, word [bp-008h]                    ; 8b 56 f8
     inc dx                                    ; 42
@@ -6902,5 +6930,5 @@
     add dx, cx                                ; 01 ca
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 c1 fd
+    call 036d8h                               ; e8 c1 fd
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -6908,37 +6936,37 @@
     add dx, cx                                ; 01 ca
     mov ax, si                                ; 89 f0
-    call 031a9h                               ; e8 c0 f8
-    inc cx                                    ; 41
-    jmp short 038c9h                          ; eb dd
-    jmp short 03939h                          ; eb 4b
+    call 031cch                               ; e8 a7 f8
+    inc cx                                    ; 41
+    jmp short 03905h                          ; eb dd
+    jmp short 03975h                          ; eb 4b
     mov dx, word [bp-006h]                    ; 8b 56 fa
     inc dx                                    ; 42
     inc dx                                    ; 42
     mov ax, si                                ; 89 f0
-    call 0319bh                               ; e8 a3 f8
+    call 031beh                               ; e8 8a f8
     test AL, strict byte 001h                 ; a8 01
-    je short 03918h                           ; 74 1c
+    je short 03954h                           ; 74 1c
     mov dx, word [bp-006h]                    ; 8b 56 fa
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov bx, 0064ch                            ; bb 4c 06
     mov ax, si                                ; 89 f0
-    call 031c5h                               ; e8 bb f8
+    call 031e8h                               ; e8 a2 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 ad f8
+    call 031e8h                               ; e8 94 f8
     mov ax, strict word 0000bh                ; b8 0b 00
     mov dx, 001ceh                            ; ba ce 01
-    call 00590h                               ; e8 6f cc
+    call 00590h                               ; e8 33 cc
     mov dx, 001cfh                            ; ba cf 01
-    call 00597h                               ; e8 70 cc
+    call 00597h                               ; e8 34 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 91 f8
+    call 031e8h                               ; e8 78 f8
     mov ax, strict word 0004fh                ; b8 4f 00
-    jmp short 0393ch                          ; eb 03
+    jmp short 03978h                          ; eb 03
     mov ax, 00100h                            ; b8 00 01
     push SS                                   ; 16
@@ -6951,5 +6979,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_set_mode_:                        ; 0xc394b LB 0xeb
+vbe_biosfn_set_mode_:                        ; 0xc3987 LB 0xeb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6960,63 +6988,63 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     test byte [bp-009h], 040h                 ; f6 46 f7 40
-    je short 03963h                           ; 74 05
+    je short 0399fh                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 03965h                          ; eb 02
+    jmp short 039a1h                          ; eb 02
     xor ax, ax                                ; 31 c0
     mov dx, ax                                ; 89 c2
     test ax, ax                               ; 85 c0
-    je short 0396eh                           ; 74 03
+    je short 039aah                           ; 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 0397ch                           ; 74 05
+    je short 039b8h                           ; 74 05
     mov ax, 00080h                            ; b8 80 00
-    jmp short 0397eh                          ; eb 02
+    jmp short 039bah                          ; 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 0399fh                          ; 73 13
+    jnc short 039dbh                          ; 73 13
     xor ax, ax                                ; 31 c0
-    call 00600h                               ; e8 6f cc
+    call 00600h                               ; e8 33 cc
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
-    call 01019h                               ; e8 80 d6
+    call 01019h                               ; e8 44 d6
     mov ax, strict word 0004fh                ; b8 4f 00
-    jmp near 03a2ch                           ; e9 8d 00
+    jmp near 03a68h                           ; e9 8d 00
     mov ax, word [bp-00ah]                    ; 8b 46 f6
-    call 0370ah                               ; e8 65 fd
+    call 03746h                               ; e8 65 fd
     mov bx, ax                                ; 89 c3
     test ax, ax                               ; 85 c0
-    jne short 039aeh                          ; 75 03
-    jmp near 03a29h                           ; e9 7b 00
+    jne short 039eah                          ; 75 03
+    jmp near 03a65h                           ; e9 7b 00
     lea dx, [bx+014h]                         ; 8d 57 14
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 d3 fc
+    call 036c6h                               ; e8 d3 fc
     mov cx, ax                                ; 89 c1
     lea dx, [bx+016h]                         ; 8d 57 16
     mov ax, 003b6h                            ; b8 b6 03
-    call 0368ah                               ; e8 c8 fc
+    call 036c6h                               ; e8 c8 fc
     mov di, ax                                ; 89 c7
     lea dx, [bx+01bh]                         ; 8d 57 1b
     mov ax, 003b6h                            ; b8 b6 03
-    call 0369ch                               ; e8 cf fc
+    call 036d8h                               ; e8 cf fc
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    call 00600h                               ; e8 2a cc
+    call 00600h                               ; e8 ee cb
     cmp bl, 004h                              ; 80 fb 04
-    jne short 039e1h                          ; 75 06
+    jne short 03a1dh                          ; 75 06
     mov ax, strict word 0006ah                ; b8 6a 00
-    call 01019h                               ; e8 38 d6
+    call 01019h                               ; e8 fc d5
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 03601h                               ; e8 19 fc
+    call 0363dh                               ; e8 19 fc
     mov ax, cx                                ; 89 c8
-    call 035c3h                               ; e8 d6 fb
+    call 035e6h                               ; e8 bd fb
     mov ax, di                                ; 89 f8
-    call 035e2h                               ; e8 f0 fb
+    call 03605h                               ; e8 d7 fb
     xor ax, ax                                ; 31 c0
-    call 00626h                               ; e8 2f cc
+    call 00626h                               ; e8 f3 cb
     mov al, byte [bp-008h]                    ; 8a 46 f8
     or AL, strict byte 001h                   ; 0c 01
@@ -7024,10 +7052,10 @@
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     or al, dl                                 ; 08 d0
-    call 00600h                               ; e8 fa cb
-    call 006f8h                               ; e8 ef cc
+    call 00600h                               ; e8 be cb
+    call 006f8h                               ; e8 b3 cc
     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 b0 f7
+    call 031e8h                               ; e8 97 f7
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     or bl, 060h                               ; 80 cb 60
@@ -7035,6 +7063,6 @@
     mov dx, 00087h                            ; ba 87 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 031a9h                               ; e8 83 f7
-    jmp near 03999h                           ; e9 70 ff
+    call 031cch                               ; e8 6a f7
+    jmp near 039d5h                           ; e9 70 ff
     mov ax, 00100h                            ; b8 00 01
     mov word [ss:si], ax                      ; 36 89 04
@@ -7044,5 +7072,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_read_video_state_size_:           ; 0xc3a36 LB 0x8
+vbe_biosfn_read_video_state_size_:           ; 0xc3a72 LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7050,5 +7078,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_save_video_state_:                ; 0xc3a3e LB 0x5b
+vbe_biosfn_save_video_state_:                ; 0xc3a7a LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7069,15 +7097,15 @@
     mov dx, cx                                ; 89 ca
     mov ax, di                                ; 89 f8
-    call 031c5h                               ; e8 64 f7
+    call 031e8h                               ; e8 4b f7
     inc cx                                    ; 41
     inc cx                                    ; 41
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    je short 03a90h                           ; 74 27
+    je short 03acch                           ; 74 27
     mov si, strict word 00001h                ; be 01 00
-    jmp short 03a73h                          ; eb 05
+    jmp short 03aafh                          ; eb 05
     cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 03a90h                         ; 77 1d
+    jnbe short 03acch                         ; 77 1d
     cmp si, strict byte 00004h                ; 83 fe 04
-    je short 03a8dh                           ; 74 15
+    je short 03ac9h                           ; 74 15
     mov ax, si                                ; 89 f0
     mov dx, 001ceh                            ; ba ce 01
@@ -7088,9 +7116,9 @@
     mov dx, cx                                ; 89 ca
     mov ax, di                                ; 89 f8
-    call 031c5h                               ; e8 3a f7
+    call 031e8h                               ; e8 21 f7
     inc cx                                    ; 41
     inc cx                                    ; 41
     inc si                                    ; 46
-    jmp short 03a6eh                          ; eb de
+    jmp short 03aaah                          ; eb de
     lea sp, [bp-008h]                         ; 8d 66 f8
     pop di                                    ; 5f
@@ -7100,5 +7128,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_restore_video_state_:             ; 0xc3a99 LB 0x9b
+vbe_biosfn_restore_video_state_:             ; 0xc3ad5 LB 0x9b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7109,10 +7137,10 @@
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
-    call 031b7h                               ; e8 10 f7
+    call 031dah                               ; e8 f7 f6
     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 03ac2h                          ; 75 10
+    jne short 03afeh                          ; 75 10
     mov ax, strict word 00004h                ; b8 04 00
     mov dx, 001ceh                            ; ba ce 01
@@ -7121,5 +7149,5 @@
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
-    jmp short 03b2ch                          ; eb 6a
+    jmp short 03b68h                          ; eb 6a
     mov ax, strict word 00001h                ; b8 01 00
     mov dx, 001ceh                            ; ba ce 01
@@ -7127,5 +7155,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 031b7h                               ; e8 e7 f6
+    call 031dah                               ; e8 ce f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7137,5 +7165,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 031b7h                               ; e8 d3 f6
+    call 031dah                               ; e8 ba f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7147,5 +7175,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 031b7h                               ; e8 bf f6
+    call 031dah                               ; e8 a6 f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7159,7 +7187,7 @@
     out DX, ax                                ; ef
     mov si, strict word 00005h                ; be 05 00
-    jmp short 03b16h                          ; eb 05
+    jmp short 03b52h                          ; eb 05
     cmp si, strict byte 00009h                ; 83 fe 09
-    jnbe short 03b2ch                         ; 77 16
+    jnbe short 03b68h                         ; 77 16
     mov ax, si                                ; 89 f0
     mov dx, 001ceh                            ; ba ce 01
@@ -7167,5 +7195,5 @@
     mov dx, bx                                ; 89 da
     mov ax, cx                                ; 89 c8
-    call 031b7h                               ; e8 94 f6
+    call 031dah                               ; e8 7b f6
     mov dx, 001cfh                            ; ba cf 01
     out DX, ax                                ; ef
@@ -7173,5 +7201,5 @@
     inc bx                                    ; 43
     inc si                                    ; 46
-    jmp short 03b11h                          ; eb e5
+    jmp short 03b4dh                          ; eb e5
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
@@ -7180,5 +7208,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vbe_biosfn_save_restore_state_:              ; 0xc3b34 LB 0x8d
+vbe_biosfn_save_restore_state_:              ; 0xc3b70 LB 0x8d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7193,15 +7221,15 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 03b94h                           ; 74 46
+    je short 03bd0h                           ; 74 46
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 03b78h                           ; 74 25
+    je short 03bb4h                           ; 74 25
     test ax, ax                               ; 85 c0
-    jne short 03bb0h                          ; 75 59
+    jne short 03bech                          ; 75 59
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02a84h                               ; e8 27 ef
+    call 02aa7h                               ; e8 0e ef
     mov cx, ax                                ; 89 c1
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03b6ah                           ; 74 05
-    call 03a36h                               ; e8 ce fe
+    je short 03ba6h                           ; 74 05
+    call 03a72h                               ; e8 ce fe
     add ax, cx                                ; 01 c8
     add ax, strict word 0003fh                ; 05 3f 00
@@ -7211,5 +7239,5 @@
     pop ES                                    ; 07
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 03bb3h                          ; eb 3b
+    jmp short 03befh                          ; eb 3b
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -7217,11 +7245,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02ab9h                               ; e8 34 ef
+    call 02adch                               ; e8 1b ef
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03bb3h                           ; 74 28
+    je short 03befh                           ; 74 28
     mov dx, ax                                ; 89 c2
     mov ax, cx                                ; 89 c8
-    call 03a3eh                               ; e8 ac fe
-    jmp short 03bb3h                          ; eb 1f
+    call 03a7ah                               ; e8 ac fe
+    jmp short 03befh                          ; eb 1f
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -7229,11 +7257,11 @@
     mov dx, cx                                ; 89 ca
     mov ax, word [bp-006h]                    ; 8b 46 fa
-    call 02e3ah                               ; e8 99 f2
+    call 02e5dh                               ; e8 80 f2
     test byte [bp-006h], 008h                 ; f6 46 fa 08
-    je short 03bb3h                           ; 74 0c
+    je short 03befh                           ; 74 0c
     mov dx, ax                                ; 89 c2
     mov ax, cx                                ; 89 c8
-    call 03a99h                               ; e8 eb fe
-    jmp short 03bb3h                          ; eb 03
+    call 03ad5h                               ; e8 eb fe
+    jmp short 03befh                          ; eb 03
     mov di, 00100h                            ; bf 00 01
     push SS                                   ; 16
@@ -7245,33 +7273,42 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-vbe_biosfn_get_set_scanline_length_:         ; 0xc3bc1 LB 0xb2
+vbe_biosfn_get_set_scanline_length_:         ; 0xc3bfd LB 0xe2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push si                                   ; 56
     push di                                   ; 57
-    sub sp, strict byte 00006h                ; 83 ec 06
-    push ax                                   ; 50
-    mov si, dx                                ; 89 d6
-    mov di, bx                                ; 89 df
-    mov word [bp-008h], cx                    ; 89 4e f8
-    call 03620h                               ; e8 4c fa
-    mov ch, al                                ; 88 c5
-    mov word [bp-006h], strict word 0004fh    ; c7 46 fa 4f 00
+    sub sp, strict byte 0000ah                ; 83 ec 0a
+    push ax                                   ; 50
+    mov di, dx                                ; 89 d7
+    mov word [bp-006h], bx                    ; 89 5e fa
+    mov si, cx                                ; 89 ce
+    call 0365ch                               ; e8 4c fa
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jne short 03c19h                          ; 75 05
+    mov cx, strict word 00010h                ; b9 10 00
+    jmp short 03c1dh                          ; eb 04
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
+    mov ch, cl                                ; 88 cd
+    call 03694h                               ; e8 72 fa
+    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00ch], strict word 0004fh    ; c7 46 f4 4f 00
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov bx, word [es:di]                      ; 26 8b 1d
-    mov al, byte [es:si]                      ; 26 8a 04
+    mov bx, word [bp-006h]                    ; 8b 5e fa
+    mov bx, word [es:bx]                      ; 26 8b 1f
+    mov al, byte [es:di]                      ; 26 8a 05
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 03bf1h                           ; 74 0a
+    je short 03c44h                           ; 74 0b
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 03c1ah                           ; 74 2f
+    je short 03c6dh                           ; 74 30
     test al, al                               ; 84 c0
-    je short 03c15h                           ; 74 26
-    jmp short 03c5ch                          ; eb 6b
+    je short 03c68h                           ; 74 27
+    jmp near 03cc8h                           ; e9 84 00
     cmp ch, 004h                              ; 80 fd 04
-    jne short 03bfch                          ; 75 06
+    jne short 03c4fh                          ; 75 06
     mov CL, strict byte 003h                  ; b1 03
     sal bx, CL                                ; d3 e3
-    jmp short 03c15h                          ; eb 19
+    jmp short 03c68h                          ; eb 19
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -7282,21 +7319,23 @@
     ; sbb ax, dx                                ; 1b c2
     sar ax, CL                                ; d3 f8
-    mov word [bp-00ah], ax                    ; 89 46 f6
+    mov word [bp-00eh], ax                    ; 89 46 f2
     mov ax, bx                                ; 89 d8
     xor dx, dx                                ; 31 d2
-    div word [bp-00ah]                        ; f7 76 f6
+    div word [bp-00eh]                        ; f7 76 f2
     mov bx, ax                                ; 89 c3
     mov ax, bx                                ; 89 d8
-    call 03639h                               ; e8 1f fa
-    call 03658h                               ; e8 3b fa
-    mov bx, ax                                ; 89 c3
+    call 03675h                               ; e8 08 fa
+    call 03694h                               ; e8 24 fa
+    mov word [bp-008h], ax                    ; 89 46 f8
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov word [es:di], ax                      ; 26 89 05
+    mov bx, word [bp-006h]                    ; 8b 5e fa
+    mov word [es:bx], ax                      ; 26 89 07
     cmp ch, 004h                              ; 80 fd 04
-    jne short 03c2fh                          ; 75 06
+    jne short 03c88h                          ; 75 08
     mov CL, strict byte 003h                  ; b1 03
+    mov bx, ax                                ; 89 c3
     shr bx, CL                                ; d3 eb
-    jmp short 03c44h                          ; eb 15
+    jmp short 03c9eh                          ; eb 16
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -7307,7 +7346,7 @@
     ; sbb ax, dx                                ; 1b c2
     sar ax, CL                                ; d3 f8
-    mov di, ax                                ; 89 c7
-    mov ax, bx                                ; 89 d8
-    mul di                                    ; f7 e7
+    mov bx, ax                                ; 89 c3
+    mov ax, word [bp-008h]                    ; 8b 46 f8
+    mul bx                                    ; f7 e3
     mov bx, ax                                ; 89 c3
     add bx, strict byte 00003h                ; 83 c3 03
@@ -7315,16 +7354,23 @@
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov word [es:si], bx                      ; 26 89 1c
-    call 03671h                               ; e8 1f fa
+    mov word [es:di], bx                      ; 26 89 1d
+    call 036adh                               ; e8 01 fa
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov bx, word [bp-008h]                    ; 8b 5e f8
-    mov word [es:bx], ax                      ; 26 89 07
-    jmp short 03c61h                          ; eb 05
-    mov word [bp-006h], 00100h                ; c7 46 fa 00 01
+    mov word [es:si], ax                      ; 26 89 04
+    call 03624h                               ; e8 70 f9
     push SS                                   ; 16
     pop ES                                    ; 07
-    mov ax, word [bp-006h]                    ; 8b 46 fa
-    mov bx, word [bp-00ch]                    ; 8b 5e f4
+    cmp ax, word [es:si]                      ; 26 3b 04
+    jbe short 03ccdh                          ; 76 12
+    mov ax, word [bp-00ah]                    ; 8b 46 f6
+    call 03675h                               ; e8 b4 f9
+    mov word [bp-00ch], 00200h                ; c7 46 f4 00 02
+    jmp short 03ccdh                          ; eb 05
+    mov word [bp-00ch], 00100h                ; c7 46 f4 00 01
+    push SS                                   ; 16
+    pop ES                                    ; 07
+    mov ax, word [bp-00ch]                    ; 8b 46 f4
+    mov bx, word [bp-010h]                    ; 8b 5e f0
     mov word [es:bx], ax                      ; 26 89 07
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -7334,6 +7380,6 @@
     retn                                      ; c3
 
-  ; Padding 0x78d bytes at 0xc3c73
-  times 1933 db 0
+  ; Padding 0x721 bytes at 0xc3cdf
+  times 1825 db 0
 
 section VBE32 progbits vstart=0x4400 align=1 ; size=0x115 class=CODE group=AUTO
@@ -7467,8 +7513,8 @@
   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.1.51 VGA BIOS', 00dh, 00ah, 000h
-_vga_modes:                                  ; 0xc462f LB 0x80
+section _DATA progbits vstart=0x4600 align=1 ; size=0x3732 class=DATA group=DGROUP
+_msg_vga_init:                               ; 0xc4600 LB 0x34
+    db  'Oracle VM VirtualBox Version 5.2.0_BETA1 VGA BIOS', 00dh, 00ah, 000h
+_vga_modes:                                  ; 0xc4634 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
@@ -7479,9 +7525,9 @@
     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
+_line_to_vpti:                               ; 0xc46b4 LB 0x10
     db  017h, 017h, 018h, 018h, 004h, 005h, 006h, 007h, 00dh, 00eh, 011h, 012h, 01ah, 01bh, 01ch, 01dh
-_dac_regs:                                   ; 0xc46bf LB 0x4
+_dac_regs:                                   ; 0xc46c4 LB 0x4
     dd  0ff3f3f3fh
-_video_param_table:                          ; 0xc46c3 LB 0x780
+_video_param_table:                          ; 0xc46c8 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
@@ -7604,5 +7650,5 @@
     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
+_palette0:                                   ; 0xc4e48 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
@@ -7617,5 +7663,5 @@
     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
+_palette1:                                   ; 0xc4f08 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
@@ -7630,5 +7676,5 @@
     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
+_palette2:                                   ; 0xc4fc8 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
@@ -7643,5 +7689,5 @@
     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
+_palette3:                                   ; 0xc5088 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
@@ -7692,17 +7738,17 @@
     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
+_static_functionality:                       ; 0xc5388 LB 0x10
     db  0ffh, 0e0h, 00fh, 000h, 000h, 000h, 000h, 007h, 002h, 008h, 0e7h, 00ch, 000h, 000h, 000h, 000h
-_dcc_table:                                  ; 0xc5393 LB 0x24
+_dcc_table:                                  ; 0xc5398 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
+_secondary_save_area:                        ; 0xc53bc LB 0x1a
+    db  01ah, 000h, 098h, 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
+_video_save_pointer_table:                   ; 0xc53d6 LB 0x1c
+    db  0c8h, 046h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  0bch, 053h, 000h, 0c0h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+_vgafont8:                                   ; 0xc53f2 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
@@ -7833,5 +7879,5 @@
     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
+_vgafont14:                                  ; 0xc5bf2 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
@@ -8058,5 +8104,5 @@
     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
+_vgafont16:                                  ; 0xc69f2 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
@@ -8315,5 +8361,5 @@
     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
+_vgafont14alt:                               ; 0xc79f2 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
@@ -8335,5 +8381,5 @@
     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
+_vgafont16alt:                               ; 0xc7b1f 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
@@ -8357,69 +8403,67 @@
     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
+_cga_msr:                                    ; 0xc7c63 LB 0x9
+    db  02ch, 028h, 02dh, 029h, 02ah, 02eh, 01eh, 029h, 000h
+_vbebios_copyright:                          ; 0xc7c6c LB 0x15
     db  'VirtualBox VESA BIOS', 000h
-_vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
+_vbebios_vendor_name:                        ; 0xc7c81 LB 0x13
     db  'Oracle Corporation', 000h
-_vbebios_product_name:                       ; 0xc7c86 LB 0x21
+_vbebios_product_name:                       ; 0xc7c94 LB 0x21
     db  'Oracle VM VirtualBox VBE Adapter', 000h
-_vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.1.51', 000h
-_vbebios_info_string:                        ; 0xc7ccb LB 0x2b
+_vbebios_product_revision:                   ; 0xc7cb5 LB 0x29
+    db  'Oracle VM VirtualBox Version 5.2.0_BETA1', 000h
+_vbebios_info_string:                        ; 0xc7cde LB 0x2b
     db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
-_no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
+_no_vbebios_info_string:                     ; 0xc7d09 LB 0x29
     db  'No VirtualBox VBE support available!', 00dh, 00ah, 00dh, 00ah, 000h
 
-  ; Padding 0x1 bytes at 0xc7d1f
-    db  001h
+section CONST progbits vstart=0x7d32 align=1 ; size=0x0 class=DATA group=DGROUP
 
-section CONST progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
+section CONST2 progbits vstart=0x7d32 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, 038h, 030h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h, 067h
-    db  061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 030h
+  ; Padding 0x2ce bytes at 0xc7d32
+    db  001h, 000h, 000h, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 068h, 06fh, 06dh
+    db  065h, 02fh, 066h, 06dh, 033h, 02fh, 073h, 072h, 063h, 02fh, 076h, 062h, 06fh, 078h, 02fh, 06fh
+    db  075h, 074h, 02fh, 06ch, 069h, 06eh, 075h, 078h, 02eh, 061h, 06dh, 064h, 036h, 034h, 02fh, 072h
+    db  065h, 06ch, 065h, 061h, 073h, 065h, 02fh, 06fh, 062h, 06ah, 02fh, 056h, 042h, 06fh, 078h, 056h
+    db  067h, 061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02fh, 056h, 042h, 06fh, 078h, 056h
+    db  067h, 061h, 042h, 069h, 06fh, 073h, 038h, 030h, 038h, 036h, 02eh, 073h, 079h, 06dh, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f5h
Index: /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum
===================================================================
--- /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum	(revision 68289)
+++ /trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum	(revision 68290)
@@ -1,1 +1,1 @@
-098b8541e3fcf2071a9363b1fa83053d *VBoxVgaBios8086.rom
+ee116917d276738dbe3da492599d263f *VBoxVgaBios8086.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 68289)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 68290)
@@ -988,13 +988,13 @@
     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, 000h, 02bh, 080h, 081h, 06eh, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 080h, 081h, 02bh, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
     db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 04dh, 03bh, 04dh, 03bh
 _dskacc:                                     ; 0xf0082 LB 0x2e
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h
-    db  0c0h, 07fh, 0a0h, 080h, 040h, 090h, 0e8h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  0c0h, 07fh, 0a0h, 080h, 0fdh, 08fh, 0a5h, 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=0xd40 class=DATA group=DGROUP
+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
@@ -1101,8 +1101,5 @@
     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
-    db   'scsi_pci_init', 000h
-    db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
-    db   '%s: Adapter %x:%x found at %x, enabling BM', 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
@@ -1117,18 +1114,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0df0 LB 0x12
-    db  'VirtualBox 5.1.51', 000h
-_bios_prefix_string:                         ; 0xf0e02 LB 0x8
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
+    db  'VirtualBox 5.2.0_BETA1', 000h, 000h
+_bios_prefix_string:                         ; 0xf0da6 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0e0a LB 0x6
+_isotag:                                     ; 0xf0dae LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0e10 LB 0x18
+_eltorito:                                   ; 0xf0db4 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0e28 LB 0x28
+_drivetypes:                                 ; 0xf0dcc 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:                          ; 0xf0e50 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0df4 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
@@ -1187,11 +1184,11 @@
     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:                 ; 0xf11ca LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x416 bytes at 0xf11ea
-  times 1046 db 0
+  ; Padding 0x472 bytes at 0xf118e
+  times 1138 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e48 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e08 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1414,9 +1411,9 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 a8 01
-    push 00df0h                               ; 68 f0 0d
+    push 00d8eh                               ; 68 8e 0d
     push 000d9h                               ; 68 d9 00
     push strict byte 00004h                   ; 6a 04
@@ -1588,5 +1585,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a0e0h                               ; e8 13 88
+    call 0a0a0h                               ; e8 d3 87
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1818,5 +1815,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a110h                               ; e8 13 86
+    call 0a0d0h                               ; e8 d3 85
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2257,5 +2254,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a110h                               ; e8 c0 81
+    call 0a0d0h                               ; e8 80 81
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2267,5 +2264,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a110h                               ; e8 a0 81
+    call 0a0d0h                               ; e8 60 81
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ch]                    ; 8b 46 e4
@@ -2298,5 +2295,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a110h                               ; e8 4f 81
+    call 0a0d0h                               ; e8 0f 81
     mov word [bp-012h], dx                    ; 89 56 ee
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2307,5 +2304,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a110h                               ; e8 31 81
+    call 0a0d0h                               ; e8 f1 80
     mov ah, dl                                ; 88 d4
     and ah, 00fh                              ; 80 e4 0f
@@ -2698,5 +2695,5 @@
     lea ax, [bp-03ah]                         ; 8d 46 c6
     call 05a02h                               ; e8 58 36
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2864,5 +2861,5 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a110h                               ; e8 89 7b
+    call 0a0d0h                               ; e8 49 7b
     mov word [bp-024h], dx                    ; 89 56 dc
     mov word [bp-032h], cx                    ; 89 4e ce
@@ -3140,5 +3137,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00018h                ; be 18 00
-    call 0a110h                               ; e8 c7 78
+    call 0a0d0h                               ; e8 87 78
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3148,5 +3145,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00020h                ; be 20 00
-    call 0a110h                               ; e8 b0 78
+    call 0a0d0h                               ; e8 70 78
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-022h]                    ; 8b 46 de
@@ -3182,5 +3179,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00008h                ; be 08 00
-    call 0a110h                               ; e8 5c 78
+    call 0a0d0h                               ; e8 1c 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-00eh], bx                    ; 89 5e f2
@@ -3189,5 +3186,5 @@
     mov word [bp-018h], dx                    ; 89 56 e8
     mov si, strict word 00010h                ; be 10 00
-    call 0a110h                               ; e8 47 78
+    call 0a0d0h                               ; e8 07 78
     mov word [bp-024h], dx                    ; 89 56 dc
     mov ax, dx                                ; 89 d0
@@ -3449,5 +3446,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 02b52h                          ; 75 1f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -4283,5 +4280,5 @@
     cmp bh, 048h                              ; 80 ff 48
     jbe short 03292h                          ; 76 33
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5186,5 +5183,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     jmp near 0348ch                           ; e9 92 f9
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5284,5 +5281,5 @@
     cmp ax, strict word 0004ah                ; 3d 4a 00
     jne short 03be4h                          ; 75 1f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5389,5 +5386,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5471,5 +5468,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a130h                               ; e8 79 63
+    call 0a0f0h                               ; e8 39 63
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5530,5 +5527,5 @@
     jnc short 03e62h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00e0ah]                  ; 3a 85 0a 0e
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     je short 03e4ch                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
@@ -5540,5 +5537,5 @@
     jnc short 03e7ch                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00e10h]                  ; 3a 85 10 0e
+    cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
     je short 03e66h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
@@ -5832,5 +5829,5 @@
     cmp ax, dx                                ; 39 d0
     je short 04212h                           ; 74 29
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5944,5 +5941,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 a3 5d
+    call 0a080h                               ; e8 63 5d
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5950,5 +5947,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 96 5d
+    call 0a080h                               ; e8 56 5d
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -5985,5 +5982,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a130h                               ; e8 af 5d
+    call 0a0f0h                               ; e8 6f 5d
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6052,5 +6049,5 @@
     test al, al                               ; 84 c0
     je short 0446ch                           ; 74 37
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6149,5 +6146,5 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     jmp near 04470h                           ; e9 38 ff
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6271,5 +6268,5 @@
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
     jmp near 04afbh                           ; e9 39 04
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6324,5 +6321,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a130h                               ; e8 d2 59
+    call 0a0f0h                               ; e8 92 59
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6380,5 +6377,5 @@
     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
     je short 04846h                           ; 74 53
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6685,10 +6682,10 @@
     je short 04b96h                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 a0 cd
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00e28h                            ; 81 c2 28 0e
+    add dx, 00dcch                            ; 81 c2 cc 0d
     push dx                                   ; 52
     push 00494h                               ; 68 94 04
@@ -6712,9 +6709,9 @@
     test al, al                               ; 84 c0
     je short 04bcch                           ; 74 1b
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 67 cd
-    push 00e3ch                               ; 68 3c 0e
+    push 00de0h                               ; 68 e0 0d
     push 004a8h                               ; 68 a8 04
     push strict byte 00004h                   ; 6a 04
@@ -6724,25 +6721,25 @@
     test ah, ah                               ; 84 e4
     je short 04be0h                           ; 74 10
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 48 cd
-    push 00e46h                               ; 68 46 0e
+    push 00deah                               ; 68 ea 0d
     jmp short 04bbfh                          ; eb df
     test bl, 080h                             ; f6 c3 80
     je short 04bf6h                           ; 74 11
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 33 cd
     push si                                   ; 56
-    push 00e32h                               ; 68 32 0e
+    push 00dd6h                               ; 68 d6 0d
     jmp short 04c05h                          ; eb 0f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01923h                               ; e8 22 cd
     push si                                   ; 56
-    push 00e28h                               ; 68 28 0e
+    push 00dcch                               ; 68 cc 0d
     push 004bdh                               ; 68 bd 04
     push strict byte 00004h                   ; 6a 04
@@ -6770,5 +6767,5 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6848,5 +6845,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7412,5 +7409,5 @@
     test al, al                               ; 84 c0
     jne short 0520fh                          ; 75 19
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7758,5 +7755,5 @@
     cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
     jbe short 0559bh                          ; 76 1f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7776,6 +7773,6 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov dl, byte [bx+00e56h]                  ; 8a 97 56 0e
-    mov ax, word [bx+00e56h]                  ; 8b 87 56 0e
+    mov dl, byte [bx+00dfah]                  ; 8a 97 fa 0d
+    mov ax, word [bx+00dfah]                  ; 8b 87 fa 0d
     jmp near 05645h                           ; e9 90 00
     test AL, strict byte 004h                 ; a8 04
@@ -7784,6 +7781,6 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov dl, byte [bx+00e54h]                  ; 8a 97 54 0e
-    mov ax, word [bx+00e54h]                  ; 8b 87 54 0e
+    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
+    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
     jmp near 05645h                           ; e9 79 00
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -7805,14 +7802,14 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
+    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
     je short 0560eh                           ; 74 0a
-    mov dl, byte [bx+00e50h]                  ; 8a 97 50 0e
-    mov ax, word [bx+00e50h]                  ; 8b 87 50 0e
+    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
+    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     jmp short 05616h                          ; eb 08
-    mov dl, byte [bx+00e52h]                  ; 8a 97 52 0e
-    mov ax, word [bx+00e52h]                  ; 8b 87 52 0e
+    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
+    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
@@ -7821,14 +7818,14 @@
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
+    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
     je short 0563dh                           ; 74 0a
-    mov dl, byte [bx+00e52h]                  ; 8a 97 52 0e
-    mov ax, word [bx+00e52h]                  ; 8b 87 52 0e
+    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
+    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
     jmp short 05645h                          ; eb 08
-    mov dl, byte [bx+00e50h]                  ; 8a 97 50 0e
-    mov ax, word [bx+00e50h]                  ; 8b 87 50 0e
+    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
+    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
@@ -7837,5 +7834,5 @@
     test dl, dl                               ; 84 d2
     jne short 0566bh                          ; 75 16
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8037,5 +8034,5 @@
     mov word [bp+012h], dx                    ; 89 56 12
     jmp near 05855h                           ; e9 43 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8048,5 +8045,5 @@
     call 01966h                               ; e8 3a c1
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8257,5 +8254,5 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a110h                               ; e8 e1 46
+    call 0a0d0h                               ; e8 a1 46
     test ax, ax                               ; 85 c0
     jne short 05a3fh                          ; 75 0c
@@ -8295,10 +8292,10 @@
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 38 46
+    call 0a080h                               ; e8 f8 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 0a0e0h                               ; e8 4c 46
+    call 0a0a0h                               ; e8 0c 46
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
@@ -8441,5 +8438,5 @@
     test ax, ax                               ; 85 c0
     jne short 05c16h                          ; 75 26
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8472,5 +8469,5 @@
     cmp ax, dx                                ; 39 d0
     jbe short 05c74h                          ; 76 30
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8514,5 +8511,5 @@
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 0d 44
+    call 0a080h                               ; e8 cd 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8520,5 +8517,5 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 fe 43
+    call 0a080h                               ; e8 be 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-004h]                    ; 03 46 fc
@@ -8577,5 +8574,5 @@
     test dl, dl                               ; 84 d2
     je short 05dbbh                           ; 74 46
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8596,5 +8593,5 @@
     or ah, 00ch                               ; 80 cc 0c
     jmp near 05f01h                           ; e9 5c 01
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8688,8 +8685,8 @@
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 27 42
+    call 0a080h                               ; e8 e7 41
     mov bx, word [bp-004h]                    ; 8b 5e fc
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 1f 42
+    call 0a080h                               ; e8 df 41
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-00ah], dx                    ; 89 56 f6
@@ -8701,5 +8698,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     jmp near 05dbfh                           ; e9 04 ff
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8714,5 +8711,5 @@
     add sp, strict byte 00008h                ; 83 c4 08
     jmp near 05dbbh                           ; e9 dd fe
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8804,5 +8801,5 @@
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
     jmp near 06400h                           ; e9 10 04
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8829,5 +8826,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 e2 40
+    call 0a0e0h                               ; e8 a2 40
     mov si, ax                                ; 89 c6
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -8856,5 +8853,5 @@
     cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
     jc short 060abh                           ; 72 23
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8914,5 +8911,5 @@
     test dl, dl                               ; 84 d2
     je short 0618dh                           ; 74 51
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8986,5 +8983,5 @@
     mov bx, word [bp-00ch]                    ; 8b 5e f4
     mov si, strict word 00020h                ; be 20 00
-    call 0a110h                               ; e8 ee 3e
+    call 0a0d0h                               ; e8 ae 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
@@ -9342,5 +9339,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a0e0h                               ; e8 2b 3b
+    call 0a0a0h                               ; e8 eb 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9503,5 +9500,5 @@
     mov word [bp+00ch], ax                    ; 89 46 0c
     jmp near 0677fh                           ; e9 2b 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9694,5 +9691,5 @@
     retf                                      ; cb
     jmp near 0677fh                           ; e9 49 fe
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9734,5 +9731,5 @@
     or byte [bp+018h], 001h                   ; 80 4e 18 01
     jmp near 0677fh                           ; e9 d3 fd
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9927,5 +9924,5 @@
     mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
     jmp short 06b65h                          ; eb b9
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10703,5 +10700,5 @@
     je short 0738dh                           ; 74 0e
     push 008eeh                               ; 68 ee 08
-    push 011cah                               ; 68 ca 11
+    push 0116eh                               ; 68 6e 11
     push strict byte 00007h                   ; 6a 07
     call 01966h                               ; e8 dc a5
@@ -10784,5 +10781,5 @@
     je short 0741eh                           ; 74 0e
     push 008f8h                               ; 68 f8 08
-    push 011cah                               ; 68 ca 11
+    push 0116eh                               ; 68 6e 11
     push strict byte 00007h                   ; 6a 07
     call 01966h                               ; e8 4b a5
@@ -12293,5 +12290,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 081c7h                          ; 75 1f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12451,5 +12448,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a130h                               ; e8 10 1e
+    call 0a0f0h                               ; e8 d0 1d
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12515,5 +12512,5 @@
     cmp bx, 00200h                            ; 81 fb 00 02
     je short 083e9h                           ; 74 20
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12582,5 +12579,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a110h                               ; e8 a9 1c
+    call 0a0d0h                               ; e8 69 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-016h], bx                    ; 89 5e ea
@@ -12604,5 +12601,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 00006h                ; be 06 00
-    call 0a110h                               ; e8 68 1c
+    call 0a0d0h                               ; e8 28 1c
     mov si, word [bp-01eh]                    ; 8b 76 e2
     add si, dx                                ; 01 d6
@@ -12622,5 +12619,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a110h                               ; e8 38 1c
+    call 0a0d0h                               ; e8 f8 1b
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12631,5 +12628,5 @@
     mov dx, word [bp-036h]                    ; 8b 56 ca
     mov si, strict word 00010h                ; be 10 00
-    call 0a110h                               ; e8 1d 1c
+    call 0a0d0h                               ; e8 dd 1b
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12657,5 +12654,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a110h                               ; e8 d1 1b
+    call 0a0d0h                               ; e8 91 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12700,5 +12697,5 @@
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12756,5 +12753,5 @@
     inc byte [bp-00ch]                        ; fe 46 f4
     jmp near 086f5h                           ; e9 91 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12862,63 +12859,32 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_pci_init_:                              ; 0xf878e LB 0x6d
+scsi_pci_init_:                              ; 0xf878e LB 0x2a
     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
-    call 09ee8h                               ; e8 4c 17
-    mov dx, ax                                ; 89 c2
+    call 09ea5h                               ; e8 0f 17
+    mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 087c0h                          ; 75 1d
-    mov bx, 00e02h                            ; bb 02 0e
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 75 91
-    push si                                   ; 56
-    push di                                   ; 57
-    push 00c61h                               ; 68 61 0c
-    push 00c6fh                               ; 68 6f 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 ab 91
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp short 087f2h                          ; eb 32
-    mov bx, 00e02h                            ; bb 02 0e
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 58 91
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    push 00c61h                               ; 68 61 0c
-    push 00c98h                               ; 68 98 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 8d 91
-    add sp, strict byte 0000ch                ; 83 c4 0c
-    mov al, dl                                ; 88 d0
-    xor ah, ah                                ; 30 e4
-    mov si, ax                                ; 89 c6
-    shr dx, 008h                              ; c1 ea 08
-    mov al, dl                                ; 88 d0
+    je short 087b1h                           ; 74 14
+    mov dl, bl                                ; 88 da
+    xor dh, dh                                ; 30 f6
+    shr bx, 008h                              ; c1 eb 08
+    mov al, bl                                ; 88 d8
+    xor ah, ah                                ; 30 e4
     mov cx, strict word 00007h                ; b9 07 00
     mov bx, strict word 00004h                ; bb 04 00
-    mov dx, si                                ; 89 f2
-    call 09fb1h                               ; e8 bf 17
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
-    pop si                                    ; 5e
+    call 09f6eh                               ; e8 bd 17
+    lea sp, [bp-004h]                         ; 8d 66 fc
     pop cx                                    ; 59
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf87fb LB 0x81
+_scsi_init:                                  ; 0xf87b8 LB 0x81
     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 65 8e
+    call 0166ch                               ; e8 a8 8e
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12931,13 +12897,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08834h                          ; 75 15
+    jne short 087f1h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 082e8h                               ; e8 bd fa
+    call 082e8h                               ; e8 00 fb
     mov dx, 01040h                            ; ba 40 10
     mov ax, 0104bh                            ; b8 4b 10
-    call 0878eh                               ; e8 5a ff
+    call 0878eh                               ; e8 9d ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12947,13 +12913,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08856h                          ; 75 15
+    jne short 08813h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 082e8h                               ; e8 9b fa
+    call 082e8h                               ; e8 de fa
     mov dx, strict word 00030h                ; ba 30 00
     mov ax, 01000h                            ; b8 00 10
-    call 0878eh                               ; e8 38 ff
+    call 0878eh                               ; e8 7b ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12963,17 +12929,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08878h                          ; 75 15
+    jne short 08835h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 082e8h                               ; e8 79 fa
+    call 082e8h                               ; e8 bc fa
     mov dx, strict word 00054h                ; ba 54 00
     mov ax, 01000h                            ; b8 00 10
-    call 0878eh                               ; e8 16 ff
+    call 0878eh                               ; e8 59 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf887c LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf8839 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -12984,12 +12950,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 08893h                               ; e3 06
+    jcxz 08850h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 0888dh                               ; e2 fa
+    loop 0884ah                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf8898 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf8855 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -13002,5 +12968,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 088a6h                               ; e2 fa
+    loop 08863h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -13010,5 +12976,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf88b6 LB 0x156
+ahci_port_cmd_sync_:                         ; 0xf8873 LB 0x156
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13025,6 +12991,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 088d9h                          ; 75 03
-    jmp near 08a04h                           ; e9 2b 01
+    jne short 08896h                          ; 75 03
+    jmp near 089c1h                           ; e9 2b 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -13039,5 +13005,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 08898h                               ; e8 92 ff
+    call 08855h                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13105,12 +13071,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 08997h                          ; 75 04
+    jne short 08954h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 0899bh                           ; 74 04
+    je short 08958h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0899dh                          ; eb 02
+    jmp short 0895ah                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0896ah                           ; 74 c9
+    je short 08927h                           ; 74 c9
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13168,5 +13134,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8a0c LB 0x267
+ahci_cmd_data_:                              ; 0xf89c9 LB 0x267
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13193,5 +13159,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a130h                               ; e8 e6 16
+    call 0a0f0h                               ; e8 e9 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13211,5 +13177,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a110h                               ; e8 82 16
+    call 0a0d0h                               ; e8 85 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13222,5 +13188,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a110h                               ; e8 5c 16
+    call 0a0d0h                               ; e8 5f 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13234,5 +13200,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a110h                               ; e8 30 16
+    call 0a0d0h                               ; e8 33 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13245,5 +13211,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a110h                               ; e8 0a 16
+    call 0a0d0h                               ; e8 0d 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13256,5 +13222,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a110h                               ; e8 e4 15
+    call 0a0d0h                               ; e8 e7 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13270,5 +13236,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 0a0c0h                               ; e8 5f 15
+    call 0a080h                               ; e8 62 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13280,5 +13246,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a011h                               ; e8 94 14
+    call 09fceh                               ; e8 94 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13303,5 +13269,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08c0fh                           ; 74 3b
+    je short 08bcch                           ; 74 3b
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13321,13 +13287,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08c1ch                          ; 75 06
+    jne short 08bd9h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08c33h                          ; eb 17
+    jmp short 08bf0h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08c2fh                          ; 75 0f
+    jne short 08bech                          ; 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 08c33h                          ; eb 04
+    jmp short 08bf0h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13336,5 +13302,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 088b6h                               ; e8 71 fc
+    call 08873h                               ; e8 71 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13343,11 +13309,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a088h                               ; e8 2e 14
+    call 0a045h                               ; e8 2e 14
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08c69h                           ; 74 05
+    je short 08c26h                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08c6bh                          ; eb 02
+    jmp short 08c28h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13357,5 +13323,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8c73 LB 0x180
+ahci_port_deinit_current_:                   ; 0xf8c30 LB 0x180
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13372,5 +13338,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08cf4h                           ; 74 5f
+    je short 08cb1h                           ; 74 5f
     xor ah, ah                                ; 30 e4
     sal ax, 007h                              ; c1 e0 07
@@ -13416,26 +13382,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08cf7h                           ; 74 07
+    je short 08cb4h                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08cf9h                          ; eb 05
-    jmp near 08deah                           ; e9 f3 00
+    jmp short 08cb6h                          ; eb 05
+    jmp near 08da7h                           ; e9 f3 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08cc7h                           ; 74 ca
+    je short 08c84h                           ; 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 0a130h                               ; e8 26 14
+    call 0a0f0h                               ; e8 29 14
     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 0a130h                               ; e8 17 14
+    call 0a0f0h                               ; e8 1a 14
     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 0a130h                               ; e8 08 14
+    call 0a0f0h                               ; e8 0b 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13542,5 +13508,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8df3 LB 0x24d
+ahci_port_init_:                             ; 0xf8db0 LB 0x24d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13552,5 +13518,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08c73h                               ; e8 6c fe
+    call 08c30h                               ; e8 6c fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13601,20 +13567,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08e78h                           ; 74 04
+    je short 08e35h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08e7ah                          ; eb 02
+    jmp short 08e37h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08e43h                           ; 74 c5
+    je short 08e00h                           ; 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 0a130h                               ; e8 a5 12
+    call 0a0f0h                               ; e8 a8 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 0a130h                               ; e8 96 12
+    call 0a0f0h                               ; e8 99 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13622,5 +13588,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a130h                               ; e8 85 12
+    call 0a0f0h                               ; e8 88 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13640,5 +13606,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08898h                               ; e8 bf f9
+    call 08855h                               ; e8 bf f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13685,5 +13651,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08898h                               ; e8 53 f9
+    call 08855h                               ; e8 53 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13790,5 +13756,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf9040 LB 0xa8
+@ahci_read_sectors:                          ; 0xf8ffd LB 0xa8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13801,10 +13767,10 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 09066h                          ; 76 0f
+    jbe short 09023h                          ; 76 0f
     push bx                                   ; 53
-    push 00cc4h                               ; 68 c4 0c
-    push 00cd6h                               ; 68 d6 0c
+    push 00c62h                               ; 68 62 0c
+    push 00c74h                               ; 68 74 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 03 89
+    call 01966h                               ; e8 46 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -13821,9 +13787,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08df3h                               ; e8 60 fd
+    call 08db0h                               ; 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 08a0ch                               ; e8 6e f9
+    call 089c9h                               ; e8 6e f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13854,5 +13820,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf90e8 LB 0x86
+@ahci_write_sectors:                         ; 0xf90a5 LB 0x86
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13866,10 +13832,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 09112h                          ; 76 0f
+    jbe short 090cfh                          ; 76 0f
     push dx                                   ; 52
-    push 00cf5h                               ; 68 f5 0c
-    push 00cd6h                               ; 68 d6 0c
+    push 00c93h                               ; 68 93 0c
+    push 00c74h                               ; 68 74 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 57 88
+    call 01966h                               ; e8 9a 88
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13886,9 +13852,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08df3h                               ; e8 b6 fc
+    call 08db0h                               ; e8 b6 fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08a0ch                               ; e8 c5 f8
+    call 089c9h                               ; e8 c5 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13905,5 +13871,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf916e LB 0x18a
+ahci_cmd_packet_:                            ; 0xf912b LB 0x18a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13917,22 +13883,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 e3 84
+    call 0166ch                               ; e8 26 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 091b4h                          ; 75 1f
-    mov bx, 00e02h                            ; bb 02 0e
+    jne short 09171h                          ; 75 1f
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 83 87
-    push 00d08h                               ; 68 08 0d
-    push 00d18h                               ; 68 18 0d
+    call 01923h                               ; e8 c6 87
+    push 00ca6h                               ; 68 a6 0c
+    push 00cb6h                               ; 68 b6 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 bb 87
+    call 01966h                               ; e8 fe 87
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 092efh                           ; e9 3b 01
+    jmp near 092ach                           ; e9 3b 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 091aeh                          ; 75 f4
+    jne short 0916bh                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13940,5 +13906,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 091c3h                               ; e2 fa
+    loop 09180h                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13954,5 +13920,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a0e0h                               ; e8 e4 0e
+    call 0a0a0h                               ; e8 e7 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13973,5 +13939,5 @@
     mov bx, ax                                ; 89 c3
     xor al, al                                ; 30 c0
-    call 08df3h                               ; e8 b8 fb
+    call 08db0h                               ; e8 b8 fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -13981,5 +13947,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a140h                               ; e8 f0 0e
+    call 0a100h                               ; e8 f3 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13988,5 +13954,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 0928eh                           ; 74 27
+    je short 0924bh                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -14001,5 +13967,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08a0ch                               ; e8 73 f7
+    call 089c9h                               ; e8 73 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -14028,7 +13994,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 092edh                          ; 75 05
+    jne short 092aah                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 092efh                          ; eb 02
+    jmp short 092ach                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14037,5 +14003,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf92f8 LB 0x4e3
+ahci_port_detect_device_:                    ; 0xf92b5 LB 0x4e3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14050,8 +14016,8 @@
     xor ch, ch                                ; 30 ed
     mov bx, cx                                ; 89 cb
-    call 08df3h                               ; e8 e0 fa
+    call 08db0h                               ; e8 e0 fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 50 83
+    call 0166ch                               ; e8 93 83
     mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -14123,8 +14089,8 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0887ch                               ; e8 b5 f4
+    call 08839h                               ; e8 b5 f4
     test ax, ax                               ; 85 c0
-    jne short 093ceh                          ; 75 03
-    jmp near 097d3h                           ; e9 05 04
+    jne short 0938bh                          ; 75 03
+    jmp near 09790h                           ; e9 05 04
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -14155,7 +14121,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0887ch                               ; e8 67 f4
+    call 08839h                               ; e8 67 f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 093ceh                           ; 74 b4
+    je short 0938bh                           ; 74 b4
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -14163,7 +14129,7 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, di                                ; 89 fa
-    call 0887ch                               ; e8 53 f4
+    call 08839h                               ; e8 53 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 093cbh                          ; 75 9d
+    jne short 09388h                          ; 75 9d
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     add ax, 00130h                            ; 05 30 01
@@ -14193,6 +14159,6 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 09478h                           ; 72 03
-    jmp near 097d3h                           ; e9 5b 03
+    jc short 09435h                           ; 72 03
+    jmp near 09790h                           ; e9 5b 03
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     add ax, 00118h                            ; 05 18 01
@@ -14244,7 +14210,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne short 0953eh                          ; 75 54
+    jne short 094fbh                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 0953eh                          ; 75 4f
+    jne short 094fbh                          ; 75 4f
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -14261,11 +14227,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, es                                ; 8c c2
-    call 08a0ch                               ; e8 dd f4
+    call 089c9h                               ; e8 dd f4
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 09541h                           ; 74 08
+    je short 094feh                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09543h                          ; eb 05
-    jmp near 09711h                           ; e9 d0 01
+    jmp short 09500h                          ; eb 05
+    jmp near 096ceh                           ; e9 d0 01
     xor ax, ax                                ; 31 c0
     mov dl, al                                ; 88 c2
@@ -14283,7 +14249,7 @@
     mov word [bp-01eh], ax                    ; 89 46 e2
     cmp word [bp-014h], 00fffh                ; 81 7e ec ff 0f
-    jne short 09592h                          ; 75 1e
+    jne short 0954fh                          ; 75 1e
     cmp di, strict byte 0ffffh                ; 83 ff ff
-    jne short 09592h                          ; 75 19
+    jne short 0954fh                          ; 75 19
     mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
     mov word [bp-01eh], ax                    ; 89 46 e2
@@ -14324,19 +14290,19 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0960dh                           ; 72 0c
-    jbe short 09615h                          ; 76 12
+    jc short 095cah                           ; 72 0c
+    jbe short 095d2h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0961dh                           ; 74 16
+    je short 095dah                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 09619h                           ; 74 0e
-    jmp short 09665h                          ; eb 58
+    je short 095d6h                           ; 74 0e
+    jmp short 09622h                          ; eb 58
     test al, al                               ; 84 c0
-    jne short 09665h                          ; 75 54
+    jne short 09622h                          ; 75 54
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 0961fh                          ; eb 0a
+    jmp short 095dch                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 0961fh                          ; eb 06
+    jmp short 095dch                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 0961fh                          ; eb 02
+    jmp short 095dch                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov bl, dl                                ; 88 d3
@@ -14344,17 +14310,17 @@
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 81 80
+    call 016ach                               ; e8 c4 80
     test al, al                               ; 84 c0
-    je short 09665h                           ; 74 36
+    je short 09622h                           ; 74 36
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 74 80
+    call 016ach                               ; e8 b7 80
     xor ah, ah                                ; 30 e4
     mov cx, ax                                ; 89 c1
     sal cx, 008h                              ; c1 e1 08
     mov al, dl                                ; 88 d0
-    call 016ach                               ; e8 68 80
+    call 016ach                               ; e8 ab 80
     xor ah, ah                                ; 30 e4
     add ax, cx                                ; 01 c8
@@ -14363,12 +14329,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 58 80
+    call 016ach                               ; e8 9b 80
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 016ach                               ; e8 4e 80
+    call 016ach                               ; e8 91 80
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 09677h                          ; eb 12
+    jmp short 09634h                          ; eb 12
     push word [bp-01eh]                       ; ff 76 e2
     push word [bp-012h]                       ; ff 76 ee
@@ -14377,9 +14343,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05a02h                               ; e8 8b c3
-    mov bx, 00e02h                            ; bb 02 0e
+    call 05a02h                               ; e8 ce c3
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 a1 82
+    call 01923h                               ; e8 e4 82
     push word [bp-01eh]                       ; ff 76 e2
     push word [bp-012h]                       ; ff 76 ee
@@ -14400,7 +14366,7 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     push ax                                   ; 50
-    push 00d38h                               ; 68 38 0d
+    push 00cd6h                               ; 68 d6 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 b3 82
+    call 01966h                               ; e8 f6 82
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14433,5 +14399,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 51 7f
+    call 01650h                               ; e8 94 7f
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14440,10 +14406,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 50 7f
-    jmp near 097c2h                           ; e9 b1 00
+    call 0165eh                               ; e8 93 7f
+    jmp near 0977fh                           ; e9 b1 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 0976bh                          ; 75 54
+    jne short 09728h                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 0976bh                          ; 75 4f
+    jne short 09728h                          ; 75 4f
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -14460,11 +14426,11 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, es                                ; 8c c2
-    call 08a0ch                               ; e8 b0 f2
+    call 089c9h                               ; e8 b0 f2
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 0976dh                           ; 74 07
+    je short 0972ah                           ; 74 07
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 0976fh                          ; eb 04
-    jmp short 097c2h                          ; eb 55
+    jmp short 0972ch                          ; eb 04
+    jmp short 0977fh                          ; eb 55
     xor dx, dx                                ; 31 d2
     mov bl, byte [bp-008h]                    ; 8a 5e f8
@@ -14505,5 +14471,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf97db LB 0x43
+ahci_mem_alloc_:                             ; 0xf9798 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14515,7 +14481,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166ch                               ; e8 81 7e
+    call 0166ch                               ; e8 c4 7e
     test ax, ax                               ; 85 c0
-    je short 09814h                           ; 74 25
+    je short 097d1h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14524,5 +14490,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 097f7h                               ; e2 fa
+    loop 097b4h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14530,8 +14496,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 09804h                               ; e2 fa
+    loop 097c1h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ah                               ; e8 68 7e
+    call 0167ah                               ; e8 ab 7e
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14543,5 +14509,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf981e LB 0x16d
+ahci_hba_init_:                              ; 0xf97db LB 0x16d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14555,5 +14521,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 38 7e
+    call 0166ch                               ; e8 7b 7e
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14572,9 +14538,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 097dbh                               ; e8 83 ff
+    call 09798h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 09862h                          ; 75 03
-    jmp near 0996ah                           ; e9 08 01
+    jne short 0981fh                          ; 75 03
+    jmp near 09927h                           ; e9 08 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14626,5 +14592,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 098bch                          ; 75 de
+    jne short 09879h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14644,31 +14610,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 0887ch                               ; e8 7a ef
+    call 08839h                               ; 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 0992eh                          ; eb 21
+    jmp short 098ebh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 09925h                           ; 74 12
+    je short 098e2h                           ; 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 092f8h                               ; e8 d8 f9
+    call 092b5h                               ; e8 d8 f9
     dec byte [bp-00ch]                        ; fe 4e f4
-    je short 09968h                           ; 74 43
+    je short 09925h                           ; 74 43
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
-    jnc short 09968h                          ; 73 3a
+    jnc short 09925h                          ; 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 09940h                               ; e3 06
+    jcxz 098fdh                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 0993ah                               ; e2 fa
+    loop 098f7h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14686,9 +14652,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 09964h                          ; 75 04
+    jne short 09921h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 0990dh                           ; 74 a9
+    je short 098cah                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0990fh                          ; eb a7
+    jmp short 098cch                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14700,7 +14666,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 074h, 09ah, 052h, 09ah, 058h, 09ah, 05eh, 09ah, 064h
-    db  09ah, 06ah, 09ah, 070h, 09ah, 074h, 09ah
-_ahci_init:                                  ; 0xf998b LB 0x13a
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 031h, 09ah, 00fh, 09ah, 015h, 09ah, 01bh, 09ah, 021h
+    db  09ah, 027h, 09ah, 02dh, 09ah, 031h, 09ah
+_ahci_init:                                  ; 0xf9948 LB 0x13a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14710,8 +14676,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09ee0h                               ; e8 44 05
+    call 09e9dh                               ; e8 44 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 099efh                           ; 74 4c
+    je short 099ach                           ; 74 4c
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14721,8 +14687,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09f0bh                               ; e8 53 05
+    call 09ec8h                               ; e8 53 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 099f2h                           ; 74 34
+    je short 099afh                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14735,7 +14701,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09f0bh                               ; e8 2e 05
+    call 09ec8h                               ; e8 2e 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 099f2h                           ; 74 11
+    je short 099afh                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -14744,8 +14710,8 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    jmp short 099b5h                          ; eb c6
-    jmp near 09abeh                           ; e9 cc 00
+    jmp short 09972h                          ; eb c6
+    jmp near 09a7bh                           ; e9 cc 00
     test cl, cl                               ; 84 c9
-    je short 099efh                           ; 74 f9
+    je short 099ach                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -14759,7 +14725,7 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09f0bh                               ; e8 f3 04
+    call 09ec8h                               ; e8 f3 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 099efh                          ; 75 d3
+    jne short 099ach                          ; 75 d3
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov bl, cl                                ; 88 cb
@@ -14768,29 +14734,29 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09f39h                               ; e8 09 05
+    call 09ef6h                               ; e8 09 05
     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 09a74h                         ; 77 37
+    jnbe short 09a31h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09974h                            ; bf 74 99
+    mov di, 09931h                            ; bf 31 99
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-06685h]               ; 2e 8b 85 7b 99
+    mov ax, word [cs:di-066c8h]               ; 2e 8b 85 38 99
     jmp ax                                    ; ff e0
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
-    jmp short 09a74h                          ; eb 1c
+    jmp short 09a31h                          ; eb 1c
     mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 09a74h                          ; eb 16
+    jmp short 09a31h                          ; eb 16
     mov byte [bp-008h], 018h                  ; c6 46 f8 18
-    jmp short 09a74h                          ; eb 10
+    jmp short 09a31h                          ; eb 10
     mov byte [bp-008h], 01ch                  ; c6 46 f8 1c
-    jmp short 09a74h                          ; eb 0a
+    jmp short 09a31h                          ; eb 0a
     mov byte [bp-008h], 020h                  ; c6 46 f8 20
-    jmp short 09a74h                          ; eb 04
+    jmp short 09a31h                          ; eb 04
     mov byte [bp-008h], 024h                  ; c6 46 f8 24
     mov si, dx                                ; 89 d6
@@ -14799,5 +14765,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     test al, al                               ; 84 c0
-    je short 09abeh                           ; 74 3b
+    je short 09a7bh                           ; 74 3b
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -14810,7 +14776,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09f63h                               ; e8 c1 04
+    call 09f20h                               ; e8 c1 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09abeh                           ; 74 18
+    je short 09a7bh                           ; 74 18
     and AL, strict byte 0f0h                  ; 24 f0
     add si, ax                                ; 01 c6
@@ -14819,7 +14785,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09fb1h                               ; e8 f8 04
+    call 09f6eh                               ; e8 f8 04
     mov ax, si                                ; 89 f0
-    call 0981eh                               ; e8 60 fd
+    call 097dbh                               ; e8 60 fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -14827,5 +14793,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9ac5 LB 0x39
+apm_out_str_:                                ; 0xf9a82 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14833,5 +14799,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09adah                           ; 74 0a
+    je short 09a97h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14840,30 +14806,22 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09ad2h                          ; 75 f8
+    jne short 09a8fh                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    pop DS                                    ; 1f
+    fcomp qword [bp+si-0649ch]                ; dc 9a 64 9b
+    out DX, AL                                ; ee
+    call far 09b64h:09b09h                    ; 9a 09 9b 64 9b
+    xor AL, strict byte 09bh                  ; 34 9b
+    db  064h, 09bh
+    ; fs wait                                   ; 64 9b
+    push strict byte 0ff9bh                   ; 6a 9b
+    cmp word [bp+di-064c7h], bx               ; 39 9b 39 9b
+    cmp word [bp+di-06457h], bx               ; 39 9b a9 9b
+    cmp word [bp+di-064c7h], bx               ; 39 9b 39 9b
+    db  0a2h
     wait                                      ; 9b
-    cmpsw                                     ; a7
-    wait                                      ; 9b
-    xor word [bp+di-064b4h], bx               ; 31 9b 4c 9b
-    cmpsw                                     ; a7
-    wait                                      ; 9b
-    jnbe short 09a87h                         ; 77 9b
-    cmpsw                                     ; a7
-    wait                                      ; 9b
-    lodsw                                     ; ad
-    wait                                      ; 9b
-    jl short 09a8dh                           ; 7c 9b
-    jl short 09a8fh                           ; 7c 9b
-    jl short 09a91h                           ; 7c 9b
-    in AL, DX                                 ; ec
-    wait                                      ; 9b
-    jl short 09a95h                           ; 7c 9b
-    jl short 09a97h                           ; 7c 9b
-    in ax, 09bh                               ; e5 9b
-_apm_function:                               ; 0xf9afe LB 0xf3
+_apm_function:                               ; 0xf9abb LB 0xf3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14873,21 +14831,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09b7ch                         ; 77 6c
+    jnbe short 09b39h                         ; 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-06520h]                   ; 2e ff a7 e0 9a
+    jmp word [cs:bx-06563h]                   ; 2e ff a7 9d 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 09ba7h                           ; e9 76 00
+    jmp near 09b64h                           ; e9 76 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a1b4h                ; c7 46 0c b4 a1
+    mov word [bp+00ch], 0a174h                ; c7 46 0c 74 a1
     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 09ba7h                           ; e9 5b 00
+    jmp near 09b64h                           ; e9 5b 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14902,17 +14860,17 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09ba7h                           ; e9 30 00
+    jmp near 09b64h                           ; e9 30 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09ba7h                           ; e9 2b 00
-    mov bx, 00e02h                            ; bb 02 0e
+    jmp near 09b64h                           ; e9 2b 00
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 9c 7d
+    call 01923h                               ; e8 df 7d
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
-    push 00d8bh                               ; 68 8b 0d
+    push 00d29h                               ; 68 29 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 d1 7d
+    call 01966h                               ; e8 14 7e
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14926,28 +14884,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09bd2h                           ; 74 1f
+    je short 09b8fh                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09bcah                           ; 74 11
+    je short 09b87h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09bdah                          ; 75 1b
+    jne short 09b97h                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d72h                            ; b8 72 0d
-    call 09ac5h                               ; e8 fd fe
-    jmp short 09ba7h                          ; eb dd
+    mov ax, 00d10h                            ; b8 10 0d
+    call 09a82h                               ; e8 fd fe
+    jmp short 09b64h                          ; eb dd
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d7ah                            ; b8 7a 0d
-    jmp short 09bc5h                          ; eb f3
+    mov ax, 00d18h                            ; b8 18 0d
+    jmp short 09b82h                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d82h                            ; b8 82 0d
-    jmp short 09bc5h                          ; eb eb
+    mov ax, 00d20h                            ; b8 20 0d
+    jmp short 09b82h                          ; 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 09ba7h                          ; eb c2
+    jmp short 09b64h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09ba7h                          ; eb bb
+    jmp short 09b64h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09bddh                          ; eb ec
-pci16_select_reg_:                           ; 0xf9bf1 LB 0x24
+    jmp short 09b9ah                          ; eb ec
+pci16_select_reg_:                           ; 0xf9bae LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14966,5 +14924,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9c15 LB 0xf9
+pci16_find_device_:                          ; 0xf9bd2 LB 0xf9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14980,8 +14938,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09c5dh                          ; 75 2d
+    jne short 09c1ah                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09bf1h                               ; e8 b9 ff
+    call 09baeh                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14990,23 +14948,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09c4bh                          ; 75 06
+    jne short 09c08h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09cdeh                           ; e9 93 00
+    jmp near 09c9bh                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09c58h                           ; 74 07
+    je short 09c15h                           ; 74 07
     mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
-    jmp short 09c5dh                          ; eb 05
+    jmp short 09c1ah                          ; 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 09c85h                          ; 75 1f
+    jne short 09c42h                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09c85h                          ; 75 16
+    jne short 09c42h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09bf1h                               ; e8 7a ff
+    call 09baeh                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15014,13 +14972,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09c85h                          ; 76 03
+    jbe short 09c42h                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09c8eh                           ; 74 05
+    je short 09c4bh                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09c90h                          ; eb 02
+    jmp short 09c4dh                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09bf1h                               ; e8 5c ff
+    call 09baeh                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15033,22 +14991,22 @@
     mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     test di, di                               ; 85 ff
-    je short 09cbfh                           ; 74 0f
+    je short 09c7ch                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09cb3h                               ; e2 fa
+    loop 09c70h                               ; 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 09ccfh                          ; 75 08
+    jne short 09c8ch                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09cd5h                           ; 74 06
+    je short 09c92h                           ; 74 06
     cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
-    je short 09cdbh                           ; 74 06
+    je short 09c98h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09cefh                           ; 74 14
+    je short 09cach                           ; 74 14
     add bx, word [bp-010h]                    ; 03 5e f0
     mov dx, bx                                ; 89 da
@@ -15057,10 +15015,10 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    jnbe short 09cefh                         ; 77 03
-    jmp near 09c2bh                           ; e9 3c ff
+    jnbe short 09cach                         ; 77 03
+    jmp near 09be8h                           ; e9 3c ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09cf8h                          ; 75 04
+    jne short 09cb5h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09cfbh                          ; eb 03
+    jmp short 09cb8h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -15069,14 +15027,13 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    out DX, ax                                ; ef
+    lodsb                                     ; ac
     popfw                                     ; 9d
-    or byte [bp-061e6h], bl                   ; 08 9e 1a 9e
-    db  02eh, 09eh
-    ; cs sahf                                   ; 2e 9e
-    inc ax                                    ; 40
+    lds bx, [di-06229h]                       ; c5 9d d7 9d
+    jmp short 09c64h                          ; eb 9d
+    std                                       ; fd
+    popfw                                     ; 9d
+    db  010h
     sahf                                      ; 9e
-    push bx                                   ; 53
-    sahf                                      ; 9e
-_pci16_function:                             ; 0xf9d0e LB 0x1d2
+_pci16_function:                             ; 0xf9ccb LB 0x1d2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15092,18 +15049,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09d40h                           ; 72 13
-    jbe short 09d93h                          ; 76 64
+    jc short 09cfdh                           ; 72 13
+    jbe short 09d50h                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09d9bh                           ; 74 67
+    je short 09d58h                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09d4ah                           ; 72 11
+    jc short 09d07h                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09d9eh                          ; 76 60
-    jmp short 09d4ah                          ; eb 0a
+    jbe short 09d5bh                          ; 76 60
+    jmp short 09d07h                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09d69h                           ; 74 24
+    je short 09d26h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09d4dh                           ; 74 03
-    jmp near 09each                           ; e9 5f 01
+    je short 09d0ah                           ; 74 03
+    jmp near 09e69h                           ; 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
@@ -15111,52 +15068,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09ed9h                           ; e9 70 01
+    jmp near 09e96h                           ; e9 70 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09d75h                          ; 75 06
+    jne short 09d32h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09ed2h                           ; e9 5d 01
+    jmp near 09e8fh                           ; 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 09c15h                               ; e8 92 fe
+    call 09bd2h                               ; e8 92 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d95h                          ; 75 0d
+    jne short 09d52h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09ed2h                           ; e9 3f 01
-    jmp short 09da0h                          ; eb 0b
+    jmp near 09e8fh                           ; e9 3f 01
+    jmp short 09d5dh                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ed9h                           ; e9 3e 01
-    jmp near 09e67h                           ; e9 c9 00
-    jmp short 09dc5h                          ; eb 25
+    jmp near 09e96h                           ; e9 3e 01
+    jmp near 09e24h                           ; e9 c9 00
+    jmp short 09d82h                          ; 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 09c15h                               ; e8 66 fe
+    call 09bd2h                               ; e8 66 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09dbfh                          ; 75 0b
+    jne short 09d7ch                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09ed2h                           ; e9 13 01
+    jmp near 09e8fh                           ; e9 13 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ed9h                           ; e9 14 01
+    jmp near 09e96h                           ; e9 14 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09dd2h                           ; 72 06
+    jc short 09d8fh                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09ed2h                           ; e9 00 01
+    jmp near 09e8fh                           ; e9 00 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09bf1h                               ; e8 16 fe
+    call 09baeh                               ; 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 09e50h                         ; 77 68
+    jnbe short 09e0dh                         ; 77 68
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-062feh]                   ; 2e ff a7 02 9d
+    jmp word [cs:bx-06341h]                   ; 2e ff a7 bf 9c
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15169,5 +15126,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09e50h                          ; eb 48
+    jmp short 09e0dh                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15176,5 +15133,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09e50h                          ; eb 36
+    jmp short 09e0dh                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15185,5 +15142,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09e50h                          ; eb 22
+    jmp short 09e0dh                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15192,5 +15149,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09e50h                          ; eb 10
+    jmp short 09e0dh                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15199,5 +15156,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09ed9h                           ; e9 86 00
+    jmp near 09e96h                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15208,5 +15165,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09ed9h                          ; eb 72
+    jmp short 09e96h                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15215,5 +15172,5 @@
     mov cx, word [0f380h]                     ; 8b 0e 80 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09e8dh                          ; 76 11
+    jbe short 09e4ah                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15221,5 +15178,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09ea1h                          ; eb 14
+    jmp short 09e5eh                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f1a0h                            ; be a0 f1
@@ -15233,16 +15190,16 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09ed9h                          ; eb 2d
-    mov bx, 00e02h                            ; bb 02 0e
+    jmp short 09e96h                          ; eb 2d
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 6c 7a
+    call 01923h                               ; e8 af 7a
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
     mov ax, word [bp+020h]                    ; 8b 46 20
     push ax                                   ; 50
-    push 00dbeh                               ; 68 be 0d
+    push 00d5ch                               ; 68 5c 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 9f 7a
+    call 01966h                               ; e8 e2 7a
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15256,5 +15213,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9ee0 LB 0x8
+pci_find_classcode_:                         ; 0xf9e9d LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15262,5 +15219,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_device_:                            ; 0xf9ee8 LB 0x23
+pci_find_device_:                            ; 0xf9ea5 LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15274,5 +15231,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je short 09f01h                           ; 74 03
+    je short 09ebeh                           ; 74 03
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -15283,5 +15240,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9f0b LB 0x2e
+pci_read_config_byte_:                       ; 0xf9ec8 LB 0x2e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15309,5 +15266,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9f39 LB 0x2a
+pci_read_config_word_:                       ; 0xf9ef6 LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15333,5 +15290,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9f63 LB 0x4e
+pci_read_config_dword_:                      ; 0xf9f20 LB 0x4e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15355,5 +15312,5 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    jne short 09fa2h                          ; 75 14
+    jne short 09f5fh                          ; 75 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -15365,7 +15322,7 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    je short 09fa7h                           ; 74 05
+    je short 09f64h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09fa9h                          ; eb 02
+    jmp short 09f66h                          ; eb 02
     xor ax, ax                                ; 31 c0
     cwd                                       ; 99
@@ -15375,5 +15332,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9fb1 LB 0x25
+pci_write_config_word_:                      ; 0xf9f6e LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15395,5 +15352,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9fd6 LB 0x1d
+vds_is_present_:                             ; 0xf9f93 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15403,5 +15360,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09feeh                           ; 74 06
+    je short 09fabh                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15412,5 +15369,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9ff3 LB 0x1e
+vds_real_to_lin_:                            ; 0xf9fb0 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15423,5 +15380,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a001h                               ; e2 fa
+    loop 09fbeh                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15431,5 +15388,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xfa011 LB 0x77
+vds_build_sg_list_:                          ; 0xf9fce LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15445,21 +15402,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09ff3h                               ; e8 c3 ff
+    call 09fb0h                               ; 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 09fd6h                               ; e8 93 ff
+    call 09f93h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a058h                           ; 74 11
+    je short 0a015h                           ; 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 0a055h                           ; 72 02
+    jc short 0a012h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a07fh                          ; eb 27
+    jmp short 0a03ch                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15478,5 +15435,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa088 LB 0x38
+vds_free_sg_list_:                           ; 0xfa045 LB 0x3b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15484,7 +15441,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09fd6h                               ; e8 44 ff
+    call 09f93h                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 0a0a7h                           ; 74 11
+    je short 0a064h                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15492,5 +15449,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a0a6h                           ; 72 02
+    jc short 0a063h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15503,6 +15460,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0xa db 0
-__U4M:                                       ; 0xfa0c0 LB 0x20
+    times 0xd db 0
+__U4M:                                       ; 0xfa080 LB 0x20
     pushfw                                    ; 9c
     push si                                   ; 56
@@ -15531,5 +15488,5 @@
     retn                                      ; c3
     times 0x4 db 0
-__U4D:                                       ; 0xfa0e0 LB 0x30
+__U4D:                                       ; 0xfa0a0 LB 0x30
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -15546,5 +15503,5 @@
     push dx                                   ; 52
     push ax                                   ; 50
-    call 0a1c5h                               ; e8 d0 00
+    call 0a185h                               ; e8 d0 00
     mov cx, word [bp-002h]                    ; 8b 4e fe
     mov bx, word [bp-004h]                    ; 8b 5e fc
@@ -15557,7 +15514,7 @@
     retn                                      ; c3
     times 0xe db 0
-__U8RS:                                      ; 0xfa110 LB 0x10
+__U8RS:                                      ; 0xfa0d0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a11fh                           ; 74 0b
+    je short 0a0dfh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15565,9 +15522,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a114h                          ; 75 f5
+    jne short 0a0d4h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa120 LB 0x10
+__U8LS:                                      ; 0xfa0e0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a12fh                           ; 74 0b
+    je short 0a0efh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15575,7 +15532,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a124h                          ; 75 f5
+    jne short 0a0e4h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa130 LB 0x10
+_fmemset_:                                   ; 0xfa0f0 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15588,5 +15545,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa140 LB 0x3a
+_fmemcpy_:                                   ; 0xfa100 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15613,17 +15570,19 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    nop                                       ; 90
-    mov ax, word [0a192h]                     ; a1 92 a1
-    xchg si, ax                               ; 96
-    mov ax, word [0a196h]                     ; a1 96 a1
-    xchg si, ax                               ; 96
-    mov ax, word [0a198h]                     ; a1 98 a1
-    cbw                                       ; 98
-    mov ax, word [0a19ah]                     ; a1 9a a1
-    sahf                                      ; 9e
-    mov ax, word [0a19eh]                     ; a1 9e a1
-    mov AL, byte [0a5a1h]                     ; a0 a1 a5
-    mov ax, word [0a1a7h]                     ; a1 a7 a1
-apm_worker:                                  ; 0xfa17a LB 0x3a
+    push ax                                   ; 50
+    mov ax, word [0a152h]                     ; a1 52 a1
+    push si                                   ; 56
+    mov ax, word [0a156h]                     ; a1 56 a1
+    push si                                   ; 56
+    mov ax, word [0a158h]                     ; a1 58 a1
+    pop ax                                    ; 58
+    mov ax, word [0a15ah]                     ; a1 5a a1
+    pop si                                    ; 5e
+    mov ax, word [0a15eh]                     ; a1 5e a1
+    pushaw                                    ; 60
+    mov ax, word [0a165h]                     ; a1 65 a1
+    db  067h
+    db  0a1h
+apm_worker:                                  ; 0xfa13a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15637,21 +15596,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a1b0h                          ; 73 25
-    jmp word [cs:bp-05ea0h]                   ; 2e ff a6 60 a1
-    jmp short 0a1aeh                          ; eb 1c
+    jnc short 0a170h                          ; 73 25
+    jmp word [cs:bp-05ee0h]                   ; 2e ff a6 20 a1
+    jmp short 0a16eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a1aeh                          ; eb 18
-    jmp short 0a1aeh                          ; eb 16
-    jmp short 0a1b0h                          ; eb 16
+    jmp short 0a16eh                          ; eb 18
+    jmp short 0a16eh                          ; eb 16
+    jmp short 0a170h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a1b2h                          ; eb 14
-    jmp short 0a1b0h                          ; eb 10
+    jmp short 0a172h                          ; eb 14
+    jmp short 0a170h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a1aeh                          ; eb 09
-    jmp short 0a1aeh                          ; eb 07
+    jmp short 0a16eh                          ; eb 09
+    jmp short 0a16eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a1aeh                          ; eb 00
+    jmp short 0a16eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15659,5 +15618,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa1b4 LB 0x11
+apm_pm16_entry:                              ; 0xfa174 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15667,9 +15626,9 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a17ah                               ; e8 b8 ff
+    call 0a13ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
-_DoUInt32Div:                                ; 0xfa1c5 LB 0x26b
+_DoUInt32Div:                                ; 0xfa185 LB 0x26b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15689,10 +15648,10 @@
     mov [bp-006h], ds                         ; 8c 5e fa
     cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
-    jne short 0a215h                          ; 75 22
+    jne short 0a1d5h                          ; 75 22
     mov ax, word [bx]                         ; 8b 07
     test ax, ax                               ; 85 c0
-    je short 0a212h                           ; 74 19
+    je short 0a1d2h                           ; 74 19
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0a215h                          ; 75 17
+    jne short 0a1d5h                          ; 75 17
     xor ax, ax                                ; 31 c0
     mov word [bp+00ah], ax                    ; 89 46 0a
@@ -15702,35 +15661,35 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [bp+006h], ax                    ; 89 46 06
-    jmp near 0a41dh                           ; e9 08 02
+    jmp near 0a3ddh                           ; e9 08 02
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    je short 0a23bh                           ; 74 18
+    je short 0a1fbh                           ; 74 18
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jbe short 0a236h                          ; 76 05
+    jbe short 0a1f6h                          ; 76 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a25ch                          ; eb 26
+    jmp short 0a21ch                          ; eb 26
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a25ch                          ; eb 21
+    jmp short 0a21ch                          ; eb 21
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    je short 0a25ah                           ; 74 13
+    je short 0a21ah                           ; 74 13
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    jbe short 0a255h                          ; 76 02
-    jmp short 0a231h                          ; eb dc
+    jbe short 0a215h                          ; 76 02
+    jmp short 0a1f1h                          ; eb dc
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a25ch                          ; eb 02
+    jmp short 0a21ch                          ; eb 02
     xor ax, ax                                ; 31 c0
     test ax, ax                               ; 85 c0
-    jnl short 0a27eh                          ; 7d 1e
+    jnl short 0a23eh                          ; 7d 1e
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx]                         ; 8b 07
@@ -15742,6 +15701,6 @@
     mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     mov word [bx], strict word 00000h         ; c7 07 00 00
-    jmp short 0a212h                          ; eb 94
-    jne short 0a295h                          ; 75 15
+    jmp short 0a1d2h                          ; eb 94
+    jne short 0a255h                          ; 75 15
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov word [di+002h], ax                    ; 89 45 02
@@ -15750,20 +15709,20 @@
     mov word [bx], strict word 00001h         ; c7 07 01 00
     mov word [bx+002h], ax                    ; 89 47 02
-    jmp near 0a41dh                           ; e9 88 01
+    jmp near 0a3ddh                           ; e9 88 01
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     test ax, ax                               ; 85 c0
-    je short 0a2b0h                           ; 74 11
+    je short 0a270h                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a430h                               ; e8 88 01
+    call 0a3f0h                               ; e8 88 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a2bdh                          ; eb 0d
+    jmp short 0a27dh                          ; eb 0d
     push word [bx]                            ; ff 37
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a430h                               ; e8 76 01
+    call 0a3f0h                               ; e8 76 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -15771,16 +15730,16 @@
     mov ax, word [si+002h]                    ; 8b 44 02
     test ax, ax                               ; 85 c0
-    je short 0a2dbh                           ; 74 11
+    je short 0a29bh                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a430h                               ; e8 5d 01
+    call 0a3f0h                               ; e8 5d 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a2e8h                          ; eb 0d
+    jmp short 0a2a8h                          ; eb 0d
     push word [si]                            ; ff 34
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a430h                               ; e8 4b 01
+    call 0a3f0h                               ; e8 4b 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -15793,5 +15752,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test dx, dx                               ; 85 d2
-    je short 0a358h                           ; 74 56
+    je short 0a318h                           ; 74 56
     mov cx, dx                                ; 89 d1
     xor ch, dh                                ; 30 f5
@@ -15799,8 +15758,8 @@
     mov ax, word [si]                         ; 8b 04
     mov dx, word [si+002h]                    ; 8b 54 02
-    jcxz 0a316h                               ; e3 06
+    jcxz 0a2d6h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a310h                               ; e2 fa
+    loop 0a2d0h                               ; e2 fa
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -15808,25 +15767,25 @@
     lds bx, [bp-00ch]                         ; c5 5e f4
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jnbe short 0a336h                         ; 77 0f
+    jnbe short 0a2f6h                         ; 77 0f
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jne short 0a33ah                          ; 75 0b
+    jne short 0a2fah                          ; 75 0b
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, word [bx]                         ; 3b 07
-    jbe short 0a33ah                          ; 76 04
+    jbe short 0a2fah                          ; 76 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a33ch                          ; eb 02
+    jmp short 0a2fch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a363h                           ; 74 23
+    je short 0a323h                           ; 74 23
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp short 0a363h                          ; eb 18
+    jmp short 0a323h                          ; eb 18
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a34eh                               ; e2 f8
-    jmp short 0a346h                          ; eb ee
+    loop 0a30eh                               ; e2 f8
+    jmp short 0a306h                          ; eb ee
     mov ax, word [si]                         ; 8b 04
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -15845,27 +15804,27 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jnbe short 0a38fh                         ; 77 06
-    jne short 0a393h                          ; 75 08
+    jnbe short 0a34fh                         ; 77 06
+    jne short 0a353h                          ; 75 08
     cmp dx, word [si]                         ; 3b 14
-    jc short 0a393h                           ; 72 04
+    jc short 0a353h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a395h                          ; eb 02
+    jmp short 0a355h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3fah                           ; 74 61
+    je short 0a3bah                           ; 74 61
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov ax, word [di+002h]                    ; 8b 45 02
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 0a3b0h                         ; 77 0c
+    jnbe short 0a370h                         ; 77 0c
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jne short 0a3b4h                          ; 75 0b
+    jne short 0a374h                          ; 75 0b
     mov ax, word [di]                         ; 8b 05
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 0a3b4h                           ; 72 04
+    jc short 0a374h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3b6h                          ; eb 02
+    jmp short 0a376h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3e0h                           ; 74 26
+    je short 0a3a0h                           ; 74 26
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mov ds, [bp-008h]                         ; 8e 5e f8
@@ -15876,8 +15835,8 @@
     xor dx, dx                                ; 31 d2
     mov cx, word [bp-012h]                    ; 8b 4e ee
-    jcxz 0a3d8h                               ; e3 06
+    jcxz 0a398h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a3d2h                               ; e2 fa
+    loop 0a392h                               ; e2 fa
     lds bx, [bp-010h]                         ; c5 5e f0
     or word [bx], ax                          ; 09 07
@@ -15888,24 +15847,24 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jc short 0a3f6h                           ; 72 06
-    jne short 0a3fch                          ; 75 0a
+    jc short 0a3b6h                           ; 72 06
+    jne short 0a3bch                          ; 75 0a
     cmp dx, word [si]                         ; 3b 14
-    jnc short 0a3fch                          ; 73 06
+    jnc short 0a3bch                          ; 73 06
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3feh                          ; eb 04
-    jmp short 0a41dh                          ; eb 21
+    jmp short 0a3beh                          ; eb 04
+    jmp short 0a3ddh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a411h                           ; 74 0f
-    jmp short 0a41dh                          ; eb 19
+    je short 0a3d1h                           ; 74 0f
+    jmp short 0a3ddh                          ; eb 19
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a407h                               ; e2 f8
-    jmp short 0a417h                          ; eb 06
+    loop 0a3c7h                               ; e2 f8
+    jmp short 0a3d7h                          ; eb 06
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp near 0a399h                           ; e9 7c ff
+    jmp near 0a359h                           ; e9 7c ff
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, word [bp-01ah]                    ; 8b 56 e6
@@ -15916,5 +15875,5 @@
     retn                                      ; c3
     times 0x6 db 0
-_ASMBitLastSetU16:                           ; 0xfa430 LB 0x18
+_ASMBitLastSetU16:                           ; 0xfa3f0 LB 0x18
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15922,10 +15881,10 @@
     mov cx, word [bp+004h]                    ; 8b 4e 04
     test cx, cx                               ; 85 c9
-    je short 0a444h                           ; 74 0a
+    je short 0a404h                           ; 74 0a
     mov ax, strict word 00010h                ; b8 10 00
     sal cx, 1                                 ; d1 e1
-    jc short 0a446h                           ; 72 05
+    jc short 0a406h                           ; 72 05
     dec ax                                    ; 48
-    jmp short 0a43dh                          ; eb f9
+    jmp short 0a3fdh                          ; eb f9
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -15933,6 +15892,6 @@
     retn                                      ; c3
 
-  ; Padding 0x35b8 bytes at 0xfa448
-  times 13752 db 0
+  ; Padding 0x35f8 bytes at 0xfa408
+  times 13816 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15981,5 +15940,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a1b6h                            ; bd b6 a1
+    mov bp, 0a176h                            ; bd 76 a1
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16707,6 +16666,6 @@
     call 01c9fh                               ; e8 63 39
     call 02118h                               ; e8 d9 3d
-    call 0998bh                               ; e8 49 b6
-    call 087fbh                               ; e8 b6 a4
+    call 09948h                               ; e8 06 b6
+    call 087b8h                               ; e8 73 a4
     call 0ed2fh                               ; e8 e7 09
     call 0e2d2h                               ; e8 87 ff
@@ -16856,5 +16815,5 @@
     out strict byte 0a1h, AL                  ; e6 a1
     retn                                      ; c3
-ebda_post:                                   ; 0xfe778 LB 0x45
+ebda_post:                                   ; 0xfe778 LB 0x51
     mov ax, 0e746h                            ; b8 46 e7
     mov word [00034h], ax                     ; a3 34 00
@@ -16870,4 +16829,8 @@
     mov word [001cah], ax                     ; a3 ca 01
     mov ax, 0e746h                            ; b8 46 e7
+    mov word [001cch], ax                     ; a3 cc 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001ceh], ax                     ; a3 ce 01
+    mov ax, 0e746h                            ; b8 46 e7
     mov word [001dch], ax                     ; a3 dc 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16881,6 +16844,6 @@
     mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
     retn                                      ; c3
-biosorg_check_before_or_at_0E82Ch:           ; 0xfe7bd LB 0x71
-    times 0x6f db 0
+biosorg_check_before_or_at_0E82Ch:           ; 0xfe7c9 LB 0x65
+    times 0x63 db 0
     db  'XM'
 biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x3d
@@ -17541,5 +17504,5 @@
     popfw                                     ; 9d
     jmp short 0f8a5h                          ; eb 11
-    call 09afeh                               ; e8 67 a2
+    call 09abbh                               ; e8 24 a2
     jmp short 0f88eh                          ; eb f5
 int15_handler_mouse:                         ; 0xff899 LB 0x5
@@ -17807,3 +17770,3 @@
 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, 00fh
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03dh
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 68289)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 68290)
@@ -1,1 +1,1 @@
-0aa9c82df689a029ef3c0dd6eb7cfba6 *VBoxPcBios286.rom
+854cf294cb1f7c54bf62169e4fb5a30b *VBoxPcBios286.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 68289)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 68290)
@@ -951,13 +951,13 @@
     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, 05dh, 02ch, 01ah, 082h, 0c8h, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 01ah, 082h, 089h, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
     db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch
 _dskacc:                                     ; 0xf0082 LB 0x2e
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h
-    db  064h, 080h, 03fh, 081h, 09eh, 090h, 044h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  064h, 080h, 03fh, 081h, 05fh, 090h, 005h, 091h, 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=0xd52 class=DATA group=DGROUP
+section CONST progbits vstart=0xb0 align=1 ; size=0xcf0 class=DATA group=DGROUP
     db   'CPUID EDX: 0x%lx', 00ah, 000h
     db   'NMI Handler called', 00ah, 000h
@@ -1065,8 +1065,5 @@
     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
-    db   'scsi_pci_init', 000h
-    db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
-    db   '%s: Adapter %x:%x found at %x, enabling BM', 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
@@ -1081,18 +1078,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xe02 align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0e02 LB 0x12
-    db  'VirtualBox 5.1.51', 000h
-_bios_prefix_string:                         ; 0xf0e14 LB 0x8
+section CONST2 progbits vstart=0xda0 align=1 ; size=0x400 class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0da0 LB 0x18
+    db  'VirtualBox 5.2.0_BETA1', 000h, 000h
+_bios_prefix_string:                         ; 0xf0db8 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0e1c LB 0x6
+_isotag:                                     ; 0xf0dc0 LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0e22 LB 0x18
+_eltorito:                                   ; 0xf0dc6 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0e3a LB 0x28
+_drivetypes:                                 ; 0xf0dde 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:                          ; 0xf0e62 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0e06 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
@@ -1151,11 +1148,11 @@
     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:                 ; 0xf11dc LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf1180 LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x404 bytes at 0xf11fc
-  times 1028 db 0
+  ; Padding 0x460 bytes at 0xf11a0
+  times 1120 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bd5 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b95 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1504,9 +1501,9 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 ac 01
-    push 00e02h                               ; 68 02 0e
+    push 00da0h                               ; 68 a0 0d
     push 000ebh                               ; 68 eb 00
     push strict byte 00004h                   ; 6a 04
@@ -1679,5 +1676,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a0e0h                               ; e8 0e 87
+    call 0a0a0h                               ; e8 ce 86
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1905,5 +1902,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a120h                               ; e8 1c 85
+    call 0a0e0h                               ; e8 dc 84
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2347,5 +2344,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 c0 80
+    call 0a0e0h                               ; e8 80 80
     xor dh, dh                                ; 30 f6
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -2357,5 +2354,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 a0 80
+    call 0a0e0h                               ; e8 60 80
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01eh]                    ; 8b 46 e2
@@ -2388,5 +2385,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 4f 80
+    call 0a0e0h                               ; e8 0f 80
     mov word [bp-014h], dx                    ; 89 56 ec
     mov bx, word [bp-018h]                    ; 8b 5e e8
@@ -2397,5 +2394,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 31 80
+    call 0a0e0h                               ; e8 f1 7f
     and dx, strict byte 0000fh                ; 83 e2 0f
     or dl, 040h                               ; 80 ca 40
@@ -2791,5 +2788,5 @@
     lea ax, [bp-03ah]                         ; 8d 46 c6
     call 05ad0h                               ; e8 ff 35
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2953,5 +2950,5 @@
     mov dx, word [es:si+036h]                 ; 26 8b 54 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a120h                               ; e8 69 7a
+    call 0a0e0h                               ; e8 29 7a
     mov word [bp-030h], dx                    ; 89 56 d0
     mov word [bp-02eh], cx                    ; 89 4e d2
@@ -3224,5 +3221,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 93 77
+    call 0a0e0h                               ; e8 53 77
     xor dh, dh                                ; 30 f6
     mov word [bp-01ch], dx                    ; 89 56 e4
@@ -3232,5 +3229,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 7c 77
+    call 0a0e0h                               ; e8 3c 77
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ah]                    ; 8b 46 e6
@@ -3266,5 +3263,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 28 77
+    call 0a0e0h                               ; e8 e8 76
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -3273,5 +3270,5 @@
     mov word [bp-026h], dx                    ; 89 56 da
     mov si, strict word 00010h                ; be 10 00
-    call 0a120h                               ; e8 13 77
+    call 0a0e0h                               ; e8 d3 76
     mov word [bp-01eh], dx                    ; 89 56 e2
     mov ax, dx                                ; 89 d0
@@ -3542,5 +3539,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 02cafh                          ; 75 1f
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -4413,5 +4410,5 @@
     cmp bh, 048h                              ; 80 ff 48
     jbe short 03443h                          ; 76 33
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5255,5 +5252,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     jmp near 03612h                           ; e9 ae f9
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5352,5 +5349,5 @@
     cmp ax, strict word 0004ah                ; 3d 4a 00
     jne near 03e4eh                           ; 0f 85 1e 01
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5450,5 +5447,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5531,5 +5528,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a140h                               ; e8 28 62
+    call 0a100h                               ; e8 e8 61
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5585,5 +5582,5 @@
     jnc short 03fb7h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00e1ch]                  ; 3a 85 1c 0e
+    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
     je short 03fa1h                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
@@ -5595,5 +5592,5 @@
     jnc short 03fd1h                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00e22h]                  ; 3a 85 22 0e
+    cmp al, byte [di+00dc6h]                  ; 3a 85 c6 0d
     je short 03fbbh                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
@@ -5874,5 +5871,5 @@
     cmp dx, ax                                ; 39 c2
     je short 04355h                           ; 74 29
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5991,5 +5988,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 26 5c
+    call 0a060h                               ; e8 e6 5b
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5997,5 +5994,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 19 5c
+    call 0a060h                               ; e8 d9 5b
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -6032,5 +6029,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a140h                               ; e8 62 5c
+    call 0a100h                               ; e8 22 5c
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6096,5 +6093,5 @@
     test al, al                               ; 84 c0
     je near 043a1h                            ; 0f 84 13 fe
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6177,5 +6174,5 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     jmp near 043a5h                           ; e9 37 fd
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6339,5 +6336,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ch]                         ; 8d 46 d4
-    call 0a140h                               ; e8 c7 58
+    call 0a100h                               ; e8 87 58
     mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
     mov ax, word [bp-018h]                    ; 8b 46 e8
@@ -6388,5 +6385,5 @@
     test dl, dl                               ; 84 d2
     je near 049cbh                            ; 0f 84 cb 00
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6672,5 +6669,5 @@
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
     jmp near 049deh                           ; e9 8f fd
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6702,10 +6699,10 @@
     je short 04cb1h                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 8c cd
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00e3ah                            ; 81 c2 3a 0e
+    add dx, 00ddeh                            ; 81 c2 de 0d
     push dx                                   ; 52
     push 004a6h                               ; 68 a6 04
@@ -6727,9 +6724,9 @@
     test al, al                               ; 84 c0
     je short 04ce4h                           ; 74 1b
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 56 cd
-    push 00e4eh                               ; 68 4e 0e
+    push 00df2h                               ; 68 f2 0d
     push 004bah                               ; 68 ba 04
     push strict byte 00004h                   ; 6a 04
@@ -6739,25 +6736,25 @@
     test dl, dl                               ; 84 d2
     je short 04cf8h                           ; 74 10
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 37 cd
-    push 00e58h                               ; 68 58 0e
+    push 00dfch                               ; 68 fc 0d
     jmp short 04cd7h                          ; eb df
     test bl, 080h                             ; f6 c3 80
     je short 04d0eh                           ; 74 11
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 22 cd
     push si                                   ; 56
-    push 00e44h                               ; 68 44 0e
+    push 00de8h                               ; 68 e8 0d
     jmp short 04d1dh                          ; eb 0f
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01a2ah                               ; e8 11 cd
     push si                                   ; 56
-    push 00e3ah                               ; 68 3a 0e
+    push 00ddeh                               ; 68 de 0d
     push 004cfh                               ; 68 cf 04
     push strict byte 00004h                   ; 6a 04
@@ -6785,5 +6782,5 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6860,5 +6857,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     mov byte [bp-00ch], al                    ; 88 46 f4
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7399,5 +7396,5 @@
     test al, al                               ; 84 c0
     jne short 05307h                          ; 75 19
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7716,5 +7713,5 @@
     cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
     jbe short 0567bh                          ; 76 1e
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7732,6 +7729,6 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00e68h]                  ; 8a 97 68 0e
-    mov ax, word [bx+00e68h]                  ; 8b 87 68 0e
+    mov dl, byte [bx+00e0ch]                  ; 8a 97 0c 0e
+    mov ax, word [bx+00e0ch]                  ; 8b 87 0c 0e
     jmp near 05722h                           ; e9 8e 00
     test AL, strict byte 004h                 ; a8 04
@@ -7739,6 +7736,6 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00e66h]                  ; 8a 97 66 0e
-    mov ax, word [bx+00e66h]                  ; 8b 87 66 0e
+    mov dl, byte [bx+00e0ah]                  ; 8a 97 0a 0e
+    mov ax, word [bx+00e0ah]                  ; 8b 87 0a 0e
     jmp near 05722h                           ; e9 78 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
@@ -7759,13 +7756,13 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00e6ah]                ; 0f b6 87 6a 0e
+    movzx ax, byte [bx+00e0eh]                ; 0f b6 87 0e 0e
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     test dx, ax                               ; 85 c2
     je short 056ech                           ; 74 0a
-    mov dl, byte [bx+00e62h]                  ; 8a 97 62 0e
-    mov ax, word [bx+00e62h]                  ; 8b 87 62 0e
+    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
+    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
     jmp short 056f4h                          ; eb 08
-    mov dl, byte [bx+00e64h]                  ; 8a 97 64 0e
-    mov ax, word [bx+00e64h]                  ; 8b 87 64 0e
+    mov dl, byte [bx+00e08h]                  ; 8a 97 08 0e
+    mov ax, word [bx+00e08h]                  ; 8b 87 08 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7773,13 +7770,13 @@
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00e6ah]                ; 0f b6 87 6a 0e
+    movzx ax, byte [bx+00e0eh]                ; 0f b6 87 0e 0e
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     test dx, ax                               ; 85 c2
     je short 0571ah                           ; 74 0a
-    mov dl, byte [bx+00e64h]                  ; 8a 97 64 0e
-    mov ax, word [bx+00e64h]                  ; 8b 87 64 0e
+    mov dl, byte [bx+00e08h]                  ; 8a 97 08 0e
+    mov ax, word [bx+00e08h]                  ; 8b 87 08 0e
     jmp short 05722h                          ; eb 08
-    mov dl, byte [bx+00e62h]                  ; 8a 97 62 0e
-    mov ax, word [bx+00e62h]                  ; 8b 87 62 0e
+    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
+    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7788,5 +7785,5 @@
     test dl, dl                               ; 84 d2
     jne short 05748h                          ; 75 16
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8142,5 +8139,5 @@
     or ah, 080h                               ; 80 cc 80
     jmp near 0595bh                           ; e9 d4 fe
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8153,5 +8150,5 @@
     call 01a6bh                               ; e8 ca bf
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8188,5 +8185,5 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 25 46
+    call 0a0e0h                               ; e8 e5 45
     test ax, ax                               ; 85 c0
     jne short 05b0bh                          ; 75 0c
@@ -8226,10 +8223,10 @@
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 4c 45
+    call 0a060h                               ; e8 0c 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 0a0e0h                               ; e8 80 45
+    call 0a0a0h                               ; e8 40 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
@@ -8388,5 +8385,5 @@
     test ax, ax                               ; 85 c0
     jne short 05cf4h                          ; 75 23
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8417,5 +8414,5 @@
     cmp ax, dx                                ; 39 d0
     jbe short 05d4fh                          ; 76 2e
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8455,5 +8452,5 @@
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 17 43
+    call 0a060h                               ; e8 d7 42
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8461,5 +8458,5 @@
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 08 43
+    call 0a060h                               ; e8 c8 42
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8517,5 +8514,5 @@
     test dl, dl                               ; 84 d2
     je near 05c52h                            ; 0f 84 0a fe
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8535,5 +8532,5 @@
     or ah, 00ch                               ; 80 cc 0c
     jmp near 05fc8h                           ; e9 51 01
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8621,8 +8618,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 40 41
+    call 0a060h                               ; e8 00 41
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 38 41
+    call 0a060h                               ; e8 f8 40
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-00eh], dx                    ; 89 56 f2
@@ -8634,5 +8631,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     jmp near 05c56h                           ; e9 d4 fc
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8647,5 +8644,5 @@
     add sp, strict byte 00008h                ; 83 c4 08
     jmp near 05c52h                           ; e9 ad fc
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8761,5 +8758,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a130h                               ; e8 44 40
+    call 0a0f0h                               ; e8 04 40
     mov word [bp-00eh], bx                    ; 89 5e f2
     mov bx, word [es:di+008h]                 ; 26 8b 5d 08
@@ -8786,5 +8783,5 @@
     cmp dx, word [es:di+036h]                 ; 26 3b 55 36
     jc short 06156h                           ; 72 23
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8842,5 +8839,5 @@
     test dl, dl                               ; 84 d2
     je near 0648dh                            ; 0f 84 a8 02
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8912,5 +8909,5 @@
     mov bx, word [bp-00eh]                    ; 8b 5e f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 5a 3e
+    call 0a0e0h                               ; e8 1a 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
@@ -9088,5 +9085,5 @@
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     jmp short 064a0h                          ; eb c4
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9269,5 +9266,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a0e0h                               ; e8 81 3a
+    call 0a0a0h                               ; e8 41 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9427,5 +9424,5 @@
     mov word [bp+00ch], ax                    ; 89 46 0c
     jmp near 06827h                           ; e9 2b 00
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9614,5 +9611,5 @@
     retf                                      ; cb
     jmp near 06827h                           ; e9 50 fe
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9654,5 +9651,5 @@
     or byte [bp+018h], 001h                   ; 80 4e 18 01
     jmp near 06827h                           ; e9 da fd
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9970,5 +9967,5 @@
     mov word [bp+014h], dx                    ; 89 56 14
     jmp short 06e0fh                          ; eb 2a
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10590,5 +10587,5 @@
     je short 07443h                           ; 74 0e
     push 00900h                               ; 68 00 09
-    push 011dch                               ; 68 dc 11
+    push 01180h                               ; 68 80 11
     push strict byte 00007h                   ; 6a 07
     call 01a6bh                               ; e8 2b a6
@@ -10670,5 +10667,5 @@
     je short 074d3h                           ; 74 0e
     push 0090ah                               ; 68 0a 09
-    push 011dch                               ; 68 dc 11
+    push 01180h                               ; 68 80 11
     push strict byte 00007h                   ; 6a 07
     call 01a6bh                               ; e8 9b a5
@@ -12124,5 +12121,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 08261h                          ; 75 1f
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12279,5 +12276,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a140h                               ; e8 89 1d
+    call 0a100h                               ; e8 49 1d
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12338,5 +12335,5 @@
     cmp bx, 00200h                            ; 81 fb 00 02
     je short 0847ch                           ; 74 20
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12404,5 +12401,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a120h                               ; e8 26 1c
+    call 0a0e0h                               ; e8 e6 1b
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -12424,5 +12421,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 00006h                ; be 06 00
-    call 0a120h                               ; e8 e6 1b
+    call 0a0e0h                               ; e8 a6 1b
     mov si, word [bp-020h]                    ; 8b 76 e0
     add si, dx                                ; 01 d6
@@ -12442,5 +12439,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 b6 1b
+    call 0a0e0h                               ; e8 76 1b
     mov word [bp-022h], bx                    ; 89 5e de
     mov word [bp-02ch], cx                    ; 89 4e d4
@@ -12451,5 +12448,5 @@
     mov dx, word [bp-02ah]                    ; 8b 56 d6
     mov si, strict word 00010h                ; be 10 00
-    call 0a120h                               ; e8 9b 1b
+    call 0a0e0h                               ; e8 5b 1b
     mov si, word [bp-01ah]                    ; 8b 76 e6
     add si, dx                                ; 01 d6
@@ -12475,5 +12472,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a120h                               ; e8 53 1b
+    call 0a0e0h                               ; e8 13 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12516,5 +12513,5 @@
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12566,5 +12563,5 @@
     inc byte [bp-00ch]                        ; fe 46 f4
     jmp near 08770h                           ; e9 8b 00
-    mov bx, 00e14h                            ; bb 14 0e
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12663,5 +12660,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_pci_init_:                              ; 0xf8802 LB 0x6c
+scsi_pci_init_:                              ; 0xf8802 LB 0x2d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12669,35 +12666,8 @@
     push cx                                   ; 51
     push si                                   ; 56
-    push di                                   ; 57
-    mov si, ax                                ; 89 c6
-    mov di, dx                                ; 89 d7
-    call 09f06h                               ; e8 f6 16
+    call 09ec7h                               ; e8 bc 16
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 08834h                          ; 75 1d
-    mov bx, 00e14h                            ; bb 14 0e
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 08 92
-    push di                                   ; 57
-    push si                                   ; 56
-    push 00c73h                               ; 68 73 0c
-    push 00c81h                               ; 68 81 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 3c 92
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp short 08865h                          ; eb 31
-    mov bx, 00e14h                            ; bb 14 0e
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 eb 91
-    push dx                                   ; 52
-    push di                                   ; 57
-    push si                                   ; 56
-    push 00c73h                               ; 68 73 0c
-    push 00caah                               ; 68 aa 0c
-    push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 1e 92
-    add sp, strict byte 0000ch                ; 83 c4 0c
+    je short 08827h                           ; 74 15
     movzx si, dl                              ; 0f b6 f2
     mov ax, dx                                ; 89 d0
@@ -12707,7 +12677,6 @@
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, si                                ; 89 f2
-    call 09f98h                               ; e8 33 17
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
+    call 09f59h                               ; e8 32 17
+    lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
     pop cx                                    ; 59
@@ -12715,10 +12684,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf886e LB 0x81
+_scsi_init:                                  ; 0xf882f LB 0x81
     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 01765h                               ; e8 eb 8e
+    call 01765h                               ; e8 2a 8f
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12731,13 +12700,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088a7h                          ; 75 15
+    jne short 08868h                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 08380h                               ; e8 e2 fa
+    call 08380h                               ; e8 21 fb
     mov dx, 01040h                            ; ba 40 10
     mov ax, 0104bh                            ; b8 4b 10
-    call 08802h                               ; e8 5b ff
+    call 08802h                               ; e8 9a ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12747,13 +12716,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088c9h                          ; 75 15
+    jne short 0888ah                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 08380h                               ; e8 c0 fa
+    call 08380h                               ; e8 ff fa
     mov dx, strict word 00030h                ; ba 30 00
     mov ax, 01000h                            ; b8 00 10
-    call 08802h                               ; e8 39 ff
+    call 08802h                               ; e8 78 ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12763,17 +12732,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088ebh                          ; 75 15
+    jne short 088ach                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 08380h                               ; e8 9e fa
+    call 08380h                               ; e8 dd fa
     mov dx, strict word 00054h                ; ba 54 00
     mov ax, 01000h                            ; b8 00 10
-    call 08802h                               ; e8 17 ff
+    call 08802h                               ; e8 56 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf88ef LB 0x1b
+ahci_ctrl_extract_bits_:                     ; 0xf88b0 LB 0x1b
     push si                                   ; 56
     push bp                                   ; 55
@@ -12783,12 +12752,12 @@
     and dx, cx                                ; 21 ca
     movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
-    jcxz 08905h                               ; e3 06
+    jcxz 088c6h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 088ffh                               ; e2 fa
+    loop 088c0h                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf890a LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf88cb LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -12801,5 +12770,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08918h                               ; e2 fa
+    loop 088d9h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -12809,5 +12778,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf8928 LB 0x14b
+ahci_port_cmd_sync_:                         ; 0xf88e9 LB 0x14b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12824,5 +12793,5 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp ah, 0ffh                              ; 80 fc ff
-    je near 08a6bh                            ; 0f 84 20 01
+    je near 08a2ch                            ; 0f 84 20 01
     movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
     xor di, di                                ; 31 ff
@@ -12836,5 +12805,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 0890ah                               ; e8 96 ff
+    call 088cbh                               ; e8 96 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -12899,12 +12868,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 08a01h                          ; 75 04
+    jne short 089c2h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 08a05h                           ; 74 04
+    je short 089c6h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08a07h                          ; eb 02
+    jmp short 089c8h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 089d5h                           ; 74 ca
+    je short 08996h                           ; 74 ca
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     sal di, 007h                              ; c1 e7 07
@@ -12960,5 +12929,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8a73 LB 0x262
+ahci_cmd_data_:                              ; 0xf8a34 LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12985,5 +12954,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a140h                               ; e8 8f 16
+    call 0a100h                               ; e8 8e 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13003,5 +12972,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a120h                               ; e8 2b 16
+    call 0a0e0h                               ; e8 2a 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13014,5 +12983,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a120h                               ; e8 05 16
+    call 0a0e0h                               ; e8 04 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13026,5 +12995,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a120h                               ; e8 d9 15
+    call 0a0e0h                               ; e8 d8 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13037,5 +13006,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a120h                               ; e8 b3 15
+    call 0a0e0h                               ; e8 b2 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13048,5 +13017,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a120h                               ; e8 8d 15
+    call 0a0e0h                               ; e8 8c 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13062,5 +13031,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 0a0a0h                               ; e8 d8 14
+    call 0a060h                               ; e8 d7 14
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13072,5 +13041,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09fefh                               ; e8 0b 14
+    call 09fb0h                               ; e8 0b 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
@@ -13093,5 +13062,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08c72h                           ; 74 39
+    je short 08c33h                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13109,13 +13078,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08c7fh                          ; 75 06
+    jne short 08c40h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08c96h                          ; eb 17
+    jmp short 08c57h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08c92h                          ; 75 0f
+    jne short 08c53h                          ; 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 08c96h                          ; eb 04
+    jmp short 08c57h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13123,5 +13092,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 08928h                               ; e8 81 fc
+    call 088e9h                               ; e8 81 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13130,11 +13099,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a068h                               ; e8 ac 13
+    call 0a029h                               ; e8 ac 13
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08ccbh                           ; 74 05
+    je short 08c8ch                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08ccdh                          ; eb 02
+    jmp short 08c8eh                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13144,5 +13113,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8cd5 LB 0x17f
+ahci_port_deinit_current_:                   ; 0xf8c96 LB 0x17f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13159,5 +13128,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 08e4bh                            ; 0f 84 52 01
+    je near 08e0ch                            ; 0f 84 52 01
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13202,25 +13171,25 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08d59h                           ; 74 04
+    je short 08d1ah                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08d5bh                          ; eb 02
+    jmp short 08d1ch                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08d2dh                           ; 74 ce
+    je short 08ceeh                           ; 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 0a140h                               ; e8 d4 13
+    call 0a100h                               ; e8 d3 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 0a140h                               ; e8 c5 13
+    call 0a100h                               ; e8 c4 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 0a140h                               ; e8 b6 13
+    call 0a100h                               ; e8 b5 13
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13326,5 +13295,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8e54 LB 0x24a
+ahci_port_init_:                             ; 0xf8e15 LB 0x24a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13336,5 +13305,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08cd5h                               ; e8 6d fe
+    call 08c96h                               ; e8 6d fe
     movzx ax, bl                              ; 0f b6 c3
     sal ax, 007h                              ; c1 e0 07
@@ -13383,20 +13352,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08ed7h                           ; 74 04
+    je short 08e98h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08ed9h                          ; eb 02
+    jmp short 08e9ah                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08ea3h                           ; 74 c6
+    je short 08e64h                           ; 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 0a140h                               ; e8 56 12
+    call 0a100h                               ; e8 55 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 0a140h                               ; e8 47 12
+    call 0a100h                               ; e8 46 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13404,5 +13373,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a140h                               ; e8 36 12
+    call 0a100h                               ; e8 35 12
     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     sal bx, 007h                              ; c1 e3 07
@@ -13421,5 +13390,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0890ah                               ; e8 d3 f9
+    call 088cbh                               ; e8 d3 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13466,5 +13435,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0890ah                               ; e8 67 f9
+    call 088cbh                               ; e8 67 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13571,5 +13540,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf909e LB 0xa6
+@ahci_read_sectors:                          ; 0xf905f LB 0xa6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13581,10 +13550,10 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 090c3h                          ; 76 0f
+    jbe short 09084h                          ; 76 0f
     push di                                   ; 57
-    push 00cd6h                               ; 68 d6 0c
-    push 00ce8h                               ; 68 e8 0c
+    push 00c74h                               ; 68 74 0c
+    push 00c86h                               ; 68 86 0c
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 ab 89
+    call 01a6bh                               ; e8 ea 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13600,9 +13569,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08e54h                               ; e8 65 fd
+    call 08e15h                               ; 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 08a73h                               ; e8 79 f9
+    call 08a34h                               ; e8 79 f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13633,5 +13602,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf9144 LB 0x84
+@ahci_write_sectors:                         ; 0xf9105 LB 0x84
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13644,10 +13613,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 0916dh                          ; 76 0f
+    jbe short 0912eh                          ; 76 0f
     push dx                                   ; 52
-    push 00d07h                               ; 68 07 0d
-    push 00ce8h                               ; 68 e8 0c
+    push 00ca5h                               ; 68 a5 0c
+    push 00c86h                               ; 68 86 0c
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 01 89
+    call 01a6bh                               ; e8 40 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13663,9 +13632,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e54h                               ; e8 bd fc
+    call 08e15h                               ; e8 bd fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08a73h                               ; e8 d2 f8
+    call 08a34h                               ; e8 d2 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13682,5 +13651,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf91c8 LB 0x183
+ahci_cmd_packet_:                            ; 0xf9189 LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13694,22 +13663,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 82 85
+    call 01765h                               ; e8 c1 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 0920eh                          ; 75 1f
-    mov bx, 00e14h                            ; bb 14 0e
+    jne short 091cfh                          ; 75 1f
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 30 88
-    push 00d1ah                               ; 68 1a 0d
-    push 00d2ah                               ; 68 2a 0d
+    call 01a2ah                               ; e8 6f 88
+    push 00cb8h                               ; 68 b8 0c
+    push 00cc8h                               ; 68 c8 0c
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 66 88
+    call 01a6bh                               ; e8 a5 88
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 09342h                           ; e9 34 01
+    jmp near 09303h                           ; e9 34 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09208h                          ; 75 f4
+    jne short 091c9h                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13717,5 +13686,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0921dh                               ; e2 fa
+    loop 091deh                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13731,5 +13700,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a0e0h                               ; e8 8d 0e
+    call 0a0a0h                               ; e8 8c 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13748,5 +13717,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e54h                               ; e8 c5 fb
+    call 08e15h                               ; e8 c5 fb
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
@@ -13755,5 +13724,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a150h                               ; e8 ad 0e
+    call 0a110h                               ; e8 ac 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13762,5 +13731,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 092e1h                           ; 74 27
+    je short 092a2h                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13775,5 +13744,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08a73h                               ; e8 87 f7
+    call 08a34h                               ; e8 87 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
@@ -13802,7 +13771,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 09340h                          ; 75 05
+    jne short 09301h                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 09342h                          ; eb 02
+    jmp short 09303h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -13811,5 +13780,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf934b LB 0x4b1
+ahci_port_detect_device_:                    ; 0xf930c LB 0x4b1
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13823,8 +13792,8 @@
     movzx di, bl                              ; 0f b6 fb
     mov bx, di                                ; 89 fb
-    call 08e54h                               ; e8 ef fa
+    call 08e15h                               ; e8 ef fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 f7 83
+    call 01765h                               ; e8 36 84
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -13895,7 +13864,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 088efh                               ; e8 d7 f4
+    call 088b0h                               ; e8 d7 f4
     test ax, ax                               ; 85 c0
-    je near 097f4h                            ; 0f 84 d6 03
+    je near 097b5h                            ; 0f 84 d6 03
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13925,7 +13894,7 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 088efh                               ; e8 8b f4
+    call 088b0h                               ; e8 8b f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 0941eh                           ; 74 b5
+    je short 093dfh                           ; 74 b5
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -13933,7 +13902,7 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-022h]                    ; 8b 56 de
-    call 088efh                               ; e8 77 f4
+    call 088b0h                               ; e8 77 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne near 097f4h                           ; 0f 85 75 03
+    jne near 097b5h                           ; 0f 85 75 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
     add ax, 00130h                            ; 05 30 01
@@ -13962,5 +13931,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc near 097f4h                           ; 0f 83 2f 03
+    jnc near 097b5h                           ; 0f 83 2f 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
     add ax, 00118h                            ; 05 18 01
@@ -14014,7 +13983,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne near 0974ah                           ; 0f 85 0d 02
+    jne near 0970bh                           ; 0f 85 0d 02
     cmp di, 00101h                            ; 81 ff 01 01
-    jne near 0974ah                           ; 0f 85 05 02
+    jne near 0970bh                           ; 0f 85 05 02
     les bx, [bp-010h]                         ; c4 5e f0
     db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
@@ -14030,5 +13999,5 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov dx, es                                ; 8c c2
-    call 08a73h                               ; e8 fa f4
+    call 08a34h                               ; e8 fa f4
     mov byte [bp-00ch], cl                    ; 88 4e f4
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
@@ -14047,7 +14016,7 @@
     mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00
     cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 095d2h                          ; 75 1e
+    jne short 09593h                          ; 75 1e
     cmp dx, strict byte 0ffffh                ; 83 fa ff
-    jne short 095d2h                          ; 75 19
+    jne short 09593h                          ; 75 19
     mov dx, word [bp-0015ch]                  ; 8b 96 a4 fe
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -14086,19 +14055,19 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0964bh                           ; 72 0c
-    jbe short 09653h                          ; 76 12
+    jc short 0960ch                           ; 72 0c
+    jbe short 09614h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0965bh                           ; 74 16
+    je short 0961ch                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 09657h                           ; 74 0e
-    jmp short 096a4h                          ; eb 59
+    je short 09618h                           ; 74 0e
+    jmp short 09665h                          ; eb 59
     test al, al                               ; 84 c0
-    jne short 096a4h                          ; 75 55
+    jne short 09665h                          ; 75 55
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 0965dh                          ; eb 0a
+    jmp short 0961eh                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 0965dh                          ; eb 06
+    jmp short 0961eh                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 0965dh                          ; eb 02
+    jmp short 0961eh                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov al, dl                                ; 88 d0
@@ -14106,17 +14075,17 @@
     movzx bx, al                              ; 0f b6 d8
     mov ax, bx                                ; 89 d8
-    call 017a5h                               ; e8 3c 81
+    call 017a5h                               ; e8 7b 81
     test al, al                               ; 84 c0
-    je short 096a4h                           ; 74 37
+    je short 09665h                           ; 74 37
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 2f 81
+    call 017a5h                               ; e8 6e 81
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
     sal si, 008h                              ; c1 e6 08
     movzx ax, dl                              ; 0f b6 c2
-    call 017a5h                               ; e8 22 81
+    call 017a5h                               ; e8 61 81
     xor ah, ah                                ; 30 e4
     add ax, si                                ; 01 f0
@@ -14125,12 +14094,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 12 81
+    call 017a5h                               ; e8 51 81
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 017a5h                               ; e8 08 81
+    call 017a5h                               ; e8 47 81
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 096b4h                          ; eb 10
+    jmp short 09675h                          ; eb 10
     push dword [bp-016h]                      ; 66 ff 76 ea
     push di                                   ; 57
@@ -14138,9 +14107,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05ad0h                               ; e8 1c c4
-    mov bx, 00e14h                            ; bb 14 0e
+    call 05ad0h                               ; e8 5b c4
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 6b 83
+    call 01a2ah                               ; e8 aa 83
     push dword [bp-016h]                      ; 66 ff 76 ea
     push di                                   ; 57
@@ -14159,7 +14128,7 @@
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
-    push 00d4ah                               ; 68 4a 0d
+    push 00ce8h                               ; 68 e8 0c
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 7d 83
+    call 01a6bh                               ; e8 bc 83
     add sp, strict byte 0001ch                ; 83 c4 1c
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
@@ -14190,5 +14159,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 10 80
+    call 01749h                               ; e8 4f 80
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
@@ -14196,10 +14165,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 10 80
-    jmp near 097e6h                           ; e9 9c 00
+    call 01757h                               ; e8 4f 80
+    jmp near 097a7h                           ; e9 9c 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne near 097e6h                           ; 0f 85 94 00
+    jne near 097a7h                           ; 0f 85 94 00
     cmp di, 00101h                            ; 81 ff 01 01
-    jne near 097e6h                           ; 0f 85 8c 00
+    jne near 097a7h                           ; 0f 85 8c 00
     les bx, [bp-010h]                         ; c4 5e f0
     db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
@@ -14215,5 +14184,5 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov dx, es                                ; 8c c2
-    call 08a73h                               ; e8 e5 f2
+    call 08a34h                               ; e8 e5 f2
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
     db  00fh, 095h, 0c0h
@@ -14252,5 +14221,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf97fc LB 0x43
+ahci_mem_alloc_:                             ; 0xf97bd LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14262,7 +14231,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 01765h                               ; e8 59 7f
+    call 01765h                               ; e8 98 7f
     test ax, ax                               ; 85 c0
-    je short 09835h                           ; 74 25
+    je short 097f6h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14271,5 +14240,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09818h                               ; e2 fa
+    loop 097d9h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14277,8 +14246,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 09825h                               ; e2 fa
+    loop 097e6h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 01773h                               ; e8 40 7f
+    call 01773h                               ; e8 7f 7f
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14290,5 +14259,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf983f LB 0x166
+ahci_hba_init_:                              ; 0xf9800 LB 0x166
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14302,5 +14271,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 10 7f
+    call 01765h                               ; e8 4f 7f
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14319,8 +14288,8 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 097fch                               ; e8 83 ff
+    call 097bdh                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    je near 09984h                            ; 0f 84 02 01
+    je near 09945h                            ; 0f 84 02 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14372,5 +14341,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 098d8h                          ; 75 de
+    jne short 09899h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14390,29 +14359,29 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 088efh                               ; e8 d1 ef
+    call 088b0h                               ; 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 09949h                          ; eb 20
+    jmp short 0990ah                          ; eb 20
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 09940h                           ; 74 11
+    je short 09901h                           ; 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 0934bh                               ; e8 10 fa
+    call 0930ch                               ; e8 10 fa
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 09982h                           ; 74 42
+    je short 09943h                           ; 74 42
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 09982h                          ; 73 39
+    jnc short 09943h                          ; 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 0995ah                               ; e3 06
+    jcxz 0991bh                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09954h                               ; e2 fa
+    loop 09915h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14430,9 +14399,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 0997eh                          ; 75 04
+    jne short 0993fh                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 09929h                           ; 74 ab
+    je short 098eah                           ; 74 ab
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0992bh                          ; eb a9
+    jmp short 098ech                          ; eb a9
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14444,7 +14413,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 075h, 09ah, 053h, 09ah, 059h, 09ah, 05fh, 09ah, 065h
-    db  09ah, 06bh, 09ah, 071h, 09ah, 075h, 09ah
-_ahci_init:                                  ; 0xf99a5 LB 0x116
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 036h, 09ah, 014h, 09ah, 01ah, 09ah, 020h, 09ah, 026h
+    db  09ah, 02ch, 09ah, 032h, 09ah, 036h, 09ah
+_ahci_init:                                  ; 0xf9966 LB 0x116
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14454,8 +14423,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09edbh                               ; e8 25 05
+    call 09e9ch                               ; e8 25 05
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je near 09ab4h                            ; 0f 84 f5 00
+    je near 09a75h                            ; 0f 84 f5 00
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14465,8 +14434,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09f2bh                               ; e8 56 05
+    call 09eech                               ; e8 56 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 099feh                           ; 74 23
+    je short 099bfh                           ; 74 23
     movzx bx, cl                              ; 0f b6 d9
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
@@ -14474,7 +14443,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09f2bh                               ; e8 3e 05
+    call 09eech                               ; e8 3e 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 099feh                           ; 74 0d
+    je short 099bfh                           ; 74 0d
     mov al, cl                                ; 88 c8
     db  0feh, 0c0h
@@ -14483,7 +14452,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    jmp short 099d2h                          ; eb d4
+    jmp short 09993h                          ; eb d4
     test cl, cl                               ; 84 c9
-    je near 09ab4h                            ; 0f 84 b0 00
+    je near 09a75h                            ; 0f 84 b0 00
     add cl, 002h                              ; 80 c1 02
     movzx bx, cl                              ; 0f b6 d9
@@ -14492,7 +14461,7 @@
     mov dx, si                                ; 89 f2
     mov ax, di                                ; 89 f8
-    call 09f2bh                               ; e8 12 05
+    call 09eech                               ; e8 12 05
     cmp AL, strict byte 010h                  ; 3c 10
-    jne near 09ab4h                           ; 0f 85 95 00
+    jne near 09a75h                           ; 0f 85 95 00
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov al, cl                                ; 88 c8
@@ -14501,29 +14470,29 @@
     mov dx, si                                ; 89 f2
     mov ax, di                                ; 89 f8
-    call 09f4fh                               ; e8 1e 05
+    call 09f10h                               ; e8 1e 05
     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 09a75h                         ; 77 37
+    jnbe short 09a36h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 0998eh                            ; bf 8e 99
+    mov di, 0994fh                            ; bf 4f 99
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-0666bh]               ; 2e 8b 85 95 99
+    mov ax, word [cs:di-066aah]               ; 2e 8b 85 56 99
     jmp ax                                    ; ff e0
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 09a75h                          ; eb 1c
+    jmp short 09a36h                          ; eb 1c
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 09a75h                          ; eb 16
+    jmp short 09a36h                          ; eb 16
     mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 09a75h                          ; eb 10
+    jmp short 09a36h                          ; eb 10
     mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 09a75h                          ; eb 0a
+    jmp short 09a36h                          ; eb 0a
     mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 09a75h                          ; eb 04
+    jmp short 09a36h                          ; eb 04
     mov byte [bp-006h], 024h                  ; c6 46 fa 24
     mov cx, dx                                ; 89 d1
@@ -14532,5 +14501,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test al, al                               ; 84 c0
-    je short 09ab4h                           ; 74 30
+    je short 09a75h                           ; 74 30
     movzx bx, al                              ; 0f b6 d8
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
@@ -14538,7 +14507,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09f71h                               ; e8 db 04
+    call 09f32h                               ; e8 db 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09ab4h                           ; 74 1a
+    je short 09a75h                           ; 74 1a
     and AL, strict byte 0f0h                  ; 24 f0
     add ax, cx                                ; 01 c8
@@ -14548,7 +14517,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09f98h                               ; e8 ea 04
+    call 09f59h                               ; e8 ea 04
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 0983fh                               ; e8 8b fd
+    call 09800h                               ; e8 8b fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -14556,5 +14525,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9abb LB 0x39
+apm_out_str_:                                ; 0xf9a7c LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14562,5 +14531,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09ad0h                           ; 74 0a
+    je short 09a91h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14569,27 +14538,23 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09ac8h                          ; 75 f8
+    jne short 09a89h                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    pop SS                                    ; 17
+    fcomp dword [bp+si-0645ch]                ; d8 9a a4 9b
+    jmp far 0a49bh:0059ah                     ; ea 9a 05 9b a4
     wait                                      ; 9b
-    jcxz 09a75h                               ; e3 9b
-    sub word [bp+di-064bch], bx               ; 29 9b 44 9b
-    jcxz 09a7bh                               ; e3 9b
-    outsw                                     ; 6f
+    xor byte [bp+di-0645ch], bl               ; 30 9b a4 9b
+    xor ax, 0799bh                            ; 35 9b 79
     wait                                      ; 9b
-    jcxz 09a7fh                               ; e3 9b
-    je short 09a81h                           ; 74 9b
-    mov ax, 0b89bh                            ; b8 9b b8
+    jns short 09a46h                          ; 79 9b
+    jns short 09a48h                          ; 79 9b
+    je short 09a4ah                           ; 74 9b
+    jns short 09a4ch                          ; 79 9b
+    jns short 09a4eh                          ; 79 9b
+    insw                                      ; 6d
     wait                                      ; 9b
-    mov ax, 0b39bh                            ; b8 9b b3
-    wait                                      ; 9b
-    mov ax, 0b89bh                            ; b8 9b b8
-    wait                                      ; 9b
-    lodsb                                     ; ac
-    wait                                      ; 9b
-_apm_function:                               ; 0xf9af4 LB 0xf5
+_apm_function:                               ; 0xf9ab5 LB 0xf5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14599,21 +14564,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe near 09bb8h                          ; 0f 87 b0 00
+    jnbe near 09b79h                          ; 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-0652ah]                   ; 2e ff a7 d6 9a
+    jmp word [cs:bx-06569h]                   ; 2e ff a7 97 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 09be3h                           ; e9 ba 00
+    jmp near 09ba4h                           ; e9 ba 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a1c4h                ; c7 46 0c c4 a1
+    mov word [bp+00ch], 0a184h                ; c7 46 0c 84 a1
     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 09be3h                           ; e9 9f 00
+    jmp near 09ba4h                           ; e9 9f 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14628,41 +14593,41 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09be3h                           ; e9 74 00
+    jmp near 09ba4h                           ; e9 74 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09be3h                           ; e9 6f 00
+    jmp near 09ba4h                           ; e9 6f 00
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09b99h                           ; 74 1f
+    je short 09b5ah                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09b91h                           ; 74 11
+    je short 09b52h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09ba1h                          ; 75 1b
+    jne short 09b62h                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d84h                            ; b8 84 0d
-    call 09abbh                               ; e8 2c ff
-    jmp short 09be3h                          ; eb 52
+    mov ax, 00d22h                            ; b8 22 0d
+    call 09a7ch                               ; e8 2c ff
+    jmp short 09ba4h                          ; eb 52
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d8ch                            ; b8 8c 0d
-    jmp short 09b8ch                          ; eb f3
+    mov ax, 00d2ah                            ; b8 2a 0d
+    jmp short 09b4dh                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d94h                            ; b8 94 0d
-    jmp short 09b8ch                          ; eb eb
+    mov ax, 00d32h                            ; b8 32 0d
+    jmp short 09b4dh                          ; 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 09be3h                          ; eb 37
+    jmp short 09ba4h                          ; eb 37
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09be3h                          ; eb 30
+    jmp short 09ba4h                          ; eb 30
     or ah, 080h                               ; 80 cc 80
-    jmp short 09ba4h                          ; eb ec
-    mov bx, 00e14h                            ; bb 14 0e
+    jmp short 09b65h                          ; eb ec
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 67 7e
+    call 01a2ah                               ; e8 a6 7e
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
-    push 00d9dh                               ; 68 9d 0d
+    push 00d3bh                               ; 68 3b 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 9a 7e
+    call 01a6bh                               ; e8 d9 7e
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14675,5 +14640,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_select_reg_:                           ; 0xf9be9 LB 0x24
+pci16_select_reg_:                           ; 0xf9baa LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14692,5 +14657,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9c0d LB 0xf7
+pci16_find_device_:                          ; 0xf9bce LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14706,8 +14671,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09c55h                          ; 75 2d
+    jne short 09c16h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09be9h                               ; e8 b9 ff
+    call 09baah                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14716,23 +14681,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09c43h                          ; 75 06
+    jne short 09c04h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09cd6h                           ; e9 93 00
+    jmp near 09c97h                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09c50h                           ; 74 07
+    je short 09c11h                           ; 74 07
     mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
-    jmp short 09c55h                          ; eb 05
+    jmp short 09c16h                          ; 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 09c7dh                          ; 75 1f
+    jne short 09c3eh                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09c7dh                          ; 75 16
+    jne short 09c3eh                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09be9h                               ; e8 7a ff
+    call 09baah                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14740,13 +14705,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09c7dh                          ; 76 03
+    jbe short 09c3eh                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09c86h                           ; 74 05
+    je short 09c47h                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09c88h                          ; eb 02
+    jmp short 09c49h                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09be9h                               ; e8 5c ff
+    call 09baah                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14759,22 +14724,22 @@
     mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
     test di, di                               ; 85 ff
-    je short 09cb7h                           ; 74 0f
+    je short 09c78h                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09cabh                               ; e2 fa
+    loop 09c6ch                               ; 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 09cc7h                          ; 75 08
+    jne short 09c88h                          ; 75 08
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09ccdh                           ; 74 06
+    je short 09c8eh                           ; 74 06
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    je short 09cd3h                           ; 74 06
+    je short 09c94h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09ce5h                           ; 74 12
+    je short 09ca6h                           ; 74 12
     add bx, word [bp-00ah]                    ; 03 5e f6
     mov dx, bx                                ; 89 da
@@ -14782,9 +14747,9 @@
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     cmp dx, ax                                ; 39 c2
-    jbe near 09c23h                           ; 0f 86 3e ff
+    jbe near 09be4h                           ; 0f 86 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09ceeh                          ; 75 04
+    jne short 09cafh                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09cf1h                          ; eb 03
+    jmp short 09cb2h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14793,10 +14758,13 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    out strict byte 09dh, AL                  ; e6 9d
-    add byte [bp-061edh], bl                  ; 00 9e 13 9e
-    sub byte [bp-061c5h], bl                  ; 28 9e 3b 9e
-    dec si                                    ; 4e
+    cmpsw                                     ; a7
+    popfw                                     ; 9d
+    rcr word [di-0622ch], 0e9h                ; c1 9d d4 9d e9
+    popfw                                     ; 9d
+    cld                                       ; fc
+    popfw                                     ; 9d
+    db  00fh
     sahf                                      ; 9e
-_pci16_function:                             ; 0xf9d04 LB 0x1d7
+_pci16_function:                             ; 0xf9cc5 LB 0x1d7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14812,17 +14780,17 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09d3dh                           ; 72 1a
-    jbe short 09d95h                          ; 76 70
+    jc short 09cfeh                           ; 72 1a
+    jbe short 09d56h                          ; 76 70
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je near 09e62h                            ; 0f 84 36 01
+    je near 09e23h                            ; 0f 84 36 01
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc near 09ea7h                            ; 0f 82 74 01
+    jc near 09e68h                            ; 0f 82 74 01
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe near 09dbah                           ; 0f 86 80 00
-    jmp near 09ea7h                           ; e9 6a 01
+    jbe near 09d7bh                           ; 0f 86 80 00
+    jmp near 09e68h                           ; e9 6a 01
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09d65h                           ; 74 23
+    je short 09d26h                           ; 74 23
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jne near 09ea7h                           ; 0f 85 5e 01
+    jne near 09e68h                           ; 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
@@ -14830,49 +14798,49 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09ed4h                           ; e9 6f 01
+    jmp near 09e95h                           ; e9 6f 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09d71h                          ; 75 06
+    jne short 09d32h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09ecdh                           ; e9 5c 01
+    jmp near 09e8eh                           ; 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 09c0dh                               ; e8 8e fe
+    call 09bceh                               ; e8 8e fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d8fh                          ; 75 0b
+    jne short 09d50h                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09ecdh                           ; e9 3e 01
+    jmp near 09e8eh                           ; e9 3e 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ed4h                           ; e9 3f 01
+    jmp near 09e95h                           ; 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 09c0dh                               ; e8 69 fe
+    call 09bceh                               ; e8 69 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09db4h                          ; 75 0b
+    jne short 09d75h                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09ecdh                           ; e9 19 01
+    jmp near 09e8eh                           ; e9 19 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ed4h                           ; e9 1a 01
+    jmp near 09e95h                           ; e9 1a 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09dc7h                           ; 72 06
+    jc short 09d88h                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09ecdh                           ; e9 06 01
+    jmp near 09e8eh                           ; e9 06 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09be9h                               ; e8 19 fe
+    call 09baah                               ; 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 09ed4h                          ; 0f 87 f5 00
+    jnbe near 09e95h                          ; 0f 87 f5 00
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-06308h]                   ; 2e ff a7 f8 9c
+    jmp word [cs:bx-06347h]                   ; 2e ff a7 b9 9c
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -14885,5 +14853,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp near 09ed4h                           ; e9 d4 00
+    jmp near 09e95h                           ; e9 d4 00
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -14892,5 +14860,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp near 09ed4h                           ; e9 c1 00
+    jmp near 09e95h                           ; e9 c1 00
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14901,5 +14869,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp near 09ed4h                           ; e9 ac 00
+    jmp near 09e95h                           ; e9 ac 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -14908,5 +14876,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp near 09ed4h                           ; e9 99 00
+    jmp near 09e95h                           ; e9 99 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -14915,5 +14883,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09ed4h                           ; e9 86 00
+    jmp near 09e95h                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -14924,5 +14892,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09ed4h                          ; eb 72
+    jmp short 09e95h                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -14931,5 +14899,5 @@
     mov cx, word [0f370h]                     ; 8b 0e 70 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09e88h                          ; 76 11
+    jbe short 09e49h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -14937,5 +14905,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09e9ch                          ; eb 14
+    jmp short 09e5dh                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f190h                            ; be 90 f1
@@ -14949,16 +14917,16 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09ed4h                          ; eb 2d
-    mov bx, 00e14h                            ; bb 14 0e
+    jmp short 09e95h                          ; eb 2d
+    mov bx, 00db8h                            ; bb b8 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 78 7b
+    call 01a2ah                               ; e8 b7 7b
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
     mov ax, word [bp+020h]                    ; 8b 46 20
     push ax                                   ; 50
-    push 00dd0h                               ; 68 d0 0d
+    push 00d6eh                               ; 68 6e 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 a9 7b
+    call 01a6bh                               ; e8 e8 7b
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -14972,5 +14940,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9edb LB 0x2b
+pci_find_classcode_:                         ; 0xf9e9c LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14987,5 +14955,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je near 09efch                            ; 0f 84 03 00
+    je near 09ebdh                            ; 0f 84 03 00
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -14996,5 +14964,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_device_:                            ; 0xf9f06 LB 0x25
+pci_find_device_:                            ; 0xf9ec7 LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15008,5 +14976,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je near 09f21h                            ; 0f 84 03 00
+    je near 09ee2h                            ; 0f 84 03 00
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -15017,5 +14985,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9f2b LB 0x24
+pci_read_config_byte_:                       ; 0xf9eec LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15036,5 +15004,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9f4f LB 0x22
+pci_read_config_word_:                       ; 0xf9f10 LB 0x22
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15055,5 +15023,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9f71 LB 0x27
+pci_read_config_dword_:                      ; 0xf9f32 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15076,5 +15044,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9f98 LB 0x1c
+pci_write_config_word_:                      ; 0xf9f59 LB 0x1c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15091,5 +15059,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9fb4 LB 0x1d
+vds_is_present_:                             ; 0xf9f75 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15099,5 +15067,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09fcch                           ; 74 06
+    je short 09f8dh                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15108,5 +15076,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9fd1 LB 0x1e
+vds_real_to_lin_:                            ; 0xf9f92 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15119,5 +15087,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09fdfh                               ; e2 fa
+    loop 09fa0h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15127,5 +15095,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9fef LB 0x79
+vds_build_sg_list_:                          ; 0xf9fb0 LB 0x79
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15141,21 +15109,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09fd1h                               ; e8 c3 ff
+    call 09f92h                               ; 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 09fb4h                               ; e8 93 ff
+    call 09f75h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a038h                           ; 74 13
+    je short 09ff9h                           ; 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 0a035h                            ; 0f 82 02 00
+    jc near 09ff6h                            ; 0f 82 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a05fh                          ; eb 27
+    jmp short 0a020h                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15174,5 +15142,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa068 LB 0x38
+vds_free_sg_list_:                           ; 0xfa029 LB 0x37
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15180,7 +15148,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09fb4h                               ; e8 42 ff
+    call 09f75h                               ; e8 42 ff
     test ax, ax                               ; 85 c0
-    je short 0a089h                           ; 74 13
+    je short 0a04ah                           ; 74 13
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15188,5 +15156,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc near 0a088h                            ; 0f 82 02 00
+    jc near 0a049h                            ; 0f 82 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15199,6 +15167,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0x8 db 0
-__U4M:                                       ; 0xfa0a0 LB 0x40
+    times 0x7 db 0
+__U4M:                                       ; 0xfa060 LB 0x40
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15226,5 +15194,5 @@
     retn                                      ; c3
     times 0xf db 0
-__U4D:                                       ; 0xfa0e0 LB 0x40
+__U4D:                                       ; 0xfa0a0 LB 0x40
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15257,7 +15225,7 @@
     retn                                      ; c3
     times 0x7 db 0
-__U8RS:                                      ; 0xfa120 LB 0x10
+__U8RS:                                      ; 0xfa0e0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a12fh                           ; 74 0b
+    je short 0a0efh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15265,9 +15233,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a124h                          ; 75 f5
+    jne short 0a0e4h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa130 LB 0x10
+__U8LS:                                      ; 0xfa0f0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a13fh                           ; 74 0b
+    je short 0a0ffh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15275,7 +15243,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a134h                          ; 75 f5
+    jne short 0a0f4h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa140 LB 0x10
+_fmemset_:                                   ; 0xfa100 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15288,5 +15256,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa150 LB 0x3a
+_fmemcpy_:                                   ; 0xfa110 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15313,17 +15281,15 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    mov AL, byte [0a2a1h]                     ; a0 a1 a2
-    mov ax, word [0a1a6h]                     ; a1 a6 a1
-    cmpsb                                     ; a6
-    mov ax, word [0a1a6h]                     ; a1 a6 a1
-    test AL, strict byte 0a1h                 ; a8 a1
-    test AL, strict byte 0a1h                 ; a8 a1
-    stosb                                     ; aa
-    mov ax, word [0a1aeh]                     ; a1 ae a1
-    scasb                                     ; ae
-    mov ax, word [0a1b0h]                     ; a1 b0 a1
-    mov CH, strict byte 0a1h                  ; b5 a1
-    mov BH, strict byte 0a1h                  ; b7 a1
-apm_worker:                                  ; 0xfa18a LB 0x3a
+    pushaw                                    ; 60
+    mov ax, word [0a162h]                     ; a1 62 a1
+    mov eax, dword [0a166h]                   ; 66 a1 66 a1
+    mov eax, dword [0a168h]                   ; 66 a1 68 a1
+    push 06aa1h                               ; 68 a1 6a
+    mov ax, word [0a16eh]                     ; a1 6e a1
+    outsb                                     ; 6e
+    mov ax, word [0a170h]                     ; a1 70 a1
+    jne short 0a0e9h                          ; 75 a1
+    jnbe short 0a0ebh                         ; 77 a1
+apm_worker:                                  ; 0xfa14a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15337,21 +15303,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a1c0h                          ; 73 25
-    jmp word [cs:bp-05e90h]                   ; 2e ff a6 70 a1
-    jmp short 0a1beh                          ; eb 1c
+    jnc short 0a180h                          ; 73 25
+    jmp word [cs:bp-05ed0h]                   ; 2e ff a6 30 a1
+    jmp short 0a17eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a1beh                          ; eb 18
-    jmp short 0a1beh                          ; eb 16
-    jmp short 0a1c0h                          ; eb 16
+    jmp short 0a17eh                          ; eb 18
+    jmp short 0a17eh                          ; eb 16
+    jmp short 0a180h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a1c2h                          ; eb 14
-    jmp short 0a1c0h                          ; eb 10
+    jmp short 0a182h                          ; eb 14
+    jmp short 0a180h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a1beh                          ; eb 09
-    jmp short 0a1beh                          ; eb 07
+    jmp short 0a17eh                          ; eb 09
+    jmp short 0a17eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a1beh                          ; eb 00
+    jmp short 0a17eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15359,5 +15325,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa1c4 LB 0x11
+apm_pm16_entry:                              ; 0xfa184 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15367,11 +15333,11 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a18ah                               ; e8 b8 ff
+    call 0a14ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
 
-  ; Padding 0x382b bytes at 0xfa1d5
-  times 14379 db 0
+  ; Padding 0x386b bytes at 0xfa195
+  times 14443 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15420,5 +15386,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a1c6h                            ; bd c6 a1
+    mov bp, 0a186h                            ; bd 86 a1
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16155,6 +16121,6 @@
     call 01da8h                               ; e8 65 3a
     call 02235h                               ; e8 ef 3e
-    call 099a5h                               ; e8 5c b6
-    call 0886eh                               ; e8 22 a5
+    call 09966h                               ; e8 1d b6
+    call 0882fh                               ; e8 e3 a4
     call 0ed2fh                               ; e8 e0 09
     call 0e2d2h                               ; e8 80 ff
@@ -16312,5 +16278,5 @@
     out strict byte 0a1h, AL                  ; e6 a1
     retn                                      ; c3
-ebda_post:                                   ; 0xfe778 LB 0x45
+ebda_post:                                   ; 0xfe778 LB 0x51
     mov ax, 0e746h                            ; b8 46 e7
     mov word [00034h], ax                     ; a3 34 00
@@ -16326,4 +16292,8 @@
     mov word [001cah], ax                     ; a3 ca 01
     mov ax, 0e746h                            ; b8 46 e7
+    mov word [001cch], ax                     ; a3 cc 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001ceh], ax                     ; a3 ce 01
+    mov ax, 0e746h                            ; b8 46 e7
     mov word [001dch], ax                     ; a3 dc 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -16337,6 +16307,6 @@
     mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
     retn                                      ; c3
-biosorg_check_before_or_at_0E82Ch:           ; 0xfe7bd LB 0x71
-    times 0x6f db 0
+biosorg_check_before_or_at_0E82Ch:           ; 0xfe7c9 LB 0x65
+    times 0x63 db 0
     db  'XM'
 biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x3d
@@ -17044,5 +17014,5 @@
     popfw                                     ; 9d
     jmp short 0f8a7h                          ; eb 13
-    call 09af4h                               ; e8 5d a2
+    call 09ab5h                               ; e8 1e a2
     jmp short 0f88eh                          ; eb f5
 int15_handler_mouse:                         ; 0xff899 LB 0x5
@@ -17198,5 +17168,5 @@
     cld                                       ; fc
     pushad                                    ; 66 60
-    call 09d04h                               ; e8 87 9e
+    call 09cc5h                               ; e8 48 9e
     popad                                     ; 66 61
     pop DS                                    ; 1f
@@ -17312,3 +17282,3 @@
 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, 037h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 020h
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 68289)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 68290)
@@ -1,1 +1,1 @@
-f85d1e93260947edc3616ca0a94b2b5f *VBoxPcBios386.rom
+c1a8ae98c9a136255d8b6646740f698c *VBoxPcBios386.rom
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 68289)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 68290)
@@ -988,13 +988,13 @@
     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, 0a1h, 02bh, 00bh, 082h, 033h, 092h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 00bh, 082h, 0ech, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
     db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02eh, 03ch, 02eh, 03ch
 _dskacc:                                     ; 0xf0082 LB 0x2e
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h
-    db  039h, 080h, 022h, 081h, 001h, 091h, 0abh, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  039h, 080h, 022h, 081h, 0bah, 090h, 064h, 091h, 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=0xd40 class=DATA group=DGROUP
+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
@@ -1101,8 +1101,5 @@
     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
-    db   'scsi_pci_init', 000h
-    db   '%s: Adapter %x:%x not found, how come?!', 00ah, 000h
-    db   '%s: Adapter %x:%x found at %x, enabling BM', 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
@@ -1117,18 +1114,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xdf0 align=1 ; size=0x3fa class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0df0 LB 0x12
-    db  'VirtualBox 5.1.51', 000h
-_bios_prefix_string:                         ; 0xf0e02 LB 0x8
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x18
+    db  'VirtualBox 5.2.0_BETA1', 000h, 000h
+_bios_prefix_string:                         ; 0xf0da6 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0e0a LB 0x6
+_isotag:                                     ; 0xf0dae LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0e10 LB 0x18
+_eltorito:                                   ; 0xf0db4 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0e28 LB 0x28
+_drivetypes:                                 ; 0xf0dcc 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:                          ; 0xf0e50 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0df4 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
@@ -1187,11 +1184,11 @@
     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:                 ; 0xf11ca LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf116e LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x416 bytes at 0xf11ea
-  times 1046 db 0
+  ; Padding 0x472 bytes at 0xf118e
+  times 1138 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8f08 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ec8 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x52
     push bp                                   ; 55
@@ -1421,9 +1418,9 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 b0 01
-    mov ax, 00df0h                            ; b8 f0 0d
+    mov ax, 00d8eh                            ; b8 8e 0d
     push ax                                   ; 50
     mov ax, 000d9h                            ; b8 d9 00
@@ -1599,5 +1596,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a1a0h                               ; e8 c3 88
+    call 0a160h                               ; e8 83 88
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1836,5 +1833,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a1d0h                               ; e8 b8 86
+    call 0a190h                               ; e8 78 86
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2297,5 +2294,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a1d0h                               ; e8 3e 82
+    call 0a190h                               ; e8 fe 81
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2307,5 +2304,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a1d0h                               ; e8 1e 82
+    call 0a190h                               ; e8 de 81
     mov bx, dx                                ; 89 d3
     mov word [bp-010h], dx                    ; 89 56 f0
@@ -2339,5 +2336,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a1d0h                               ; e8 cb 81
+    call 0a190h                               ; e8 8b 81
     mov word [bp-010h], dx                    ; 89 56 f0
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2348,5 +2345,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a1d0h                               ; e8 ad 81
+    call 0a190h                               ; e8 6d 81
     mov bl, dl                                ; 88 d3
     and bl, 00fh                              ; 80 e3 0f
@@ -2745,5 +2742,5 @@
     lea ax, [bp-03eh]                         ; 8d 46 c2
     call 05b7fh                               ; e8 7e 37
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2926,5 +2923,5 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a1d0h                               ; e8 d1 7b
+    call 0a190h                               ; e8 91 7b
     mov word [bp-02ah], dx                    ; 89 56 d6
     mov word [bp-026h], cx                    ; 89 4e da
@@ -3218,5 +3215,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00018h                ; be 18 00
-    call 0a1d0h                               ; e8 f4 78
+    call 0a190h                               ; e8 b4 78
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3226,5 +3223,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00020h                ; be 20 00
-    call 0a1d0h                               ; e8 dd 78
+    call 0a190h                               ; e8 9d 78
     mov bx, dx                                ; 89 d3
     mov word [bp-024h], dx                    ; 89 56 dc
@@ -3260,5 +3257,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00008h                ; be 08 00
-    call 0a1d0h                               ; e8 89 78
+    call 0a190h                               ; e8 49 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-020h], bx                    ; 89 5e e0
@@ -3267,5 +3264,5 @@
     mov word [bp-024h], dx                    ; 89 56 dc
     mov si, strict word 00010h                ; be 10 00
-    call 0a1d0h                               ; e8 74 78
+    call 0a190h                               ; e8 34 78
     mov word [bp-022h], dx                    ; 89 56 de
     mov ax, dx                                ; 89 d0
@@ -3534,5 +3531,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 02bf6h                          ; 75 23
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -4382,5 +4379,5 @@
     cmp bh, 048h                              ; 80 ff 48
     jbe short 0333ch                          ; 76 37
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5318,5 +5315,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     jmp near 03533h                           ; e9 5d f9
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5420,5 +5417,5 @@
     cmp ax, strict word 0004ah                ; 3d 4a 00
     jne short 03cc8h                          ; 75 23
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5528,5 +5525,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -5616,5 +5613,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a1f0h                               ; e8 4d 63
+    call 0a1b0h                               ; e8 0d 63
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5679,5 +5676,5 @@
     jnc short 03f51h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00e0ah]                  ; 3a 85 0a 0e
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
     je short 03f3bh                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
@@ -5689,5 +5686,5 @@
     jnc short 03f6bh                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00e10h]                  ; 3a 85 10 0e
+    cmp al, byte [di+00db4h]                  ; 3a 85 b4 0d
     je short 03f55h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
@@ -5990,5 +5987,5 @@
     cmp ax, dx                                ; 39 d0
     je short 04308h                           ; 74 2a
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6108,5 +6105,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 68 5d
+    call 0a140h                               ; e8 28 5d
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -6114,5 +6111,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 5b 5d
+    call 0a140h                               ; e8 1b 5d
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -6149,5 +6146,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a1f0h                               ; e8 74 5d
+    call 0a1b0h                               ; e8 34 5d
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6219,5 +6216,5 @@
     test al, al                               ; 84 c0
     je short 0456dh                           ; 74 38
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6321,5 +6318,5 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     jmp near 04571h                           ; e9 33 ff
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6445,5 +6442,5 @@
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
     jmp near 04c0ch                           ; e9 49 04
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6503,5 +6500,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a1f0h                               ; e8 8c 59
+    call 0a1b0h                               ; e8 4c 59
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6560,5 +6557,5 @@
     cmp byte [bp-016h], 000h                  ; 80 7e ea 00
     je short 04950h                           ; 74 57
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6870,5 +6867,5 @@
     je short 04caah                           ; 74 27
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -6877,5 +6874,5 @@
     mov dx, strict word 0000ah                ; ba 0a 00
     imul dx                                   ; f7 ea
-    add ax, 00e28h                            ; 05 28 0e
+    add ax, 00dcch                            ; 05 cc 0d
     push ax                                   ; 50
     mov ax, 00494h                            ; b8 94 04
@@ -6900,9 +6897,9 @@
     test al, al                               ; 84 c0
     je short 04ce2h                           ; 74 1f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 65 cc
-    mov cx, 00e3ch                            ; b9 3c 0e
+    mov cx, 00de0h                            ; b9 e0 0d
     push cx                                   ; 51
     mov cx, 004a8h                            ; b9 a8 04
@@ -6915,25 +6912,25 @@
     test dl, dl                               ; 84 d2
     je short 04cf6h                           ; 74 10
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 42 cc
-    mov cx, 00e46h                            ; b9 46 0e
+    mov cx, 00deah                            ; b9 ea 0d
     jmp short 04cd1h                          ; eb db
     test bl, 080h                             ; f6 c3 80
     je short 04d0ch                           ; 74 11
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 2d cc
     push si                                   ; 56
-    mov cx, 00e32h                            ; b9 32 0e
+    mov cx, 00dd6h                            ; b9 d6 0d
     jmp short 04d1bh                          ; eb 0f
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
     call 01933h                               ; e8 1c cc
     push si                                   ; 56
-    mov cx, 00e28h                            ; b9 28 0e
+    mov cx, 00dcch                            ; b9 cc 0d
     push cx                                   ; 51
     mov cx, 004bdh                            ; b9 bd 04
@@ -6966,5 +6963,5 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7056,5 +7053,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7624,5 +7621,5 @@
     test al, al                               ; 84 c0
     jne short 05351h                          ; 75 1c
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7976,5 +7973,5 @@
     cmp byte [bp-004h], 058h                  ; 80 7e fc 58
     jbe short 056e7h                          ; 76 22
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -7998,7 +7995,7 @@
     imul bx                                   ; f7 eb
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00e56h]                  ; 8a 87 56 0e
+    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00e57h]                  ; 8a 87 57 0e
+    mov al, byte [bx+00dfbh]                  ; 8a 87 fb 0d
     jmp near 057bah                           ; e9 b2 00
     test AL, strict byte 004h                 ; a8 04
@@ -8009,7 +8006,7 @@
     imul dx                                   ; f7 ea
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00e54h]                  ; 8a 87 54 0e
+    mov al, byte [bx+00df8h]                  ; 8a 87 f8 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00e55h]                  ; 8a 87 55 0e
+    mov al, byte [bx+00df9h]                  ; 8a 87 f9 0d
     jmp near 057bah                           ; e9 94 00
     mov al, byte [bp-010h]                    ; 8a 46 f0
@@ -8035,5 +8032,5 @@
     imul dx                                   ; f7 ea
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
+    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -8041,11 +8038,11 @@
     test ax, dx                               ; 85 d0
     je short 05777h                           ; 74 0d
-    mov al, byte [bx+00e50h]                  ; 8a 87 50 0e
+    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00e51h]                  ; 8a 87 51 0e
+    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
     jmp short 05782h                          ; eb 0b
-    mov al, byte [bx+00e52h]                  ; 8a 87 52 0e
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00e53h]                  ; 8a 87 53 0e
+    mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
     mov byte [bp-004h], al                    ; 88 46 fc
     jmp short 057bdh                          ; eb 36
@@ -8055,5 +8052,5 @@
     imul bx                                   ; f7 eb
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00e58h]                  ; 8a 87 58 0e
+    mov al, byte [bx+00dfch]                  ; 8a 87 fc 0d
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
@@ -8061,11 +8058,11 @@
     test ax, dx                               ; 85 d0
     je short 057afh                           ; 74 0d
-    mov al, byte [bx+00e52h]                  ; 8a 87 52 0e
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00e53h]                  ; 8a 87 53 0e
+    mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
     jmp short 057bah                          ; eb 0b
-    mov al, byte [bx+00e50h]                  ; 8a 87 50 0e
+    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00e51h]                  ; 8a 87 51 0e
+    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
     mov byte [bp-004h], al                    ; 88 46 fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
@@ -8073,5 +8070,5 @@
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
     jne short 057e2h                          ; 75 19
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8276,5 +8273,5 @@
     mov word [bp+012h], ax                    ; 89 46 12
     jmp near 059d7h                           ; e9 4a 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8290,5 +8287,5 @@
     call 01976h                               ; e8 cb bf
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8504,5 +8501,5 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a1d0h                               ; e8 22 46
+    call 0a190h                               ; e8 e2 45
     test ax, ax                               ; 85 c0
     jne short 05bbeh                          ; 75 0c
@@ -8542,10 +8539,10 @@
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 79 45
+    call 0a140h                               ; e8 39 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 0a1a0h                               ; e8 8d 45
+    call 0a160h                               ; e8 4d 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
@@ -8698,5 +8695,5 @@
     test ax, ax                               ; 85 c0
     jne short 05d8eh                          ; 75 29
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8732,5 +8729,5 @@
     cmp di, dx                                ; 39 d7
     jbe short 05dedh                          ; 76 31
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8776,5 +8773,5 @@
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 54 43
+    call 0a140h                               ; e8 14 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8782,5 +8779,5 @@
     mov bx, word [bp-00eh]                    ; 8b 5e f2
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 45 43
+    call 0a140h                               ; e8 05 43
     xor bx, bx                                ; 31 db
     add ax, di                                ; 01 f8
@@ -8840,5 +8837,5 @@
     test dl, dl                               ; 84 d2
     je short 05f36h                           ; 74 4a
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8861,5 +8858,5 @@
     or ah, 00ch                               ; 80 cc 0c
     jmp near 0607ch                           ; e9 5f 01
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8956,8 +8953,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 6e 41
+    call 0a140h                               ; e8 2e 41
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 67 41
+    call 0a140h                               ; e8 27 41
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-004h], dx                    ; 89 56 fc
@@ -8969,5 +8966,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     jmp near 05f3ah                           ; e9 07 ff
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -8985,5 +8982,5 @@
     add sp, strict byte 00008h                ; 83 c4 08
     jmp near 05f36h                           ; e9 dd fe
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9092,5 +9089,5 @@
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
     jmp near 06597h                           ; e9 31 04
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9118,5 +9115,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a1e0h                               ; e8 2c 40
+    call 0a1a0h                               ; e8 ec 3f
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-010h], bx                    ; 89 5e f0
@@ -9148,5 +9145,5 @@
     cmp si, word [es:bx+036h]                 ; 26 3b 77 36
     jc short 0622ch                           ; 72 26
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9210,5 +9207,5 @@
     test dl, dl                               ; 84 d2
     je short 0631ah                           ; 74 54
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -9283,5 +9280,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a1d0h                               ; e8 25 3e
+    call 0a190h                               ; e8 e5 3d
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
@@ -9647,5 +9644,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a1a0h                               ; e8 57 3a
+    call 0a160h                               ; e8 17 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9811,5 +9808,5 @@
     mov word [bp+00ch], ax                    ; 89 46 0c
     jmp near 0691bh                           ; e9 2e 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10000,5 +9997,5 @@
     retf                                      ; cb
     jmp near 0691bh                           ; e9 53 fe
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10043,5 +10040,5 @@
     or byte [bp+018h], 001h                   ; 80 4e 18 01
     jmp near 0691bh                           ; e9 d8 fd
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10235,5 +10232,5 @@
     mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
     jmp short 06d04h                          ; eb d3
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -10882,5 +10879,5 @@
     mov ax, 008eeh                            ; b8 ee 08
     push ax                                   ; 50
-    mov ax, 011cah                            ; b8 ca 11
+    mov ax, 0116eh                            ; b8 6e 11
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
@@ -10966,5 +10963,5 @@
     mov ax, 008f8h                            ; b8 f8 08
     push ax                                   ; 50
-    mov ax, 011cah                            ; b8 ca 11
+    mov ax, 0116eh                            ; b8 6e 11
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
@@ -12529,5 +12526,5 @@
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
     jne short 08256h                          ; 75 23
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12692,5 +12689,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-048h]                         ; 8d 46 b8
-    call 0a1f0h                               ; e8 3d 1e
+    call 0a1b0h                               ; e8 fd 1d
     mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
     mov byte [bp-047h], 010h                  ; c6 46 b9 10
@@ -12762,5 +12759,5 @@
     cmp bx, 00200h                            ; 81 fb 00 02
     je short 08487h                           ; 74 23
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -12830,5 +12827,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a1d0h                               ; e8 cd 1c
+    call 0a190h                               ; e8 8d 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-02ch], bx                    ; 89 5e d4
@@ -12852,5 +12849,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00006h                ; be 06 00
-    call 0a1d0h                               ; e8 8c 1c
+    call 0a190h                               ; e8 4c 1c
     mov si, word [bp-018h]                    ; 8b 76 e8
     add si, dx                                ; 01 d6
@@ -12870,5 +12867,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a1d0h                               ; e8 5c 1c
+    call 0a190h                               ; e8 1c 1c
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12879,5 +12876,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00010h                ; be 10 00
-    call 0a1d0h                               ; e8 41 1c
+    call 0a190h                               ; e8 01 1c
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12904,5 +12901,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a1d0h                               ; e8 f7 1b
+    call 0a190h                               ; e8 b7 1b
     mov si, dx                                ; 89 d6
     mov word [bp-026h], cx                    ; 89 4e da
@@ -12949,5 +12946,5 @@
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -13008,5 +13005,5 @@
     inc byte [bp-00ch]                        ; fe 46 f4
     jmp near 087a2h                           ; e9 97 00
-    mov bx, 00e02h                            ; bb 02 0e
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -13125,5 +13122,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_pci_init_:                              ; 0xf8846 LB 0x72
+scsi_pci_init_:                              ; 0xf8846 LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13131,41 +13128,8 @@
     push cx                                   ; 51
     push si                                   ; 56
-    push di                                   ; 57
-    mov di, ax                                ; 89 c7
-    mov si, dx                                ; 89 d6
-    call 09fceh                               ; e8 7a 17
+    call 09f87h                               ; e8 38 17
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 0887ch                          ; 75 21
-    mov bx, 00e02h                            ; bb 02 0e
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 cd 90
-    push si                                   ; 56
-    push di                                   ; 57
-    mov ax, 00c61h                            ; b8 61 0c
-    push ax                                   ; 50
-    mov ax, 00c6fh                            ; b8 6f 0c
-    push ax                                   ; 50
-    mov ax, strict word 00004h                ; b8 04 00
-    push ax                                   ; 50
-    call 01976h                               ; e8 ff 90
-    add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp short 088afh                          ; eb 33
-    mov bx, 00e02h                            ; bb 02 0e
-    mov cx, ds                                ; 8c d9
-    mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 ac 90
-    push dx                                   ; 52
-    push si                                   ; 56
-    push di                                   ; 57
-    mov ax, 00c61h                            ; b8 61 0c
-    push ax                                   ; 50
-    mov ax, 00c98h                            ; b8 98 0c
-    push ax                                   ; 50
-    mov ax, strict word 00004h                ; b8 04 00
-    push ax                                   ; 50
-    call 01976h                               ; e8 dd 90
-    add sp, strict byte 0000ch                ; 83 c4 0c
+    je short 08869h                           ; 74 13
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -13175,7 +13139,6 @@
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, si                                ; 89 f2
-    call 0a07ch                               ; e8 cd 17
-    lea sp, [bp-008h]                         ; 8d 66 f8
-    pop di                                    ; 5f
+    call 0a035h                               ; e8 cc 17
+    lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
     pop cx                                    ; 59
@@ -13183,10 +13146,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf88b8 LB 0x81
+_scsi_init:                                  ; 0xf8871 LB 0x81
     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 aa 8d
+    call 0166eh                               ; e8 f1 8d
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -13199,13 +13162,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088f1h                          ; 75 15
+    jne short 088aah                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00433h                            ; ba 33 04
     out DX, AL                                ; ee
     mov ax, 00430h                            ; b8 30 04
-    call 0837bh                               ; e8 93 fa
+    call 0837bh                               ; e8 da fa
     mov dx, 01040h                            ; ba 40 10
     mov ax, 0104bh                            ; b8 4b 10
-    call 08846h                               ; e8 55 ff
+    call 08846h                               ; e8 9c ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -13215,13 +13178,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08913h                          ; 75 15
+    jne short 088cch                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 00437h                            ; ba 37 04
     out DX, AL                                ; ee
     mov ax, 00434h                            ; b8 34 04
-    call 0837bh                               ; e8 71 fa
+    call 0837bh                               ; e8 b8 fa
     mov dx, strict word 00030h                ; ba 30 00
     mov ax, 01000h                            ; b8 00 10
-    call 08846h                               ; e8 33 ff
+    call 08846h                               ; e8 7a ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -13231,17 +13194,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08935h                          ; 75 15
+    jne short 088eeh                          ; 75 15
     xor al, al                                ; 30 c0
     mov dx, 0043bh                            ; ba 3b 04
     out DX, AL                                ; ee
     mov ax, 00438h                            ; b8 38 04
-    call 0837bh                               ; e8 4f fa
+    call 0837bh                               ; e8 96 fa
     mov dx, strict word 00054h                ; ba 54 00
     mov ax, 01000h                            ; b8 00 10
-    call 08846h                               ; e8 11 ff
+    call 08846h                               ; e8 58 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf8939 LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf88f2 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -13252,12 +13215,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 08950h                               ; e3 06
+    jcxz 08909h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 0894ah                               ; e2 fa
+    loop 08903h                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf8955 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf890e LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -13270,5 +13233,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08963h                               ; e2 fa
+    loop 0891ch                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -13278,5 +13241,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf8973 LB 0x159
+ahci_port_cmd_sync_:                         ; 0xf892c LB 0x159
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13293,6 +13256,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 08996h                          ; 75 03
-    jmp near 08ac4h                           ; e9 2e 01
+    jne short 0894fh                          ; 75 03
+    jmp near 08a7dh                           ; e9 2e 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -13307,5 +13270,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 08955h                               ; e8 92 ff
+    call 0890eh                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13375,12 +13338,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 08a56h                          ; 75 04
+    jne short 08a0fh                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 08a5ah                           ; 74 04
+    je short 08a13h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08a5ch                          ; eb 02
+    jmp short 08a15h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 08a28h                           ; 74 c8
+    je short 089e1h                           ; 74 c8
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13439,5 +13402,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8acc LB 0x262
+ahci_cmd_data_:                              ; 0xf8a85 LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13464,5 +13427,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a1f0h                               ; e8 e6 16
+    call 0a1b0h                               ; e8 ed 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13482,5 +13445,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a1d0h                               ; e8 82 16
+    call 0a190h                               ; e8 89 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13493,5 +13456,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a1d0h                               ; e8 5c 16
+    call 0a190h                               ; e8 63 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13505,5 +13468,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a1d0h                               ; e8 30 16
+    call 0a190h                               ; e8 37 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13516,5 +13479,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a1d0h                               ; e8 0a 16
+    call 0a190h                               ; e8 11 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13527,5 +13490,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a1d0h                               ; e8 e4 15
+    call 0a190h                               ; e8 eb 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13540,5 +13503,5 @@
     mov bx, word [bp-012h]                    ; 8b 5e ee
     xor cx, cx                                ; 31 c9
-    call 0a180h                               ; e8 62 15
+    call 0a140h                               ; e8 69 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13550,5 +13513,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a0d5h                               ; e8 9b 14
+    call 0a08eh                               ; e8 9b 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13574,5 +13537,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08ccah                           ; 74 39
+    je short 08c83h                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13592,13 +13555,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08cd7h                          ; 75 06
+    jne short 08c90h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08ceeh                          ; eb 17
+    jmp short 08ca7h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08ceah                          ; 75 0f
+    jne short 08ca3h                          ; 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 08ceeh                          ; eb 04
+    jmp short 08ca7h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13607,5 +13570,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 08973h                               ; e8 73 fc
+    call 0892ch                               ; e8 73 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13614,11 +13577,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a14ch                               ; e8 37 14
+    call 0a105h                               ; e8 37 14
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08d24h                           ; 74 05
+    je short 08cddh                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08d26h                          ; eb 02
+    jmp short 08cdfh                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13628,5 +13591,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8d2e LB 0x183
+ahci_port_deinit_current_:                   ; 0xf8ce7 LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13643,5 +13606,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08db1h                           ; 74 61
+    je short 08d6ah                           ; 74 61
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 007h                  ; b1 07
@@ -13689,26 +13652,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08db4h                           ; 74 07
+    je short 08d6dh                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08db6h                          ; eb 05
-    jmp near 08ea8h                           ; e9 f4 00
+    jmp short 08d6fh                          ; eb 05
+    jmp near 08e61h                           ; e9 f4 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08d83h                           ; 74 c9
+    je short 08d3ch                           ; 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 0a1f0h                               ; e8 29 14
+    call 0a1b0h                               ; e8 30 14
     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 0a1f0h                               ; e8 1a 14
+    call 0a1b0h                               ; e8 21 14
     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 0a1f0h                               ; e8 0b 14
+    call 0a1b0h                               ; e8 12 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13816,5 +13779,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8eb1 LB 0x250
+ahci_port_init_:                             ; 0xf8e6a LB 0x250
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13826,5 +13789,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08d2eh                               ; e8 69 fe
+    call 08ce7h                               ; e8 69 fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13877,20 +13840,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08f38h                           ; 74 04
+    je short 08ef1h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08f3ah                          ; eb 02
+    jmp short 08ef3h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08f02h                           ; 74 c4
+    je short 08ebbh                           ; 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 0a1f0h                               ; e8 a5 12
+    call 0a1b0h                               ; e8 ac 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 0a1f0h                               ; e8 96 12
+    call 0a1b0h                               ; e8 9d 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13898,5 +13861,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a1f0h                               ; e8 85 12
+    call 0a1b0h                               ; e8 8c 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13917,5 +13880,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08955h                               ; e8 bb f9
+    call 0890eh                               ; e8 bb f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13962,5 +13925,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08955h                               ; e8 4f f9
+    call 0890eh                               ; e8 4f f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -14067,5 +14030,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf9101 LB 0xaa
+@ahci_read_sectors:                          ; 0xf90ba LB 0xaa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14078,13 +14041,13 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 0912ch                          ; 76 13
+    jbe short 090e5h                          ; 76 13
     push di                                   ; 57
-    mov ax, 00cc4h                            ; b8 c4 0c
-    push ax                                   ; 50
-    mov ax, 00cd6h                            ; b8 d6 0c
+    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 4d 88
+    call 01976h                               ; e8 94 88
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -14100,9 +14063,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08eb1h                               ; e8 5a fd
+    call 08e6ah                               ; 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 08acch                               ; e8 6a f9
+    call 08a85h                               ; e8 6a f9
     mov bx, ax                                ; 89 c3
     mov es, [bp+006h]                         ; 8e 46 06
@@ -14134,5 +14097,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf91ab LB 0x88
+@ahci_write_sectors:                         ; 0xf9164 LB 0x88
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14146,13 +14109,13 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 091d9h                          ; 76 13
+    jbe short 09192h                          ; 76 13
     push bx                                   ; 53
-    mov ax, 00cf5h                            ; b8 f5 0c
-    push ax                                   ; 50
-    mov ax, 00cd6h                            ; b8 d6 0c
+    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 a0 87
+    call 01976h                               ; e8 e7 87
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -14168,9 +14131,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08eb1h                               ; e8 af fc
+    call 08e6ah                               ; e8 af fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08acch                               ; e8 c0 f8
+    call 08a85h                               ; e8 c0 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -14187,5 +14150,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf9233 LB 0x18c
+ahci_cmd_packet_:                            ; 0xf91ec LB 0x18c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14199,25 +14162,25 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 20 84
+    call 0166eh                               ; e8 67 84
     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 0927dh                          ; 75 23
-    mov bx, 00e02h                            ; bb 02 0e
+    jne short 09236h                          ; 75 23
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 ce 86
-    mov ax, 00d08h                            ; b8 08 0d
-    push ax                                   ; 50
-    mov ax, 00d18h                            ; b8 18 0d
+    call 01933h                               ; e8 15 87
+    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 02 87
+    call 01976h                               ; e8 49 87
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 093b6h                           ; e9 39 01
+    jmp near 0936fh                           ; e9 39 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09277h                          ; 75 f4
+    jne short 09230h                          ; 75 f4
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov di, word [bp+008h]                    ; 8b 7e 08
@@ -14225,5 +14188,5 @@
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 0928ch                               ; e2 fa
+    loop 09245h                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], bx                      ; 26 89 1c
@@ -14239,5 +14202,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a1a0h                               ; e8 db 0e
+    call 0a160h                               ; e8 e2 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -14257,5 +14220,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08eb1h                               ; e8 af fb
+    call 08e6ah                               ; e8 af fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -14265,5 +14228,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a200h                               ; e8 e9 0e
+    call 0a1c0h                               ; e8 f0 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -14272,5 +14235,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 09355h                           ; 74 27
+    je short 0930eh                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -14285,5 +14248,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08acch                               ; e8 6c f7
+    call 08a85h                               ; e8 6c f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -14312,7 +14275,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 093b4h                          ; 75 05
+    jne short 0936dh                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 093b6h                          ; eb 02
+    jmp short 0936fh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14321,5 +14284,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ahci_port_detect_device_:                    ; 0xf93bf LB 0x4fe
+ahci_port_detect_device_:                    ; 0xf9378 LB 0x4fe
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14337,8 +14300,8 @@
     mov bx, word [bp-020h]                    ; 8b 5e e0
     mov ax, si                                ; 89 f0
-    call 08eb1h                               ; e8 ce fa
+    call 08e6ah                               ; e8 ce fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 82 82
+    call 0166eh                               ; e8 c9 82
     mov word [bp-01ah], 00122h                ; c7 46 e6 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -14412,8 +14375,8 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 08939h                               ; e8 9f f4
+    call 088f2h                               ; e8 9f f4
     test ax, ax                               ; 85 c0
-    jne short 094a1h                          ; 75 03
-    jmp near 098b5h                           ; e9 14 04
+    jne short 0945ah                          ; 75 03
+    jmp near 0986eh                           ; e9 14 04
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -14447,7 +14410,7 @@
     xor cx, cx                                ; 31 c9
     mov ax, di                                ; 89 f8
-    call 08939h                               ; e8 4d f4
+    call 088f2h                               ; e8 4d f4
     cmp ax, strict word 00001h                ; 3d 01 00
-    je short 094a1h                           ; 74 b0
+    je short 0945ah                           ; 74 b0
     xor ax, ax                                ; 31 c0
     push ax                                   ; 50
@@ -14456,7 +14419,7 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-01ch]                    ; 8b 56 e4
-    call 08939h                               ; e8 38 f4
+    call 088f2h                               ; e8 38 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 0949eh                          ; 75 98
+    jne short 09457h                          ; 75 98
     mov ax, word [bp-016h]                    ; 8b 46 ea
     add ax, 00130h                            ; 05 30 01
@@ -14486,6 +14449,6 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 09550h                           ; 72 03
-    jmp near 098b5h                           ; e9 65 03
+    jc short 09509h                           ; 72 03
+    jmp near 0986eh                           ; e9 65 03
     mov ax, word [bp-016h]                    ; 8b 46 ea
     add ax, 00118h                            ; 05 18 01
@@ -14539,7 +14502,7 @@
     add cl, 00ch                              ; 80 c1 0c
     test dx, dx                               ; 85 d2
-    jne short 0961bh                          ; 75 55
+    jne short 095d4h                          ; 75 55
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne short 0961bh                          ; 75 4f
+    jne short 095d4h                          ; 75 4f
     mov es, [bp-00eh]                         ; 8e 46 f2
     mov bx, word [bp-01ah]                    ; 8b 5e e6
@@ -14556,11 +14519,11 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, es                                ; 8c c2
-    call 08acch                               ; e8 c0 f4
+    call 08a85h                               ; e8 c0 f4
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 0961eh                           ; 74 08
+    je short 095d7h                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09620h                          ; eb 05
-    jmp near 097f0h                           ; e9 d2 01
+    jmp short 095d9h                          ; eb 05
+    jmp near 097a9h                           ; e9 d2 01
     xor ax, ax                                ; 31 c0
     mov cl, al                                ; 88 c1
@@ -14578,7 +14541,7 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 0966fh                          ; 75 1f
+    jne short 09628h                          ; 75 1f
     cmp word [bp-014h], strict byte 0ffffh    ; 83 7e ec ff
-    jne short 0966fh                          ; 75 19
+    jne short 09628h                          ; 75 19
     mov ax, word [bp-0015ch]                  ; 8b 86 a4 fe
     mov word [bp-012h], ax                    ; 89 46 ee
@@ -14620,19 +14583,19 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 096ech                           ; 72 0c
-    jbe short 096f4h                          ; 76 12
+    jc short 096a5h                           ; 72 0c
+    jbe short 096adh                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 096fch                           ; 74 16
+    je short 096b5h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 096f8h                           ; 74 0e
-    jmp short 0973fh                          ; eb 53
+    je short 096b1h                           ; 74 0e
+    jmp short 096f8h                          ; eb 53
     test al, al                               ; 84 c0
-    jne short 0973fh                          ; 75 4f
+    jne short 096f8h                          ; 75 4f
     mov DL, strict byte 040h                  ; b2 40
-    jmp short 096feh                          ; eb 0a
+    jmp short 096b7h                          ; eb 0a
     mov DL, strict byte 048h                  ; b2 48
-    jmp short 096feh                          ; eb 06
+    jmp short 096b7h                          ; eb 06
     mov DL, strict byte 050h                  ; b2 50
-    jmp short 096feh                          ; eb 02
+    jmp short 096b7h                          ; eb 02
     mov DL, strict byte 058h                  ; b2 58
     mov bl, dl                                ; 88 d3
@@ -14640,16 +14603,16 @@
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
-    call 016aeh                               ; e8 a4 7f
+    call 016aeh                               ; e8 eb 7f
     test al, al                               ; 84 c0
-    je short 0973fh                           ; 74 31
+    je short 096f8h                           ; 74 31
     mov al, dl                                ; 88 d0
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 97 7f
+    call 016aeh                               ; e8 de 7f
     mov ch, al                                ; 88 c5
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 8e 7f
+    call 016aeh                               ; e8 d5 7f
     mov ah, ch                                ; 88 ec
     mov word [bp-028h], ax                    ; 89 46 d8
@@ -14657,12 +14620,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 80 7f
+    call 016aeh                               ; e8 c7 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, bx                                ; 89 d8
-    call 016aeh                               ; e8 76 7f
+    call 016aeh                               ; e8 bd 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp short 09751h                          ; eb 12
+    jmp short 0970ah                          ; eb 12
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-01eh]                       ; ff 76 e2
@@ -14671,9 +14634,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ah]                         ; 8d 46 d6
-    call 05b7fh                               ; e8 2e c4
-    mov bx, 00e02h                            ; bb 02 0e
+    call 05b7fh                               ; e8 75 c4
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 d7 81
+    call 01933h                               ; e8 1e 82
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-01eh]                       ; ff 76 e2
@@ -14694,9 +14657,9 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     push ax                                   ; 50
-    mov ax, 00d38h                            ; b8 38 0d
+    mov ax, 00cd6h                            ; b8 d6 0c
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 e6 81
+    call 01976h                               ; e8 2d 82
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14730,5 +14693,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 74 7e
+    call 01652h                               ; e8 bb 7e
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14737,10 +14700,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 73 7e
-    jmp near 098a4h                           ; e9 b4 00
+    call 01660h                               ; e8 ba 7e
+    jmp near 0985dh                           ; e9 b4 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 0984bh                          ; 75 55
+    jne short 09804h                          ; 75 55
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne short 0984bh                          ; 75 4f
+    jne short 09804h                          ; 75 4f
     mov es, [bp-00eh]                         ; 8e 46 f2
     mov bx, word [bp-01ah]                    ; 8b 5e e6
@@ -14757,11 +14720,11 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov dx, es                                ; 8c c2
-    call 08acch                               ; e8 90 f2
+    call 08a85h                               ; e8 90 f2
     mov byte [bp-00ah], cl                    ; 88 4e f6
     test byte [bp-0022ah], 080h               ; f6 86 d6 fd 80
-    je short 0984dh                           ; 74 07
+    je short 09806h                           ; 74 07
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 0984fh                          ; eb 04
-    jmp short 098a4h                          ; eb 57
+    jmp short 09808h                          ; eb 04
+    jmp short 0985dh                          ; eb 57
     xor cx, cx                                ; 31 c9
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -14803,5 +14766,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf98bd LB 0x43
+ahci_mem_alloc_:                             ; 0xf9876 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14813,7 +14776,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166eh                               ; e8 a1 7d
+    call 0166eh                               ; e8 e8 7d
     test ax, ax                               ; 85 c0
-    je short 098f6h                           ; 74 25
+    je short 098afh                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14822,5 +14785,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 098d9h                               ; e2 fa
+    loop 09892h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14828,8 +14791,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 098e6h                               ; e2 fa
+    loop 0989fh                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ch                               ; e8 88 7d
+    call 0167ch                               ; e8 cf 7d
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14841,5 +14804,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf9900 LB 0x16e
+ahci_hba_init_:                              ; 0xf98b9 LB 0x16e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14853,5 +14816,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 58 7d
+    call 0166eh                               ; e8 9f 7d
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14870,9 +14833,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 098bdh                               ; e8 83 ff
+    call 09876h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 09944h                          ; 75 03
-    jmp near 09a4dh                           ; e9 09 01
+    jne short 098fdh                          ; 75 03
+    jmp near 09a06h                           ; e9 09 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14924,5 +14887,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 0999eh                          ; 75 de
+    jne short 09957h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14943,31 +14906,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 08939h                               ; e8 54 ef
+    call 088f2h                               ; 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 09a11h                          ; eb 21
+    jmp short 099cah                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 09a08h                           ; 74 12
+    je short 099c1h                           ; 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 093bfh                               ; e8 bc f9
+    call 09378h                               ; e8 bc f9
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 09a4bh                           ; 74 43
+    je short 09a04h                           ; 74 43
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 09a4bh                          ; 73 3a
+    jnc short 09a04h                          ; 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 09a23h                               ; e3 06
+    jcxz 099dch                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09a1dh                               ; e2 fa
+    loop 099d6h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14985,9 +14948,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 09a47h                          ; 75 04
+    jne short 09a00h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 099f0h                           ; 74 a9
+    je short 099a9h                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 099f2h                          ; eb a7
+    jmp short 099abh                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14999,7 +14962,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 054h, 09bh, 032h, 09bh, 038h, 09bh, 03eh, 09bh, 044h
-    db  09bh, 04ah, 09bh, 050h, 09bh, 054h, 09bh
-_ahci_init:                                  ; 0xf9a6e LB 0x139
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00dh, 09bh, 0ebh, 09ah, 0f1h, 09ah, 0f7h, 09ah, 0fdh
+    db  09ah, 003h, 09bh, 009h, 09bh, 00dh, 09bh
+_ahci_init:                                  ; 0xf9a27 LB 0x139
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15009,8 +14972,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09fc6h                               ; e8 47 05
+    call 09f7fh                               ; e8 47 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 09acfh                           ; 74 49
+    je short 09a88h                           ; 74 49
     mov al, ah                                ; 88 e0
     mov byte [bp-008h], ah                    ; 88 66 f8
@@ -15019,8 +14982,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09ff1h                               ; e8 59 05
+    call 09faah                               ; e8 59 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 09ad2h                           ; 74 34
+    je short 09a8bh                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -15033,7 +14996,7 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    call 09ff1h                               ; e8 34 05
+    call 09faah                               ; e8 34 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 09ad2h                           ; 74 11
+    je short 09a8bh                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -15042,8 +15005,8 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    jmp short 09a95h                          ; eb c6
-    jmp near 09ba0h                           ; e9 ce 00
+    jmp short 09a4eh                          ; eb c6
+    jmp near 09b59h                           ; e9 ce 00
     test cl, cl                               ; 84 c9
-    je short 09acfh                           ; 74 f9
+    je short 09a88h                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -15057,7 +15020,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09ff1h                               ; e8 f9 04
+    call 09faah                               ; e8 f9 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 09acfh                          ; 75 d3
+    jne short 09a88h                          ; 75 d3
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov bl, cl                                ; 88 cb
@@ -15066,29 +15029,29 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 0a018h                               ; e8 08 05
+    call 09fd1h                               ; e8 08 05
     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 09b54h                         ; 77 37
+    jnbe short 09b0dh                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09a57h                            ; bf 57 9a
+    mov di, 09a10h                            ; bf 10 9a
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-065a2h]               ; 2e 8b 85 5e 9a
+    mov ax, word [cs:di-065e9h]               ; 2e 8b 85 17 9a
     jmp ax                                    ; ff e0
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 09b54h                          ; eb 1c
+    jmp short 09b0dh                          ; eb 1c
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 09b54h                          ; eb 16
+    jmp short 09b0dh                          ; eb 16
     mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 09b54h                          ; eb 10
+    jmp short 09b0dh                          ; eb 10
     mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 09b54h                          ; eb 0a
+    jmp short 09b0dh                          ; eb 0a
     mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 09b54h                          ; eb 04
+    jmp short 09b0dh                          ; eb 04
     mov byte [bp-006h], 024h                  ; c6 46 fa 24
     mov CL, strict byte 004h                  ; b1 04
@@ -15099,5 +15062,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test al, al                               ; 84 c0
-    je short 09ba0h                           ; 74 3b
+    je short 09b59h                           ; 74 3b
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -15110,7 +15073,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 0a03dh                               ; e8 b9 04
+    call 09ff6h                               ; e8 b9 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09ba0h                           ; 74 18
+    je short 09b59h                           ; 74 18
     and AL, strict byte 0f0h                  ; 24 f0
     add si, ax                                ; 01 c6
@@ -15119,7 +15082,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 0a07ch                               ; e8 e1 04
+    call 0a035h                               ; e8 e1 04
     mov ax, si                                ; 89 f0
-    call 09900h                               ; e8 60 fd
+    call 098b9h                               ; e8 60 fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -15127,5 +15090,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9ba7 LB 0x39
+apm_out_str_:                                ; 0xf9b60 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15133,5 +15096,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09bbch                           ; 74 0a
+    je short 09b75h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -15140,25 +15103,31 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09bb4h                          ; 75 f8
+    jne short 09b6dh                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    add word [si-06374h], bx                  ; 01 9c 8c 9c
-    adc bx, word [si-063d2h]                  ; 13 9c 2e 9c
-    mov [si-063a7h], ds                       ; 8c 9c 59 9c
-    mov [si-0636eh], ds                       ; 8c 9c 92 9c
-    pop si                                    ; 5e
+    mov dx, 0459bh                            ; ba 9b 45
     pushfw                                    ; 9c
-    pop si                                    ; 5e
+    int3                                      ; cc
+    wait                                      ; 9b
+    out 09bh, ax                              ; e7 9b
+    inc bp                                    ; 45
     pushfw                                    ; 9c
-    pop si                                    ; 5e
+    adc bl, byte [si-063bbh]                  ; 12 9c 45 9c
+    dec bx                                    ; 4b
     pushfw                                    ; 9c
-    rcr word [si-063a2h], 1                   ; d1 9c 5e 9c
-    pop si                                    ; 5e
+    pop SS                                    ; 17
     pushfw                                    ; 9c
-    db  0cah
+    pop SS                                    ; 17
     pushfw                                    ; 9c
-_apm_function:                               ; 0xf9be0 LB 0xf6
+    pop SS                                    ; 17
+    pushfw                                    ; 9c
+    mov bl, byte [si-063e9h]                  ; 8a 9c 17 9c
+    pop SS                                    ; 17
+    pushfw                                    ; 9c
+    db  083h
+    pushfw                                    ; 9c
+_apm_function:                               ; 0xf9b99 LB 0xf6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15168,21 +15137,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09c5eh                         ; 77 6c
+    jnbe short 09c17h                         ; 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-0643eh]                   ; 2e ff a7 c2 9b
+    jmp word [cs:bx-06485h]                   ; 2e ff a7 7b 9b
     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 09c8ch                           ; e9 79 00
+    jmp near 09c45h                           ; e9 79 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a274h                ; c7 46 0c 74 a2
+    mov word [bp+00ch], 0a234h                ; c7 46 0c 34 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 09c8ch                           ; e9 5e 00
+    jmp near 09c45h                           ; e9 5e 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -15197,19 +15166,19 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09c8ch                           ; e9 33 00
+    jmp near 09c45h                           ; e9 33 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09c8ch                           ; e9 2e 00
-    mov bx, 00e02h                            ; bb 02 0e
+    jmp near 09c45h                           ; e9 2e 00
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 ca 7c
+    call 01933h                               ; e8 11 7d
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
-    mov ax, 00d8bh                            ; b8 8b 0d
+    mov ax, 00d29h                            ; b8 29 0d
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 fc 7c
+    call 01976h                               ; e8 43 7d
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -15223,28 +15192,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09cb7h                           ; 74 1f
+    je short 09c70h                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09cafh                           ; 74 11
+    je short 09c68h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09cbfh                          ; 75 1b
+    jne short 09c78h                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d72h                            ; b8 72 0d
-    call 09ba7h                               ; e8 fa fe
-    jmp short 09c8ch                          ; eb dd
+    mov ax, 00d10h                            ; b8 10 0d
+    call 09b60h                               ; e8 fa fe
+    jmp short 09c45h                          ; eb dd
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d7ah                            ; b8 7a 0d
-    jmp short 09caah                          ; eb f3
+    mov ax, 00d18h                            ; b8 18 0d
+    jmp short 09c63h                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
-    mov ax, 00d82h                            ; b8 82 0d
-    jmp short 09caah                          ; eb eb
+    mov ax, 00d20h                            ; b8 20 0d
+    jmp short 09c63h                          ; 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 09c8ch                          ; eb c2
+    jmp short 09c45h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09c8ch                          ; eb bb
+    jmp short 09c45h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09cc2h                          ; eb ec
-pci16_select_reg_:                           ; 0xf9cd6 LB 0x24
+    jmp short 09c7bh                          ; eb ec
+pci16_select_reg_:                           ; 0xf9c8f LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15263,5 +15232,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9cfa LB 0xf7
+pci16_find_device_:                          ; 0xf9cb3 LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15277,8 +15246,8 @@
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09d42h                          ; 75 2d
+    jne short 09cfbh                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09cd6h                               ; e8 b9 ff
+    call 09c8fh                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15287,23 +15256,23 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09d30h                          ; 75 06
+    jne short 09ce9h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09dc2h                           ; e9 92 00
+    jmp near 09d7bh                           ; e9 92 00
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 09d3dh                           ; 74 07
+    je short 09cf6h                           ; 74 07
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
-    jmp short 09d42h                          ; eb 05
+    jmp short 09cfbh                          ; 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 09d69h                          ; 75 1e
+    jne short 09d22h                          ; 75 1e
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
     test ax, ax                               ; 85 c0
-    jne short 09d69h                          ; 75 16
+    jne short 09d22h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09cd6h                               ; e8 7b ff
+    call 09c8fh                               ; e8 7b ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15311,13 +15280,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jbe short 09d69h                          ; 76 03
+    jbe short 09d22h                          ; 76 03
     mov byte [bp-006h], al                    ; 88 46 fa
     test di, di                               ; 85 ff
-    je short 09d72h                           ; 74 05
+    je short 09d2bh                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09d74h                          ; eb 02
+    jmp short 09d2dh                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09cd6h                               ; e8 5d ff
+    call 09c8fh                               ; e8 5d ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15330,22 +15299,22 @@
     mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
     test di, di                               ; 85 ff
-    je short 09da3h                           ; 74 0f
+    je short 09d5ch                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09d97h                               ; e2 fa
+    loop 09d50h                               ; 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 09db3h                          ; 75 08
+    jne short 09d6ch                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09db9h                           ; 74 06
+    je short 09d72h                           ; 74 06
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    je short 09dbfh                           ; 74 06
+    je short 09d78h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09dd2h                           ; 74 13
+    je short 09d8bh                           ; 74 13
     add bx, word [bp-00eh]                    ; 03 5e f2
     mov al, bh                                ; 88 f8
@@ -15354,10 +15323,10 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    jnbe short 09dd2h                         ; 77 03
-    jmp near 09d10h                           ; e9 3e ff
+    jnbe short 09d8bh                         ; 77 03
+    jmp near 09cc9h                           ; e9 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09ddbh                          ; 75 04
+    jne short 09d94h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09ddeh                          ; eb 03
+    jmp short 09d97h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -15366,11 +15335,11 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    rcr byte [bp-06115h], CL                  ; d2 9e eb 9e
-    std                                       ; fd
+    mov bx, word [bp-0615ch]                  ; 8b 9e a4 9e
+    mov DH, strict byte 09eh                  ; b6 9e
+    retf 0dc9eh                               ; ca 9e dc
     sahf                                      ; 9e
-    adc word [bx-060ddh], bx                  ; 11 9f 23 9f
-    db  036h, 09fh
-    ; ss lahf                                   ; 36 9f
-_pci16_function:                             ; 0xf9df1 LB 0x1d5
+    out DX, ax                                ; ef
+    sahf                                      ; 9e
+_pci16_function:                             ; 0xf9daa LB 0x1d5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15386,18 +15355,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09e23h                           ; 72 13
-    jbe short 09e76h                          ; 76 64
+    jc short 09ddch                           ; 72 13
+    jbe short 09e2fh                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09e7eh                           ; 74 67
+    je short 09e37h                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09e2dh                           ; 72 11
+    jc short 09de6h                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09e81h                          ; 76 60
-    jmp short 09e2dh                          ; eb 0a
+    jbe short 09e3ah                          ; 76 60
+    jmp short 09de6h                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09e4ch                           ; 74 24
+    je short 09e05h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09e30h                           ; 74 03
-    jmp near 09f8fh                           ; e9 5f 01
+    je short 09de9h                           ; 74 03
+    jmp near 09f48h                           ; 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
@@ -15405,52 +15374,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09fbfh                           ; e9 73 01
+    jmp near 09f78h                           ; e9 73 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09e58h                          ; 75 06
+    jne short 09e11h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09fb8h                           ; e9 60 01
+    jmp near 09f71h                           ; 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 09cfah                               ; e8 94 fe
+    call 09cb3h                               ; e8 94 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09e78h                          ; 75 0d
+    jne short 09e31h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09fb8h                           ; e9 42 01
-    jmp short 09e83h                          ; eb 0b
+    jmp near 09f71h                           ; e9 42 01
+    jmp short 09e3ch                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09fbfh                           ; e9 41 01
-    jmp near 09f4ah                           ; e9 c9 00
-    jmp short 09ea8h                          ; eb 25
+    jmp near 09f78h                           ; e9 41 01
+    jmp near 09f03h                           ; e9 c9 00
+    jmp short 09e61h                          ; 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 09cfah                               ; e8 68 fe
+    call 09cb3h                               ; e8 68 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09ea2h                          ; 75 0b
+    jne short 09e5bh                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09fb8h                           ; e9 16 01
+    jmp near 09f71h                           ; e9 16 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09fbfh                           ; e9 17 01
+    jmp near 09f78h                           ; e9 17 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09eb5h                           ; 72 06
+    jc short 09e6eh                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09fb8h                           ; e9 03 01
+    jmp near 09f71h                           ; e9 03 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09cd6h                               ; e8 18 fe
+    call 09c8fh                               ; 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 09f33h                         ; 77 68
+    jnbe short 09eech                         ; 77 68
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx-0621bh]                   ; 2e ff a7 e5 9d
+    jmp word [cs:bx-06262h]                   ; 2e ff a7 9e 9d
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15463,5 +15432,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09f33h                          ; eb 48
+    jmp short 09eech                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15470,5 +15439,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09f33h                          ; eb 36
+    jmp short 09eech                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15479,5 +15448,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09f33h                          ; eb 22
+    jmp short 09eech                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15486,5 +15455,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09f33h                          ; eb 10
+    jmp short 09eech                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15493,5 +15462,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09fbfh                           ; e9 89 00
+    jmp near 09f78h                           ; e9 89 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15502,5 +15471,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09fbfh                          ; eb 75
+    jmp short 09f78h                          ; eb 75
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15509,5 +15478,5 @@
     mov cx, word [0f380h]                     ; 8b 0e 80 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09f70h                          ; 76 11
+    jbe short 09f29h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15515,5 +15484,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09f84h                          ; eb 14
+    jmp short 09f3dh                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f1a0h                            ; be a0 f1
@@ -15527,18 +15496,18 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09fbfh                          ; eb 30
-    mov bx, 00e02h                            ; bb 02 0e
+    jmp short 09f78h                          ; eb 30
+    mov bx, 00da6h                            ; bb a6 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 99 79
+    call 01933h                               ; e8 e0 79
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
     mov ax, word [bp+020h]                    ; 8b 46 20
     push ax                                   ; 50
-    mov ax, 00dbeh                            ; b8 be 0d
+    mov ax, 00d5ch                            ; b8 5c 0d
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c9 79
+    call 01976h                               ; e8 10 7a
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15552,5 +15521,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9fc6 LB 0x8
+pci_find_classcode_:                         ; 0xf9f7f LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15558,5 +15527,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_device_:                            ; 0xf9fce LB 0x23
+pci_find_device_:                            ; 0xf9f87 LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15570,5 +15539,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je short 09fe7h                           ; 74 03
+    je short 09fa0h                           ; 74 03
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -15579,5 +15548,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9ff1 LB 0x27
+pci_read_config_byte_:                       ; 0xf9faa LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15602,5 +15571,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xfa018 LB 0x25
+pci_read_config_word_:                       ; 0xf9fd1 LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15624,5 +15593,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xfa03d LB 0x3f
+pci_read_config_dword_:                      ; 0xf9ff6 LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15639,5 +15608,5 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    jne short 0a06dh                          ; 75 14
+    jne short 0a026h                          ; 75 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -15649,7 +15618,7 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    je short 0a072h                           ; 74 05
+    je short 0a02bh                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a074h                          ; eb 02
+    jmp short 0a02dh                          ; eb 02
     xor ax, ax                                ; 31 c0
     cwd                                       ; 99
@@ -15659,5 +15628,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xfa07c LB 0x1e
+pci_write_config_word_:                      ; 0xfa035 LB 0x1e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15676,5 +15645,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xfa09a LB 0x1d
+vds_is_present_:                             ; 0xfa053 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15684,5 +15653,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 0a0b2h                           ; 74 06
+    je short 0a06bh                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15693,5 +15662,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xfa0b7 LB 0x1e
+vds_real_to_lin_:                            ; 0xfa070 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15704,5 +15673,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a0c5h                               ; e2 fa
+    loop 0a07eh                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15712,5 +15681,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xfa0d5 LB 0x77
+vds_build_sg_list_:                          ; 0xfa08e LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15726,21 +15695,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 0a0b7h                               ; e8 c3 ff
+    call 0a070h                               ; 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 0a09ah                               ; e8 93 ff
+    call 0a053h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a11ch                           ; 74 11
+    je short 0a0d5h                           ; 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 0a119h                           ; 72 02
+    jc short 0a0d2h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a143h                          ; eb 27
+    jmp short 0a0fch                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15759,5 +15728,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa14c LB 0x34
+vds_free_sg_list_:                           ; 0xfa105 LB 0x3b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15765,7 +15734,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 0a09ah                               ; e8 44 ff
+    call 0a053h                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 0a16bh                           ; 74 11
+    je short 0a124h                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15773,5 +15742,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a16ah                           ; 72 02
+    jc short 0a123h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15784,6 +15753,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0x6 db 0
-__U4M:                                       ; 0xfa180 LB 0x20
+    times 0xd db 0
+__U4M:                                       ; 0xfa140 LB 0x20
     pushfw                                    ; 9c
     push si                                   ; 56
@@ -15812,5 +15781,5 @@
     retn                                      ; c3
     times 0x4 db 0
-__U4D:                                       ; 0xfa1a0 LB 0x30
+__U4D:                                       ; 0xfa160 LB 0x30
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -15827,5 +15796,5 @@
     push dx                                   ; 52
     push ax                                   ; 50
-    call 0a285h                               ; e8 d0 00
+    call 0a245h                               ; e8 d0 00
     mov cx, word [bp-002h]                    ; 8b 4e fe
     mov bx, word [bp-004h]                    ; 8b 5e fc
@@ -15838,7 +15807,7 @@
     retn                                      ; c3
     times 0xe db 0
-__U8RS:                                      ; 0xfa1d0 LB 0x10
+__U8RS:                                      ; 0xfa190 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a1dfh                           ; 74 0b
+    je short 0a19fh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15846,9 +15815,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a1d4h                          ; 75 f5
+    jne short 0a194h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa1e0 LB 0x10
+__U8LS:                                      ; 0xfa1a0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a1efh                           ; 74 0b
+    je short 0a1afh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15856,7 +15825,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a1e4h                          ; 75 f5
+    jne short 0a1a4h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa1f0 LB 0x10
+_fmemset_:                                   ; 0xfa1b0 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15869,5 +15838,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa200 LB 0x3a
+_fmemcpy_:                                   ; 0xfa1c0 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15894,19 +15863,16 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    push ax                                   ; 50
-    mov byte [0a252h], AL                     ; a2 52 a2
-    push si                                   ; 56
-    mov byte [0a256h], AL                     ; a2 56 a2
-    push si                                   ; 56
-    mov byte [0a258h], AL                     ; a2 58 a2
-    pop ax                                    ; 58
-    mov byte [0a25ah], AL                     ; a2 5a a2
-    pop si                                    ; 5e
-    mov byte [0a25eh], AL                     ; a2 5e a2
-    pushaw                                    ; 60
-    mov byte [0a265h], AL                     ; a2 65 a2
-    db  067h
+    adc byte [bp+si-05deeh], ah               ; 10 a2 12 a2
+    push SS                                   ; 16
+    mov byte [0a216h], AL                     ; a2 16 a2
+    push SS                                   ; 16
+    mov byte [0a218h], AL                     ; a2 18 a2
+    sbb byte [bp+si-05de6h], ah               ; 18 a2 1a a2
+    push DS                                   ; 1e
+    mov byte [0a21eh], AL                     ; a2 1e a2
+    and byte [bp+si-05ddbh], ah               ; 20 a2 25 a2
+    daa                                       ; 27
     db  0a2h
-apm_worker:                                  ; 0xfa23a LB 0x3a
+apm_worker:                                  ; 0xfa1fa LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15920,21 +15886,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a270h                          ; 73 25
-    jmp word [cs:bp-05de0h]                   ; 2e ff a6 20 a2
-    jmp short 0a26eh                          ; eb 1c
+    jnc short 0a230h                          ; 73 25
+    jmp word [cs:bp-05e20h]                   ; 2e ff a6 e0 a1
+    jmp short 0a22eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a26eh                          ; eb 18
-    jmp short 0a26eh                          ; eb 16
-    jmp short 0a270h                          ; eb 16
+    jmp short 0a22eh                          ; eb 18
+    jmp short 0a22eh                          ; eb 16
+    jmp short 0a230h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a272h                          ; eb 14
-    jmp short 0a270h                          ; eb 10
+    jmp short 0a232h                          ; eb 14
+    jmp short 0a230h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a26eh                          ; eb 09
-    jmp short 0a26eh                          ; eb 07
+    jmp short 0a22eh                          ; eb 09
+    jmp short 0a22eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a26eh                          ; eb 00
+    jmp short 0a22eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15942,5 +15908,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa274 LB 0x11
+apm_pm16_entry:                              ; 0xfa234 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15950,9 +15916,9 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a23ah                               ; e8 b8 ff
+    call 0a1fah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
-_DoUInt32Div:                                ; 0xfa285 LB 0x26b
+_DoUInt32Div:                                ; 0xfa245 LB 0x26b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15972,10 +15938,10 @@
     mov [bp-006h], ds                         ; 8c 5e fa
     cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
-    jne short 0a2d5h                          ; 75 22
+    jne short 0a295h                          ; 75 22
     mov ax, word [bx]                         ; 8b 07
     test ax, ax                               ; 85 c0
-    je short 0a2d2h                           ; 74 19
+    je short 0a292h                           ; 74 19
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0a2d5h                          ; 75 17
+    jne short 0a295h                          ; 75 17
     xor ax, ax                                ; 31 c0
     mov word [bp+00ah], ax                    ; 89 46 0a
@@ -15985,35 +15951,35 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [bp+006h], ax                    ; 89 46 06
-    jmp near 0a4ddh                           ; e9 08 02
+    jmp near 0a49dh                           ; e9 08 02
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    je short 0a2fbh                           ; 74 18
+    je short 0a2bbh                           ; 74 18
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx+002h]                    ; 8b 47 02
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jbe short 0a2f6h                          ; 76 05
+    jbe short 0a2b6h                          ; 76 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a31ch                          ; eb 26
+    jmp short 0a2dch                          ; eb 26
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a31ch                          ; eb 21
+    jmp short 0a2dch                          ; eb 21
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    je short 0a31ah                           ; 74 13
+    je short 0a2dah                           ; 74 13
     mov ds, [bp-00ah]                         ; 8e 5e f6
     mov ax, word [bx]                         ; 8b 07
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si]                         ; 3b 04
-    jbe short 0a315h                          ; 76 02
-    jmp short 0a2f1h                          ; eb dc
+    jbe short 0a2d5h                          ; 76 02
+    jmp short 0a2b1h                          ; eb dc
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a31ch                          ; eb 02
+    jmp short 0a2dch                          ; eb 02
     xor ax, ax                                ; 31 c0
     test ax, ax                               ; 85 c0
-    jnl short 0a33eh                          ; 7d 1e
+    jnl short 0a2feh                          ; 7d 1e
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx]                         ; 8b 07
@@ -16025,6 +15991,6 @@
     mov word [bx+002h], strict word 00000h    ; c7 47 02 00 00
     mov word [bx], strict word 00000h         ; c7 07 00 00
-    jmp short 0a2d2h                          ; eb 94
-    jne short 0a355h                          ; 75 15
+    jmp short 0a292h                          ; eb 94
+    jne short 0a315h                          ; 75 15
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov word [di+002h], ax                    ; 89 45 02
@@ -16033,20 +15999,20 @@
     mov word [bx], strict word 00001h         ; c7 07 01 00
     mov word [bx+002h], ax                    ; 89 47 02
-    jmp near 0a4ddh                           ; e9 88 01
+    jmp near 0a49dh                           ; e9 88 01
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx+002h]                    ; 8b 47 02
     test ax, ax                               ; 85 c0
-    je short 0a370h                           ; 74 11
+    je short 0a330h                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4f0h                               ; e8 88 01
+    call 0a4b0h                               ; e8 88 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a37dh                          ; eb 0d
+    jmp short 0a33dh                          ; eb 0d
     push word [bx]                            ; ff 37
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4f0h                               ; e8 76 01
+    call 0a4b0h                               ; e8 76 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -16054,16 +16020,16 @@
     mov ax, word [si+002h]                    ; 8b 44 02
     test ax, ax                               ; 85 c0
-    je short 0a39bh                           ; 74 11
+    je short 0a35bh                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4f0h                               ; e8 5d 01
+    call 0a4b0h                               ; e8 5d 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a3a8h                          ; eb 0d
+    jmp short 0a368h                          ; eb 0d
     push word [si]                            ; ff 34
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4f0h                               ; e8 4b 01
+    call 0a4b0h                               ; e8 4b 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -16076,5 +16042,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test dx, dx                               ; 85 d2
-    je short 0a418h                           ; 74 56
+    je short 0a3d8h                           ; 74 56
     mov cx, dx                                ; 89 d1
     xor ch, dh                                ; 30 f5
@@ -16082,8 +16048,8 @@
     mov ax, word [si]                         ; 8b 04
     mov dx, word [si+002h]                    ; 8b 54 02
-    jcxz 0a3d6h                               ; e3 06
+    jcxz 0a396h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a3d0h                               ; e2 fa
+    loop 0a390h                               ; e2 fa
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -16091,25 +16057,25 @@
     lds bx, [bp-00ch]                         ; c5 5e f4
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jnbe short 0a3f6h                         ; 77 0f
+    jnbe short 0a3b6h                         ; 77 0f
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jne short 0a3fah                          ; 75 0b
+    jne short 0a3bah                          ; 75 0b
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, word [bx]                         ; 3b 07
-    jbe short 0a3fah                          ; 76 04
+    jbe short 0a3bah                          ; 76 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3fch                          ; eb 02
+    jmp short 0a3bch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a423h                           ; 74 23
+    je short 0a3e3h                           ; 74 23
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp short 0a423h                          ; eb 18
+    jmp short 0a3e3h                          ; eb 18
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a40eh                               ; e2 f8
-    jmp short 0a406h                          ; eb ee
+    loop 0a3ceh                               ; e2 f8
+    jmp short 0a3c6h                          ; eb ee
     mov ax, word [si]                         ; 8b 04
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -16128,27 +16094,27 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jnbe short 0a44fh                         ; 77 06
-    jne short 0a453h                          ; 75 08
+    jnbe short 0a40fh                         ; 77 06
+    jne short 0a413h                          ; 75 08
     cmp dx, word [si]                         ; 3b 14
-    jc short 0a453h                           ; 72 04
+    jc short 0a413h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a455h                          ; eb 02
+    jmp short 0a415h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a4bah                           ; 74 61
+    je short 0a47ah                           ; 74 61
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov ax, word [di+002h]                    ; 8b 45 02
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jnbe short 0a470h                         ; 77 0c
+    jnbe short 0a430h                         ; 77 0c
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jne short 0a474h                          ; 75 0b
+    jne short 0a434h                          ; 75 0b
     mov ax, word [di]                         ; 8b 05
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 0a474h                           ; 72 04
+    jc short 0a434h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a476h                          ; eb 02
+    jmp short 0a436h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a4a0h                           ; 74 26
+    je short 0a460h                           ; 74 26
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mov ds, [bp-008h]                         ; 8e 5e f8
@@ -16159,8 +16125,8 @@
     xor dx, dx                                ; 31 d2
     mov cx, word [bp-012h]                    ; 8b 4e ee
-    jcxz 0a498h                               ; e3 06
+    jcxz 0a458h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a492h                               ; e2 fa
+    loop 0a452h                               ; e2 fa
     lds bx, [bp-010h]                         ; c5 5e f0
     or word [bx], ax                          ; 09 07
@@ -16171,24 +16137,24 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jc short 0a4b6h                           ; 72 06
-    jne short 0a4bch                          ; 75 0a
+    jc short 0a476h                           ; 72 06
+    jne short 0a47ch                          ; 75 0a
     cmp dx, word [si]                         ; 3b 14
-    jnc short 0a4bch                          ; 73 06
+    jnc short 0a47ch                          ; 73 06
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a4beh                          ; eb 04
-    jmp short 0a4ddh                          ; eb 21
+    jmp short 0a47eh                          ; eb 04
+    jmp short 0a49dh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a4d1h                           ; 74 0f
-    jmp short 0a4ddh                          ; eb 19
+    je short 0a491h                           ; 74 0f
+    jmp short 0a49dh                          ; eb 19
     mov cx, strict word 0001fh                ; b9 1f 00
     sal word [bp-018h], 1                     ; d1 66 e8
     rcl word [bp-016h], 1                     ; d1 56 ea
-    loop 0a4c7h                               ; e2 f8
-    jmp short 0a4d7h                          ; eb 06
+    loop 0a487h                               ; e2 f8
+    jmp short 0a497h                          ; eb 06
     shr word [bp-016h], 1                     ; d1 6e ea
     rcr word [bp-018h], 1                     ; d1 5e e8
     dec word [bp-012h]                        ; ff 4e ee
-    jmp near 0a459h                           ; e9 7c ff
+    jmp near 0a419h                           ; e9 7c ff
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, word [bp-01ah]                    ; 8b 56 e6
@@ -16199,5 +16165,5 @@
     retn                                      ; c3
     times 0x6 db 0
-_ASMBitLastSetU16:                           ; 0xfa4f0 LB 0x18
+_ASMBitLastSetU16:                           ; 0xfa4b0 LB 0x18
     push bp                                   ; 55
     db  08bh, 0ech
@@ -16205,10 +16171,10 @@
     mov cx, word [bp+004h]                    ; 8b 4e 04
     test cx, cx                               ; 85 c9
-    je short 0a504h                           ; 74 0a
+    je short 0a4c4h                           ; 74 0a
     mov ax, strict word 00010h                ; b8 10 00
     sal cx, 1                                 ; d1 e1
-    jc short 0a506h                           ; 72 05
+    jc short 0a4c6h                           ; 72 05
     dec ax                                    ; 48
-    jmp short 0a4fdh                          ; eb f9
+    jmp short 0a4bdh                          ; eb f9
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16216,6 +16182,6 @@
     retn                                      ; c3
 
-  ; Padding 0x34f8 bytes at 0xfa508
-  times 13560 db 0
+  ; Padding 0x3538 bytes at 0xfa4c8
+  times 13624 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -16264,5 +16230,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a276h                            ; bd 76 a2
+    mov bp, 0a236h                            ; bd 36 a2
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16994,6 +16960,6 @@
     call 01cc5h                               ; e8 89 39
     call 02154h                               ; e8 15 3e
-    call 09a6eh                               ; e8 2c b7
-    call 088b8h                               ; e8 73 a5
+    call 09a27h                               ; e8 e5 b6
+    call 08871h                               ; e8 2c a5
     call 0ed4ch                               ; e8 04 0a
     call 0e2d2h                               ; e8 87 ff
@@ -17171,5 +17137,5 @@
     out strict byte 0a1h, AL                  ; e6 a1
     retn                                      ; c3
-ebda_post:                                   ; 0xfe794 LB 0x45
+ebda_post:                                   ; 0xfe794 LB 0x51
     mov ax, 0e754h                            ; b8 54 e7
     mov word [00034h], ax                     ; a3 34 00
@@ -17185,4 +17151,8 @@
     mov word [001cah], ax                     ; a3 ca 01
     mov ax, 0e754h                            ; b8 54 e7
+    mov word [001cch], ax                     ; a3 cc 01
+    mov ax, 0f000h                            ; b8 00 f0
+    mov word [001ceh], ax                     ; a3 ce 01
+    mov ax, 0e754h                            ; b8 54 e7
     mov word [001dch], ax                     ; a3 dc 01
     mov ax, 0f000h                            ; b8 00 f0
@@ -17196,6 +17166,6 @@
     mov word [0040eh], 09fc0h                 ; c7 06 0e 04 c0 9f
     retn                                      ; c3
-biosorg_check_before_or_at_0E82Ch:           ; 0xfe7d9 LB 0x55
-    times 0x53 db 0
+biosorg_check_before_or_at_0E82Ch:           ; 0xfe7e5 LB 0x49
+    times 0x47 db 0
     db  'XM'
 biosorg_check_at_0E82Eh:                     ; 0xfe82e LB 0x52
@@ -17950,5 +17920,5 @@
     popfw                                     ; 9d
     jmp short 0f8afh                          ; eb 1f
-    call 09be0h                               ; e8 4d a3
+    call 09b99h                               ; e8 06 a3
     jmp short 0f883h                          ; eb ee
 int15_handler_mouse:                         ; 0xff895 LB 0x5
@@ -18274,3 +18244,3 @@
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 023h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0f9h
Index: /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 68289)
+++ /trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 68290)
@@ -1,1 +1,1 @@
-269f62de83976f5a734bb5219dc89ba4 *VBoxPcBios8086.rom
+e5b242e719ad26ca22448575914e8257 *VBoxPcBios8086.rom
Index: /trunk/src/VBox/Installer/linux/debian/control
===================================================================
--- /trunk/src/VBox/Installer/linux/debian/control	(revision 68289)
+++ /trunk/src/VBox/Installer/linux/debian/control	(revision 68290)
@@ -1,3 +1,3 @@
-Source: virtualbox-5.1
+Source: virtualbox-5.2
 Section: contrib/misc
 Priority: optional
@@ -14,5 +14,5 @@
 XS-Python-Version: >= 2.4
 
-Package: virtualbox-5.1
+Package: virtualbox-5.2
 Architecture: i386 amd64
 Pre-Depends: debconf (>= 1.1) | debconf-2.0
@@ -33,7 +33,7 @@
 XB-Python-Version: ${python:Versions}
 
-Package: virtualbox-5.1-dbg
+Package: virtualbox-5.2-dbg
 Architecture: i386 amd64
-Depends: virtualbox-5.1 (= ${binary:Version})
+Depends: virtualbox-5.2 (= ${binary:Version})
 Provides: virtualbox-dbg
 Replaces: virtualbox-dbg
Index: /trunk/src/VBox/Installer/linux/debian/rules
===================================================================
--- /trunk/src/VBox/Installer/linux/debian/rules	(revision 68289)
+++ /trunk/src/VBox/Installer/linux/debian/rules	(revision 68290)
@@ -46,5 +46,5 @@
 
 package  := virtualbox
-verpkg   := virtualbox-5.1
+verpkg   := virtualbox-5.2
 current  := $(shell pwd)
 vboxroot := $(shell cd ../../../..; pwd)
Index: /trunk/src/VBox/Installer/linux/rpm/rules
===================================================================
--- /trunk/src/VBox/Installer/linux/rpm/rules	(revision 68289)
+++ /trunk/src/VBox/Installer/linux/rpm/rules	(revision 68290)
@@ -60,5 +60,5 @@
 endif
 
-verpkg   := VirtualBox-5.1
+verpkg   := VirtualBox-5.2
 current  := $(shell pwd)
 vboxroot := $(shell while ! test -r configure && ! test "$PWD" = "/"; do cd ..; done; pwd)
Index: /trunk/src/VBox/ValidationKit/testdriver/vbox.py
===================================================================
--- /trunk/src/VBox/ValidationKit/testdriver/vbox.py	(revision 68289)
+++ /trunk/src/VBox/ValidationKit/testdriver/vbox.py	(revision 68290)
@@ -1295,5 +1295,7 @@
                 sVer = "4.0.0";
             reporter.log("sVer=%s" % (sVer,));          # Temporary - debugging hang somewhere after 'sys.path' log line above.
-            if sVer.startswith("5.1"):
+            if sVer.startswith("5.2"):
+                self.fpApiVer = 5.2;
+            elif sVer.startswith("5.1"):
                 self.fpApiVer = 5.1;
             elif sVer.startswith("5.0") or (sVer.startswith("4.3.5") and len(sVer) == 6):
