Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 69111)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm	(revision 69128)
@@ -988,10 +988,10 @@
     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, 02bh, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 03fh, 02bh, 0bfh, 081h, 06ah, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 04dh, 03bh, 04dh, 03bh
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0c8h, 02dh, 08ch, 03bh, 08ch, 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, 0fdh, 08fh, 0a5h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 02ah, 0e4h, 02ah, 000h, 000h, 000h, 000h
+    db  0ffh, 07fh, 0dfh, 080h, 03ch, 090h, 0e4h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
@@ -1114,18 +1114,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
-    db  'VirtualBox 5.2.0_RC1', 000h, 000h
-_bios_prefix_string:                         ; 0xf0da4 LB 0x8
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+    db  'VirtualBox 5.2.0', 000h, 000h
+_bios_prefix_string:                         ; 0xf0da0 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0dac LB 0x6
+_isotag:                                     ; 0xf0da8 LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0db2 LB 0x18
+_eltorito:                                   ; 0xf0dae LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0dca LB 0x28
+_drivetypes:                                 ; 0xf0dc6 LB 0x28
     db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
     db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
     db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
     db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
@@ -1184,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:                 ; 0xf116c LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x474 bytes at 0xf118c
-  times 1140 db 0
+  ; Padding 0x478 bytes at 0xf1188
+  times 1144 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e18 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e58 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1411,5 +1411,5 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -1440,5 +1440,5 @@
     int 010h                                  ; cd 10
     jmp short 017b7h                          ; eb 03
-    call 07b7ah                               ; e8 c3 63
+    call 07bb9h                               ; e8 02 64
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -1585,5 +1585,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a0b0h                               ; e8 e3 87
+    call 0a0f0h                               ; e8 23 88
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1815,5 +1815,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a0e0h                               ; e8 e3 85
+    call 0a120h                               ; e8 23 86
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2254,5 +2254,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a0e0h                               ; e8 90 81
+    call 0a120h                               ; e8 d0 81
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2264,5 +2264,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a0e0h                               ; e8 70 81
+    call 0a120h                               ; e8 b0 81
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ch]                    ; 8b 46 e4
@@ -2295,5 +2295,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a0e0h                               ; e8 1f 81
+    call 0a120h                               ; e8 5f 81
     mov word [bp-012h], dx                    ; 89 56 ee
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2304,5 +2304,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a0e0h                               ; e8 01 81
+    call 0a120h                               ; e8 41 81
     mov ah, dl                                ; 88 d4
     and ah, 00fh                              ; 80 e4 0f
@@ -2439,5 +2439,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_ata_detect:                                 ; 0xf2118 LB 0x64e
+_ata_detect:                                 ; 0xf2118 LB 0x68d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2448,9 +2448,9 @@
     mov ax, strict word 00040h                ; b8 40 00
     call 0166ch                               ; e8 42 f5
-    mov word [bp-026h], ax                    ; 89 46 da
+    mov word [bp-020h], ax                    ; 89 46 e0
     mov di, 00122h                            ; bf 22 01
     mov es, ax                                ; 8e c0
-    mov word [bp-022h], di                    ; 89 7e de
-    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-01ch], di                    ; 89 7e e4
+    mov word [bp-02eh], ax                    ; 89 46 d2
     mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
     mov word [es:di+00206h], 001f0h           ; 26 c7 85 06 02 f0 01
@@ -2462,55 +2462,56 @@
     mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
     xor al, al                                ; 30 c0
+    mov byte [bp-010h], al                    ; 88 46 f0
     mov byte [bp-008h], al                    ; 88 46 f8
-    mov byte [bp-012h], al                    ; 88 46 ee
     mov byte [bp-00ah], al                    ; 88 46 f6
-    jmp near 026ech                           ; e9 72 05
+    jmp near 02725h                           ; e9 ab 05
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [si+006h]                         ; 8d 54 06
     out DX, AL                                ; ee
-    lea di, [si+002h]                         ; 8d 7c 02
+    lea bx, [si+002h]                         ; 8d 5c 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea di, [si+003h]                         ; 8d 7c 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
     mov AL, strict byte 055h                  ; b0 55
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
-    lea bx, [si+003h]                         ; 8d 5c 03
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
     mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
     mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
     mov dx, di                                ; 89 fa
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    mov dx, bx                                ; 89 da
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp cl, 055h                              ; 80 f9 55
-    jne short 021f9h                          ; 75 47
+    cmp bl, 055h                              ; 80 fb 55
+    jne short 021fch                          ; 75 4a
     cmp AL, strict byte 0aah                  ; 3c aa
-    jne short 021f9h                          ; 75 43
+    jne short 021fch                          ; 75 46
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
-    call 01d85h                               ; e8 b5 fb
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 021dbh                           ; 74 05
+    call 01d85h                               ; e8 b2 fb
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 021deh                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 021deh                          ; eb 03
+    jmp short 021e1h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [si+006h]                         ; 8d 54 06
@@ -2526,57 +2527,59 @@
     ; sub ah, ah                                ; 2a e4
     cmp bl, 001h                              ; 80 fb 01
-    jne short 02232h                          ; 75 3d
+    jne short 02238h                          ; 75 40
     cmp al, bl                                ; 38 d8
-    je short 021fbh                           ; 74 02
-    jmp short 02232h                          ; eb 37
+    je short 021feh                           ; 74 02
+    jmp short 02238h                          ; eb 3a
     lea dx, [si+004h]                         ; 8d 54 04
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov bx, ax                                ; 89 c3
-    mov byte [bp-006h], al                    ; 88 46 fa
+    mov cx, ax                                ; 89 c1
+    mov ch, al                                ; 88 c5
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    mov bh, al                                ; 88 c7
+    mov bx, ax                                ; 89 c3
+    mov byte [bp-014h], al                    ; 88 46 ec
     lea dx, [si+007h]                         ; 8d 54 07
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    cmp bl, 014h                              ; 80 fb 14
-    jne short 02234h                          ; 75 19
-    cmp cl, 0ebh                              ; 80 f9 eb
-    jne short 02234h                          ; 75 14
+    cmp cl, 014h                              ; 80 f9 14
+    jne short 0223ah                          ; 75 1c
+    cmp bl, 0ebh                              ; 80 fb eb
+    jne short 0223ah                          ; 75 17
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
-    jmp short 02273h                          ; eb 3f
-    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 02256h                          ; 75 1c
-    test bh, bh                               ; 84 ff
-    jne short 02256h                          ; 75 18
+    jmp short 0227eh                          ; eb 44
+    test ch, ch                               ; 84 ed
+    jne short 0225fh                          ; 75 21
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    jne short 0225fh                          ; 75 1b
     test al, al                               ; 84 c0
-    je short 02256h                           ; 74 14
+    je short 0225fh                           ; 74 17
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
-    jmp short 02273h                          ; eb 1d
-    mov al, byte [bp-006h]                    ; 8a 46 fa
-    cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 02273h                          ; 75 16
-    cmp bh, al                                ; 38 c7
-    jne short 02273h                          ; 75 12
+    jmp short 0227eh                          ; eb 1f
+    cmp ch, 0ffh                              ; 80 fd ff
+    jne short 0227eh                          ; 75 1a
+    cmp ch, byte [bp-014h]                    ; 3a 6e ec
+    jne short 0227eh                          ; 75 15
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
@@ -2588,14 +2591,15 @@
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les si, [bp-022h]                         ; c4 76 de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov si, word [bp-01ch]                    ; 8b 76 e4
     add si, ax                                ; 01 c6
     mov al, byte [es:si+022h]                 ; 26 8a 44 22
-    mov byte [bp-00ch], al                    ; 88 46 f4
+    mov byte [bp-00eh], al                    ; 88 46 f2
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 022ddh                          ; 75 49
+    jne short 022ebh                          ; 75 49
     mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
     mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
     lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
@@ -2604,62 +2608,62 @@
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000ech                            ; bb ec 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 a1 fb
+    call 01e63h                               ; e8 93 fb
     test ax, ax                               ; 85 c0
-    je short 022d1h                           ; 74 0b
+    je short 022dfh                           ; 74 0b
     push 00124h                               ; 68 24 01
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 98 f6
+    call 01966h                               ; e8 8a f6
     add sp, strict byte 00004h                ; 83 c4 04
     test byte [bp-00264h], 080h               ; f6 86 9c fd 80
-    je short 022e0h                           ; 74 08
+    je short 022eeh                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 022e2h                          ; eb 05
-    jmp near 024bfh                           ; e9 df 01
+    jmp short 022f0h                          ; eb 05
+    jmp near 024ech                           ; e9 fe 01
     xor ax, ax                                ; 31 c0
-    mov byte [bp-016h], al                    ; 88 46 ea
-    mov byte [bp-018h], 000h                  ; c6 46 e8 00
-    mov word [bp-034h], 00200h                ; c7 46 cc 00 02
+    mov byte [bp-018h], al                    ; 88 46 e8
+    mov byte [bp-016h], 000h                  ; c6 46 ea 00
+    mov word [bp-030h], 00200h                ; c7 46 d0 00 02
     mov ax, word [bp-00262h]                  ; 8b 86 9e fd
-    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov word [bp-026h], ax                    ; 89 46 da
     mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
-    mov word [bp-030h], ax                    ; 89 46 d0
+    mov word [bp-028h], ax                    ; 89 46 d8
     mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
-    mov word [bp-02ah], ax                    ; 89 46 d6
+    mov word [bp-02ch], ax                    ; 89 46 d4
     mov si, word [bp-001ech]                  ; 8b b6 14 fe
     mov ax, word [bp-001eah]                  ; 8b 86 16 fe
-    mov word [bp-028h], ax                    ; 89 46 d8
+    mov word [bp-022h], ax                    ; 89 46 de
     xor ax, ax                                ; 31 c0
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    mov word [bp-02ch], ax                    ; 89 46 d4
-    cmp word [bp-028h], 00fffh                ; 81 7e d8 ff 0f
-    jne short 0233bh                          ; 75 1e
+    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-02ah], ax                    ; 89 46 d6
+    cmp word [bp-022h], 00fffh                ; 81 7e de ff 0f
+    jne short 02349h                          ; 75 1e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 0233bh                          ; 75 19
+    jne short 02349h                          ; 75 19
     mov ax, word [bp-00196h]                  ; 8b 86 6a fe
-    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov word [bp-02ah], ax                    ; 89 46 d6
     mov ax, word [bp-00198h]                  ; 8b 86 68 fe
-    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov word [bp-024h], ax                    ; 89 46 dc
     mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
-    mov word [bp-028h], ax                    ; 89 46 d8
+    mov word [bp-022h], ax                    ; 89 46 de
     mov si, word [bp-0019ch]                  ; 8b b6 64 fe
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0234eh                           ; 72 0c
-    jbe short 02356h                          ; 76 12
+    jc short 0235ch                           ; 72 0c
+    jbe short 02364h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0235eh                           ; 74 16
+    je short 0236ch                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0235ah                           ; 74 0e
-    jmp short 02398h                          ; eb 4a
+    je short 02368h                           ; 74 0e
+    jmp short 023a6h                          ; eb 4a
     test al, al                               ; 84 c0
-    jne short 02398h                          ; 75 46
+    jne short 023a6h                          ; 75 46
     mov BL, strict byte 01eh                  ; b3 1e
-    jmp short 02360h                          ; eb 0a
+    jmp short 0236eh                          ; eb 0a
     mov BL, strict byte 026h                  ; b3 26
-    jmp short 02360h                          ; eb 06
+    jmp short 0236eh                          ; eb 06
     mov BL, strict byte 067h                  ; b3 67
-    jmp short 02360h                          ; eb 02
+    jmp short 0236eh                          ; eb 02
     mov BL, strict byte 070h                  ; b3 70
     mov al, bl                                ; 88 d8
@@ -2667,10 +2671,10 @@
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 43 f3
+    call 016ach                               ; e8 35 f3
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov al, bl                                ; 88 d8
-    call 016ach                               ; e8 37 f3
+    call 016ach                               ; e8 29 f3
     xor ah, ah                                ; 30 e4
     add ax, dx                                ; 01 d0
@@ -2679,24 +2683,24 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 27 f3
+    call 016ach                               ; e8 19 f3
     xor ah, ah                                ; 30 e4
     mov word [bp-03ah], ax                    ; 89 46 c6
     mov al, bl                                ; 88 d8
     add AL, strict byte 007h                  ; 04 07
-    call 016ach                               ; e8 1b f3
+    call 016ach                               ; e8 0d f3
     xor ah, ah                                ; 30 e4
     mov word [bp-036h], ax                    ; 89 46 ca
-    jmp short 023aah                          ; eb 12
-    push word [bp-02ch]                       ; ff 76 d4
-    push word [bp-01eh]                       ; ff 76 e2
-    push word [bp-028h]                       ; ff 76 d8
+    jmp short 023b8h                          ; eb 12
+    push word [bp-02ah]                       ; ff 76 d6
+    push word [bp-024h]                       ; ff 76 dc
+    push word [bp-022h]                       ; ff 76 de
     push si                                   ; 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-03ah]                         ; 8d 46 c6
-    call 05a02h                               ; e8 58 36
-    mov bx, 00da4h                            ; bb a4 0d
+    call 05a41h                               ; e8 89 36
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 6e f5
+    call 01923h                               ; e8 60 f5
     mov ax, word [bp-036h]                    ; 8b 46 ca
     push ax                                   ; 50
@@ -2705,39 +2709,40 @@
     mov ax, word [bp-038h]                    ; 8b 46 c8
     push ax                                   ; 50
-    push word [bp-02ah]                       ; ff 76 d6
-    push word [bp-030h]                       ; ff 76 d0
-    push word [bp-01ch]                       ; ff 76 e4
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    push word [bp-02ch]                       ; ff 76 d4
+    push word [bp-028h]                       ; ff 76 d8
+    push word [bp-026h]                       ; ff 76 da
+    mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov al, byte [bp-012h]                    ; 8a 46 ee
     push ax                                   ; 50
     push 0014dh                               ; 68 4d 01
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 8a f5
+    call 01966h                               ; e8 7c f5
     add sp, strict byte 00014h                ; 83 c4 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les di, [bp-022h]                         ; c4 7e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov di, word [bp-01ch]                    ; 8b 7e e4
     add di, ax                                ; 01 c7
     mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
+    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov byte [es:di+024h], al                 ; 26 88 45 24
     mov al, byte [bp-016h]                    ; 8a 46 ea
-    mov byte [es:di+024h], al                 ; 26 88 45 24
-    mov al, byte [bp-018h]                    ; 8a 46 e8
     mov byte [es:di+026h], al                 ; 26 88 45 26
-    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov ax, word [bp-030h]                    ; 8b 46 d0
     mov word [es:di+028h], ax                 ; 26 89 45 28
-    mov ax, word [bp-030h]                    ; 8b 46 d0
+    mov ax, word [bp-028h]                    ; 8b 46 d8
     mov word [es:di+030h], ax                 ; 26 89 45 30
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov ax, word [bp-026h]                    ; 8b 46 da
     mov word [es:di+032h], ax                 ; 26 89 45 32
+    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov word [es:di+034h], ax                 ; 26 89 45 34
     mov ax, word [bp-02ah]                    ; 8b 46 d6
-    mov word [es:di+034h], ax                 ; 26 89 45 34
-    mov ax, word [bp-02ch]                    ; 8b 46 d4
     mov word [es:di+03ch], ax                 ; 26 89 45 3c
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov ax, word [bp-024h]                    ; 8b 46 dc
     mov word [es:di+03ah], ax                 ; 26 89 45 3a
-    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov ax, word [bp-022h]                    ; 8b 46 de
     mov word [es:di+038h], ax                 ; 26 89 45 38
     mov word [es:di+036h], si                 ; 26 89 75 36
@@ -2753,11 +2758,20 @@
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 002h                  ; 3c 02
-    jnc short 024a9h                          ; 73 61
+    jnc short 024cch                          ; 73 73
     test al, al                               ; 84 c0
-    jne short 02451h                          ; 75 05
+    jne short 02462h                          ; 75 05
     mov di, strict word 0003dh                ; bf 3d 00
-    jmp short 02454h                          ; eb 03
+    jmp short 02465h                          ; eb 03
     mov di, strict word 0004dh                ; bf 4d 00
-    mov dx, word [bp-026h]                    ; 8b 56 da
+    mov dx, word [bp-020h]                    ; 8b 56 e0
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul bx, ax, strict byte 00005h           ; 6b d8 05
+    sal bx, 002h                              ; c1 e3 02
+    add bx, 00104h                            ; 81 c3 04 01
+    xor al, al                                ; 30 c0
+    mov es, ax                                ; 8e c0
+    mov word [es:bx], di                      ; 26 89 3f
+    mov word [es:bx+002h], dx                 ; 26 89 57 02
     mov ax, word [bp-038h]                    ; 8b 46 c8
     mov es, dx                                ; 8e c2
@@ -2766,17 +2780,17 @@
     mov byte [es:di+002h], al                 ; 26 88 45 02
     mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
-    mov al, byte [bp-02ah]                    ; 8a 46 d6
+    mov al, byte [bp-02ch]                    ; 8a 46 d4
     mov byte [es:di+004h], al                 ; 26 88 45 04
-    mov ax, word [bp-01ch]                    ; 8b 46 e4
+    mov ax, word [bp-026h]                    ; 8b 46 da
     mov word [es:di+009h], ax                 ; 26 89 45 09
-    mov al, byte [bp-030h]                    ; 8a 46 d0
+    mov al, byte [bp-028h]                    ; 8a 46 d8
     mov byte [es:di+00bh], al                 ; 26 88 45 0b
-    mov al, byte [bp-02ah]                    ; 8a 46 d6
+    mov al, byte [bp-036h]                    ; 8a 46 ca
     mov byte [es:di+00eh], al                 ; 26 88 45 0e
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 02492h                          ; eb 05
+    jmp short 024bdh                          ; eb 05
     cmp ah, 00fh                              ; 80 fc 0f
-    jnc short 024a1h                          ; 73 0f
+    jnc short 024ceh                          ; 73 11
     mov bl, ah                                ; 88 e3
     xor bh, bh                                ; 30 ff
@@ -2786,26 +2800,28 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 0248dh                          ; eb ec
+    jmp short 024b8h                          ; eb ec
+    jmp short 024d6h                          ; eb 08
     neg al                                    ; f6 d8
     mov es, dx                                ; 8e c2
     mov byte [es:di+00fh], al                 ; 26 88 45 0f
-    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
-    mov es, [bp-020h]                         ; 8e 46 e0
-    add bx, word [bp-022h]                    ; 03 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    add bx, word [bp-01ch]                    ; 03 5e e4
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
-    inc byte [bp-012h]                        ; fe 46 ee
-    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
-    jne short 02522h                          ; 75 5d
+    inc byte [bp-008h]                        ; fe 46 f8
+    cmp byte [bp-00eh], 003h                  ; 80 7e f2 03
+    jne short 02552h                          ; 75 60
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
@@ -2814,45 +2830,47 @@
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000a1h                            ; bb a1 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 63 f9
+    call 01e63h                               ; e8 33 f9
     test ax, ax                               ; 85 c0
-    je short 0250fh                           ; 74 0b
+    je short 0253fh                           ; 74 0b
     push 00174h                               ; 68 74 01
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 5a f4
+    call 01966h                               ; e8 2a f4
     add sp, strict byte 00004h                ; 83 c4 04
     mov bl, byte [bp-00263h]                  ; 8a 9e 9d fd
     and bl, 01fh                              ; 80 e3 1f
     test byte [bp-00264h], 080h               ; f6 86 9c fd 80
-    je short 02524h                           ; 74 07
-    mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02526h                          ; eb 04
-    jmp short 02559h                          ; eb 35
-    xor ax, ax                                ; 31 c0
-    mov dl, byte [bp-00ah]                    ; 8a 56 f6
-    xor dh, dh                                ; 30 f6
-    imul dx, dx, strict byte 0001ch           ; 6b d2 1c
-    les si, [bp-022h]                         ; c4 76 de
-    add si, dx                                ; 01 d6
-    mov byte [es:si+023h], bl                 ; 26 88 5c 23
-    mov byte [es:si+024h], al                 ; 26 88 44 24
-    mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
-    mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
-    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    je short 02554h                           ; 74 07
+    mov dx, strict word 00001h                ; ba 01 00
+    jmp short 02556h                          ; eb 04
+    jmp short 0258ch                          ; eb 38
+    xor dx, dx                                ; 31 d2
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    xor ah, ah                                ; 30 e4
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov di, word [bp-01ch]                    ; 8b 7e e4
+    add di, ax                                ; 01 c7
+    mov byte [es:di+023h], bl                 ; 26 88 5d 23
+    mov byte [es:di+024h], dl                 ; 26 88 55 24
+    mov byte [es:di+026h], 000h               ; 26 c6 45 26 00
+    mov word [es:di+028h], 00800h             ; 26 c7 45 28 00 08
+    mov bl, byte [bp-010h]                    ; 8a 5e f0
     xor bh, bh                                ; 30 ff
-    add bx, word [bp-022h]                    ; 03 5e de
+    add bx, word [bp-01ch]                    ; 03 5e e4
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
-    inc byte [bp-008h]                        ; fe 46 f8
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    inc byte [bp-010h]                        ; fe 46 f0
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0258dh                           ; 74 2d
+    je short 025c3h                           ; 74 30
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 025bdh                          ; 75 59
+    jne short 025f3h                          ; 75 5c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les di, [bp-022h]                         ; c4 7e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov di, word [bp-01ch]                    ; 8b 7e e4
     add di, ax                                ; 01 c7
     mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
@@ -2861,6 +2879,6 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a0e0h                               ; e8 59 7b
-    mov word [bp-024h], dx                    ; 89 56 dc
+    call 0a120h                               ; e8 63 7b
+    mov word [bp-01eh], dx                    ; 89 56 e2
     mov word [bp-032h], cx                    ; 89 4e ce
     mov al, byte [bp-001c3h]                  ; 8a 86 3d fe
@@ -2869,20 +2887,20 @@
     sal dx, 008h                              ; c1 e2 08
     mov al, byte [bp-001c4h]                  ; 8a 86 3c fe
-    or dx, ax                                 ; 09 c2
-    mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
-    jmp short 025adh                          ; eb 09
-    dec byte [bp-00eh]                        ; fe 4e f2
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jbe short 025b9h                          ; 76 0c
-    mov cl, byte [bp-00eh]                    ; 8a 4e f2
-    mov ax, strict word 00001h                ; b8 01 00
-    sal ax, CL                                ; d3 e0
-    test dx, ax                               ; 85 c2
-    je short 025a4h                           ; 74 eb
+    or ax, dx                                 ; 09 d0
+    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
+    jmp short 025e3h                          ; eb 09
+    dec byte [bp-00ch]                        ; fe 4e f4
+    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
+    jbe short 025efh                          ; 76 0c
+    mov cl, byte [bp-00ch]                    ; 8a 4e f4
+    mov dx, strict word 00001h                ; ba 01 00
+    sal dx, CL                                ; d3 e2
+    test ax, dx                               ; 85 d0
+    je short 025dah                           ; 74 eb
     xor di, di                                ; 31 ff
-    jmp short 025c4h                          ; eb 07
-    jmp short 025f3h                          ; eb 34
+    jmp short 025fah                          ; eb 07
+    jmp short 02629h                          ; eb 34
     cmp di, strict byte 00014h                ; 83 ff 14
-    jnl short 025d9h                          ; 7d 15
+    jnl short 0260fh                          ; 7d 15
     mov si, di                                ; 89 fe
     add si, di                                ; 01 fe
@@ -2892,35 +2910,35 @@
     mov byte [bp+si-063h], al                 ; 88 42 9d
     inc di                                    ; 47
-    jmp short 025bfh                          ; eb e6
+    jmp short 025f5h                          ; eb e6
     mov byte [bp-03ch], 000h                  ; c6 46 c4 00
     mov di, strict word 00027h                ; bf 27 00
-    jmp short 025e7h                          ; eb 05
+    jmp short 0261dh                          ; eb 05
     dec di                                    ; 4f
     test di, di                               ; 85 ff
-    jle short 025f3h                          ; 7e 0c
+    jle short 02629h                          ; 7e 0c
     cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
-    jne short 025f3h                          ; 75 06
+    jne short 02629h                          ; 75 06
     mov byte [bp+di-064h], 000h               ; c6 43 9c 00
-    jmp short 025e2h                          ; eb ef
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    jmp short 02618h                          ; eb ef
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 02657h                           ; 74 5d
+    je short 0268dh                           ; 74 5d
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 02605h                           ; 74 07
+    je short 0263bh                           ; 74 07
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 02662h                           ; 74 60
-    jmp near 026e3h                           ; e9 de 00
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 02610h                           ; 74 05
+    je short 02698h                           ; 74 60
+    jmp near 0271ch                           ; e9 e1 00
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 02646h                           ; 74 05
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02613h                          ; eb 03
+    jmp short 02649h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 001adh                               ; 68 ad 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 44 f3
+    call 01966h                               ; e8 0e f3
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -2929,33 +2947,33 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 0263fh                           ; 74 0e
+    je short 02675h                           ; 74 0e
     push ax                                   ; 50
     push 001b8h                               ; 68 b8 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 2c f3
+    call 01966h                               ; e8 f6 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 02627h                          ; eb e8
+    jmp short 0265dh                          ; eb e8
     push word [bp-032h]                       ; ff 76 ce
-    push word [bp-024h]                       ; ff 76 dc
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    push word [bp-01eh]                       ; ff 76 e2
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     push ax                                   ; 50
     push 001bbh                               ; 68 bb 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 15 f3
+    call 01966h                               ; e8 df f2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 026e3h                           ; e9 8c 00
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 02664h                           ; 74 07
+    jmp near 0271ch                           ; e9 8f 00
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 0269ah                           ; 74 07
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02667h                          ; eb 05
-    jmp short 026c3h                          ; eb 5f
+    jmp short 0269dh                          ; eb 05
+    jmp short 026fch                          ; eb 62
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 001adh                               ; 68 ad 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 f0 f2
+    call 01966h                               ; e8 ba f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -2964,46 +2982,47 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 02693h                           ; 74 0e
+    je short 026c9h                           ; 74 0e
     push ax                                   ; 50
     push 001b8h                               ; 68 b8 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 d8 f2
+    call 01966h                               ; e8 a2 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0267bh                          ; eb e8
+    jmp short 026b1h                          ; eb e8
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 026b0h                          ; 75 0b
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jne short 026e9h                          ; 75 0b
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 001dbh                               ; 68 db 01
-    jmp short 026b9h                          ; eb 09
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jmp short 026f2h                          ; eb 09
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 001f5h                               ; 68 f5 01
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 a8 f2
+    call 01966h                               ; e8 6f f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 026e3h                          ; eb 20
-    cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 026ceh                           ; 74 05
+    jmp short 0271ch                          ; eb 20
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
+    je short 02707h                           ; 74 05
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 026d1h                          ; eb 03
+    jmp short 0270ah                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov al, byte [bp-012h]                    ; 8a 46 ee
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     push 00207h                               ; 68 07 02
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 86 f2
+    call 01966h                               ; e8 4d f2
     add sp, strict byte 00008h                ; 83 c4 08
     inc byte [bp-00ah]                        ; fe 46 f6
     cmp byte [bp-00ah], 008h                  ; 80 7e f6 08
-    jnc short 0273eh                          ; 73 52
+    jnc short 0277ah                          ; 73 55
     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
@@ -3014,16 +3033,17 @@
     sar ax, 1                                 ; d1 f8
     mov cx, ax                                ; 89 c1
-    mov byte [bp-014h], al                    ; 88 46 ec
+    mov byte [bp-012h], al                    ; 88 46 ee
     mov ax, bx                                ; 89 d8
     cwd                                       ; 99
     mov bx, strict word 00002h                ; bb 02 00
     idiv bx                                   ; f7 fb
-    mov word [bp-02eh], dx                    ; 89 56 d2
-    mov al, byte [bp-02eh]                    ; 8a 46 d2
-    mov byte [bp-010h], al                    ; 88 46 f0
+    mov word [bp-034h], dx                    ; 89 56 cc
+    mov al, byte [bp-034h]                    ; 8a 46 cc
+    mov byte [bp-006h], al                    ; 88 46 fa
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
-    les bx, [bp-022h]                         ; c4 5e de
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     add bx, ax                                ; 01 c3
     mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
@@ -3034,19 +3054,20 @@
     mov AL, strict byte 00ah                  ; b0 0a
     out DX, AL                                ; ee
-    cmp byte [bp-02eh], 000h                  ; 80 7e d2 00
-    jne short 02738h                          ; 75 03
-    jmp near 0217ah                           ; e9 42 fa
+    cmp byte [bp-034h], 000h                  ; 80 7e cc 00
+    jne short 02774h                          ; 75 03
+    jmp near 0217ah                           ; e9 06 fa
     mov ax, 000b0h                            ; b8 b0 00
-    jmp near 0217dh                           ; e9 3f fa
-    mov al, byte [bp-012h]                    ; 8a 46 ee
-    les bx, [bp-022h]                         ; c4 5e de
+    jmp near 0217dh                           ; e9 03 fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov es, [bp-02eh]                         ; 8e 46 d2
+    mov bx, word [bp-01ch]                    ; 8b 5e e4
     mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
-    mov al, byte [bp-008h]                    ; 8a 46 f8
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
-    mov bl, byte [bp-012h]                    ; 8a 5e ee
+    mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 ff ee
+    call 0165eh                               ; e8 c0 ee
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3054,5 +3075,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ata_cmd_data_out_:                           ; 0xf2766 LB 0x28a
+ata_cmd_data_out_:                           ; 0xf27a5 LB 0x28a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3086,5 +3107,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 027c5h                           ; 74 0f
+    je short 02804h                           ; 74 0f
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3092,5 +3113,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 029e9h                           ; e9 24 02
+    jmp near 02a28h                           ; e9 24 02
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+006h]                 ; 26 8b 45 06
@@ -3114,6 +3135,6 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     test ax, ax                               ; 85 c0
-    je short 02810h                           ; 74 03
-    jmp near 028d7h                           ; e9 c7 00
+    je short 0284fh                           ; 74 03
+    jmp near 02916h                           ; e9 c7 00
     xor bx, bx                                ; 31 db
     xor dx, dx                                ; 31 d2
@@ -3124,12 +3145,12 @@
     adc dx, word [bp-00ch]                    ; 13 56 f4
     test dx, dx                               ; 85 d2
-    jnbe short 02837h                         ; 77 10
-    jne short 0289ah                          ; 75 71
+    jnbe short 02876h                         ; 77 10
+    jne short 028d9h                          ; 75 71
     test ax, ax                               ; 85 c0
-    jnbe short 02837h                         ; 77 0a
-    jne short 0289ah                          ; 75 6b
+    jnbe short 02876h                         ; 77 0a
+    jne short 028d9h                          ; 75 6b
     cmp bx, 01000h                            ; 81 fb 00 10
-    jnbe short 02837h                         ; 77 02
-    jne short 0289ah                          ; 75 63
+    jnbe short 02876h                         ; 77 02
+    jne short 028d9h                          ; 75 63
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -3137,5 +3158,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00018h                ; be 18 00
-    call 0a0e0h                               ; e8 97 78
+    call 0a120h                               ; e8 98 78
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3145,5 +3166,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00020h                ; be 20 00
-    call 0a0e0h                               ; e8 80 78
+    call 0a120h                               ; e8 81 78
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-022h]                    ; 8b 46 de
@@ -3179,5 +3200,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00008h                ; be 08 00
-    call 0a0e0h                               ; e8 2c 78
+    call 0a120h                               ; e8 2d 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-00eh], bx                    ; 89 5e f2
@@ -3186,5 +3207,5 @@
     mov word [bp-018h], dx                    ; 89 56 e8
     mov si, strict word 00010h                ; be 10 00
-    call 0a0e0h                               ; e8 17 78
+    call 0a120h                               ; e8 18 78
     mov word [bp-024h], dx                    ; 89 56 dc
     mov ax, dx                                ; 89 d0
@@ -3219,7 +3240,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 02919h                           ; 74 05
+    je short 02958h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 0291ch                          ; eb 03
+    jmp short 0295bh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dl, byte [bp-01ch]                    ; 8a 56 e4
@@ -3240,7 +3261,7 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02934h                          ; 75 f1
+    jne short 02973h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02956h                           ; 74 0f
+    je short 02995h                           ; 74 0f
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3248,7 +3269,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 029e9h                           ; e9 93 00
+    jmp near 02a28h                           ; e9 93 00
     test bl, 008h                             ; f6 c3 08
-    jne short 0296ah                          ; 75 0f
+    jne short 029a9h                          ; 75 0f
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3256,9 +3277,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 029e9h                           ; e9 7f 00
+    jmp near 02a28h                           ; e9 7f 00
     sti                                       ; fb
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, 0f800h                            ; 3d 00 f8
-    jc short 02983h                           ; 72 10
+    jc short 029c2h                           ; 72 10
     sub ax, 00800h                            ; 2d 00 08
     mov dx, word [bp-012h]                    ; 8b 56 ee
@@ -3283,10 +3304,10 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 0299fh                          ; 75 f1
+    jne short 029deh                          ; 75 f1
     cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
-    jne short 029c8h                          ; 75 14
+    jne short 02a07h                          ; 75 14
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 029deh                           ; 74 24
+    je short 02a1dh                           ; 74 24
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3294,9 +3315,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 029e9h                          ; eb 21
+    jmp short 02a28h                          ; eb 21
     mov al, bl                                ; 88 d8
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 0296bh                           ; 74 9b
+    je short 029aah                           ; 74 9b
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3304,5 +3325,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00007h                ; b8 07 00
-    jmp short 029e9h                          ; eb 0b
+    jmp short 02a28h                          ; eb 0b
     mov dx, word [bp-01ah]                    ; 8b 56 e6
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3315,5 +3336,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ata_read_sectors:                           ; 0xf29f0 LB 0xb5
+@ata_read_sectors:                           ; 0xf2a2f LB 0xb5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3328,5 +3349,5 @@
     sal dx, 009h                              ; c1 e2 09
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02a31h                           ; 74 1f
+    je short 02a70h                           ; 74 1f
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -3338,7 +3359,7 @@
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 37 f4
+    call 01e63h                               ; e8 f8 f3
     mov es, [bp-00ch]                         ; 8e 46 f4
-    jmp short 02a96h                          ; eb 65
+    jmp short 02ad5h                          ; eb 65
     xor bx, bx                                ; 31 db
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -3355,17 +3376,17 @@
     adc di, word [bp-006h]                    ; 13 7e fa
     test di, di                               ; 85 ff
-    jnbe short 02a6dh                         ; 77 11
-    jne short 02a79h                          ; 75 1b
+    jnbe short 02aach                         ; 77 11
+    jne short 02ab8h                          ; 75 1b
     test bx, bx                               ; 85 db
-    jnbe short 02a6dh                         ; 77 0b
-    jne short 02a79h                          ; 75 15
+    jnbe short 02aach                         ; 77 0b
+    jne short 02ab8h                          ; 75 15
     cmp word [bp-008h], 01000h                ; 81 7e f8 00 10
-    jnbe short 02a6dh                         ; 77 02
-    jne short 02a79h                          ; 75 0c
+    jnbe short 02aach                         ; 77 02
+    jne short 02ab8h                          ; 75 0c
     mov bx, strict word 00024h                ; bb 24 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 ec f3
-    jmp short 02a9ch                          ; eb 23
+    call 01e63h                               ; e8 ad f3
+    jmp short 02adbh                          ; eb 23
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -3377,5 +3398,5 @@
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e63h                               ; e8 d0 f3
+    call 01e63h                               ; e8 91 f3
     mov es, [bp-006h]                         ; 8e 46 fa
     mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
@@ -3385,5 +3406,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ata_write_sectors:                          ; 0xf2aa5 LB 0x5b
+@ata_write_sectors:                          ; 0xf2ae4 LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3394,10 +3415,10 @@
     mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02ac5h                           ; 74 0c
+    je short 02b04h                           ; 74 0c
     mov bx, strict word 00030h                ; bb 30 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 02766h                               ; e8 a3 fc
-    jmp short 02af7h                          ; eb 32
+    call 027a5h                               ; e8 a3 fc
+    jmp short 02b36h                          ; eb 32
     xor ax, ax                                ; 31 c0
     xor bx, bx                                ; 31 db
@@ -3410,14 +3431,14 @@
     adc dx, word [es:si+006h]                 ; 26 13 54 06
     test dx, dx                               ; 85 d2
-    jnbe short 02af2h                         ; 77 0f
-    jne short 02ab9h                          ; 75 d4
+    jnbe short 02b31h                         ; 77 0f
+    jne short 02af8h                          ; 75 d4
     test bx, bx                               ; 85 db
-    jnbe short 02af2h                         ; 77 09
-    jne short 02ab9h                          ; 75 ce
+    jnbe short 02b31h                         ; 77 09
+    jne short 02af8h                          ; 75 ce
     cmp ax, 01000h                            ; 3d 00 10
-    jnbe short 02af2h                         ; 77 02
-    jne short 02ab9h                          ; 75 c7
+    jnbe short 02b31h                         ; 77 02
+    jne short 02af8h                          ; 75 c7
     mov bx, strict word 00034h                ; bb 34 00
-    jmp short 02abch                          ; eb c5
+    jmp short 02afbh                          ; eb c5
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3425,5 +3446,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ata_cmd_packet_:                             ; 0xf2b00 LB 0x289
+ata_cmd_packet_:                             ; 0xf2b3f LB 0x289
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3436,5 +3457,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 55 eb
+    call 0166ch                               ; e8 16 eb
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-012h], ax                    ; 89 46 ee
@@ -3445,18 +3466,18 @@
     mov byte [bp-008h], ah                    ; 88 66 f8
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 02b52h                          ; 75 1f
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 02b91h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 e5 ed
+    call 01923h                               ; e8 a6 ed
     push 00221h                               ; 68 21 02
     push 00230h                               ; 68 30 02
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 1d ee
+    call 01966h                               ; e8 de ed
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02d80h                           ; e9 2e 02
+    jmp near 02dbfh                           ; e9 2e 02
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 02b4ch                          ; 75 f4
+    jne short 02b8bh                          ; 75 f4
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
@@ -3473,8 +3494,8 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jnc short 02b8ah                          ; 73 06
+    jnc short 02bc9h                          ; 73 06
     mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
-    jmp short 02b90h                          ; eb 06
-    jbe short 02b90h                          ; 76 04
+    jmp short 02bcfh                          ; eb 06
+    jbe short 02bcfh                          ; 76 04
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
     shr byte [bp-006h], 1                     ; d0 6e fa
@@ -3490,7 +3511,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02bbeh                           ; 74 06
+    je short 02bfdh                           ; 74 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02d80h                           ; e9 c2 01
+    jmp near 02dbfh                           ; e9 c2 01
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3506,7 +3527,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02be4h                           ; 74 05
+    je short 02c23h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02be7h                          ; eb 03
+    jmp short 02c26h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
@@ -3524,7 +3545,7 @@
     mov bx, ax                                ; 89 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02bf7h                          ; 75 f1
+    jne short 02c36h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02c19h                           ; 74 0f
+    je short 02c58h                           ; 74 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3532,7 +3553,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02d80h                           ; e9 67 01
+    jmp near 02dbfh                           ; e9 67 01
     test AL, strict byte 008h                 ; a8 08
-    jne short 02c2ch                          ; 75 0f
+    jne short 02c6bh                          ; 75 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3540,5 +3561,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 02d80h                           ; e9 54 01
+    jmp near 02dbfh                           ; e9 54 01
     sti                                       ; fb
     mov ax, si                                ; 89 f0
@@ -3553,10 +3574,10 @@
     ; rep es outsw                              ; f3 26 6f
     cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
-    jne short 02c53h                          ; 75 09
+    jne short 02c92h                          ; 75 09
     add dx, strict byte 00007h                ; 83 c2 07
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp near 02d63h                           ; e9 10 01
+    jmp near 02da2h                           ; e9 10 01
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     add dx, strict byte 00007h                ; 83 c2 07
@@ -3566,22 +3587,22 @@
     mov bx, ax                                ; 89 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02c53h                          ; 75 f1
+    jne short 02c92h                          ; 75 f1
     test AL, strict byte 088h                 ; a8 88
-    je short 02cc6h                           ; 74 60
+    je short 02d05h                           ; 74 60
     test AL, strict byte 001h                 ; a8 01
-    je short 02c75h                           ; 74 0b
+    je short 02cb4h                           ; 74 0b
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02c13h                          ; eb 9e
+    jmp short 02c52h                          ; eb 9e
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02c86h                           ; 74 0b
+    je short 02cc5h                           ; 74 0b
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02c26h                          ; eb a0
+    jmp short 02c65h                          ; eb a0
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     shr ax, 004h                              ; c1 e8 04
@@ -3607,10 +3628,10 @@
     mov ax, word [bp+004h]                    ; 8b 46 04
     cmp bx, ax                                ; 39 c3
-    jnc short 02cc9h                          ; 73 0c
+    jnc short 02d08h                          ; 73 0c
     mov cx, bx                                ; 89 d9
     sub word [bp+004h], bx                    ; 29 5e 04
     xor bx, bx                                ; 31 db
-    jmp short 02cd2h                          ; eb 0c
-    jmp near 02d63h                           ; e9 9a 00
+    jmp short 02d11h                          ; eb 0c
+    jmp near 02da2h                           ; e9 9a 00
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -3618,7 +3639,7 @@
     xor ax, ax                                ; 31 c0
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 02cf0h                          ; 75 16
+    jne short 02d2fh                          ; 75 16
     cmp bx, word [bp+006h]                    ; 3b 5e 06
-    jbe short 02cf0h                          ; 76 11
+    jbe short 02d2fh                          ; 76 11
     sub bx, word [bp+006h]                    ; 2b 5e 06
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -3626,5 +3647,5 @@
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 02cf9h                          ; eb 09
+    jmp short 02d38h                          ; eb 09
     mov word [bp-00ch], ax                    ; 89 46 f4
     sub word [bp+006h], bx                    ; 29 5e 06
@@ -3635,10 +3656,10 @@
     test byte [bp-00ch], 003h                 ; f6 46 f4 03
     test bl, 001h                             ; f6 c3 01
-    je short 02d1ah                           ; 74 10
+    je short 02d59h                           ; 74 10
     inc bx                                    ; 43
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    jbe short 02d1ah                          ; 76 09
+    jbe short 02d59h                          ; 76 09
     test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je short 02d1ah                           ; 74 03
+    je short 02d59h                           ; 74 03
     dec word [bp-00ch]                        ; ff 4e f4
     shr bx, 1                                 ; d1 eb
@@ -3646,8 +3667,8 @@
     shr word [bp-00ch], 1                     ; d1 6e f4
     test cx, cx                               ; 85 c9
-    je short 02d2bh                           ; 74 06
+    je short 02d6ah                           ; 74 06
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     in ax, DX                                 ; ed
-    loop 02d28h                               ; e2 fd
+    loop 02d67h                               ; e2 fd
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov cx, bx                                ; 89 d9
@@ -3656,8 +3677,8 @@
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     test ax, ax                               ; 85 c0
-    je short 02d41h                           ; 74 05
+    je short 02d80h                           ; 74 05
     mov cx, ax                                ; 89 c1
     in ax, DX                                 ; ed
-    loop 02d3eh                               ; e2 fd
+    loop 02d7dh                               ; e2 fd
     add word [bp+00ch], si                    ; 01 76 0c
     xor ax, ax                                ; 31 c0
@@ -3670,13 +3691,13 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
-    jmp near 02c53h                           ; e9 f0 fe
+    jmp near 02c92h                           ; e9 f0 fe
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02d75h                           ; 74 0c
+    je short 02db4h                           ; 74 0c
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp near 02c26h                           ; e9 b1 fe
+    jmp near 02c65h                           ; e9 b1 fe
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3689,5 +3710,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ata_soft_reset_:                             ; 0xf2d89 LB 0x80
+ata_soft_reset_:                             ; 0xf2dc8 LB 0x80
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3699,5 +3720,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 d1 e8
+    call 0166ch                               ; e8 92 e8
     mov dx, bx                                ; 89 da
     shr dx, 1                                 ; d1 ea
@@ -3714,7 +3735,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02dcbh                           ; 74 05
+    je short 02e0ah                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02dceh                          ; eb 03
+    jmp short 02e0dh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, cx                                ; 89 ca
@@ -3731,13 +3752,13 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    jne short 02ddch                          ; 75 f4
+    jne short 02e1bh                          ; 75 f4
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02df9h                           ; 74 0b
+    je short 02e38h                           ; 74 0b
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02e01h                          ; eb 08
+    jmp short 02e40h                          ; eb 08
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
@@ -3750,5 +3771,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_current_cyl_:                   ; 0xf2e09 LB 0x2b
+set_diskette_current_cyl_:                   ; 0xf2e48 LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3756,8 +3777,8 @@
     mov dh, al                                ; 88 c6
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 02e1eh                          ; 76 0b
+    jbe short 02e5dh                          ; 76 0b
     push 00250h                               ; 68 50 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 4b eb
+    call 01966h                               ; e8 0c eb
     add sp, strict byte 00004h                ; 83 c4 04
     mov bl, dh                                ; 88 f3
@@ -3771,5 +3792,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_:                  ; 0xf2e34 LB 0x23
+floppy_wait_for_interrupt_:                  ; 0xf2e73 LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3781,16 +3802,16 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 080h                 ; a8 80
-    je short 02e4ch                           ; 74 04
+    je short 02e8bh                           ; 74 04
     and AL, strict byte 080h                  ; 24 80
-    jmp short 02e51h                          ; eb 05
+    jmp short 02e90h                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02e39h                          ; eb e8
+    jmp short 02e78h                          ; eb e8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e57 LB 0x38
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2e96 LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3801,7 +3822,7 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test al, al                               ; 84 c0
-    jne short 02e6bh                          ; 75 03
+    jne short 02eaah                          ; 75 03
     sti                                       ; fb
-    jmp short 02e89h                          ; eb 1e
+    jmp short 02ec8h                          ; eb 1e
     mov bx, strict word 0003eh                ; bb 3e 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -3809,18 +3830,18 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 080h                 ; a8 80
-    je short 02e84h                           ; 74 0a
+    je short 02ec3h                           ; 74 0a
     mov ah, al                                ; 88 c4
     and ah, 07fh                              ; 80 e4 7f
     mov byte [es:bx], ah                      ; 26 88 27
-    jmp short 02e89h                          ; eb 05
+    jmp short 02ec8h                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02e5ch                          ; eb d3
+    jmp short 02e9bh                          ; eb d3
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_reset_controller_:                    ; 0xf2e8f LB 0x3f
+floppy_reset_controller_:                    ; 0xf2ece LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3845,5 +3866,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02ea7h                          ; 75 f4
+    jne short 02ee6h                          ; 75 f4
     mov bx, cx                                ; 89 cb
     add bx, 00090h                            ; 81 c3 90 00
@@ -3859,5 +3880,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_prepare_controller_:                  ; 0xf2ece LB 0x74
+floppy_prepare_controller_:                  ; 0xf2f0d LB 0x74
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3880,7 +3901,7 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     test cx, cx                               ; 85 c9
-    je short 02efah                           ; 74 04
+    je short 02f39h                           ; 74 04
     mov AL, strict byte 020h                  ; b0 20
-    jmp short 02efch                          ; eb 02
+    jmp short 02f3bh                          ; eb 02
     mov AL, strict byte 010h                  ; b0 10
     or AL, strict byte 00ch                   ; 0c 0c
@@ -3902,8 +3923,8 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02f1ah                          ; 75 f4
+    jne short 02f59h                          ; 75 f4
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 02f3ah                          ; 75 0e
-    call 02e34h                               ; e8 05 ff
+    jne short 02f79h                          ; 75 0e
+    call 02e73h                               ; e8 05 ff
     mov bx, strict word 0003eh                ; bb 3e 00
     mov dx, strict word 00040h                ; ba 40 00
@@ -3916,5 +3937,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_known_:                         ; 0xf2f42 LB 0x49
+floppy_media_known_:                         ; 0xf2f81 LB 0x49
     push bx                                   ; 53
     push dx                                   ; 52
@@ -3927,13 +3948,13 @@
     mov bl, bh                                ; 88 fb
     test ax, ax                               ; 85 c0
-    je short 02f5ah                           ; 74 02
+    je short 02f99h                           ; 74 02
     shr bl, 1                                 ; d0 eb
     and bl, 001h                              ; 80 e3 01
-    jne short 02f63h                          ; 75 04
+    jne short 02fa2h                          ; 75 04
     xor bh, bh                                ; 30 ff
-    jmp short 02f85h                          ; eb 22
+    jmp short 02fc4h                          ; eb 22
     mov bx, 00090h                            ; bb 90 00
     test ax, ax                               ; 85 c0
-    je short 02f6dh                           ; 74 03
+    je short 02fach                           ; 74 03
     mov bx, 00091h                            ; bb 91 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -3943,7 +3964,7 @@
     sar ax, 004h                              ; c1 f8 04
     and AL, strict byte 001h                  ; 24 01
-    jne short 02f82h                          ; 75 04
+    jne short 02fc1h                          ; 75 04
     xor bx, bx                                ; 31 db
-    jmp short 02f85h                          ; eb 03
+    jmp short 02fc4h                          ; eb 03
     mov bx, strict word 00001h                ; bb 01 00
     mov ax, bx                                ; 89 d8
@@ -3952,5 +3973,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-floppy_read_id_:                             ; 0xf2f8b LB 0x52
+floppy_read_id_:                             ; 0xf2fca LB 0x52
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3959,5 +3980,5 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 02eceh                               ; e8 38 ff
+    call 02f0dh                               ; e8 38 ff
     mov AL, strict byte 04ah                  ; b0 4a
     mov dx, 003f5h                            ; ba f5 03
@@ -3965,9 +3986,9 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02e34h                               ; e8 92 fe
+    call 02e73h                               ; e8 92 fe
     xor bx, bx                                ; 31 db
-    jmp short 02fabh                          ; eb 05
+    jmp short 02feah                          ; eb 05
     cmp bx, strict byte 00007h                ; 83 fb 07
-    jnl short 02fbfh                          ; 7d 14
+    jnl short 02ffeh                          ; 7d 14
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -3979,5 +4000,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc bx                                    ; 43
-    jmp short 02fa6h                          ; eb e7
+    jmp short 02fe5h                          ; eb e7
     mov bx, strict word 00042h                ; bb 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -3985,7 +4006,7 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 02fd2h                           ; 74 04
+    je short 03011h                           ; 74 04
     xor ax, ax                                ; 31 c0
-    jmp short 02fd5h                          ; eb 03
+    jmp short 03014h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -3995,5 +4016,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_recal_:                         ; 0xf2fdd LB 0x41
+floppy_drive_recal_:                         ; 0xf301c LB 0x41
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4002,5 +4023,5 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 02eceh                               ; e8 e6 fe
+    call 02f0dh                               ; e8 e6 fe
     mov AL, strict byte 007h                  ; b0 07
     mov dx, 003f5h                            ; ba f5 03
@@ -4008,10 +4029,10 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02e34h                               ; e8 40 fe
+    call 02e73h                               ; e8 40 fe
     test bx, bx                               ; 85 db
-    je short 02fffh                           ; 74 07
+    je short 0303eh                           ; 74 07
     or AL, strict byte 002h                   ; 0c 02
     mov bx, 00095h                            ; bb 95 00
-    jmp short 03004h                          ; eb 05
+    jmp short 03043h                          ; eb 05
     or AL, strict byte 001h                   ; 0c 01
     mov bx, 00094h                            ; bb 94 00
@@ -4028,5 +4049,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_sense_:                         ; 0xf301e LB 0xe6
+floppy_media_sense_:                         ; 0xf305d LB 0xe6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4037,49 +4058,49 @@
     push di                                   ; 57
     mov cx, ax                                ; 89 c1
-    call 02fddh                               ; e8 b2 ff
+    call 0301ch                               ; e8 b2 ff
     test ax, ax                               ; 85 c0
-    jne short 03034h                          ; 75 05
+    jne short 03073h                          ; 75 05
     xor dx, dx                                ; 31 d2
-    jmp near 030f8h                           ; e9 c4 00
+    jmp near 03137h                           ; e9 c4 00
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 72 e6
+    call 016ach                               ; e8 33 e6
     test cx, cx                               ; 85 c9
-    jne short 03045h                          ; 75 07
+    jne short 03084h                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 0304ah                          ; eb 05
+    jmp short 03089h                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     cmp dl, 001h                              ; 80 fa 01
-    jne short 03058h                          ; 75 09
+    jne short 03097h                          ; 75 09
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 015h                  ; b6 15
     mov bx, strict word 00001h                ; bb 01 00
-    jmp short 03096h                          ; eb 3e
+    jmp short 030d5h                          ; eb 3e
     cmp dl, 002h                              ; 80 fa 02
-    jne short 03063h                          ; 75 06
+    jne short 030a2h                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 035h                  ; b6 35
-    jmp short 03053h                          ; eb f0
+    jmp short 03092h                          ; eb f0
     cmp dl, 003h                              ; 80 fa 03
-    jne short 0306eh                          ; 75 06
+    jne short 030adh                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 017h                  ; b6 17
-    jmp short 03053h                          ; eb e5
+    jmp short 03092h                          ; eb e5
     cmp dl, 004h                              ; 80 fa 04
-    jne short 03079h                          ; 75 06
+    jne short 030b8h                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 017h                  ; b6 17
-    jmp short 03053h                          ; eb da
+    jmp short 03092h                          ; eb da
     cmp dl, 005h                              ; 80 fa 05
-    jne short 03084h                          ; 75 06
+    jne short 030c3h                          ; 75 06
     mov DL, strict byte 0cch                  ; b2 cc
     mov DH, strict byte 0d7h                  ; b6 d7
-    jmp short 03053h                          ; eb cf
+    jmp short 03092h                          ; eb cf
     cmp dl, 00eh                              ; 80 fa 0e
-    je short 0308eh                           ; 74 05
+    je short 030cdh                           ; 74 05
     cmp dl, 00fh                              ; 80 fa 0f
-    jne short 03090h                          ; 75 02
-    jmp short 0307eh                          ; eb ee
+    jne short 030cfh                          ; 75 02
+    jmp short 030bdh                          ; eb ee
     xor dl, dl                                ; 30 d2
     xor dh, dh                                ; 30 f6
@@ -4090,34 +4111,34 @@
     mov byte [es:si], dl                      ; 26 88 14
     mov ax, cx                                ; 89 c8
-    call 02f8bh                               ; e8 e5 fe
+    call 02fcah                               ; e8 e5 fe
     test ax, ax                               ; 85 c0
-    jne short 030dch                          ; 75 32
+    jne short 0311bh                          ; 75 32
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    je short 030dch                           ; 74 2a
+    je short 0311bh                           ; 74 2a
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 030c9h                           ; 74 0f
+    je short 03108h                           ; 74 0f
     mov ah, dl                                ; 88 d4
     and ah, 03fh                              ; 80 e4 3f
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 030d5h                           ; 74 12
+    je short 03114h                           ; 74 12
     test al, al                               ; 84 c0
-    je short 030ceh                           ; 74 07
-    jmp short 03096h                          ; eb cd
+    je short 0310dh                           ; 74 07
+    jmp short 030d5h                          ; eb cd
     and dl, 03fh                              ; 80 e2 3f
-    jmp short 03096h                          ; eb c8
+    jmp short 030d5h                          ; eb c8
     mov dl, ah                                ; 88 e2
     or dl, 040h                               ; 80 ca 40
-    jmp short 03096h                          ; eb c1
+    jmp short 030d5h                          ; eb c1
     mov dl, ah                                ; 88 e2
     or dl, 080h                               ; 80 ca 80
-    jmp short 03096h                          ; eb ba
+    jmp short 030d5h                          ; eb ba
     test cx, cx                               ; 85 c9
-    jne short 030e5h                          ; 75 05
+    jne short 03124h                          ; 75 05
     mov si, 00090h                            ; be 90 00
-    jmp short 030e8h                          ; eb 03
+    jmp short 03127h                          ; eb 03
     mov si, 00091h                            ; be 91 00
     mov di, 0008bh                            ; bf 8b 00
@@ -4136,5 +4157,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_exists_:                        ; 0xf3104 LB 0x4b
+floppy_drive_exists_:                        ; 0xf3143 LB 0x4b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4142,14 +4163,14 @@
     mov dx, ax                                ; 89 c2
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 9c e5
+    call 016ach                               ; e8 5d e5
     test dx, dx                               ; 85 d2
-    jne short 03119h                          ; 75 05
+    jne short 03158h                          ; 75 05
     shr al, 004h                              ; c0 e8 04
-    jmp short 0311bh                          ; eb 02
+    jmp short 0315ah                          ; eb 02
     and AL, strict byte 00fh                  ; 24 0f
     test al, al                               ; 84 c0
-    je short 03124h                           ; 74 05
+    je short 03163h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 03126h                          ; eb 02
+    jmp short 03165h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -4162,18 +4183,21 @@
     add AL, strict byte 003h                  ; 04 03
     add al, byte [bx+di]                      ; 02 01
-    add dl, bh                                ; 00 fa
-    cmp cl, byte [di+00e31h]                  ; 3a 8d 31 0e
-    xor ch, byte [bx]                         ; 32 2f
-    xor ch, byte [bx]                         ; 32 2f
-    xor ch, byte [bx]                         ; 32 2f
-    db  032h, 0e3h
-    ; xor ah, bl                                ; 32 e3
-    xor ax, 037adh                            ; 35 ad 37
-    wait                                      ; 9b
-    cmp ch, bl                                ; 38 dd
-    cmp byte [bx+di], dl                      ; 38 11
+    add byte [bx+di], bh                      ; 00 39
+    db  03bh, 0cch
+    ; cmp cx, sp                                ; 3b cc
+    xor word [di+032h], cx                    ; 31 4d 32
+    outsb                                     ; 6e
+    xor ch, byte [bp+032h]                    ; 32 6e 32
+    outsb                                     ; 6e
+    xor ah, byte [bp+si]                      ; 32 22
+    db  036h, 0ech
+    ; ss in AL, DX                              ; 36 ec
+    aaa                                       ; 37
+    fidivr dword [bx+si]                      ; da 38
+    sbb AL, strict byte 039h                  ; 1c 39
+    push ax                                   ; 50
+    cmp sp, ax                                ; 39 c4
     db  039h
-    test word [bx+di], di                     ; 85 39
-_int13_diskette_function:                    ; 0xf314f LB 0x9ce
+_int13_diskette_function:                    ; 0xf318e LB 0x9ce
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4183,13 +4207,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00018h                ; 3d 18 00
-    jnbe short 031c0h                         ; 77 5c
+    jnbe short 031ffh                         ; 77 5c
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 0312ch                            ; bf 2c 31
+    mov di, 0316bh                            ; bf 6b 31
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov di, word [cs:di+03137h]               ; 2e 8b bd 37 31
+    mov di, word [cs:di+03176h]               ; 2e 8b bd 76 31
     mov dx, word [bp+016h]                    ; 8b 56 16
     xor dh, dh                                ; 30 f6
@@ -4202,5 +4226,5 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jbe short 031afh                          ; 76 1a
+    jbe short 031eeh                          ; 76 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4211,17 +4235,17 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 001h                    ; 26 c6 07 01
-    jmp near 039e7h                           ; e9 38 08
+    jmp near 03a26h                           ; e9 38 08
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 f7 e4
+    call 016ach                               ; e8 b8 e4
     test bl, bl                               ; 84 db
-    jne short 031c3h                          ; 75 0a
+    jne short 03202h                          ; 75 0a
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 031c8h                          ; eb 08
-    jmp near 03afah                           ; e9 37 09
+    jmp short 03207h                          ; eb 08
+    jmp near 03b39h                           ; e9 37 09
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     test dl, dl                               ; 84 d2
-    jne short 031e6h                          ; 75 1a
+    jne short 03225h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4232,5 +4256,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 039e7h                           ; e9 01 08
+    jmp near 03a26h                           ; e9 01 08
     mov si, strict word 0003eh                ; be 3e 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4245,5 +4269,5 @@
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02e09h                               ; e8 ff fb
+    call 02e48h                               ; e8 ff fb
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -4260,6 +4284,6 @@
     mov word [bp+016h], dx                    ; 89 56 16
     test bl, bl                               ; 84 db
-    je short 0320ah                           ; 74 de
-    jmp near 039e7h                           ; e9 b8 07
+    je short 03249h                           ; 74 de
+    jmp near 03a26h                           ; e9 b8 07
     mov bh, byte [bp+016h]                    ; 8a 7e 16
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -4273,19 +4297,19 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 0325fh                         ; 77 0d
+    jnbe short 0329eh                         ; 77 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 0325fh                         ; 77 09
+    jnbe short 0329eh                         ; 77 09
     test bh, bh                               ; 84 ff
-    je short 0325fh                           ; 74 05
+    je short 0329eh                           ; 74 05
     cmp bh, 048h                              ; 80 ff 48
-    jbe short 03292h                          ; 76 33
-    mov bx, 00da4h                            ; bb a4 0d
+    jbe short 032d1h                          ; 76 33
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 b9 e6
+    call 01923h                               ; e8 7a e6
     push 00275h                               ; 68 75 02
     push 0028dh                               ; 68 8d 02
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 f1 e6
+    call 01966h                               ; e8 b2 e6
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -4297,10 +4321,10 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 001h                    ; 26 c6 07 01
-    jmp near 0333ch                           ; e9 aa 00
+    jmp near 0337bh                           ; e9 aa 00
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 03104h                               ; e8 6b fe
+    call 03143h                               ; e8 6b fe
     test ax, ax                               ; 85 c0
-    jne short 032b7h                          ; 75 1a
+    jne short 032f6h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4311,15 +4335,15 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 0333ch                           ; e9 85 00
+    jmp near 0337bh                           ; e9 85 00
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02f42h                               ; e8 82 fc
+    call 02f81h                               ; e8 82 fc
     test ax, ax                               ; 85 c0
-    jne short 032eah                          ; 75 26
+    jne short 03329h                          ; 75 26
     mov ax, cx                                ; 89 c8
-    call 0301eh                               ; e8 55 fd
+    call 0305dh                               ; e8 55 fd
     test ax, ax                               ; 85 c0
-    jne short 032eah                          ; 75 1d
+    jne short 03329h                          ; 75 1d
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4331,9 +4355,9 @@
     mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     mov byte [bp+016h], ch                    ; 88 6e 16
-    jmp near 039e7h                           ; e9 fd 06
+    jmp near 03a26h                           ; e9 fd 06
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00002h                ; 3d 02 00
-    jne short 03343h                          ; 75 4e
+    jne short 03382h                          ; 75 4e
     mov dx, word [bp+006h]                    ; 8b 56 06
     shr dx, 00ch                              ; c1 ea 0c
@@ -4345,5 +4369,5 @@
     mov word [bp-008h], si                    ; 89 76 f8
     cmp cx, si                                ; 39 f1
-    jbe short 03311h                          ; 76 02
+    jbe short 03350h                          ; 76 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
@@ -4356,5 +4380,5 @@
     add dx, cx                                ; 01 ca
     cmp dx, word [bp-008h]                    ; 3b 56 f8
-    jnc short 03346h                          ; 73 21
+    jnc short 03385h                          ; 73 21
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4366,6 +4390,6 @@
     mov byte [es:bx], 009h                    ; 26 c6 07 09
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 039e7h                           ; e9 a4 06
-    jmp near 03493h                           ; e9 4d 01
+    jmp near 03a26h                           ; e9 a4 06
+    jmp near 034d2h                           ; e9 4d 01
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4403,5 +4427,5 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02eceh                               ; e8 3c fb
+    call 02f0dh                               ; e8 3c fb
     mov AL, strict byte 0e6h                  ; b0 e6
     mov dx, 003f5h                            ; ba f5 03
@@ -4435,9 +4459,9 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02e57h                               ; e8 85 fa
+    call 02e96h                               ; e8 85 fa
     test al, al                               ; 84 c0
-    jne short 033f5h                          ; 75 1f
+    jne short 03434h                          ; 75 1f
     mov ax, cx                                ; 89 c8
-    call 02e8fh                               ; e8 b4 fa
+    call 02eceh                               ; e8 b4 fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4448,5 +4472,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 032e4h                           ; e9 ef fe
+    jmp near 03323h                           ; e9 ef fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4455,14 +4479,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 0340fh                           ; 74 0e
+    je short 0344eh                           ; 74 0e
     push 00275h                               ; 68 75 02
     push 002a8h                               ; 68 a8 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 5a e5
+    call 01966h                               ; e8 1b e5
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 03418h                          ; eb 05
+    jmp short 03457h                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 0342eh                          ; 7d 16
+    jnl short 0346dh                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4475,5 +4499,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 03413h                          ; eb e5
+    jmp short 03452h                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4481,8 +4505,8 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 0345eh                           ; 74 21
+    je short 0349dh                           ; 74 21
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 02e8fh                               ; e8 4b fa
+    call 02eceh                               ; e8 4b fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4493,5 +4517,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 020h                    ; 26 c6 07 20
-    jmp near 0333ch                           ; e9 de fe
+    jmp near 0337bh                           ; e9 de fe
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -4514,13 +4538,13 @@
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 02e09h                               ; e8 81 f9
+    call 02e48h                               ; e8 81 f9
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp near 0320ah                           ; e9 77 fd
+    jmp near 03249h                           ; e9 77 fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 034a1h                           ; 74 03
-    jmp near 035cch                           ; e9 2b 01
+    je short 034e0h                           ; 74 03
+    jmp near 0360bh                           ; e9 2b 01
     mov cx, word [bp+006h]                    ; 8b 4e 06
     shr cx, 00ch                              ; c1 e9 0c
@@ -4532,5 +4556,5 @@
     mov word [bp-008h], si                    ; 89 76 f8
     cmp dx, si                                ; 39 f2
-    jbe short 034bdh                          ; 76 02
+    jbe short 034fch                          ; 76 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
@@ -4543,6 +4567,6 @@
     add dx, cx                                ; 01 ca
     cmp dx, word [bp-008h]                    ; 3b 56 f8
-    jnc short 034d4h                          ; 73 03
-    jmp near 03325h                           ; e9 51 fe
+    jnc short 03513h                          ; 73 03
+    jmp near 03364h                           ; e9 51 fe
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4580,5 +4604,5 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02eceh                               ; e8 ae f9
+    call 02f0dh                               ; e8 ae f9
     mov AL, strict byte 0c5h                  ; b0 c5
     mov dx, 003f5h                            ; ba f5 03
@@ -4612,8 +4636,8 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02e57h                               ; e8 f7 f8
+    call 02e96h                               ; e8 f7 f8
     test al, al                               ; 84 c0
-    jne short 03567h                          ; 75 03
-    jmp near 033d6h                           ; e9 6f fe
+    jne short 035a6h                          ; 75 03
+    jmp near 03415h                           ; e9 6f fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4622,14 +4646,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03581h                           ; 74 0e
+    je short 035c0h                           ; 74 0e
     push 00275h                               ; 68 75 02
     push 002a8h                               ; 68 a8 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 e8 e3
+    call 01966h                               ; e8 a9 e3
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 0358ah                          ; eb 05
+    jmp short 035c9h                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 035a0h                          ; 7d 16
+    jnl short 035dfh                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4642,5 +4666,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 03585h                          ; eb e5
+    jmp short 035c4h                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4648,22 +4672,22 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    jne short 035b2h                          ; 75 03
-    jmp near 0347ch                           ; e9 ca fe
+    jne short 035f1h                          ; 75 03
+    jmp near 034bbh                           ; e9 ca fe
     mov bx, strict word 00043h                ; bb 43 00
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 002h                 ; a8 02
-    je short 035c4h                           ; 74 08
+    je short 03603h                           ; 74 08
     mov word [bp+016h], 00300h                ; c7 46 16 00 03
-    jmp near 039e7h                           ; e9 23 04
+    jmp near 03a26h                           ; e9 23 04
     mov word [bp+016h], 00100h                ; c7 46 16 00 01
-    jmp near 039e7h                           ; e9 1b 04
+    jmp near 03a26h                           ; e9 1b 04
     mov dl, byte [bp-004h]                    ; 8a 56 fc
     xor dh, dh                                ; 30 f6
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 02e09h                               ; e8 31 f8
+    call 02e48h                               ; e8 31 f8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 0320ah                           ; e9 27 fc
+    jmp near 03249h                           ; e9 27 fc
     mov bh, byte [bp+016h]                    ; 8a 7e 16
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -4675,13 +4699,13 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 03612h                         ; 77 12
+    jnbe short 03651h                         ; 77 12
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 03612h                         ; 77 0d
+    jnbe short 03651h                         ; 77 0d
     cmp AL, strict byte 04fh                  ; 3c 4f
-    jnbe short 03612h                         ; 77 09
+    jnbe short 03651h                         ; 77 09
     test bh, bh                               ; 84 ff
-    je short 03612h                           ; 74 05
+    je short 03651h                           ; 74 05
     cmp bh, 012h                              ; 80 ff 12
-    jbe short 0362dh                          ; 76 1b
+    jbe short 0366ch                          ; 76 1b
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4695,7 +4719,7 @@
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 03104h                               ; e8 d0 fa
+    call 03143h                               ; e8 d0 fa
     test ax, ax                               ; 85 c0
-    jne short 03652h                          ; 75 1a
+    jne short 03691h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4706,16 +4730,16 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 039e7h                           ; e9 95 03
+    jmp near 03a26h                           ; e9 95 03
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02f42h                               ; e8 e7 f8
+    call 02f81h                               ; e8 e7 f8
     test ax, ax                               ; 85 c0
-    jne short 0366bh                          ; 75 0c
+    jne short 036aah                          ; 75 0c
     mov ax, cx                                ; 89 c8
-    call 0301eh                               ; e8 ba f9
+    call 0305dh                               ; e8 ba f9
     test ax, ax                               ; 85 c0
-    jne short 0366bh                          ; 75 03
-    jmp near 032cdh                           ; e9 62 fc
+    jne short 036aah                          ; 75 03
+    jmp near 0330ch                           ; e9 62 fc
     mov cx, word [bp+006h]                    ; 8b 4e 06
     shr cx, 00ch                              ; c1 e9 0c
@@ -4727,5 +4751,5 @@
     mov word [bp-008h], si                    ; 89 76 f8
     cmp dx, si                                ; 39 f2
-    jbe short 03687h                          ; 76 02
+    jbe short 036c6h                          ; 76 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
@@ -4738,6 +4762,6 @@
     add dx, cx                                ; 01 ca
     cmp dx, word [bp-008h]                    ; 3b 56 f8
-    jnc short 0369eh                          ; 73 03
-    jmp near 03325h                           ; e9 87 fc
+    jnc short 036ddh                          ; 73 03
+    jmp near 03364h                           ; e9 87 fc
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4775,5 +4799,5 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02eceh                               ; e8 e4 f7
+    call 02f0dh                               ; e8 e4 f7
     mov AL, strict byte 00fh                  ; b0 0f
     mov dx, 003f5h                            ; ba f5 03
@@ -4803,10 +4827,10 @@
     mov AL, strict byte 0f6h                  ; b0 f6
     out DX, AL                                ; ee
-    call 02e57h                               ; e8 35 f7
+    call 02e96h                               ; e8 35 f7
     test al, al                               ; 84 c0
-    jne short 0372eh                          ; 75 08
+    jne short 0376dh                          ; 75 08
     mov ax, cx                                ; 89 c8
-    call 02e8fh                               ; e8 64 f7
-    jmp near 03638h                           ; e9 0a ff
+    call 02eceh                               ; e8 64 f7
+    jmp near 03677h                           ; e9 0a ff
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4815,14 +4839,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03748h                           ; 74 0e
+    je short 03787h                           ; 74 0e
     push 00275h                               ; 68 75 02
     push 002a8h                               ; 68 a8 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 21 e2
+    call 01966h                               ; e8 e2 e1
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 03751h                          ; eb 05
+    jmp short 03790h                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 03767h                          ; 7d 16
+    jnl short 037a6h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4835,5 +4859,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 0374ch                          ; eb e5
+    jmp short 0378bh                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4841,14 +4865,14 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 03791h                           ; 74 1b
+    je short 037d0h                           ; 74 1b
     mov si, strict word 00043h                ; be 43 00
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 002h                 ; a8 02
-    je short 03783h                           ; 74 03
-    jmp near 035bch                           ; e9 39 fe
+    je short 037c2h                           ; 74 03
+    jmp near 035fbh                           ; e9 39 fe
     push 00275h                               ; 68 75 02
     push 002bch                               ; 68 bc 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 d8 e1
+    call 01966h                               ; e8 99 e1
     add sp, strict byte 00006h                ; 83 c4 06
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -4860,9 +4884,9 @@
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02e09h                               ; e8 5f f6
-    jmp near 0348ch                           ; e9 df fc
+    call 02e48h                               ; e8 5f f6
+    jmp near 034cbh                           ; e9 df fc
     mov bl, ah                                ; 88 e3
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 037d2h                          ; 76 1e
+    jbe short 03811h                          ; 76 1e
     xor ax, ax                                ; 31 c0
     mov word [bp+016h], ax                    ; 89 46 16
@@ -4875,20 +4899,20 @@
     xor ah, ah                                ; 30 e4
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 038f1h                           ; e9 1f 01
+    jmp near 03930h                           ; e9 1f 01
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 d4 de
+    call 016ach                               ; e8 95 de
     mov dl, al                                ; 88 c2
     xor bh, bh                                ; 30 ff
     test AL, strict byte 0f0h                 ; a8 f0
-    je short 037e2h                           ; 74 02
+    je short 03821h                           ; 74 02
     mov BH, strict byte 001h                  ; b7 01
     test dl, 00fh                             ; f6 c2 0f
-    je short 037e9h                           ; 74 02
+    je short 03828h                           ; 74 02
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
     test bl, bl                               ; 84 db
-    jne short 037f2h                          ; 75 05
+    jne short 03831h                          ; 75 05
     shr dl, 004h                              ; c0 ea 04
-    jmp short 037f5h                          ; eb 03
+    jmp short 03834h                          ; eb 03
     and dl, 00fh                              ; 80 e2 0f
     mov byte [bp+011h], 000h                  ; c6 46 11 00
@@ -4906,60 +4930,60 @@
     mov word [bp+012h], ax                    ; 89 46 12
     cmp dl, 003h                              ; 80 fa 03
-    jc short 03831h                           ; 72 15
-    jbe short 03858h                          ; 76 3a
+    jc short 03870h                           ; 72 15
+    jbe short 03897h                          ; 76 3a
     cmp dl, 005h                              ; 80 fa 05
-    jc short 0385fh                           ; 72 3c
-    jbe short 03866h                          ; 76 41
+    jc short 0389eh                           ; 72 3c
+    jbe short 038a5h                          ; 76 41
     cmp dl, 00fh                              ; 80 fa 0f
-    je short 03874h                           ; 74 4a
+    je short 038b3h                           ; 74 4a
     cmp dl, 00eh                              ; 80 fa 0e
-    je short 0386dh                           ; 74 3e
-    jmp short 0387bh                          ; eb 4a
+    je short 038ach                           ; 74 3e
+    jmp short 038bah                          ; eb 4a
     cmp dl, 002h                              ; 80 fa 02
-    je short 03851h                           ; 74 1b
+    je short 03890h                           ; 74 1b
     cmp dl, 001h                              ; 80 fa 01
-    je short 0384ah                           ; 74 0f
+    je short 03889h                           ; 74 0f
     test dl, dl                               ; 84 d2
-    jne short 0387bh                          ; 75 3c
+    jne short 038bah                          ; 75 3c
     mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 03889h                          ; eb 3f
+    jmp short 038c8h                          ; eb 3f
     mov word [bp+014h], 02709h                ; c7 46 14 09 27
-    jmp short 03889h                          ; eb 38
+    jmp short 038c8h                          ; eb 38
     mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
-    jmp short 03889h                          ; eb 31
+    jmp short 038c8h                          ; eb 31
     mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
-    jmp short 03889h                          ; eb 2a
+    jmp short 038c8h                          ; eb 2a
     mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
-    jmp short 03889h                          ; eb 23
+    jmp short 038c8h                          ; eb 23
     mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
-    jmp short 03889h                          ; eb 1c
+    jmp short 038c8h                          ; eb 1c
     mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
-    jmp short 03889h                          ; eb 15
+    jmp short 038c8h                          ; eb 15
     mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
-    jmp short 03889h                          ; eb 0e
+    jmp short 038c8h                          ; eb 0e
     push 00275h                               ; 68 75 02
     push 002cdh                               ; 68 cd 02
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 e0 e0
+    call 01966h                               ; e8 a1 e0
     add sp, strict byte 00006h                ; 83 c4 06
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 03b1dh                               ; e8 88 02
+    call 03b5ch                               ; e8 88 02
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 0348ch                           ; e9 f1 fb
+    jmp near 034cbh                           ; e9 f1 fb
     mov bl, ah                                ; 88 e3
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 038a7h                          ; 76 05
+    jbe short 038e6h                          ; 76 05
     mov word [bp+016h], dx                    ; 89 56 16
-    jmp short 038f1h                          ; eb 4a
+    jmp short 03930h                          ; eb 4a
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 ff dd
+    call 016ach                               ; e8 c0 dd
     test bl, bl                               ; 84 db
-    jne short 038b8h                          ; 75 07
+    jne short 038f7h                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 038bdh                          ; eb 05
+    jmp short 038fch                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
@@ -4968,14 +4992,14 @@
     xor ah, ah                                ; 30 e4
     test dl, dl                               ; 84 d2
-    je short 038d7h                           ; 74 0d
+    je short 03916h                           ; 74 0d
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 038d4h                          ; 76 05
+    jbe short 03913h                          ; 76 05
     or ah, 002h                               ; 80 cc 02
-    jmp short 038d7h                          ; eb 03
+    jmp short 03916h                          ; eb 03
     or ah, 001h                               ; 80 cc 01
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 0320ah                           ; e9 2d f9
+    jmp near 03249h                           ; e9 2d f9
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 038f7h                          ; 76 15
+    jbe short 03936h                          ; 76 15
     mov word [bp+016h], si                    ; 89 76 16
     mov bx, strict word 00041h                ; bb 41 00
@@ -4984,5 +5008,5 @@
     mov byte [es:bx], 001h                    ; 26 c6 07 01
     mov word [bp+01ch], cx                    ; 89 4e 1c
-    jmp near 0320ah                           ; e9 13 f9
+    jmp near 03249h                           ; e9 13 f9
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4993,19 +5017,19 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 006h                    ; 26 c6 07 06
-    jmp near 039e7h                           ; e9 d6 00
+    jmp near 03a26h                           ; e9 d6 00
     mov bl, ah                                ; 88 e3
     mov dl, byte [bp+016h]                    ; 8a 56 16
     cmp ah, 001h                              ; 80 fc 01
-    jnbe short 038e2h                         ; 77 c7
+    jnbe short 03921h                         ; 77 c7
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 03104h                               ; e8 e2 f7
+    call 03143h                               ; e8 e2 f7
     test ax, ax                               ; 85 c0
-    jne short 03929h                          ; 75 03
-    jmp near 03638h                           ; e9 0f fd
+    jne short 03968h                          ; 75 03
+    jmp near 03677h                           ; e9 0f fd
     test bl, bl                               ; 84 db
-    je short 03932h                           ; 74 05
+    je short 03971h                           ; 74 05
     mov bx, 00091h                            ; bb 91 00
-    jmp short 03935h                          ; eb 03
+    jmp short 03974h                          ; eb 03
     mov bx, 00090h                            ; bb 90 00
     mov word [bp-008h], bx                    ; 89 5e f8
@@ -5015,18 +5039,18 @@
     and bl, 00fh                              ; 80 e3 0f
     cmp dl, 002h                              ; 80 fa 02
-    jc short 03957h                           ; 72 0f
-    jbe short 03964h                          ; 76 1a
+    jc short 03996h                           ; 72 0f
+    jbe short 039a3h                          ; 76 1a
     cmp dl, 004h                              ; 80 fa 04
-    je short 0395fh                           ; 74 10
+    je short 0399eh                           ; 74 10
     cmp dl, 003h                              ; 80 fa 03
-    je short 03969h                           ; 74 15
-    jmp near 03195h                           ; e9 3e f8
+    je short 039a8h                           ; 74 15
+    jmp near 031d4h                           ; e9 3e f8
     cmp dl, 001h                              ; 80 fa 01
-    je short 0395fh                           ; 74 03
-    jmp near 03195h                           ; e9 36 f8
+    je short 0399eh                           ; 74 03
+    jmp near 031d4h                           ; e9 36 f8
     or bl, 090h                               ; 80 cb 90
-    jmp short 0396ch                          ; eb 08
+    jmp short 039abh                          ; eb 08
     or bl, 070h                               ; 80 cb 70
-    jmp short 0396ch                          ; eb 03
+    jmp short 039abh                          ; eb 03
     or bl, 010h                               ; 80 cb 10
     mov ax, strict word 00040h                ; b8 40 00
@@ -5038,5 +5062,5 @@
     mov bx, strict word 00041h                ; bb 41 00
     mov byte [es:bx], al                      ; 26 88 07
-    jmp near 0348ch                           ; e9 07 fb
+    jmp near 034cbh                           ; e9 07 fb
     mov bl, ah                                ; 88 e3
     mov dl, byte [bp+014h]                    ; 8a 56 14
@@ -5051,22 +5075,22 @@
     mov byte [bp-004h], dl                    ; 88 56 fc
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 039ach                          ; 76 03
-    jmp near 038e2h                           ; e9 36 ff
+    jbe short 039ebh                          ; 76 03
+    jmp near 03921h                           ; e9 36 ff
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 03104h                               ; e8 51 f7
+    call 03143h                               ; e8 51 f7
     test ax, ax                               ; 85 c0
-    jne short 039bah                          ; 75 03
-    jmp near 03638h                           ; e9 7e fc
+    jne short 039f9h                          ; 75 03
+    jmp near 03677h                           ; e9 7e fc
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02f42h                               ; e8 7f f5
+    call 02f81h                               ; e8 7f f5
     test ax, ax                               ; 85 c0
-    jne short 039eeh                          ; 75 27
+    jne short 03a2dh                          ; 75 27
     mov ax, cx                                ; 89 c8
-    call 0301eh                               ; e8 52 f6
+    call 0305dh                               ; e8 52 f6
     test ax, ax                               ; 85 c0
-    jne short 039eeh                          ; 75 1e
+    jne short 03a2dh                          ; 75 1e
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5078,18 +5102,18 @@
     mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 0320ah                           ; e9 1c f8
+    jmp near 03249h                           ; e9 1c f8
     mov ax, strict word 00010h                ; b8 10 00
-    call 016ach                               ; e8 b8 dc
+    call 016ach                               ; e8 79 dc
     test bl, bl                               ; 84 db
-    jne short 039ffh                          ; 75 07
+    jne short 03a3eh                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 03a04h                          ; eb 05
+    jmp short 03a43h                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     test bl, bl                               ; 84 db
-    je short 03a0dh                           ; 74 05
+    je short 03a4ch                           ; 74 05
     mov si, 00091h                            ; be 91 00
-    jmp short 03a10h                          ; eb 03
+    jmp short 03a4fh                          ; eb 03
     mov si, 00090h                            ; be 90 00
     mov word [bp-008h], si                    ; 89 76 f8
@@ -5099,66 +5123,66 @@
     and bl, 00fh                              ; 80 e3 0f
     cmp dl, 003h                              ; 80 fa 03
-    jc short 03a3eh                           ; 72 1b
+    jc short 03a7dh                           ; 72 1b
     mov al, bl                                ; 88 d8
     or AL, strict byte 090h                   ; 0c 90
     cmp dl, 003h                              ; 80 fa 03
-    jbe short 03a7ah                          ; 76 4e
+    jbe short 03ab9h                          ; 76 4e
     mov ah, bl                                ; 88 dc
     or ah, 010h                               ; 80 cc 10
     cmp dl, 005h                              ; 80 fa 05
-    je short 03a78h                           ; 74 42
+    je short 03ab7h                           ; 74 42
     cmp dl, 004h                              ; 80 fa 04
-    je short 03a87h                           ; 74 4c
-    jmp near 03abfh                           ; e9 81 00
+    je short 03ac6h                           ; 74 4c
+    jmp near 03afeh                           ; e9 81 00
     cmp dl, 002h                              ; 80 fa 02
-    je short 03a58h                           ; 74 15
+    je short 03a97h                           ; 74 15
     cmp dl, 001h                              ; 80 fa 01
-    jne short 03a8bh                          ; 75 43
+    jne short 03acah                          ; 75 43
     cmp byte [bp-004h], 027h                  ; 80 7e fc 27
-    jne short 03a8bh                          ; 75 3d
+    jne short 03acah                          ; 75 3d
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03aa1h                          ; 75 4e
+    jne short 03ae0h                          ; 75 4e
     or bl, 090h                               ; 80 cb 90
-    jmp short 03aa1h                          ; eb 49
+    jmp short 03ae0h                          ; eb 49
     cmp byte [bp-004h], 027h                  ; 80 7e fc 27
-    jne short 03a68h                          ; 75 0a
+    jne short 03aa7h                          ; 75 0a
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03a68h                          ; 75 05
+    jne short 03aa7h                          ; 75 05
     or bl, 070h                               ; 80 cb 70
-    jmp short 03aa1h                          ; eb 39
+    jmp short 03ae0h                          ; eb 39
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03abfh                          ; 75 51
+    jne short 03afeh                          ; 75 51
     cmp bh, 00fh                              ; 80 ff 0f
-    jne short 03abfh                          ; 75 4c
+    jne short 03afeh                          ; 75 4c
     or bl, 010h                               ; 80 cb 10
-    jmp short 03abfh                          ; eb 47
-    jmp short 03aa3h                          ; eb 29
+    jmp short 03afeh                          ; eb 47
+    jmp short 03ae2h                          ; eb 29
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03abfh                          ; 75 3f
+    jne short 03afeh                          ; 75 3f
     cmp bh, 009h                              ; 80 ff 09
-    je short 03a89h                           ; 74 04
-    jmp short 03abfh                          ; eb 38
-    jmp short 03a8dh                          ; eb 04
+    je short 03ac8h                           ; 74 04
+    jmp short 03afeh                          ; eb 38
+    jmp short 03acch                          ; eb 04
     mov bl, al                                ; 88 c3
-    jmp short 03abfh                          ; eb 32
+    jmp short 03afeh                          ; eb 32
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03abfh                          ; 75 2c
+    jne short 03afeh                          ; 75 2c
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03a9ah                          ; 75 02
-    jmp short 03a89h                          ; eb ef
+    jne short 03ad9h                          ; 75 02
+    jmp short 03ac8h                          ; eb ef
     cmp bh, 012h                              ; 80 ff 12
-    jne short 03abfh                          ; 75 20
+    jne short 03afeh                          ; 75 20
     mov bl, ah                                ; 88 e3
-    jmp short 03abfh                          ; eb 1c
+    jmp short 03afeh                          ; eb 1c
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03abfh                          ; 75 16
+    jne short 03afeh                          ; 75 16
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03ab0h                          ; 75 02
-    jmp short 03a89h                          ; eb d9
+    jne short 03aefh                          ; 75 02
+    jmp short 03ac8h                          ; eb d9
     cmp bh, 012h                              ; 80 ff 12
-    jne short 03ab7h                          ; 75 02
-    jmp short 03a9fh                          ; eb e8
+    jne short 03af6h                          ; 75 02
+    jmp short 03adeh                          ; eb e8
     cmp bh, 024h                              ; 80 ff 24
-    jne short 03abfh                          ; 75 03
+    jne short 03afeh                          ; 75 03
     or bl, 0d0h                               ; 80 cb d0
     mov al, bl                                ; 88 d8
@@ -5166,6 +5190,6 @@
     sar ax, 004h                              ; c1 f8 04
     test AL, strict byte 001h                 ; a8 01
-    jne short 03acdh                          ; 75 03
-    jmp near 039d0h                           ; e9 03 ff
+    jne short 03b0ch                          ; 75 03
+    jmp near 03a0fh                           ; e9 03 ff
     mov ax, strict word 00040h                ; b8 40 00
     mov es, ax                                ; 8e c0
@@ -5175,5 +5199,5 @@
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 03b1dh                               ; e8 39 00
+    call 03b5ch                               ; e8 39 00
     mov word [bp+008h], ax                    ; 89 46 08
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -5182,9 +5206,9 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 000h                    ; 26 c6 07 00
-    jmp near 0348ch                           ; e9 92 f9
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 034cbh                           ; e9 92 f9
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 1e de
+    call 01923h                               ; e8 df dd
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -5193,8 +5217,8 @@
     push 002e2h                               ; 68 e2 02
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 4f de
+    call 01966h                               ; e8 10 de
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03195h                           ; e9 78 f6
-get_floppy_dpt_:                             ; 0xf3b1d LB 0x30
+    jmp near 031d4h                           ; e9 78 f6
+get_floppy_dpt_:                             ; 0xf3b5c LB 0x30
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5203,17 +5227,17 @@
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    jmp short 03b2eh                          ; eb 06
+    jmp short 03b6dh                          ; eb 06
     inc ax                                    ; 40
     cmp ax, strict word 00007h                ; 3d 07 00
-    jnc short 03b46h                          ; 73 18
+    jnc short 03b85h                          ; 73 18
     mov bx, ax                                ; 89 c3
     add bx, ax                                ; 01 c3
     cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
-    jne short 03b28h                          ; 75 f0
+    jne short 03b67h                          ; 75 f0
     mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0000dh           ; 6b c0 0d
     add ax, strict word 00000h                ; 05 00 00
-    jmp short 03b49h                          ; eb 03
+    jmp short 03b88h                          ; eb 03
     mov ax, strict word 00041h                ; b8 41 00
     pop bp                                    ; 5d
@@ -5221,5 +5245,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-dummy_soft_reset_:                           ; 0xf3b4d LB 0x7
+dummy_soft_reset_:                           ; 0xf3b8c LB 0x7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5227,39 +5251,39 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_init:                                 ; 0xf3b54 LB 0x18
+_cdemu_init:                                 ; 0xf3b93 LB 0x18
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0c db
+    call 0166ch                               ; e8 cd da
     xor bx, bx                                ; 31 db
     mov dx, 00366h                            ; ba 66 03
-    call 0165eh                               ; e8 f6 da
+    call 0165eh                               ; e8 b7 da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_isactive:                             ; 0xf3b6c LB 0x16
+_cdemu_isactive:                             ; 0xf3bab LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f4 da
+    call 0166ch                               ; e8 b5 da
     mov dx, 00366h                            ; ba 66 03
-    call 01650h                               ; e8 d2 da
+    call 01650h                               ; e8 93 da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_emulated_drive:                       ; 0xf3b82 LB 0x16
+_cdemu_emulated_drive:                       ; 0xf3bc1 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 de da
+    call 0166ch                               ; e8 9f da
     mov dx, 00368h                            ; ba 68 03
-    call 01650h                               ; e8 bc da
+    call 01650h                               ; e8 7d da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_eltorito:                             ; 0xf3b98 LB 0x190
+_int13_eltorito:                             ; 0xf3bd7 LB 0x190
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5268,5 +5292,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 c6 da
+    call 0166ch                               ; e8 87 da
     mov si, 00366h                            ; be 66 03
     mov di, ax                                ; 89 c7
@@ -5274,27 +5298,27 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 0004bh                ; 3d 4b 00
-    jc short 03bc0h                           ; 72 0a
-    jbe short 03be7h                          ; 76 2f
+    jc short 03bffh                           ; 72 0a
+    jbe short 03c26h                          ; 76 2f
     cmp ax, strict word 0004dh                ; 3d 4d 00
-    jbe short 03bc5h                          ; 76 08
-    jmp near 03cech                           ; e9 2c 01
+    jbe short 03c04h                          ; 76 08
+    jmp near 03d2bh                           ; e9 2c 01
     cmp ax, strict word 0004ah                ; 3d 4a 00
-    jne short 03be4h                          ; 75 1f
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 03c23h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 53 dd
+    call 01923h                               ; e8 14 dd
     push word [bp+016h]                       ; ff 76 16
     push 002fch                               ; 68 fc 02
     push 0030bh                               ; 68 0b 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 88 dd
+    call 01966h                               ; e8 49 dd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03d07h                           ; e9 23 01
-    jmp near 03cech                           ; e9 05 01
+    jmp near 03d46h                           ; e9 23 01
+    jmp near 03d2bh                           ; e9 05 01
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
     mov bx, strict word 00013h                ; bb 13 00
-    call 0165eh                               ; e8 6b da
+    call 0165eh                               ; e8 2c da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
@@ -5303,5 +5327,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 59 da
+    call 0165eh                               ; e8 1a da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
@@ -5311,5 +5335,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 46 da
+    call 0165eh                               ; e8 07 da
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
@@ -5318,5 +5342,5 @@
     add dx, strict byte 00003h                ; 83 c2 03
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 32 da
+    call 0165eh                               ; e8 f3 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+008h]                 ; 26 8b 5c 08
@@ -5325,5 +5349,5 @@
     add dx, strict byte 00004h                ; 83 c2 04
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0169ah                               ; e8 58 da
+    call 0169ah                               ; e8 19 da
     mov es, di                                ; 8e c7
     mov bx, word [es:si+004h]                 ; 26 8b 5c 04
@@ -5331,5 +5355,5 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 26 da
+    call 0167ah                               ; e8 e7 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+006h]                 ; 26 8b 5c 06
@@ -5337,5 +5361,5 @@
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 14 da
+    call 0167ah                               ; e8 d5 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
@@ -5343,5 +5367,5 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 02 da
+    call 0167ah                               ; e8 c3 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
@@ -5349,5 +5373,5 @@
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ah                               ; e8 f0 d9
+    call 0167ah                               ; e8 b1 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
@@ -5356,5 +5380,5 @@
     add dx, strict byte 00010h                ; 83 c2 10
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 c0 d9
+    call 0165eh                               ; e8 81 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
@@ -5363,5 +5387,5 @@
     add dx, strict byte 00011h                ; 83 c2 11
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 ac d9
+    call 0165eh                               ; e8 6d d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
@@ -5370,7 +5394,7 @@
     add dx, strict byte 00012h                ; 83 c2 12
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0165eh                               ; e8 98 d9
+    call 0165eh                               ; e8 59 d9
     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
-    jne short 03cd2h                          ; 75 06
+    jne short 03d11h                          ; 75 06
     mov es, di                                ; 8e c7
     mov byte [es:si], 000h                    ; 26 c6 04 00
@@ -5379,5 +5403,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 7d d9
+    call 0165eh                               ; e8 3e d9
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5386,8 +5410,8 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 2c dc
+    call 01923h                               ; e8 ed db
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -5395,5 +5419,5 @@
     push 002fch                               ; 68 fc 02
     push 00333h                               ; 68 33 03
-    jmp near 03bd9h                           ; e9 d2 fe
+    jmp near 03c18h                           ; e9 d2 fe
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5405,8 +5429,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 3c d9
+    call 0165eh                               ; e8 fd d8
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 03ce5h                          ; eb bd
-device_is_cdrom_:                            ; 0xf3d28 LB 0x35
+    jmp short 03d24h                          ; eb bd
+device_is_cdrom_:                            ; 0xf3d67 LB 0x35
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5416,9 +5440,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 34 d9
+    call 0166ch                               ; e8 f5 d8
     cmp bl, 010h                              ; 80 fb 10
-    jc short 03d41h                           ; 72 04
+    jc short 03d80h                           ; 72 04
     xor ax, ax                                ; 31 c0
-    jmp short 03d56h                          ; eb 15
+    jmp short 03d95h                          ; eb 15
     xor bh, bh                                ; 30 ff
     imul bx, bx, strict byte 0001ch           ; 6b db 1c
@@ -5426,5 +5450,5 @@
     add bx, 00122h                            ; 81 c3 22 01
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 03d3dh                          ; 75 ea
+    jne short 03d7ch                          ; 75 ea
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5433,5 +5457,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-cdrom_boot_:                                 ; 0xf3d5d LB 0x435
+cdrom_boot_:                                 ; 0xf3d9c LB 0x435
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5444,5 +5468,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 fa d8
+    call 0166ch                               ; e8 bb d8
     mov word [bp-012h], ax                    ; 89 46 ee
     mov si, 00366h                            ; be 66 03
@@ -5451,22 +5475,22 @@
     mov word [bp-010h], ax                    ; 89 46 f0
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 03d92h                          ; eb 09
+    jmp short 03dd1h                          ; eb 09
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jnc short 03d9eh                          ; 73 0c
+    jnc short 03dddh                          ; 73 0c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
-    call 03d28h                               ; e8 8e ff
+    call 03d67h                               ; e8 8e ff
     test ax, ax                               ; 85 c0
-    je short 03d89h                           ; 74 eb
+    je short 03dc8h                           ; 74 eb
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jc short 03daah                           ; 72 06
+    jc short 03de9h                           ; 72 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 0412fh                           ; e9 85 03
+    jmp near 0416eh                           ; e9 85 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a100h                               ; e8 49 63
+    call 0a140h                               ; e8 4a 63
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5485,8 +5509,8 @@
     mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 03df5h                          ; eb 09
+    jmp short 03e34h                          ; eb 09
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
-    jnbe short 03e31h                         ; 77 3c
+    jnbe short 03e70h                         ; 77 3c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -5512,33 +5536,33 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    jne short 03dech                          ; 75 bb
+    jne short 03e2bh                          ; 75 bb
     test ax, ax                               ; 85 c0
-    je short 03e3bh                           ; 74 06
+    je short 03e7ah                           ; 74 06
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 0412fh                           ; e9 f4 02
+    jmp near 0416eh                           ; e9 f4 02
     cmp byte [bp-00826h], 000h                ; 80 be da f7 00
-    je short 03e48h                           ; 74 06
+    je short 03e87h                           ; 74 06
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 0412fh                           ; e9 e7 02
+    jmp near 0416eh                           ; e9 e7 02
     xor di, di                                ; 31 ff
-    jmp short 03e52h                          ; eb 06
+    jmp short 03e91h                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00005h                ; 83 ff 05
-    jnc short 03e62h                          ; 73 10
+    jnc short 03ea1h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
-    je short 03e4ch                           ; 74 f0
+    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    je short 03e8bh                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
-    jmp near 0412fh                           ; e9 cd 02
+    jmp near 0416eh                           ; e9 cd 02
     xor di, di                                ; 31 ff
-    jmp short 03e6ch                          ; eb 06
+    jmp short 03eabh                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00017h                ; 83 ff 17
-    jnc short 03e7ch                          ; 73 10
+    jnc short 03ebbh                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
-    je short 03e66h                           ; 74 f0
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    je short 03ea5h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 0412fh                           ; e9 b3 02
+    jmp near 0416eh                           ; e9 b3 02
     mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
     mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
@@ -5575,36 +5599,36 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    je short 03edeh                           ; 74 06
+    je short 03f1dh                           ; 74 06
     mov ax, strict word 00007h                ; b8 07 00
-    jmp near 0412fh                           ; e9 51 02
+    jmp near 0416eh                           ; e9 51 02
     cmp byte [bp-00826h], 001h                ; 80 be da f7 01
-    je short 03eebh                           ; 74 06
+    je short 03f2ah                           ; 74 06
     mov ax, strict word 00008h                ; b8 08 00
-    jmp near 0412fh                           ; e9 44 02
+    jmp near 0416eh                           ; e9 44 02
     cmp byte [bp-00825h], 000h                ; 80 be db f7 00
-    je short 03ef8h                           ; 74 06
+    je short 03f37h                           ; 74 06
     mov ax, strict word 00009h                ; b8 09 00
-    jmp near 0412fh                           ; e9 37 02
+    jmp near 0416eh                           ; e9 37 02
     cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
-    je short 03f05h                           ; 74 06
+    je short 03f44h                           ; 74 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    jmp near 0412fh                           ; e9 2a 02
+    jmp near 0416eh                           ; e9 2a 02
     cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
-    jne short 03effh                          ; 75 f3
+    jne short 03f3eh                          ; 75 f3
     cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
-    je short 03f19h                           ; 74 06
+    je short 03f58h                           ; 74 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    jmp near 0412fh                           ; e9 16 02
+    jmp near 0416eh                           ; e9 16 02
     mov al, byte [bp-00805h]                  ; 8a 86 fb f7
     mov es, [bp-014h]                         ; 8e 46 ec
     mov byte [es:si+001h], al                 ; 26 88 44 01
     cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
-    jne short 03f32h                          ; 75 07
+    jne short 03f71h                          ; 75 07
     mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
-    jmp short 03f45h                          ; eb 13
+    jmp short 03f84h                          ; eb 13
     cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
-    jnc short 03f40h                          ; 73 07
+    jnc short 03f7fh                          ; 73 07
     mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
-    jmp short 03f45h                          ; eb 05
+    jmp short 03f84h                          ; eb 05
     mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -5625,5 +5649,5 @@
     mov word [bp-01ah], ax                    ; 89 46 e6
     test ax, ax                               ; 85 c0
-    jne short 03f74h                          ; 75 05
+    jne short 03fb3h                          ; 75 05
     mov word [bp-01ah], 007c0h                ; c7 46 e6 c0 07
     mov ax, word [bp-01ah]                    ; 8b 46 e6
@@ -5634,9 +5658,9 @@
     mov word [es:si+00eh], di                 ; 26 89 7c 0e
     test di, di                               ; 85 ff
-    je short 03f96h                           ; 74 06
+    je short 03fd5h                           ; 74 06
     cmp di, 00400h                            ; 81 ff 00 04
-    jbe short 03f9ch                          ; 76 06
+    jbe short 03fdbh                          ; 76 06
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 0412fh                           ; e9 93 01
+    jmp near 0416eh                           ; e9 93 01
     mov ax, word [bp-007feh]                  ; 8b 86 02 f8
     mov dx, word [bp-007fch]                  ; 8b 96 04 f8
@@ -5682,5 +5706,5 @@
     sal ax, 1                                 ; d1 e0
     rcl di, 1                                 ; d1 d7
-    loop 04010h                               ; e2 fa
+    loop 0404fh                               ; e2 fa
     push di                                   ; 57
     push ax                                   ; 50
@@ -5697,31 +5721,31 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test ax, ax                               ; 85 c0
-    je short 04044h                           ; 74 06
+    je short 04083h                           ; 74 06
     mov ax, strict word 0000dh                ; b8 0d 00
-    jmp near 0412fh                           ; e9 eb 00
+    jmp near 0416eh                           ; e9 eb 00
     mov es, [bp-014h]                         ; 8e 46 ec
     mov al, byte [es:si+001h]                 ; 26 8a 44 01
     cmp AL, strict byte 002h                  ; 3c 02
-    jc short 0405ch                           ; 72 0d
-    jbe short 04077h                          ; 76 26
+    jc short 0409bh                           ; 72 0d
+    jbe short 040b6h                          ; 76 26
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 04087h                           ; 74 32
+    je short 040c6h                           ; 74 32
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0407fh                           ; 74 26
-    jmp near 040d4h                           ; e9 78 00
+    je short 040beh                           ; 74 26
+    jmp near 04113h                           ; e9 78 00
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 040d4h                          ; 75 74
+    jne short 04113h                          ; 75 74
     mov es, [bp-014h]                         ; 8e 46 ec
     mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
     mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
     mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
-    jmp short 040d4h                          ; eb 5d
+    jmp short 04113h                          ; eb 5d
     mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
-    jmp short 04069h                          ; eb ea
+    jmp short 040a8h                          ; eb ea
     mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
-    jmp short 04069h                          ; eb e2
+    jmp short 040a8h                          ; eb e2
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 c0 d5
+    call 01650h                               ; e8 81 d5
     and AL, strict byte 03fh                  ; 24 3f
     xor ah, ah                                ; 30 e4
@@ -5730,5 +5754,5 @@
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 ac d5
+    call 01650h                               ; e8 6d d5
     and ax, 000c0h                            ; 25 c0 00
     mov bx, ax                                ; 89 c3
@@ -5736,5 +5760,5 @@
     mov dx, 001c5h                            ; ba c5 01
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 9b d5
+    call 01650h                               ; e8 5c d5
     xor ah, ah                                ; 30 e4
     add ax, bx                                ; 01 d8
@@ -5744,5 +5768,5 @@
     mov dx, 001c3h                            ; ba c3 01
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01650h                               ; e8 86 d5
+    call 01650h                               ; e8 47 d5
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -5751,10 +5775,10 @@
     mov es, [bp-014h]                         ; 8e 46 ec
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 04115h                           ; 74 37
+    je short 04154h                           ; 74 37
     cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
-    jne short 040fdh                          ; 75 18
+    jne short 0413ch                          ; 75 18
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 62 d5
+    call 01650h                               ; e8 23 d5
     mov bl, al                                ; 88 c3
     or bl, 041h                               ; 80 cb 41
@@ -5762,8 +5786,8 @@
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    jmp short 04112h                          ; eb 15
+    jmp short 04151h                          ; eb 15
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    call 01650h                               ; e8 4a d5
+    call 01650h                               ; e8 0b d5
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -5772,8 +5796,8 @@
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    call 0165eh                               ; e8 49 d5
+    call 0165eh                               ; e8 0a d5
     mov es, [bp-014h]                         ; 8e 46 ec
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 04123h                           ; 74 04
+    je short 04162h                           ; 74 04
     mov byte [es:si], 001h                    ; 26 c6 04 01
     mov es, [bp-014h]                         ; 8e 46 ec
@@ -5790,10 +5814,10 @@
     retn                                      ; c3
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 038h, 045h, 037h
-    db  042h, 06ah, 042h, 094h, 042h, 05fh, 042h, 094h, 042h, 05fh, 042h, 086h, 044h, 06ch, 044h, 038h
-    db  045h, 038h, 045h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 02fh, 045h, 06ch
-    db  044h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h
-    db  045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h
-_int13_cdemu:                                ; 0xf4192 LB 0x442
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 077h, 045h, 076h
+    db  042h, 0a9h, 042h, 0d3h, 042h, 09eh, 042h, 0d3h, 042h, 09eh, 042h, 0c5h, 044h, 0abh, 044h, 077h
+    db  045h, 077h, 045h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 06eh, 045h, 0abh
+    db  044h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h
+    db  045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h
+_int13_cdemu:                                ; 0xf41d1 LB 0x442
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5803,5 +5827,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 c9 d4
+    call 0166ch                               ; e8 8a d4
     mov di, 00366h                            ; bf 66 03
     mov cx, ax                                ; 89 c1
@@ -5819,8 +5843,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 8c d4
+    call 0165eh                               ; e8 4d d4
     mov es, cx                                ; 8e c1
     cmp byte [es:di], 000h                    ; 26 80 3d 00
-    je short 041e9h                           ; 74 0f
+    je short 04228h                           ; 74 0f
     mov al, byte [es:di+002h]                 ; 26 8a 45 02
     xor ah, ah                                ; 30 e4
@@ -5828,9 +5852,9 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    je short 04212h                           ; 74 29
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04251h                           ; 74 29
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 2f d7
+    call 01923h                               ; e8 f0 d6
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -5842,19 +5866,19 @@
     push 00358h                               ; 68 58 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 5a d7
+    call 01966h                               ; e8 1b d7
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04558h                           ; e9 46 03
+    jmp near 04597h                           ; e9 46 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 04291h                         ; 77 74
+    jnbe short 042d0h                         ; 77 74
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 04139h                            ; bf 39 41
+    mov di, 04178h                            ; bf 78 41
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+04156h]               ; 2e 8b 85 56 41
+    mov ax, word [cs:di+04195h]               ; 2e 8b 85 95 41
     mov bx, word [bp+016h]                    ; 8b 5e 16
     xor bh, bh                                ; 30 ff
@@ -5869,16 +5893,16 @@
     add bx, bx                                ; 01 db
     cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
-    je short 0425ch                           ; 74 09
+    je short 0429bh                           ; 74 09
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     call word [word bx+00076h]                ; ff 97 76 00
-    jmp near 0446ch                           ; e9 0d 02
+    jmp near 044abh                           ; e9 0d 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04560h                           ; e9 f6 02
+    jmp near 0459fh                           ; e9 f6 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 dd d3
+    call 01650h                               ; e8 9e d3
     mov cl, al                                ; 88 c1
     xor ah, ah                                ; 30 e4
@@ -5889,9 +5913,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d4 d3
+    call 0165eh                               ; e8 95 d3
     test cl, cl                               ; 84 c9
-    je short 042eeh                           ; 74 60
-    jmp near 04574h                           ; e9 e3 02
-    jmp near 04538h                           ; e9 a4 02
+    je short 0432dh                           ; 74 60
+    jmp near 045b3h                           ; e9 e3 02
+    jmp near 04577h                           ; e9 a4 02
     mov es, [bp-008h]                         ; 8e 46 f8
     mov di, word [es:si+014h]                 ; 26 8b 7c 14
@@ -5917,18 +5941,18 @@
     mov word [bp-00ah], cx                    ; 89 4e f6
     test cx, cx                               ; 85 c9
-    je short 042fch                           ; 74 1e
+    je short 0433bh                           ; 74 1e
     cmp di, word [bp-010h]                    ; 3b 7e f0
-    jc short 042ebh                           ; 72 08
+    jc short 0432ah                           ; 72 08
     cmp ax, dx                                ; 39 d0
-    jnc short 042ebh                          ; 73 04
+    jnc short 0432ah                          ; 73 04
     cmp si, bx                                ; 39 de
-    jc short 042f1h                           ; 72 06
-    jmp near 04558h                           ; e9 6a 02
-    jmp near 04470h                           ; e9 7f 01
+    jc short 04330h                           ; 72 06
+    jmp near 04597h                           ; e9 6a 02
+    jmp near 044afh                           ; e9 7f 01
     mov dx, word [bp+016h]                    ; 8b 56 16
     shr dx, 008h                              ; c1 ea 08
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jne short 042ffh                          ; 75 03
-    jmp near 0446ch                           ; e9 6d 01
+    jne short 0433eh                          ; 75 03
+    jmp near 044abh                           ; e9 6d 01
     mov dx, word [bp+010h]                    ; 8b 56 10
     shr dx, 004h                              ; c1 ea 04
@@ -5941,5 +5965,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 73 5d
+    call 0a0d0h                               ; e8 74 5d
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5947,5 +5971,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 66 5d
+    call 0a0d0h                               ; e8 67 5d
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -5982,5 +6006,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a100h                               ; e8 7f 5d
+    call 0a140h                               ; e8 80 5d
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6032,5 +6056,5 @@
     sal si, 1                                 ; d1 e6
     rcl di, 1                                 ; d1 d7
-    loop 04403h                               ; e2 fa
+    loop 04442h                               ; e2 fa
     push di                                   ; 57
     push si                                   ; 56
@@ -6048,9 +6072,9 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test al, al                               ; 84 c0
-    je short 0446ch                           ; 74 37
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 044abh                           ; 74 37
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 e3 d4
+    call 01923h                               ; e8 a4 d4
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -6062,5 +6086,5 @@
     push 0038eh                               ; 68 8e 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 0f d5
+    call 01966h                               ; e8 d0 d4
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6069,10 +6093,10 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 04563h                           ; e9 f7 00
+    jmp near 045a2h                           ; e9 f7 00
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 e3 d1
+    call 0165eh                               ; e8 a4 d1
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6122,32 +6146,32 @@
     mov word [bp+010h], ax                    ; 89 46 10
     cmp dl, 003h                              ; 80 fa 03
-    je short 04512h                           ; 74 1a
+    je short 04551h                           ; 74 1a
     cmp dl, 002h                              ; 80 fa 02
-    je short 0450eh                           ; 74 11
+    je short 0454dh                           ; 74 11
     cmp dl, 001h                              ; 80 fa 01
-    jne short 04516h                          ; 75 14
+    jne short 04555h                          ; 75 14
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor al, al                                ; 30 c0
     or AL, strict byte 002h                   ; 0c 02
     mov word [bp+010h], ax                    ; 89 46 10
-    jmp short 04516h                          ; eb 08
+    jmp short 04555h                          ; eb 08
     or AL, strict byte 004h                   ; 0c 04
-    jmp short 04509h                          ; eb f7
+    jmp short 04548h                          ; eb f7
     or AL, strict byte 005h                   ; 0c 05
-    jmp short 04509h                          ; eb f3
+    jmp short 04548h                          ; eb f3
     mov es, [bp-008h]                         ; 8e 46 f8
     cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
-    jc short 04523h                           ; 72 03
-    jmp near 0446ch                           ; e9 49 ff
+    jc short 04562h                           ; 72 03
+    jmp near 044abh                           ; e9 49 ff
     mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    jmp short 04520h                          ; eb f1
+    jmp short 0455fh                          ; eb f1
     or bh, 003h                               ; 80 cf 03
     mov word [bp+016h], bx                    ; 89 5e 16
-    jmp near 04470h                           ; e9 38 ff
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 044afh                           ; e9 38 ff
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 e0 d3
+    call 01923h                               ; e8 a1 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -6156,5 +6180,5 @@
     push 003afh                               ; 68 af 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 11 d4
+    call 01966h                               ; e8 d2 d3
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6167,14 +6191,14 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 ea d0
+    call 0165eh                               ; e8 ab d0
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 0447fh                           ; e9 04 ff
+    jmp near 044beh                           ; e9 04 ff
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c2h, 046h, 0f7h
-    db  04ah, 07fh, 046h, 0c2h, 046h, 074h, 046h, 0c2h, 046h, 074h, 046h, 0c2h, 046h, 0f7h, 04ah, 0c2h
-    db  046h, 0c2h, 046h, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0a6h, 046h, 0f7h
-    db  04ah, 0c2h, 046h, 0afh, 046h, 0deh, 046h, 074h, 046h, 0deh, 046h, 020h, 048h, 0bbh, 048h, 0deh
-    db  046h, 0e3h, 048h, 011h, 04bh, 019h, 04bh, 0c2h, 046h
-_int13_cdrom:                                ; 0xf45d4 LB 0x57d
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 001h, 047h, 036h
+    db  04bh, 0beh, 046h, 001h, 047h, 0b3h, 046h, 001h, 047h, 0b3h, 046h, 001h, 047h, 036h, 04bh, 001h
+    db  047h, 001h, 047h, 036h, 04bh, 036h, 04bh, 036h, 04bh, 036h, 04bh, 036h, 04bh, 0e5h, 046h, 036h
+    db  04bh, 001h, 047h, 0eeh, 046h, 01dh, 047h, 0b3h, 046h, 01dh, 047h, 05fh, 048h, 0fah, 048h, 01dh
+    db  047h, 022h, 049h, 050h, 04bh, 058h, 04bh, 001h, 047h
+_int13_cdrom:                                ; 0xf4613 LB 0x57d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6184,5 +6208,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 87 d0
+    call 0166ch                               ; e8 48 d0
     mov word [bp-016h], ax                    ; 89 46 ea
     mov si, 00122h                            ; be 22 01
@@ -6191,11 +6215,11 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 65 d0
+    call 0165eh                               ; e8 26 d0
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
     cmp ax, 000e0h                            ; 3d e0 00
-    jc short 04608h                           ; 72 05
+    jc short 04647h                           ; 72 05
     cmp ax, 000f0h                            ; 3d f0 00
-    jc short 04626h                           ; 72 1e
+    jc short 04665h                           ; 72 1e
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6207,7 +6231,7 @@
     push 003ebh                               ; 68 eb 03
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 46 d3
+    call 01966h                               ; e8 07 d3
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04b2fh                           ; e9 09 05
+    jmp near 04b6eh                           ; e9 09 05
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6218,5 +6242,5 @@
     mov byte [bp-006h], dl                    ; 88 56 fa
     cmp dl, 010h                              ; 80 fa 10
-    jc short 0464fh                           ; 72 10
+    jc short 0468eh                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+018h]                    ; 8b 46 18
@@ -6225,17 +6249,17 @@
     push 003dfh                               ; 68 df 03
     push 00416h                               ; 68 16 04
-    jmp short 0461bh                          ; eb cc
+    jmp short 0465ah                          ; eb cc
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 046c2h                         ; 77 68
+    jnbe short 04701h                         ; 77 68
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 0457bh                            ; bf 7b 45
+    mov di, 045bah                            ; bf ba 45
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+04598h]               ; 2e 8b 85 98 45
+    mov ax, word [cs:di+045d7h]               ; 2e 8b 85 d7 45
     mov bx, word [bp+018h]                    ; 8b 5e 18
     xor bh, bh                                ; 30 ff
@@ -6244,8 +6268,8 @@
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04b37h                           ; e9 b8 04
+    jmp near 04b76h                           ; e9 b8 04
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c8 cf
+    call 01650h                               ; e8 89 cf
     mov cl, al                                ; 88 c1
     xor ah, ah                                ; 30 e4
@@ -6256,20 +6280,20 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 bf cf
+    call 0165eh                               ; e8 80 cf
     test cl, cl                               ; 84 c9
-    je short 046bfh                           ; 74 1c
-    jmp near 04b4bh                           ; e9 a5 04
+    je short 046feh                           ; 74 1c
+    jmp near 04b8ah                           ; e9 a5 04
     or bh, 002h                               ; 80 cf 02
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 04b3ah                           ; e9 8b 04
+    jmp near 04b79h                           ; e9 8b 04
     mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
     or bh, 030h                               ; 80 cf 30
     mov word [bp+018h], bx                    ; 89 5e 18
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
-    jmp near 04afbh                           ; e9 39 04
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 04b3ah                           ; e9 39 04
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 56 d2
+    call 01923h                               ; e8 17 d2
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
@@ -6278,5 +6302,5 @@
     push 00333h                               ; 68 33 03
     push strict byte 00004h                   ; 6a 04
-    jmp short 0471eh                          ; eb 40
+    jmp short 0475dh                          ; eb 40
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov es, [bp+006h]                         ; 8e 46 06
@@ -6293,5 +6317,5 @@
     mov word [bp-022h], ax                    ; 89 46 de
     or ax, word [bp-00eh]                     ; 0b 46 f2
-    je short 04727h                           ; 74 18
+    je short 04766h                           ; 74 18
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
@@ -6300,7 +6324,7 @@
     push 00448h                               ; 68 48 04
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 45 d2
+    call 01966h                               ; e8 06 d2
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 04b2fh                           ; e9 08 04
+    jmp near 04b6eh                           ; e9 08 04
     mov es, [bp-010h]                         ; 8e 46 f0
     mov bx, word [bp-014h]                    ; 8b 5e ec
@@ -6313,13 +6337,13 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     cmp ax, strict word 00044h                ; 3d 44 00
-    je short 0474eh                           ; 74 05
+    je short 0478dh                           ; 74 05
     cmp ax, strict word 00047h                ; 3d 47 00
-    jne short 04751h                          ; 75 03
-    jmp near 04af7h                           ; e9 a6 03
+    jne short 04790h                          ; 75 03
+    jmp near 04b36h                           ; e9 a6 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a100h                               ; e8 a2 59
+    call 0a140h                               ; e8 a3 59
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6353,5 +6377,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 047aeh                               ; e2 fa
+    loop 047edh                               ; e2 fa
     push dx                                   ; 52
     push ax                                   ; 50
@@ -6371,14 +6395,14 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 047ddh                               ; e2 fa
+    loop 0481ch                               ; e2 fa
     mov es, [bp-010h]                         ; 8e 46 f0
     mov bx, word [bp-014h]                    ; 8b 5e ec
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     cmp byte [bp-018h], 000h                  ; 80 7e e8 00
-    je short 04846h                           ; 74 53
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04885h                           ; 74 53
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 25 d1
+    call 01923h                               ; e8 e6 d0
     mov al, byte [bp-018h]                    ; 8a 46 e8
     xor ah, ah                                ; 30 e4
@@ -6388,12 +6412,12 @@
     push 00471h                               ; 68 71 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 54 d1
+    call 01966h                               ; e8 15 d1
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 04b37h                           ; e9 17 03
+    jmp near 04b76h                           ; e9 17 03
     cmp bx, strict byte 00002h                ; 83 fb 02
-    jnbe short 0488eh                         ; 77 69
+    jnbe short 048cdh                         ; 77 69
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -6404,12 +6428,12 @@
     mov al, byte [es:di+025h]                 ; 26 8a 45 25
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 048a4h                           ; 74 67
+    je short 048e3h                           ; 74 67
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 0487eh                           ; 74 3c
+    je short 048bdh                           ; 74 3c
     test bx, bx                               ; 85 db
-    je short 04849h                           ; 74 03
-    jmp near 04af7h                           ; e9 ae 02
+    je short 04888h                           ; 74 03
+    jmp near 04b36h                           ; e9 ae 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 0485fh                          ; 75 12
+    jne short 0489eh                          ; 75 12
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6418,5 +6442,5 @@
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 04b37h                           ; e9 d8 02
+    jmp near 04b76h                           ; e9 d8 02
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
@@ -6431,12 +6455,12 @@
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+018h], ax                    ; 89 46 18
-    jmp short 04846h                          ; eb c8
+    jmp short 04885h                          ; eb c8
     test al, al                               ; 84 c0
-    jne short 04891h                          ; 75 0f
+    jne short 048d0h                          ; 75 0f
     or bh, 0b0h                               ; 80 cf b0
     mov word [bp+018h], bx                    ; 89 5e 18
     mov byte [bp+018h], al                    ; 88 46 18
-    jmp near 04b3ah                           ; e9 ac 02
-    jmp near 04b2fh                           ; e9 9e 02
+    jmp near 04b79h                           ; e9 ac 02
+    jmp near 04b6eh                           ; e9 9e 02
     mov dl, byte [bp-006h]                    ; 8a 56 fa
     xor dh, dh                                ; 30 f6
@@ -6448,5 +6472,5 @@
     mov byte [es:si+025h], al                 ; 26 88 44 25
     test al, al                               ; 84 c0
-    jne short 048b6h                          ; 75 0e
+    jne short 048f5h                          ; 75 0e
     xor ah, ah                                ; 30 e4
     mov dx, word [bp+018h]                    ; 8b 56 18
@@ -6454,7 +6478,7 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 04846h                          ; eb 90
+    jmp short 04885h                          ; eb 90
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 048aah                          ; eb ef
+    jmp short 048e9h                          ; eb ef
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -6464,12 +6488,12 @@
     mov al, byte [es:si+025h]                 ; 26 8a 44 25
     test al, al                               ; 84 c0
-    je short 048d6h                           ; 74 06
+    je short 04915h                           ; 74 06
     or bh, 0b1h                               ; 80 cf b1
-    jmp near 046a9h                           ; e9 d3 fd
-    je short 048ffh                           ; 74 27
+    jmp near 046e8h                           ; e9 d3 fd
+    je short 0493eh                           ; 74 27
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 0b1h                               ; 80 cc b1
-    jmp near 04b37h                           ; e9 54 02
+    jmp near 04b76h                           ; e9 54 02
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -6481,8 +6505,8 @@
     mov word [bp-00ch], ax                    ; 89 46 f4
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 04902h                          ; 73 05
-    jmp short 0488eh                          ; eb 8f
-    jmp near 04af7h                           ; e9 f5 01
-    jc short 04966h                           ; 72 62
+    jnc short 04941h                          ; 73 05
+    jmp short 048cdh                          ; eb 8f
+    jmp near 04b36h                           ; e9 f5 01
+    jc short 049a5h                           ; 72 62
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -6508,6 +6532,6 @@
     mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff
     cmp word [bp-00ch], strict byte 0001eh    ; 83 7e f4 1e
-    jnc short 0496fh                          ; 73 03
-    jmp near 04a2bh                           ; e9 bc 00
+    jnc short 049aeh                          ; 73 03
+    jmp near 04a6ah                           ; e9 bc 00
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
@@ -6552,7 +6576,7 @@
     xor cl, cl                                ; 30 c9
     xor ch, ch                                ; 30 ed
-    jmp short 04a0bh                          ; eb 05
+    jmp short 04a4ah                          ; eb 05
     cmp ch, 00fh                              ; 80 fd 0f
-    jnc short 04a21h                          ; 73 16
+    jnc short 04a60h                          ; 73 16
     mov al, ch                                ; 88 e8
     xor ah, ah                                ; 30 e4
@@ -6560,15 +6584,15 @@
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01650h                               ; e8 35 cc
+    call 01650h                               ; e8 f6 cb
     add cl, al                                ; 00 c1
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 04a06h                          ; eb e5
+    jmp short 04a45h                          ; eb e5
     neg cl                                    ; f6 d9
     mov es, [bp-01eh]                         ; 8e 46 e2
     mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
     cmp word [bp-00ch], strict byte 00042h    ; 83 7e f4 42
-    jnc short 04a34h                          ; 73 03
-    jmp near 04af7h                           ; e9 c3 00
+    jnc short 04a73h                          ; 73 03
+    jmp near 04b36h                           ; e9 c3 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -6589,5 +6613,5 @@
     mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
     test al, al                               ; 84 c0
-    jne short 04a7ch                          ; 75 0c
+    jne short 04abbh                          ; 75 0c
     mov word [es:bx+024h], 05349h             ; 26 c7 47 24 49 53
     mov word [es:bx+026h], 02041h             ; 26 c7 47 26 41 20
@@ -6598,5 +6622,5 @@
     mov word [es:bx+02eh], 02020h             ; 26 c7 47 2e 20 20
     test al, al                               ; 84 c0
-    jne short 04ab1h                          ; 75 16
+    jne short 04af0h                          ; 75 16
     mov word [es:bx+030h], dx                 ; 26 89 57 30
     mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00
@@ -6613,7 +6637,7 @@
     xor al, al                                ; 30 c0
     mov AH, strict byte 01eh                  ; b4 1e
-    jmp short 04adch                          ; eb 05
+    jmp short 04b1bh                          ; eb 05
     cmp ah, 040h                              ; 80 fc 40
-    jnc short 04aeeh                          ; 73 12
+    jnc short 04b2dh                          ; 73 12
     mov dl, ah                                ; 88 e2
     xor dh, dh                                ; 30 f6
@@ -6624,5 +6648,5 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 04ad7h                          ; eb e9
+    jmp short 04b16h                          ; eb e9
     neg al                                    ; f6 d8
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -6632,5 +6656,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 58 cb
+    call 0165eh                               ; e8 19 cb
     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6641,14 +6665,14 @@
     or bh, 006h                               ; 80 cf 06
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 04b4bh                          ; eb 32
+    jmp short 04b8ah                          ; eb 32
     cmp bx, strict byte 00006h                ; 83 fb 06
-    je short 04af7h                           ; 74 d9
+    je short 04b36h                           ; 74 d9
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jc short 04b2fh                           ; 72 0c
-    jbe short 04af7h                          ; 76 d2
+    jc short 04b6eh                           ; 72 0c
+    jbe short 04b36h                          ; 76 d2
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 04b2fh                           ; 72 05
+    jc short 04b6eh                           ; 72 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 04af7h                          ; 76 c8
+    jbe short 04b36h                          ; 76 c8
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6660,36 +6684,36 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 13 cb
+    call 0165eh                               ; e8 d4 ca
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
-    jmp short 04b0ah                          ; eb b9
-print_boot_device_:                          ; 0xf4b51 LB 0x4b
+    jmp short 04b49h                          ; eb b9
+print_boot_device_:                          ; 0xf4b90 LB 0x4b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     test al, al                               ; 84 c0
-    je short 04b5eh                           ; 74 05
+    je short 04b9dh                           ; 74 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 04b78h                          ; eb 1a
+    jmp short 04bb7h                          ; eb 1a
     test dl, dl                               ; 84 d2
-    je short 04b67h                           ; 74 05
+    je short 04ba6h                           ; 74 05
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 04b78h                          ; eb 11
+    jmp short 04bb7h                          ; eb 11
     test bl, 080h                             ; f6 c3 80
-    jne short 04b70h                          ; 75 04
+    jne short 04bafh                          ; 75 04
     xor dh, dh                                ; 30 f6
-    jmp short 04b78h                          ; eb 08
+    jmp short 04bb7h                          ; eb 08
     test bl, 080h                             ; f6 c3 80
-    je short 04b96h                           ; 74 21
+    je short 04bd5h                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 a0 cd
+    call 01923h                               ; e8 61 cd
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00dcah                            ; 81 c2 ca 0d
+    add dx, 00dc6h                            ; 81 c2 c6 0d
     push dx                                   ; 52
     push 00494h                               ; 68 94 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 d3 cd
+    call 01966h                               ; e8 94 cd
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6697,5 +6721,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_boot_failure_:                         ; 0xf4b9c LB 0x96
+print_boot_failure_:                         ; 0xf4bdb LB 0x96
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6708,51 +6732,51 @@
     mov si, cx                                ; 89 ce
     test al, al                               ; 84 c0
-    je short 04bcch                           ; 74 1b
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04c0bh                           ; 74 1b
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 67 cd
-    push 00ddeh                               ; 68 de 0d
+    call 01923h                               ; e8 28 cd
+    push 00ddah                               ; 68 da 0d
     push 004a8h                               ; 68 a8 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 9f cd
+    call 01966h                               ; e8 60 cd
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 04c10h                          ; eb 44
+    jmp short 04c4fh                          ; eb 44
     test ah, ah                               ; 84 e4
-    je short 04be0h                           ; 74 10
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04c1fh                           ; 74 10
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 48 cd
-    push 00de8h                               ; 68 e8 0d
-    jmp short 04bbfh                          ; eb df
+    call 01923h                               ; e8 09 cd
+    push 00de4h                               ; 68 e4 0d
+    jmp short 04bfeh                          ; eb df
     test bl, 080h                             ; f6 c3 80
-    je short 04bf6h                           ; 74 11
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04c35h                           ; 74 11
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 33 cd
+    call 01923h                               ; e8 f4 cc
     push si                                   ; 56
-    push 00dd4h                               ; 68 d4 0d
-    jmp short 04c05h                          ; eb 0f
-    mov bx, 00da4h                            ; bb a4 0d
+    push 00dd0h                               ; 68 d0 0d
+    jmp short 04c44h                          ; eb 0f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 22 cd
+    call 01923h                               ; e8 e3 cc
     push si                                   ; 56
-    push 00dcah                               ; 68 ca 0d
+    push 00dc6h                               ; 68 c6 0d
     push 004bdh                               ; 68 bd 04
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 59 cd
+    call 01966h                               ; e8 1a cd
     add sp, strict byte 00008h                ; 83 c4 08
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04c2ah                          ; 75 14
+    jne short 04c69h                          ; 75 14
     test dl, dl                               ; 84 d2
-    jne short 04c1fh                          ; 75 05
+    jne short 04c5eh                          ; 75 05
     push 004d5h                               ; 68 d5 04
-    jmp short 04c22h                          ; eb 03
+    jmp short 04c61h                          ; eb 03
     push 004ffh                               ; 68 ff 04
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 3f cd
+    call 01966h                               ; e8 00 cd
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6760,5 +6784,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-print_cdromboot_failure_:                    ; 0xf4c32 LB 0x27
+print_cdromboot_failure_:                    ; 0xf4c71 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6767,12 +6791,12 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 de cc
+    call 01923h                               ; e8 9f cc
     push dx                                   ; 52
     push 00534h                               ; 68 34 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 18 cd
+    call 01966h                               ; e8 d9 cc
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -6782,5 +6806,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int19_function:                             ; 0xf4c59 LB 0x271
+_int19_function:                             ; 0xf4c98 LB 0x271
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6790,14 +6814,14 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 02 ca
+    call 0166ch                               ; e8 c3 c9
     mov bx, ax                                ; 89 c3
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     mov ax, strict word 0003dh                ; b8 3d 00
-    call 016ach                               ; e8 33 ca
+    call 016ach                               ; e8 f4 c9
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00038h                ; b8 38 00
-    call 016ach                               ; e8 29 ca
+    call 016ach                               ; e8 ea c9
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
@@ -6806,5 +6830,5 @@
     or si, ax                                 ; 09 c6
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016ach                               ; e8 18 ca
+    call 016ach                               ; e8 d9 c9
     and AL, strict byte 00fh                  ; 24 0f
     xor ah, ah                                ; 30 e4
@@ -6813,31 +6837,31 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01650h                               ; e8 ab c9
+    call 01650h                               ; e8 6c c9
     test al, al                               ; 84 c0
-    je short 04cb5h                           ; 74 0c
+    je short 04cf4h                           ; 74 0c
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01650h                               ; e8 9f c9
+    call 01650h                               ; e8 60 c9
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04ccbh                          ; 75 10
+    jne short 04d0ah                          ; 75 10
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016ach                               ; e8 eb c9
+    call 016ach                               ; e8 ac c9
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
     sar ax, 004h                              ; c1 f8 04
-    call 07dabh                               ; e8 e0 30
+    call 07deah                               ; e8 e0 30
     cmp byte [bp+004h], 002h                  ; 80 7e 04 02
-    jne short 04cd4h                          ; 75 03
+    jne short 04d13h                          ; 75 03
     shr si, 004h                              ; c1 ee 04
     cmp byte [bp+004h], 003h                  ; 80 7e 04 03
-    jne short 04cddh                          ; 75 03
+    jne short 04d1ch                          ; 75 03
     shr si, 008h                              ; c1 ee 08
     cmp byte [bp+004h], 004h                  ; 80 7e 04 04
-    jne short 04ce6h                          ; 75 03
+    jne short 04d25h                          ; 75 03
     shr si, 00ch                              ; c1 ee 0c
     cmp si, strict byte 00010h                ; 83 fe 10
-    jnc short 04cefh                          ; 73 04
+    jnc short 04d2eh                          ; 73 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     xor al, al                                ; 30 c0
@@ -6845,8 +6869,8 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 1e cc
+    call 01923h                               ; e8 df cb
     push si                                   ; 56
     mov al, byte [bp+004h]                    ; 8a 46 04
@@ -6855,39 +6879,39 @@
     push 00554h                               ; 68 54 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 52 cc
+    call 01966h                               ; e8 13 cc
     add sp, strict byte 00008h                ; 83 c4 08
     and si, strict byte 0000fh                ; 83 e6 0f
     cmp si, strict byte 00002h                ; 83 fe 02
-    jc short 04d2dh                           ; 72 0e
-    jbe short 04d3ch                          ; 76 1b
+    jc short 04d6ch                           ; 72 0e
+    jbe short 04d7bh                          ; 76 1b
     cmp si, strict byte 00004h                ; 83 fe 04
-    je short 04d5ah                           ; 74 34
+    je short 04d99h                           ; 74 34
     cmp si, strict byte 00003h                ; 83 fe 03
-    je short 04d50h                           ; 74 25
-    jmp short 04d89h                          ; eb 5c
+    je short 04d8fh                           ; 74 25
+    jmp short 04dc8h                          ; eb 5c
     cmp si, strict byte 00001h                ; 83 fe 01
-    jne short 04d89h                          ; 75 57
+    jne short 04dc8h                          ; 75 57
     xor al, al                                ; 30 c0
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], al                    ; 88 46 f8
-    jmp short 04da1h                          ; eb 65
+    jmp short 04de0h                          ; eb 65
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 01650h                               ; e8 0b c9
+    call 01650h                               ; e8 cc c8
     add AL, strict byte 080h                  ; 04 80
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp short 04da1h                          ; eb 51
+    jmp short 04de0h                          ; eb 51
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov byte [bp-008h], 001h                  ; c6 46 f8 01
-    jmp short 04d64h                          ; eb 0a
+    jmp short 04da3h                          ; eb 0a
     mov byte [bp-00ah], 001h                  ; c6 46 f6 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04da1h                           ; 74 3d
-    call 03d5dh                               ; e8 f6 ef
+    je short 04de0h                           ; 74 3d
+    call 03d9ch                               ; e8 f6 ef
     mov bx, ax                                ; 89 c3
     test AL, strict byte 0ffh                 ; a8 ff
-    je short 04d90h                           ; 74 23
-    call 04c32h                               ; e8 c2 fe
+    je short 04dcfh                           ; 74 23
+    call 04c71h                               ; e8 c2 fe
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -6899,34 +6923,34 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov cx, strict word 00001h                ; b9 01 00
-    call 04b9ch                               ; e8 13 fe
+    call 04bdbh                               ; e8 13 fe
     xor ax, ax                                ; 31 c0
     xor dx, dx                                ; 31 d2
-    jmp near 04ec3h                           ; e9 33 01
+    jmp near 04f02h                           ; e9 33 01
     mov dx, 00372h                            ; ba 72 03
     mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 0166ch                               ; e8 d3 c8
+    call 0166ch                               ; e8 94 c8
     mov di, ax                                ; 89 c7
     shr bx, 008h                              ; c1 eb 08
     mov byte [bp-006h], bl                    ; 88 5e fa
     cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
-    jne short 04dfch                          ; 75 55
+    jne short 04e3bh                          ; 75 55
     xor si, si                                ; 31 f6
     mov ax, 0e200h                            ; b8 00 e2
     mov es, ax                                ; 8e c0
     cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 04d70h                          ; 75 bb
+    jne short 04dafh                          ; 75 bb
     mov cx, ax                                ; 89 c1
     mov si, word [es:si+01ah]                 ; 26 8b 74 1a
     cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
-    jne short 04d70h                          ; 75 ad
+    jne short 04dafh                          ; 75 ad
     cmp word [es:si], 05024h                  ; 26 81 3c 24 50
-    jne short 04d70h                          ; 75 a6
+    jne short 04dafh                          ; 75 a6
     mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
     mov dx, word [es:di]                      ; 26 8b 15
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, 06568h                            ; 3d 68 65
-    jne short 04dfeh                          ; 75 24
+    jne short 04e3dh                          ; 75 24
     cmp dx, 07445h                            ; 81 fa 45 74
-    jne short 04dfeh                          ; 75 1e
+    jne short 04e3dh                          ; 75 1e
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -6935,9 +6959,9 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04b51h                               ; e8 5f fd
+    call 04b90h                               ; e8 5f fd
     mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
     mov word [bp-010h], cx                    ; 89 4e f0
-    jmp short 04e1dh                          ; eb 21
-    jmp short 04e23h                          ; eb 25
+    jmp short 04e5ch                          ; eb 21
+    jmp short 04e62h                          ; eb 25
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -6946,5 +6970,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04b51h                               ; e8 41 fd
+    call 04b90h                               ; e8 41 fd
     sti                                       ; fb
     mov word [bp-010h], cx                    ; 89 4e f0
@@ -6953,9 +6977,9 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     call far [bp-012h]                        ; ff 5e ee
-    jmp near 04d70h                           ; e9 4d ff
+    jmp near 04dafh                           ; e9 4d ff
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 04e50h                          ; 75 27
+    jne short 04e8fh                          ; 75 27
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 04e50h                          ; 75 21
+    jne short 04e8fh                          ; 75 21
     mov di, 007c0h                            ; bf c0 07
     mov es, di                                ; 8e c7
@@ -6970,30 +6994,30 @@
     sbb ax, strict byte 00000h                ; 83 d8 00
     test ax, ax                               ; 85 c0
-    je short 04e50h                           ; 74 03
-    jmp near 04d70h                           ; e9 20 ff
+    je short 04e8fh                           ; 74 03
+    jmp near 04dafh                           ; e9 20 ff
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 04e5ah                           ; 74 04
+    je short 04e99h                           ; 74 04
     xor bl, bl                                ; 30 db
-    jmp short 04e5ch                          ; eb 02
+    jmp short 04e9bh                          ; eb 02
     mov BL, strict byte 001h                  ; b3 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04e64h                           ; 74 02
+    je short 04ea3h                           ; 74 02
     mov BL, strict byte 001h                  ; b3 01
     xor dx, dx                                ; 31 d2
     mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 01 c8
+    call 0166ch                               ; e8 c2 c7
     mov si, ax                                ; 89 c6
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 f7 c7
+    call 0166ch                               ; e8 b8 c7
     cmp si, ax                                ; 39 c6
-    je short 04e8ah                           ; 74 11
+    je short 04ec9h                           ; 74 11
     test bl, bl                               ; 84 db
-    jne short 04ea2h                          ; 75 25
+    jne short 04ee1h                          ; 75 25
     mov dx, 001feh                            ; ba fe 01
     mov ax, di                                ; 89 f8
-    call 0166ch                               ; e8 e7 c7
+    call 0166ch                               ; e8 a8 c7
     cmp ax, 0aa55h                            ; 3d 55 aa
-    je short 04ea2h                           ; 74 18
+    je short 04ee1h                           ; 74 18
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -7005,5 +7029,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor cx, cx                                ; 31 c9
-    jmp near 04d86h                           ; e9 e4 fe
+    jmp near 04dc5h                           ; e9 e4 fe
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7012,5 +7036,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04b51h                               ; e8 9d fc
+    call 04b90h                               ; e8 9d fc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -7025,5 +7049,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-keyboard_panic_:                             ; 0xf4eca LB 0x13
+keyboard_panic_:                             ; 0xf4f09 LB 0x13
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7031,10 +7055,10 @@
     push 00574h                               ; 68 74 05
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 90 ca
+    call 01966h                               ; e8 51 ca
     add sp, strict byte 00006h                ; 83 c4 06
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_keyboard_init:                              ; 0xf4edd LB 0x26a
+_keyboard_init:                              ; 0xf4f1c LB 0x26a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7048,16 +7072,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04f00h                           ; 74 0d
+    je short 04f3fh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f00h                          ; 76 08
+    jbe short 04f3fh                          ; 76 08
     xor al, al                                ; 30 c0
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04ee9h                          ; eb e9
+    jmp short 04f28h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f09h                          ; 75 05
+    jne short 04f48h                          ; 75 05
     xor ax, ax                                ; 31 c0
-    call 04ecah                               ; e8 c1 ff
+    call 04f09h                               ; e8 c1 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7066,16 +7090,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04f23h                          ; 75 0d
+    jne short 04f62h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f23h                          ; 76 08
+    jbe short 04f62h                          ; 76 08
     mov AL, strict byte 001h                  ; b0 01
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f0ch                          ; eb e9
+    jmp short 04f4bh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f2dh                          ; 75 06
+    jne short 04f6ch                          ; 75 06
     mov ax, strict word 00001h                ; b8 01 00
-    call 04ecah                               ; e8 9d ff
+    call 04f09h                               ; e8 9d ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7083,7 +7107,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, strict word 00055h                ; 3d 55 00
-    je short 04f3eh                           ; 74 06
+    je short 04f7dh                           ; 74 06
     mov ax, 003dfh                            ; b8 df 03
-    call 04ecah                               ; e8 8c ff
+    call 04f09h                               ; e8 8c ff
     mov AL, strict byte 0abh                  ; b0 ab
     mov dx, strict word 00064h                ; ba 64 00
@@ -7095,16 +7119,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04f5eh                           ; 74 0d
+    je short 04f9dh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f5eh                          ; 76 08
+    jbe short 04f9dh                          ; 76 08
     mov AL, strict byte 010h                  ; b0 10
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f47h                          ; eb e9
+    jmp short 04f86h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f68h                          ; 75 06
+    jne short 04fa7h                          ; 75 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 04ecah                               ; e8 62 ff
+    call 04f09h                               ; e8 62 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7113,16 +7137,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04f82h                          ; 75 0d
+    jne short 04fc1h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04f82h                          ; 76 08
+    jbe short 04fc1h                          ; 76 08
     mov AL, strict byte 011h                  ; b0 11
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04f6bh                          ; eb e9
+    jmp short 04faah                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04f8ch                          ; 75 06
+    jne short 04fcbh                          ; 75 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 04ecah                               ; e8 3e ff
+    call 04f09h                               ; e8 3e ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7130,7 +7154,7 @@
     ; sub ah, ah                                ; 2a e4
     test ax, ax                               ; 85 c0
-    je short 04f9ch                           ; 74 06
+    je short 04fdbh                           ; 74 06
     mov ax, 003e0h                            ; b8 e0 03
-    call 04ecah                               ; e8 2e ff
+    call 04f09h                               ; e8 2e ff
     mov AL, strict byte 0ffh                  ; b0 ff
     mov dx, strict word 00060h                ; ba 60 00
@@ -7142,16 +7166,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04fbch                           ; 74 0d
+    je short 04ffbh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04fbch                          ; 76 08
+    jbe short 04ffbh                          ; 76 08
     mov AL, strict byte 020h                  ; b0 20
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04fa5h                          ; eb e9
+    jmp short 04fe4h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04fc6h                          ; 75 06
+    jne short 05005h                          ; 75 06
     mov ax, strict word 00014h                ; b8 14 00
-    call 04ecah                               ; e8 04 ff
+    call 04f09h                               ; e8 04 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7160,16 +7184,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 04fe0h                          ; 75 0d
+    jne short 0501fh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04fe0h                          ; 76 08
+    jbe short 0501fh                          ; 76 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04fc9h                          ; eb e9
+    jmp short 05008h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 04feah                          ; 75 06
+    jne short 05029h                          ; 75 06
     mov ax, strict word 00015h                ; b8 15 00
-    call 04ecah                               ; e8 e0 fe
+    call 04f09h                               ; e8 e0 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7177,7 +7201,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 04ffbh                           ; 74 06
+    je short 0503ah                           ; 74 06
     mov ax, 003e1h                            ; b8 e1 03
-    call 04ecah                               ; e8 cf fe
+    call 04f09h                               ; e8 cf fe
     mov dx, strict word 00064h                ; ba 64 00
     in AL, DX                                 ; ec
@@ -7185,9 +7209,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0500dh                          ; 75 08
+    jne short 0504ch                          ; 75 08
     mov AL, strict byte 031h                  ; b0 31
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04ffbh                          ; eb ee
+    jmp short 0503ah                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7195,12 +7219,12 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 05026h                           ; 74 0e
+    je short 05065h                           ; 74 0e
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 05026h                           ; 74 06
+    je short 05065h                           ; 74 06
     mov ax, 003e2h                            ; b8 e2 03
-    call 04ecah                               ; e8 a4 fe
+    call 04f09h                               ; e8 a4 fe
     mov AL, strict byte 0f5h                  ; b0 f5
     mov dx, strict word 00060h                ; ba 60 00
@@ -7212,16 +7236,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 05046h                           ; 74 0d
+    je short 05085h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05046h                          ; 76 08
+    jbe short 05085h                          ; 76 08
     mov AL, strict byte 040h                  ; b0 40
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0502fh                          ; eb e9
+    jmp short 0506eh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05050h                          ; 75 06
+    jne short 0508fh                          ; 75 06
     mov ax, strict word 00028h                ; b8 28 00
-    call 04ecah                               ; e8 7a fe
+    call 04f09h                               ; e8 7a fe
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7230,16 +7254,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0506ah                          ; 75 0d
+    jne short 050a9h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0506ah                          ; 76 08
+    jbe short 050a9h                          ; 76 08
     mov AL, strict byte 041h                  ; b0 41
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05053h                          ; eb e9
+    jmp short 05092h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05074h                          ; 75 06
+    jne short 050b3h                          ; 75 06
     mov ax, strict word 00029h                ; b8 29 00
-    call 04ecah                               ; e8 56 fe
+    call 04f09h                               ; e8 56 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7247,7 +7271,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 05085h                           ; 74 06
+    je short 050c4h                           ; 74 06
     mov ax, 003e3h                            ; b8 e3 03
-    call 04ecah                               ; e8 45 fe
+    call 04f09h                               ; e8 45 fe
     mov AL, strict byte 060h                  ; b0 60
     mov dx, strict word 00064h                ; ba 64 00
@@ -7259,16 +7283,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050a5h                           ; 74 0d
+    je short 050e4h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050a5h                          ; 76 08
+    jbe short 050e4h                          ; 76 08
     mov AL, strict byte 050h                  ; b0 50
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0508eh                          ; eb e9
+    jmp short 050cdh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050afh                          ; 75 06
+    jne short 050eeh                          ; 75 06
     mov ax, strict word 00032h                ; b8 32 00
-    call 04ecah                               ; e8 1b fe
+    call 04f09h                               ; e8 1b fe
     mov AL, strict byte 065h                  ; b0 65
     mov dx, strict word 00060h                ; ba 60 00
@@ -7280,16 +7304,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050cfh                           ; 74 0d
+    je short 0510eh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050cfh                          ; 76 08
+    jbe short 0510eh                          ; 76 08
     mov AL, strict byte 060h                  ; b0 60
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050b8h                          ; eb e9
+    jmp short 050f7h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050d9h                          ; 75 06
+    jne short 05118h                          ; 75 06
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 04ecah                               ; e8 f1 fd
+    call 04f09h                               ; e8 f1 fd
     mov AL, strict byte 0f4h                  ; b0 f4
     mov dx, strict word 00060h                ; ba 60 00
@@ -7301,16 +7325,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050f9h                           ; 74 0d
+    je short 05138h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050f9h                          ; 76 08
+    jbe short 05138h                          ; 76 08
     mov AL, strict byte 070h                  ; b0 70
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050e2h                          ; eb e9
+    jmp short 05121h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05103h                          ; 75 06
+    jne short 05142h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04ecah                               ; e8 c7 fd
+    call 04f09h                               ; e8 c7 fd
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7319,16 +7343,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0511dh                          ; 75 0d
+    jne short 0515ch                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0511dh                          ; 76 08
+    jbe short 0515ch                          ; 76 08
     mov AL, strict byte 071h                  ; b0 71
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05106h                          ; eb e9
+    jmp short 05145h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05127h                          ; 75 06
+    jne short 05166h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04ecah                               ; e8 a3 fd
+    call 04f09h                               ; e8 a3 fd
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7336,16 +7360,16 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 05138h                           ; 74 06
+    je short 05177h                           ; 74 06
     mov ax, 003e4h                            ; b8 e4 03
-    call 04ecah                               ; e8 92 fd
+    call 04f09h                               ; e8 92 fd
     mov AL, strict byte 0a8h                  ; b0 a8
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
     xor ax, ax                                ; 31 c0
-    call 065eah                               ; e8 a7 14
+    call 06629h                               ; e8 a7 14
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-enqueue_key_:                                ; 0xf5147 LB 0x9e
+enqueue_key_:                                ; 0xf5186 LB 0x9e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7359,18 +7383,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0f c5
+    call 0166ch                               ; e8 d0 c4
     mov di, ax                                ; 89 c7
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 04 c5
+    call 0166ch                               ; e8 c5 c4
     mov si, ax                                ; 89 c6
     lea cx, [si+002h]                         ; 8d 4c 02
     cmp cx, strict byte 0003eh                ; 83 f9 3e
-    jc short 05175h                           ; 72 03
+    jc short 051b4h                           ; 72 03
     mov cx, strict word 0001eh                ; b9 1e 00
     cmp cx, di                                ; 39 f9
-    jne short 0517dh                          ; 75 04
+    jne short 051bch                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 051a7h                          ; eb 2a
+    jmp short 051e6h                          ; eb 2a
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -7378,14 +7402,14 @@
     mov dx, si                                ; 89 f2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d3 c4
+    call 0165eh                               ; e8 94 c4
     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
     lea dx, [si+001h]                         ; 8d 54 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 c5 c4
+    call 0165eh                               ; e8 86 c4
     mov bx, cx                                ; 89 cb
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 d6 c4
+    call 0167ah                               ; e8 97 c4
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -7397,8 +7421,8 @@
     retn                                      ; c3
     db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
-    db  01dh, 023h, 055h, 0dbh, 052h, 07dh, 052h, 07dh, 052h, 06ah, 053h, 054h, 052h, 0eeh, 053h, 062h
-    db  054h, 009h, 055h, 0e7h, 054h, 022h, 053h, 07dh, 052h, 07dh, 052h, 0ach, 053h, 072h, 052h, 042h
-    db  054h, 0c7h, 054h, 002h, 055h
-_int09_function:                             ; 0xf51e5 LB 0x494
+    db  01dh, 062h, 055h, 01ah, 053h, 0bch, 052h, 0bch, 052h, 0a9h, 053h, 093h, 052h, 02dh, 054h, 0a1h
+    db  054h, 048h, 055h, 026h, 055h, 061h, 053h, 0bch, 052h, 0bch, 052h, 0ebh, 053h, 0b1h, 052h, 081h
+    db  054h, 006h, 055h, 041h, 055h
+_int09_function:                             ; 0xf5224 LB 0x494
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7408,27 +7432,27 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     test al, al                               ; 84 c0
-    jne short 0520fh                          ; 75 19
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 0524eh                          ; 75 19
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 22 c7
+    call 01923h                               ; e8 e3 c6
     push 00587h                               ; 68 87 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 5d c7
+    call 01966h                               ; e8 1e c7
     add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 052d5h                           ; e9 c6 00
+    jmp near 05314h                           ; e9 c6 00
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 38 c4
+    call 01650h                               ; e8 f9 c3
     mov byte [bp-010h], al                    ; 88 46 f0
     mov byte [bp-008h], al                    ; 88 46 f8
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 29 c4
+    call 01650h                               ; e8 ea c3
     mov byte [bp-004h], al                    ; 88 46 fc
     mov byte [bp-00ch], al                    ; 88 46 f4
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 1a c4
+    call 01650h                               ; e8 db c3
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-00eh], al                    ; 88 46 f2
@@ -7437,9 +7461,9 @@
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 051b0h                            ; bf b0 51
+    mov di, 051efh                            ; bf ef 51
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+051c1h]               ; 2e 8b 85 c1 51
+    mov ax, word [cs:di+05200h]               ; 2e 8b 85 00 52
     jmp ax                                    ; ff e0
     xor byte [bp-00eh], 040h                  ; 80 76 f2 40
@@ -7449,27 +7473,27 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 f6 c3
+    call 0165eh                               ; e8 b7 c3
     or byte [bp-008h], 040h                   ; 80 4e f8 40
     mov al, byte [bp-008h]                    ; 8a 46 f8
-    jmp near 054f3h                           ; e9 81 02
+    jmp near 05532h                           ; e9 81 02
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0bfh                  ; 24 bf
     mov byte [bp-008h], al                    ; 88 46 f8
-    jmp near 054f3h                           ; e9 76 02
+    jmp near 05532h                           ; e9 76 02
     test byte [bp-00ch], 002h                 ; f6 46 f4 02
-    jne short 052b6h                          ; 75 33
+    jne short 052f5h                          ; 75 33
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 02ah                  ; 3c 2a
-    jne short 05291h                          ; 75 05
+    jne short 052d0h                          ; 75 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 05294h                          ; eb 03
+    jmp short 052d3h                          ; eb 03
     mov dx, strict word 00001h                ; ba 01 00
     test byte [bp-00ah], 080h                 ; f6 46 f6 80
-    je short 052a3h                           ; 74 09
+    je short 052e2h                           ; 74 09
     mov al, dl                                ; 88 d0
     not al                                    ; f6 d0
     and byte [bp-00eh], al                    ; 20 46 f2
-    jmp short 052a6h                          ; eb 03
+    jmp short 052e5h                          ; eb 03
     or byte [bp-00eh], dl                     ; 08 56 f2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -7478,9 +7502,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 a8 c3
+    call 0165eh                               ; e8 69 c3
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 01dh                  ; 3c 1d
-    je short 052c3h                           ; 74 04
+    je short 05302h                           ; 74 04
     and byte [bp-00ch], 0feh                  ; 80 66 f4 fe
     and byte [bp-00ch], 0fdh                  ; 80 66 f4 fd
@@ -7489,5 +7513,5 @@
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 89 c3
+    call 0165eh                               ; e8 4a c3
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
@@ -7495,5 +7519,5 @@
     retn                                      ; c3
     test byte [bp-004h], 001h                 ; f6 46 fc 01
-    jne short 052b6h                          ; 75 d5
+    jne short 052f5h                          ; 75 d5
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 004h                   ; 0c 04
@@ -7503,8 +7527,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 68 c3
+    call 0165eh                               ; e8 29 c3
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 0530bh                           ; 74 0e
+    je short 0534ah                           ; 74 0e
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7512,5 +7536,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 0531ah                          ; eb 0f
+    jmp short 05359h                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 001h                   ; 0c 01
@@ -7520,8 +7544,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 3e c3
-    jmp short 052b6h                          ; eb 94
+    call 0165eh                               ; e8 ff c2
+    jmp short 052f5h                          ; eb 94
     test byte [bp-004h], 001h                 ; f6 46 fc 01
-    jne short 052b6h                          ; 75 8e
+    jne short 052f5h                          ; 75 8e
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fbh                  ; 24 fb
@@ -7531,8 +7555,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 21 c3
+    call 0165eh                               ; e8 e2 c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 05352h                           ; 74 0e
+    je short 05391h                           ; 74 0e
     and AL, strict byte 0fbh                  ; 24 fb
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7540,5 +7564,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05361h                          ; eb 0f
+    jmp short 053a0h                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0feh                  ; 24 fe
@@ -7548,6 +7572,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 f7 c2
-    jmp near 052b6h                           ; e9 4c ff
+    call 0165eh                               ; e8 b8 c2
+    jmp near 052f5h                           ; e9 4c ff
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 008h                   ; 0c 08
@@ -7557,8 +7581,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 df c2
+    call 0165eh                               ; e8 a0 c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 05394h                           ; 74 0e
+    je short 053d3h                           ; 74 0e
     or AL, strict byte 008h                   ; 0c 08
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7566,5 +7590,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 053a3h                          ; eb 0f
+    jmp short 053e2h                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 002h                   ; 0c 02
@@ -7574,6 +7598,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 b5 c2
-    jmp near 052b6h                           ; e9 0a ff
+    call 0165eh                               ; e8 76 c2
+    jmp near 052f5h                           ; e9 0a ff
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0f7h                  ; 24 f7
@@ -7583,8 +7607,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 9d c2
+    call 0165eh                               ; e8 5e c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 002h                 ; a8 02
-    je short 053d6h                           ; 74 0e
+    je short 05415h                           ; 74 0e
     and AL, strict byte 0f7h                  ; 24 f7
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -7592,5 +7616,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 053e5h                          ; eb 0f
+    jmp short 05424h                          ; eb 0f
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0fdh                  ; 24 fd
@@ -7600,8 +7624,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 73 c2
-    jmp near 052b6h                           ; e9 c8 fe
+    call 0165eh                               ; e8 34 c2
+    jmp near 052f5h                           ; e9 c8 fe
     test byte [bp-004h], 003h                 ; f6 46 fc 03
-    jne short 05414h                          ; 75 20
+    jne short 05453h                          ; 75 20
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 020h                   ; 0c 20
@@ -7611,9 +7635,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 55 c2
+    call 0165eh                               ; e8 16 c2
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor AL, strict byte 020h                  ; 34 20
     mov byte [bp-00eh], al                    ; 88 46 f2
-    jmp near 052a9h                           ; e9 95 fe
+    jmp near 052e8h                           ; e9 95 fe
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 008h                   ; 0c 08
@@ -7623,18 +7647,18 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 35 c2
+    call 0165eh                               ; e8 f6 c1
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
-    call 0e034h                               ; e8 02 8c
+    call 0e034h                               ; e8 c3 8b
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 15 c2
+    call 01650h                               ; e8 d6 c1
     test AL, strict byte 008h                 ; a8 08
-    jne short 05432h                          ; 75 f3
-    jmp near 052b6h                           ; e9 74 fe
+    jne short 05471h                          ; 75 f3
+    jmp near 052f5h                           ; e9 74 fe
     test byte [bp-004h], 003h                 ; f6 46 fc 03
-    je short 0544bh                           ; 74 03
-    jmp near 052b6h                           ; e9 6b fe
+    je short 0548ah                           ; 74 03
+    jmp near 052f5h                           ; e9 6b fe
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0dfh                  ; 24 df
@@ -7644,19 +7668,19 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 fe c1
-    jmp short 05448h                          ; eb e6
+    call 0165eh                               ; e8 bf c1
+    jmp short 05487h                          ; eb e6
     test byte [bp-004h], 002h                 ; f6 46 fc 02
-    je short 0549bh                           ; 74 33
+    je short 054dah                           ; 74 33
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 fb c1
+    call 0166ch                               ; e8 bc c1
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 fe c1
+    call 0167ah                               ; e8 bf c1
     mov bx, 00080h                            ; bb 80 00
     mov dx, strict word 00071h                ; ba 71 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 d6 c1
+    call 0165eh                               ; e8 97 c1
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
@@ -7667,6 +7691,6 @@
     xor dx, dx                                ; 31 d2
     xor ax, ax                                ; 31 c0
-    call 05147h                               ; e8 ae fc
-    jmp short 05448h                          ; eb ad
+    call 05186h                               ; e8 ae fc
+    jmp short 05487h                          ; eb ad
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 010h                   ; 0c 10
@@ -7676,5 +7700,5 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 ae c1
+    call 0165eh                               ; e8 6f c1
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor AL, strict byte 010h                  ; 34 10
@@ -7684,9 +7708,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 99 c1
-    jmp short 05448h                          ; eb 81
+    call 0165eh                               ; e8 5a c1
+    jmp short 05487h                          ; eb 81
     test byte [bp-004h], 002h                 ; f6 46 fc 02
-    je short 054d0h                           ; 74 03
-    jmp near 052b6h                           ; e9 e6 fd
+    je short 0550fh                           ; 74 03
+    jmp near 052f5h                           ; e9 e6 fd
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0efh                  ; 24 ef
@@ -7696,9 +7720,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 79 c1
-    jmp short 054cdh                          ; eb e6
+    call 0165eh                               ; e8 3a c1
+    jmp short 0550ch                          ; eb e6
     mov al, byte [bp-010h]                    ; 8a 46 f0
     test AL, strict byte 004h                 ; a8 04
-    jne short 054cdh                          ; 75 df
+    jne short 0550ch                          ; 75 df
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-008h], al                    ; 88 46 f8
@@ -7707,43 +7731,43 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 5e c1
-    jmp short 054cdh                          ; eb cb
+    call 0165eh                               ; e8 1f c1
+    jmp short 0550ch                          ; eb cb
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0fbh                  ; 24 fb
-    jmp short 054d5h                          ; eb cc
+    jmp short 05514h                          ; eb cc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 00ch                  ; 24 0c
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jne short 05523h                          ; 75 11
+    jne short 05562h                          ; 75 11
     mov bx, 01234h                            ; bb 34 12
     mov dx, strict word 00072h                ; ba 72 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 5c c1
+    call 0167ah                               ; e8 1d c1
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
     test byte [bp-008h], 008h                 ; f6 46 f8 08
-    je short 05538h                           ; 74 0f
+    je short 05577h                           ; 74 0f
     and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
     mov dx, strict word 00018h                ; ba 18 00
-    jmp near 052cfh                           ; e9 97 fd
+    jmp near 0530eh                           ; e9 97 fd
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 080h                 ; a8 80
-    je short 05576h                           ; 74 37
+    je short 055b5h                           ; 74 37
     cmp AL, strict byte 0fah                  ; 3c fa
-    jne short 05555h                          ; 75 12
+    jne short 05594h                          ; 75 12
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 04 c1
+    call 01650h                               ; e8 c5 c0
     mov bl, al                                ; 88 c3
     or bl, 010h                               ; 80 cb 10
     xor bh, bh                                ; 30 ff
-    jmp short 0556bh                          ; eb 16
+    jmp short 055aah                          ; eb 16
     cmp AL, strict byte 0feh                  ; 3c fe
-    je short 0555ch                           ; 74 03
-    jmp near 052b6h                           ; e9 5a fd
+    je short 0559bh                           ; 74 03
+    jmp near 052f5h                           ; e9 5a fd
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 eb c0
+    call 01650h                               ; e8 ac c0
     or AL, strict byte 020h                   ; 0c 20
     xor ah, ah                                ; 30 e4
@@ -7751,12 +7775,12 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 ea c0
-    jmp short 05559h                          ; eb e3
+    call 0165eh                               ; e8 ab c0
+    jmp short 05598h                          ; eb e3
     cmp byte [bp-00ah], 058h                  ; 80 7e f6 58
-    jbe short 0559bh                          ; 76 1f
-    mov bx, 00da4h                            ; bb a4 0d
+    jbe short 055dah                          ; 76 1f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 9c c3
+    call 01923h                               ; e8 5d c3
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -7764,81 +7788,81 @@
     push 005a1h                               ; 68 a1 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 d1 c3
+    call 01966h                               ; e8 92 c3
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 052d5h                           ; e9 3a fd
+    jmp near 05314h                           ; e9 3a fd
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 008h                 ; a8 08
-    je short 055b5h                           ; 74 13
+    je short 055f4h                           ; 74 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov dl, byte [bx+00df8h]                  ; 8a 97 f8 0d
-    mov ax, word [bx+00df8h]                  ; 8b 87 f8 0d
-    jmp near 05645h                           ; e9 90 00
+    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
+    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
+    jmp near 05684h                           ; e9 90 00
     test AL, strict byte 004h                 ; a8 04
-    je short 055cch                           ; 74 13
+    je short 0560bh                           ; 74 13
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov dl, byte [bx+00df6h]                  ; 8a 97 f6 0d
-    mov ax, word [bx+00df6h]                  ; 8b 87 f6 0d
-    jmp near 05645h                           ; e9 79 00
+    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
+    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
+    jmp near 05684h                           ; e9 79 00
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 002h                  ; 24 02
     test al, al                               ; 84 c0
-    jbe short 055e9h                          ; 76 14
+    jbe short 05628h                          ; 76 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 047h                  ; 3c 47
-    jc short 055e9h                           ; 72 0d
+    jc short 05628h                           ; 72 0d
     cmp AL, strict byte 053h                  ; 3c 53
-    jnbe short 055e9h                         ; 77 09
+    jnbe short 05628h                         ; 77 09
     mov DL, strict byte 0e0h                  ; b2 e0
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    jmp short 05641h                          ; eb 58
+    jmp short 05680h                          ; eb 58
     test byte [bp-00eh], 003h                 ; f6 46 f2 03
-    je short 0561eh                           ; 74 2f
+    je short 0565dh                           ; 74 2f
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 0560eh                           ; 74 0a
-    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
-    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
-    jmp short 05616h                          ; eb 08
-    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
-    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
+    je short 0564dh                           ; 74 0a
+    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
+    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
+    jmp short 05655h                          ; eb 08
+    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
+    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
-    jmp short 0564bh                          ; eb 2d
+    jmp short 0568ah                          ; eb 2d
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
     imul bx, ax, strict byte 0000ah           ; 6b d8 0a
-    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 0563dh                           ; 74 0a
-    mov dl, byte [bx+00df4h]                  ; 8a 97 f4 0d
-    mov ax, word [bx+00df4h]                  ; 8b 87 f4 0d
-    jmp short 05645h                          ; eb 08
-    mov dl, byte [bx+00df2h]                  ; 8a 97 f2 0d
-    mov ax, word [bx+00df2h]                  ; 8b 87 f2 0d
+    je short 0567ch                           ; 74 0a
+    mov dl, byte [bx+00df0h]                  ; 8a 97 f0 0d
+    mov ax, word [bx+00df0h]                  ; 8b 87 f0 0d
+    jmp short 05684h                          ; eb 08
+    mov dl, byte [bx+00deeh]                  ; 8a 97 ee 0d
+    mov ax, word [bx+00deeh]                  ; 8b 87 ee 0d
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 0566bh                          ; 75 1a
+    jne short 056aah                          ; 75 1a
     test dl, dl                               ; 84 d2
-    jne short 0566bh                          ; 75 16
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 056aah                          ; 75 16
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 c3 c2
+    call 01923h                               ; e8 84 c2
     push 005d8h                               ; 68 d8 05
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 fe c2
+    call 01966h                               ; e8 bf c2
     add sp, strict byte 00004h                ; 83 c4 04
     mov bl, dl                                ; 88 d3
@@ -7847,6 +7871,6 @@
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
-    jmp near 05496h                           ; e9 1d fe
-dequeue_key_:                                ; 0xf5679 LB 0x94
+    jmp near 054d5h                           ; e9 1d fe
+dequeue_key_:                                ; 0xf56b8 LB 0x94
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7861,18 +7885,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 d9 bf
+    call 0166ch                               ; e8 9a bf
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 ce bf
+    call 0166ch                               ; e8 8f bf
     cmp bx, ax                                ; 39 c3
-    je short 056dfh                           ; 74 3d
+    je short 0571eh                           ; 74 3d
     mov dx, bx                                ; 89 da
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 a6 bf
+    call 01650h                               ; e8 67 bf
     mov cl, al                                ; 88 c1
     lea dx, [bx+001h]                         ; 8d 57 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9b bf
+    call 01650h                               ; e8 5c bf
     mov es, [bp-008h]                         ; 8e 46 f8
     mov byte [es:si], cl                      ; 26 88 0c
@@ -7880,15 +7904,15 @@
     mov byte [es:di], al                      ; 26 88 05
     cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 056dah                           ; 74 13
+    je short 05719h                           ; 74 13
     inc bx                                    ; 43
     inc bx                                    ; 43
     cmp bx, strict byte 0003eh                ; 83 fb 3e
-    jc short 056d1h                           ; 72 03
+    jc short 05710h                           ; 72 03
     mov bx, strict word 0001eh                ; bb 1e 00
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 a0 bf
+    call 0167ah                               ; e8 61 bf
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 056e1h                          ; eb 02
+    jmp short 05720h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -7901,21 +7925,22 @@
     or cl, byte [bx+di]                       ; 0a 09
     add ax, 00102h                            ; 05 02 01
-    add byte [bp+si], dl                      ; 00 12
+    add byte [bx+di+058h], dl                 ; 00 51 58
+    or byte [bx+si-066h], bl                  ; 08 58 9a
     pop ax                                    ; 58
-    leave                                     ; c9
-    push di                                   ; 57
-    pop bx                                    ; 5b
+    out 058h, ax                              ; e7 58
+    clc                                       ; f8
     pop ax                                    ; 58
-    test AL, strict byte 058h                 ; a8 58
-    mov cx, 0e258h                            ; b9 58 e2
+    and word [bx+di+02ah], bx                 ; 21 59 2a
+    pop cx                                    ; 59
+    wait                                      ; 9b
+    pop cx                                    ; 59
+    int 059h                                  ; cd 59
+    std                                       ; fd
+    pop cx                                    ; 59
+    db  036h, 05ah
+    ; ss pop dx                                 ; 36 5a
+    xchg sp, ax                               ; 94
     pop ax                                    ; 58
-    jmp short 0575bh                          ; eb 58
-    pop sp                                    ; 5c
-    pop cx                                    ; 59
-    mov ds, [bx+di-042h]                      ; 8e 59 be
-    pop cx                                    ; 59
-    neg word [bx+di+055h]                     ; f7 59 55
-    pop ax                                    ; 58
-_int16_function:                             ; 0xf570d LB 0x2f5
+_int16_function:                             ; 0xf574c LB 0x2f5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7924,10 +7949,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 33 bf
+    call 01650h                               ; e8 f4 be
     mov cl, al                                ; 88 c1
     mov bl, al                                ; 88 c3
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 26 bf
+    call 01650h                               ; e8 e7 be
     mov bh, al                                ; 88 c7
     mov dl, cl                                ; 88 ca
@@ -7939,5 +7964,5 @@
     xor al, dl                                ; 30 d0
     test ax, ax                               ; 85 c0
-    je short 057a9h                           ; 74 69
+    je short 057e8h                           ; 74 69
     cli                                       ; fa
     mov AL, strict byte 0edh                  ; b0 ed
@@ -7949,9 +7974,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05759h                          ; 75 08
+    jne short 05798h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05747h                          ; eb ee
+    jmp short 05786h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7959,5 +7984,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 057a8h                          ; 75 44
+    jne short 057e7h                          ; 75 44
     mov dl, bh                                ; 88 fa
     and dl, 0c8h                              ; 80 e2 c8
@@ -7979,9 +8004,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05795h                          ; 75 08
+    jne short 057d4h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05783h                          ; eb ee
+    jmp short 057c2h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7992,18 +8017,18 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 b6 be
+    call 0165eh                               ; e8 77 be
     sti                                       ; fb
     mov ax, word [bp+012h]                    ; 8b 46 12
     shr ax, 008h                              ; c1 e8 08
     cmp ax, 000a2h                            ; 3d a2 00
-    jnbe short 05812h                         ; 77 5e
+    jnbe short 05851h                         ; 77 5e
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 056eah                            ; bf ea 56
+    mov di, 05729h                            ; bf 29 57
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+056f5h]               ; 2e 8b 85 f5 56
+    mov ax, word [cs:di+05734h]               ; 2e 8b 85 34 57
     jmp ax                                    ; ff e0
     push strict byte 00001h                   ; 6a 01
@@ -8012,17 +8037,17 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05679h                               ; e8 a1 fe
+    call 056b8h                               ; e8 a1 fe
     test ax, ax                               ; 85 c0
-    jne short 057e7h                          ; 75 0b
+    jne short 05826h                          ; 75 0b
     push 0060fh                               ; 68 0f 06
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 82 c1
+    call 01966h                               ; e8 43 c1
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 057f3h                           ; 74 06
+    je short 05832h                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 057f9h                           ; 74 06
+    je short 05838h                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 057fdh                          ; 75 04
+    jne short 0583ch                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -8033,9 +8058,9 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05855h                           ; e9 43 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 05894h                           ; e9 43 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 06 c1
+    call 01923h                               ; e8 c7 c0
     mov ax, word [bp+012h]                    ; 8b 46 12
     shr ax, 008h                              ; c1 e8 08
@@ -8043,10 +8068,10 @@
     push 00633h                               ; 68 33 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 3a c1
+    call 01966h                               ; e8 fb c0
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 e9 c0
+    call 01923h                               ; e8 aa c0
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     push ax                                   ; 50
@@ -8059,5 +8084,5 @@
     push 0065bh                               ; 68 5b 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 14 c1
+    call 01966h                               ; e8 d5 c0
     add sp, strict byte 0000ch                ; 83 c4 0c
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -8072,15 +8097,15 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05679h                               ; e8 09 fe
+    call 056b8h                               ; e8 09 fe
     test ax, ax                               ; 85 c0
-    jne short 0587ah                          ; 75 06
+    jne short 058b9h                          ; 75 06
     or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
-    jmp short 05855h                          ; eb db
+    jmp short 05894h                          ; eb db
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 05886h                           ; 74 06
+    je short 058c5h                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 0588ch                           ; 74 06
+    je short 058cbh                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 05890h                          ; 75 04
+    jne short 058cfh                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -8092,11 +8117,11 @@
     mov word [bp+012h], dx                    ; 89 56 12
     and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
-    jmp short 05855h                          ; eb ad
+    jmp short 05894h                          ; eb ad
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 9f bd
+    call 01650h                               ; e8 60 bd
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
-    jmp near 0580ch                           ; e9 53 ff
+    jmp near 0584bh                           ; e9 53 ff
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
@@ -8104,18 +8129,18 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 05147h                               ; e8 7e f8
+    call 05186h                               ; e8 7e f8
     test ax, ax                               ; 85 c0
-    jne short 058dah                          ; 75 0d
+    jne short 05919h                          ; 75 0d
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 05855h                           ; e9 7b ff
+    jmp near 05894h                           ; e9 7b ff
     and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
-    jmp near 05855h                           ; e9 73 ff
+    jmp near 05894h                           ; e9 73 ff
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp short 058d4h                          ; eb e9
+    jmp short 05913h                          ; eb e9
     mov byte [bp-004h], 002h                  ; c6 46 fc 02
     xor cx, cx                                ; 31 c9
@@ -8130,15 +8155,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05912h                          ; 75 0d
+    jne short 05951h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05912h                          ; 76 08
+    jbe short 05951h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 058fbh                          ; eb e9
+    jmp short 0593ah                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 05956h                          ; 76 40
+    jbe short 05995h                          ; 76 40
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8146,5 +8171,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 05956h                          ; 75 35
+    jne short 05995h                          ; 75 35
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -8153,15 +8178,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0593bh                          ; 75 0d
+    jne short 0597ah                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0593bh                          ; 76 08
+    jbe short 0597ah                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 05924h                          ; eb e9
+    jmp short 05963h                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 0594dh                          ; 76 0e
+    jbe short 0598ch                          ; 76 0e
     shr cx, 008h                              ; c1 e9 08
     mov dx, strict word 00060h                ; ba 60 00
@@ -8173,7 +8198,7 @@
     dec byte [bp-004h]                        ; fe 4e fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jnbe short 05921h                         ; 77 cb
+    jnbe short 05960h                         ; 77 cb
     mov word [bp+00ch], cx                    ; 89 4e 0c
-    jmp near 05855h                           ; e9 f9 fe
+    jmp near 05894h                           ; e9 f9 fe
     push strict byte 00001h                   ; 6a 01
     mov cx, ss                                ; 8c d1
@@ -8181,18 +8206,18 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05679h                               ; e8 0e fd
+    call 056b8h                               ; e8 0e fd
     test ax, ax                               ; 85 c0
-    jne short 0597ah                          ; 75 0b
+    jne short 059b9h                          ; 75 0b
     push 0060fh                               ; 68 0f 06
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 ef bf
+    call 01966h                               ; e8 b0 bf
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 05983h                          ; 75 03
-    jmp near 057fdh                           ; e9 7a fe
+    jne short 059c2h                          ; 75 03
+    jmp near 0583ch                           ; e9 7a fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    jne short 0598ch                          ; 75 03
-    jmp near 057f9h                           ; e9 6d fe
-    jmp short 05980h                          ; eb f2
+    jne short 059cbh                          ; 75 03
+    jmp near 05838h                           ; e9 6d fe
+    jmp short 059bfh                          ; eb f2
     mov ax, word [bp+018h]                    ; 8b 46 18
     mov word [bp+01eh], ax                    ; 89 46 1e
@@ -8202,18 +8227,18 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05679h                               ; e8 d6 fc
+    call 056b8h                               ; e8 d6 fc
     test ax, ax                               ; 85 c0
-    jne short 059aah                          ; 75 03
-    jmp near 05874h                           ; e9 ca fe
+    jne short 059e9h                          ; 75 03
+    jmp near 058b3h                           ; e9 ca fe
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 059b3h                          ; 75 03
-    jmp near 05890h                           ; e9 dd fe
+    jne short 059f2h                          ; 75 03
+    jmp near 058cfh                           ; e9 dd fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    jne short 059bch                          ; 75 03
-    jmp near 0588ch                           ; e9 d0 fe
-    jmp short 059b0h                          ; eb f2
+    jne short 059fbh                          ; 75 03
+    jmp near 058cbh                           ; e9 d0 fe
+    jmp short 059efh                          ; eb f2
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 89 bc
+    call 01650h                               ; e8 4a bc
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
@@ -8221,10 +8246,10 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 78 bc
+    call 01650h                               ; e8 39 bc
     mov bl, al                                ; 88 c3
     and bl, 073h                              ; 80 e3 73
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 6a bc
+    call 01650h                               ; e8 2b bc
     and AL, strict byte 00ch                  ; 24 0c
     or al, bl                                 ; 08 d8
@@ -8233,10 +8258,10 @@
     xor ah, ah                                ; 30 e4
     sal ax, 008h                              ; c1 e0 08
-    jmp near 0580ah                           ; e9 13 fe
+    jmp near 05849h                           ; e9 13 fe
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     or ah, 080h                               ; 80 cc 80
-    jmp near 058d4h                           ; e9 d2 fe
-set_geom_lba_:                               ; 0xf5a02 LB 0xe7
+    jmp near 05913h                           ; e9 d2 fe
+set_geom_lba_:                               ; 0xf5a41 LB 0xe7
     push bx                                   ; 53
     push cx                                   ; 51
@@ -8254,30 +8279,30 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a0e0h                               ; e8 b1 46
+    call 0a120h                               ; e8 b2 46
     test ax, ax                               ; 85 c0
-    jne short 05a3fh                          ; 75 0c
+    jne short 05a7eh                          ; 75 0c
     test bx, bx                               ; 85 db
-    jne short 05a3fh                          ; 75 08
+    jne short 05a7eh                          ; 75 08
     test cx, cx                               ; 85 c9
-    jne short 05a3fh                          ; 75 04
+    jne short 05a7eh                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 05a46h                           ; 74 07
+    je short 05a85h                           ; 74 07
     mov bx, strict word 0ffffh                ; bb ff ff
     mov si, bx                                ; 89 de
-    jmp short 05a4ch                          ; eb 06
+    jmp short 05a8bh                          ; eb 06
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov si, word [bp+00eh]                    ; 8b 76 0e
     mov word [bp-004h], bx                    ; 89 5e fc
     xor bx, bx                                ; 31 db
-    jmp short 05a58h                          ; eb 05
+    jmp short 05a97h                          ; eb 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jnl short 05a7bh                          ; 7d 23
+    jnl short 05abah                          ; 7d 23
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp si, ax                                ; 39 c6
-    jc short 05a69h                           ; 72 0a
-    jne short 05a72h                          ; 75 11
+    jc short 05aa8h                           ; 72 0a
+    jne short 05ab1h                          ; 75 11
     mov ax, word [bp-004h]                    ; 8b 46 fc
     cmp ax, word [bp-008h]                    ; 3b 46 f8
-    jnbe short 05a72h                         ; 77 09
+    jnbe short 05ab1h                         ; 77 09
     mov ax, word [bp-002h]                    ; 8b 46 fe
     inc ax                                    ; 40
@@ -8287,18 +8312,18 @@
     rcr word [bp-008h], 1                     ; d1 5e f8
     inc bx                                    ; 43
-    jmp short 05a53h                          ; eb d8
+    jmp short 05a92h                          ; eb d8
     mov ax, word [bp-002h]                    ; 8b 46 fe
     xor dx, dx                                ; 31 d2
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 08 46
+    call 0a0d0h                               ; e8 09 46
     mov bx, ax                                ; 89 c3
     mov cx, dx                                ; 89 d1
     mov ax, word [bp-004h]                    ; 8b 46 fc
     mov dx, si                                ; 89 f2
-    call 0a0b0h                               ; e8 1c 46
+    call 0a0f0h                               ; e8 1d 46
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
-    jbe short 05aa3h                          ; 76 06
+    jbe short 05ae2h                          ; 76 06
     mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
     mov ax, word [bp-002h]                    ; 8b 46 fe
@@ -8311,32 +8336,38 @@
     pop bx                                    ; 5b
     retn 00008h                               ; c2 08 00
-    jne short 05b14h                          ; 75 5b
-    xchg byte [bp+di-04bh], bl                ; 86 5b b5
+    mov AH, strict byte 05bh                  ; b4 5b
+    lds bx, [bp+di-00ch]                      ; c5 5b f4
     pop bx                                    ; 5b
-    mov CH, strict byte 05bh                  ; b5 5b
-    mov CH, strict byte 05bh                  ; b5 5b
-    movsw                                     ; a5
-    pop bp                                    ; 5d
-    ficomp word [bp-022h]                     ; de 5e de
+    hlt                                       ; f4
+    pop bx                                    ; 5b
+    hlt                                       ; f4
+    pop bx                                    ; 5b
+    in AL, strict byte 05dh                   ; e4 5d
+    sbb ax, 01d5fh                            ; 1d 5f 1d
+    pop di                                    ; 5f
+    adc word [bp-006h], bx                    ; 11 5e fa
     pop si                                    ; 5e
-    rcr byte [di-045h], CL                    ; d2 5d bb
+    sbb ax, 01d5fh                            ; 1d 5f 1d
+    pop di                                    ; 5f
+    cli                                       ; fa
     pop si                                    ; 5e
-    ficomp word [bp-022h]                     ; de 5e de
+    cli                                       ; fa
     pop si                                    ; 5e
-    mov bx, 0bb5eh                            ; bb 5e bb
+    sbb ax, 01d5fh                            ; 1d 5f 1d
+    pop di                                    ; 5f
+    jl short 05b76h                           ; 7c 5e
+    cli                                       ; fa
     pop si                                    ; 5e
-    ficomp word [bp-022h]                     ; de 5e de
+    sbb ax, 01d5fh                            ; 1d 5f 1d
+    pop di                                    ; 5f
+    cli                                       ; fa
     pop si                                    ; 5e
-    cmp ax, 0bb5eh                            ; 3d 5e bb
+    lodsw                                     ; ad
     pop si                                    ; 5e
-    ficomp word [bp-022h]                     ; de 5e de
-    pop si                                    ; 5e
-    mov bx, 06e5eh                            ; bb 5e 6e
-    pop si                                    ; 5e
-    ficomp word [bp-022h]                     ; de 5e de
-    pop si                                    ; 5e
-    db  0deh
-    pop si                                    ; 5e
-_int13_harddisk:                             ; 0xf5ae9 LB 0x453
+    sbb ax, 01d5fh                            ; 1d 5f 1d
+    pop di                                    ; 5f
+    db  01dh
+    pop di                                    ; 5f
+_int13_harddisk:                             ; 0xf5b28 LB 0x453
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8345,5 +8376,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 70 bb
+    call 0166ch                               ; e8 31 bb
     mov si, 00122h                            ; be 22 01
     mov word [bp-010h], ax                    ; 89 46 f0
@@ -8351,11 +8382,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 51 bb
+    call 0165eh                               ; e8 12 bb
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05b1ch                           ; 72 05
+    jc short 05b5bh                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05b3ah                           ; 72 1e
+    jc short 05b79h                           ; 72 1e
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8367,7 +8398,7 @@
     push 0068dh                               ; 68 8d 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 32 be
+    call 01966h                               ; e8 f3 bd
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 05ef9h                           ; e9 bf 03
+    jmp near 05f38h                           ; e9 bf 03
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8378,5 +8409,5 @@
     mov byte [bp-002h], dl                    ; 88 56 fe
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05b63h                           ; 72 10
+    jc short 05ba2h                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8385,20 +8416,20 @@
     push 0067eh                               ; 68 7e 06
     push 006b8h                               ; 68 b8 06
-    jmp short 05b2fh                          ; eb cc
+    jmp short 05b6eh                          ; eb cc
     mov bx, word [bp+016h]                    ; 8b 5e 16
     shr bx, 008h                              ; c1 eb 08
     cmp bx, strict byte 00018h                ; 83 fb 18
-    jnbe short 05bb2h                         ; 77 44
+    jnbe short 05bf1h                         ; 77 44
     add bx, bx                                ; 01 db
-    jmp word [cs:bx+05ab7h]                   ; 2e ff a7 b7 5a
+    jmp word [cs:bx+05af6h]                   ; 2e ff a7 f6 5a
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jnc short 05b83h                          ; 73 08
+    jnc short 05bc2h                          ; 73 08
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
-    call 01d85h                               ; e8 02 c2
-    jmp near 05dbbh                           ; e9 35 02
+    call 01d85h                               ; e8 c3 c1
+    jmp near 05dfah                           ; e9 35 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 c1 ba
+    call 01650h                               ; e8 82 ba
     mov cl, al                                ; 88 c1
     mov dx, word [bp+016h]                    ; 8b 56 16
@@ -8411,9 +8442,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 b3 ba
+    call 0165eh                               ; e8 74 ba
     test cl, cl                               ; 84 c9
-    je short 05c13h                           ; 74 64
-    jmp near 05f15h                           ; e9 63 03
-    jmp near 05edeh                           ; e9 29 03
+    je short 05c52h                           ; 74 64
+    jmp near 05f54h                           ; e9 63 03
+    jmp near 05f1dh                           ; e9 29 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8435,11 +8466,11 @@
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     cmp ax, 00080h                            ; 3d 80 00
-    jnbe short 05bf0h                         ; 77 04
+    jnbe short 05c2fh                         ; 77 04
     test ax, ax                               ; 85 c0
-    jne short 05c16h                          ; 75 26
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 05c55h                          ; 75 26
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 28 bd
+    call 01923h                               ; e8 e9 bc
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8448,8 +8479,8 @@
     push 006eah                               ; 68 ea 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 59 bd
+    call 01966h                               ; e8 1a bd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05ef9h                           ; e9 e6 02
-    jmp near 05dbfh                           ; e9 a9 01
+    jmp near 05f38h                           ; e9 e6 02
+    jmp near 05dfeh                           ; e9 a9 01
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8463,14 +8494,14 @@
     mov word [bp-008h], dx                    ; 89 56 f8
     cmp di, ax                                ; 39 c7
-    jnc short 05c44h                          ; 73 0c
+    jnc short 05c83h                          ; 73 0c
     cmp cx, word [bp-006h]                    ; 3b 4e fa
-    jbe short 05c44h                          ; 76 07
+    jbe short 05c83h                          ; 76 07
     mov ax, word [bp-004h]                    ; 8b 46 fc
     cmp ax, dx                                ; 39 d0
-    jbe short 05c74h                          ; 76 30
-    mov bx, 00da4h                            ; bb a4 0d
+    jbe short 05cb3h                          ; 76 30
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 d4 bc
+    call 01923h                               ; e8 95 bc
     push word [bp-004h]                       ; ff 76 fc
     push word [bp-006h]                       ; ff 76 fa
@@ -8485,11 +8516,11 @@
     push 00712h                               ; 68 12 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 f8 bc
+    call 01966h                               ; e8 b9 bc
     add sp, strict byte 00010h                ; 83 c4 10
-    jmp near 05ef9h                           ; e9 85 02
+    jmp near 05f38h                           ; e9 85 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00004h                ; 3d 04 00
-    je short 05c9fh                           ; 74 20
+    je short 05cdeh                           ; 74 20
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8499,17 +8530,17 @@
     add bx, ax                                ; 01 c3
     cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
-    jne short 05ca8h                          ; 75 14
+    jne short 05ce7h                          ; 75 14
     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
     cmp ax, word [bp-008h]                    ; 3b 46 f8
-    je short 05ca2h                           ; 74 05
-    jmp short 05ca8h                          ; eb 09
-    jmp near 05dbbh                           ; e9 19 01
+    je short 05ce1h                           ; 74 05
+    jmp short 05ce7h                          ; eb 09
+    jmp near 05dfah                           ; e9 19 01
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jc short 05cd8h                           ; 72 30
+    jc short 05d17h                           ; 72 30
     mov ax, di                                ; 89 f8
     xor dx, dx                                ; 31 d2
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 dd 43
+    call 0a0d0h                               ; e8 de 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8517,5 +8548,5 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 ce 43
+    call 0a0d0h                               ; e8 cf 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-004h]                    ; 03 46 fc
@@ -8573,9 +8604,9 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     test dl, dl                               ; 84 d2
-    je short 05dbbh                           ; 74 46
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 05dfah                           ; 74 46
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 a3 bb
+    call 01923h                               ; e8 64 bb
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -8587,17 +8618,17 @@
     push 00759h                               ; 68 59 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 cf bb
+    call 01966h                               ; e8 90 bb
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 05f01h                           ; e9 5c 01
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 05f40h                           ; e9 5c 01
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 73 bb
+    call 01923h                               ; e8 34 bb
     push 0077ah                               ; 68 7a 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 ae bb
+    call 01966h                               ; e8 6f bb
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -8605,5 +8636,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 94 b8
+    call 0165eh                               ; e8 55 b8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -8648,5 +8679,5 @@
     mov dl, al                                ; 88 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05dbbh                           ; e9 7e ff
+    jmp near 05dfah                           ; e9 7e ff
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8665,10 +8696,10 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 040h                  ; 3c 40
-    jne short 05e63h                          ; 75 03
-    jmp near 05dbbh                           ; e9 58 ff
+    jne short 05ea2h                          ; 75 03
+    jmp near 05dfah                           ; e9 58 ff
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 0aah                               ; 80 cc aa
-    jmp near 05f01h                           ; e9 93 00
+    jmp near 05f40h                           ; e9 93 00
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8685,8 +8716,8 @@
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 f7 41
+    call 0a0d0h                               ; e8 f8 41
     mov bx, word [bp-004h]                    ; 8b 5e fc
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 ef 41
+    call 0a0d0h                               ; e8 f0 41
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-00ah], dx                    ; 89 56 f6
@@ -8697,9 +8728,9 @@
     or ah, 003h                               ; 80 cc 03
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 05dbfh                           ; e9 04 ff
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 05dfeh                           ; e9 04 ff
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 5d ba
+    call 01923h                               ; e8 1e ba
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8708,11 +8739,11 @@
     push 00794h                               ; 68 94 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 8e ba
+    call 01966h                               ; e8 4f ba
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05dbbh                           ; e9 dd fe
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 05dfah                           ; e9 dd fe
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 3a ba
+    call 01923h                               ; e8 fb b9
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8720,5 +8751,5 @@
     push 0067eh                               ; 68 7e 06
     push 007c7h                               ; 68 c7 07
-    jmp near 05c08h                           ; e9 0f fd
+    jmp near 05c47h                           ; e9 0f fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8730,10 +8761,36 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 49 b7
+    call 0165eh                               ; e8 0a b7
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 05dceh                           ; e9 b2 fe
-    db  0d8h, 05fh, 00bh, 060h, 00bh, 060h, 00bh, 060h, 0fch, 063h, 066h, 061h, 00bh, 060h, 06fh, 061h
-    db  0fch, 063h, 0f0h, 05fh, 0f0h, 05fh, 0f0h, 05fh, 0f0h, 05fh, 013h, 064h, 0f0h, 05fh, 0f0h, 05fh
-_int13_harddisk_ext:                         ; 0xf5f3c LB 0x50f
+    jmp near 05e0dh                           ; e9 b2 fe
+    pop SS                                    ; 17
+    pushaw                                    ; 60
+    dec dx                                    ; 4a
+    pushaw                                    ; 60
+    dec dx                                    ; 4a
+    pushaw                                    ; 60
+    dec dx                                    ; 4a
+    pushaw                                    ; 60
+    cmp sp, word [si-05bh]                    ; 3b 64 a5
+    popaw                                     ; 61
+    dec dx                                    ; 4a
+    pushaw                                    ; 60
+    scasb                                     ; ae
+    popaw                                     ; 61
+    cmp sp, word [si+02fh]                    ; 3b 64 2f
+    pushaw                                    ; 60
+    das                                       ; 2f
+    pushaw                                    ; 60
+    das                                       ; 2f
+    pushaw                                    ; 60
+    das                                       ; 2f
+    pushaw                                    ; 60
+    push dx                                   ; 52
+    db  064h, 02fh
+    ; fs das                                    ; 64 2f
+    pushaw                                    ; 60
+    das                                       ; 2f
+    pushaw                                    ; 60
+_int13_harddisk_ext:                         ; 0xf5f7b LB 0x50f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8741,9 +8798,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 21 b7
+    call 0166ch                               ; e8 e2 b6
     mov word [bp-012h], ax                    ; 89 46 ee
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 15 b7
+    call 0166ch                               ; e8 d6 b6
     mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     mov word [bp-006h], ax                    ; 89 46 fa
@@ -8751,11 +8808,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 f4 b6
+    call 0165eh                               ; e8 b5 b6
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05f79h                           ; 72 05
+    jc short 05fb8h                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05f97h                           ; 72 1e
+    jc short 05fd6h                           ; 72 1e
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8767,7 +8824,7 @@
     push 0068dh                               ; 68 8d 06
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 d5 b9
+    call 01966h                               ; e8 96 b9
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 06429h                           ; e9 92 04
+    jmp near 06468h                           ; e9 92 04
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8777,5 +8834,5 @@
     mov byte [bp-004h], dl                    ; 88 56 fc
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05fbeh                           ; 72 10
+    jc short 05ffdh                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8784,14 +8841,14 @@
     push 007f5h                               ; 68 f5 07
     push 006b8h                               ; 68 b8 06
-    jmp short 05f8ch                          ; eb ce
+    jmp short 05fcbh                          ; eb ce
     mov bx, word [bp+016h]                    ; 8b 5e 16
     shr bx, 008h                              ; c1 eb 08
     sub bx, strict byte 00041h                ; 83 eb 41
     cmp bx, strict byte 0000fh                ; 83 fb 0f
-    jnbe short 05ff0h                         ; 77 24
+    jnbe short 0602fh                         ; 77 24
     add bx, bx                                ; 01 db
     mov dx, word [bp+016h]                    ; 8b 56 16
     xor dh, dh                                ; 30 f6
-    jmp word [cs:bx+05f1ch]                   ; 2e ff a7 1c 5f
+    jmp word [cs:bx+05f5bh]                   ; 2e ff a7 5b 5f
     mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8800,9 +8857,9 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06400h                           ; e9 10 04
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 0643fh                           ; e9 10 04
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 28 b9
+    call 01923h                               ; e8 e9 b8
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8810,5 +8867,5 @@
     push 007f5h                               ; 68 f5 07
     push 007c7h                               ; 68 c7 07
-    jmp near 060a0h                           ; e9 95 00
+    jmp near 060dfh                           ; e9 95 00
     mov di, word [bp+00ah]                    ; 8b 7e 0a
     mov es, [bp+004h]                         ; 8e 46 04
@@ -8826,5 +8883,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a0f0h                               ; e8 b2 40
+    call 0a130h                               ; e8 b3 40
     mov si, ax                                ; 89 c6
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -8840,21 +8897,21 @@
     mov al, byte [es:bx+022h]                 ; 26 8a 47 22
     cmp si, word [es:bx+03ch]                 ; 26 3b 77 3c
-    jnbe short 06088h                         ; 77 22
-    jne short 060abh                          ; 75 43
+    jnbe short 060c7h                         ; 77 22
+    jne short 060eah                          ; 75 43
     mov di, word [bp-00ch]                    ; 8b 7e f4
     cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
-    jnbe short 06088h                         ; 77 17
+    jnbe short 060c7h                         ; 77 17
     mov di, word [bp-00ch]                    ; 8b 7e f4
     cmp di, word [es:bx+03ah]                 ; 26 3b 7f 3a
-    jne short 060abh                          ; 75 31
+    jne short 060eah                          ; 75 31
     cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
-    jnbe short 06088h                         ; 77 08
-    jne short 060abh                          ; 75 29
+    jnbe short 060c7h                         ; 77 08
+    jne short 060eah                          ; 75 29
     cmp dx, word [es:bx+036h]                 ; 26 3b 57 36
-    jc short 060abh                           ; 72 23
-    mov bx, 00da4h                            ; bb a4 0d
+    jc short 060eah                           ; 72 23
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 90 b8
+    call 01923h                               ; e8 51 b8
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8863,14 +8920,14 @@
     push 00808h                               ; 68 08 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 c1 b8
+    call 01966h                               ; e8 82 b8
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 06429h                           ; e9 7e 03
+    jmp near 06468h                           ; e9 7e 03
     mov di, word [bp+016h]                    ; 8b 7e 16
     shr di, 008h                              ; c1 ef 08
     cmp di, strict byte 00044h                ; 83 ff 44
-    je short 060bbh                           ; 74 05
+    je short 060fah                           ; 74 05
     cmp di, strict byte 00047h                ; 83 ff 47
-    jne short 060beh                          ; 75 03
-    jmp near 063fch                           ; e9 3e 03
+    jne short 060fdh                          ; 75 03
+    jmp near 0643bh                           ; e9 3e 03
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
@@ -8910,9 +8967,9 @@
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     test dl, dl                               ; 84 d2
-    je short 0618dh                           ; 74 51
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 061cch                           ; 74 51
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 dc b7
+    call 01923h                               ; e8 9d b7
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -8922,13 +8979,13 @@
     push 00759h                               ; 68 59 07
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 0e b8
+    call 01966h                               ; e8 cf b7
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 06431h                           ; e9 cb 02
+    jmp near 06470h                           ; e9 cb 02
     or dh, 0b2h                               ; 80 ce b2
     mov word [bp+016h], dx                    ; 89 56 16
-    jmp near 06434h                           ; e9 c5 02
+    jmp near 06473h                           ; e9 c5 02
     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
@@ -8940,9 +8997,9 @@
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 06190h                          ; 73 06
-    jmp near 06429h                           ; e9 9c 02
-    jmp near 063fch                           ; e9 6c 02
-    jnc short 06195h                          ; 73 03
-    jmp near 0622ch                           ; e9 97 00
+    jnc short 061cfh                          ; 73 06
+    jmp near 06468h                           ; e9 9c 02
+    jmp near 0643bh                           ; e9 6c 02
+    jnc short 061d4h                          ; 73 03
+    jmp near 0626bh                           ; e9 97 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -8983,10 +9040,10 @@
     mov bx, word [bp-00ch]                    ; 8b 5e f4
     mov si, strict word 00020h                ; be 20 00
-    call 0a0e0h                               ; e8 be 3e
+    call 0a120h                               ; e8 bf 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
     mov word [es:bx+016h], cx                 ; 26 89 4f 16
     cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
-    jc short 06297h                           ; 72 65
+    jc short 062d6h                           ; 72 65
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
@@ -9015,20 +9072,20 @@
     mov dl, byte [es:bx+027h]                 ; 26 8a 57 27
     test dl, dl                               ; 84 d2
-    jne short 06287h                          ; 75 04
+    jne short 062c6h                          ; 75 04
     xor bx, bx                                ; 31 db
-    jmp short 0628ah                          ; eb 03
+    jmp short 062c9h                          ; eb 03
     mov bx, strict word 00008h                ; bb 08 00
     or bl, 010h                               ; 80 cb 10
     cmp dl, 001h                              ; 80 fa 01
-    jne short 0629ah                          ; 75 08
+    jne short 062d9h                          ; 75 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0629ch                          ; eb 05
-    jmp near 0632dh                           ; e9 93 00
+    jmp short 062dbh                          ; eb 05
+    jmp near 0636ch                           ; e9 93 00
     xor ax, ax                                ; 31 c0
     or bx, ax                                 ; 09 c3
     cmp dl, 003h                              ; 80 fa 03
-    jne short 062a8h                          ; 75 05
+    jne short 062e7h                          ; 75 05
     mov ax, strict word 00003h                ; b8 03 00
-    jmp short 062aah                          ; eb 02
+    jmp short 062e9h                          ; eb 02
     xor ax, ax                                ; 31 c0
     or bx, ax                                 ; 09 c3
@@ -9057,22 +9114,22 @@
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 0630fh                          ; eb 05
+    jmp short 0634eh                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 06323h                          ; 73 14
+    jnc short 06362h                          ; 73 14
     mov dl, bh                                ; 88 fa
     xor dh, dh                                ; 30 f6
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    call 01650h                               ; e8 33 b3
+    call 01650h                               ; e8 f4 b2
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 0630ah                          ; eb e7
+    jmp short 06349h                          ; eb e7
     neg bl                                    ; f6 db
     les si, [bp-008h]                         ; c4 76 f8
     mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
     cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
-    jnc short 06336h                          ; 73 03
-    jmp near 063fch                           ; e9 c6 00
+    jnc short 06375h                          ; 73 03
+    jmp near 0643bh                           ; e9 c6 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9093,5 +9150,5 @@
     mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
     test al, al                               ; 84 c0
-    jne short 0637eh                          ; 75 0c
+    jne short 063bdh                          ; 75 0c
     mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
     mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
@@ -9102,5 +9159,5 @@
     mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
     test al, al                               ; 84 c0
-    jne short 063b3h                          ; 75 16
+    jne short 063f2h                          ; 75 16
     mov word [es:di+030h], dx                 ; 26 89 55 30
     mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
@@ -9117,7 +9174,7 @@
     xor bl, bl                                ; 30 db
     mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 063deh                          ; eb 05
+    jmp short 0641dh                          ; eb 05
     cmp bh, 040h                              ; 80 ff 40
-    jnc short 063f3h                          ; 73 15
+    jnc short 06432h                          ; 73 15
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -9125,9 +9182,9 @@
     add dx, ax                                ; 01 c2
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01650h                               ; e8 63 b2
+    call 01650h                               ; e8 24 b2
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 063d9h                          ; eb e6
+    jmp short 06418h                          ; eb e6
     neg bl                                    ; f6 db
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -9137,5 +9194,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 53 b2
+    call 0165eh                               ; e8 14 b2
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -9143,12 +9200,12 @@
     retn                                      ; c3
     cmp dx, strict byte 00006h                ; 83 fa 06
-    je short 063fch                           ; 74 e4
+    je short 0643bh                           ; 74 e4
     cmp dx, strict byte 00001h                ; 83 fa 01
-    jc short 06429h                           ; 72 0c
-    jbe short 063fch                          ; 76 dd
+    jc short 06468h                           ; 72 0c
+    jbe short 0643bh                          ; 76 dd
     cmp dx, strict byte 00003h                ; 83 fa 03
-    jc short 06429h                           ; 72 05
+    jc short 06468h                           ; 72 05
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 063fch                          ; 76 d3
+    jbe short 0643bh                          ; 76 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -9160,8 +9217,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 19 b2
+    call 0165eh                               ; e8 da b1
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 0640fh                          ; eb c4
-_int14_function:                             ; 0xf644b LB 0x15c
+    jmp short 0644eh                          ; eb c4
+_int14_function:                             ; 0xf648a LB 0x15c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9171,5 +9228,5 @@
     add dx, dx                                ; 01 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 11 b2
+    call 0166ch                               ; e8 d2 b1
     mov si, ax                                ; 89 c6
     mov bx, ax                                ; 89 c3
@@ -9177,22 +9234,22 @@
     add dx, strict byte 0007ch                ; 83 c2 7c
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 e5 b1
+    call 01650h                               ; e8 a6 b1
     mov cl, al                                ; 88 c1
     cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
-    jnc short 06477h                          ; 73 04
+    jnc short 064b6h                          ; 73 04
     test si, si                               ; 85 f6
-    jnbe short 0647ah                         ; 77 03
-    jmp near 0659dh                           ; e9 23 01
+    jnbe short 064b9h                         ; 77 03
+    jmp near 065dch                           ; e9 23 01
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0648eh                           ; 72 0d
-    jbe short 064eeh                          ; 76 6b
+    jc short 064cdh                           ; 72 0d
+    jbe short 0652dh                          ; 76 6b
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 064e6h                           ; 74 5f
+    je short 06525h                           ; 74 5f
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 064e9h                           ; 74 5e
-    jmp near 06597h                           ; e9 09 01
+    je short 06528h                           ; 74 5e
+    jmp near 065d6h                           ; e9 09 01
     test al, al                               ; 84 c0
-    jne short 064ebh                          ; 75 59
+    jne short 0652ah                          ; 75 59
     lea dx, [bx+003h]                         ; 8d 57 03
     in AL, DX                                 ; ec
@@ -9204,5 +9261,5 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     test AL, strict byte 0e0h                 ; a8 e0
-    jne short 064b1h                          ; 75 0c
+    jne short 064f0h                          ; 75 0c
     mov AL, strict byte 017h                  ; b0 17
     mov dx, bx                                ; 89 da
@@ -9211,5 +9268,5 @@
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
-    jmp short 064c8h                          ; eb 17
+    jmp short 06507h                          ; eb 17
     and AL, strict byte 0e0h                  ; 24 e0
     xor ah, ah                                ; 30 e4
@@ -9237,11 +9294,11 @@
     ; sub ah, ah                                ; 2a e4
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 06578h                           ; e9 92 00
-    jmp near 06586h                           ; e9 9d 00
-    jmp short 0653ch                          ; eb 51
-    jmp near 06597h                           ; e9 a9 00
+    jmp near 065b7h                           ; e9 92 00
+    jmp near 065c5h                           ; e9 9d 00
+    jmp short 0657bh                          ; eb 51
+    jmp near 065d6h                           ; e9 a9 00
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 75 b1
+    call 0166ch                               ; e8 36 b1
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9251,18 +9308,18 @@
     and ax, strict word 00060h                ; 25 60 00
     cmp ax, strict word 00060h                ; 3d 60 00
-    je short 0651eh                           ; 74 17
+    je short 0655dh                           ; 74 17
     test cl, cl                               ; 84 c9
-    je short 0651eh                           ; 74 13
+    je short 0655dh                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 58 b1
+    call 0166ch                               ; e8 19 b1
     cmp ax, si                                ; 39 f0
-    je short 064f9h                           ; 74 e1
+    je short 06538h                           ; 74 e1
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 064f9h                          ; eb db
+    jmp short 06538h                          ; eb db
     test cl, cl                               ; 84 c9
-    je short 06528h                           ; 74 06
+    je short 06567h                           ; 74 06
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -9274,11 +9331,11 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cl, cl                               ; 84 c9
-    jne short 06578h                          ; 75 43
+    jne short 065b7h                          ; 75 43
     or AL, strict byte 080h                   ; 0c 80
     mov byte [bp+013h], al                    ; 88 46 13
-    jmp short 06578h                          ; eb 3c
+    jmp short 065b7h                          ; eb 3c
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 27 b1
+    call 0166ch                               ; e8 e8 b0
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9287,18 +9344,18 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 06568h                          ; 75 17
+    jne short 065a7h                          ; 75 17
     test cl, cl                               ; 84 c9
-    je short 06568h                           ; 74 13
+    je short 065a7h                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0e b1
+    call 0166ch                               ; e8 cf b0
     cmp ax, si                                ; 39 f0
-    je short 06547h                           ; 74 e5
+    je short 06586h                           ; 74 e5
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 06547h                          ; eb df
+    jmp short 06586h                          ; eb df
     test cl, cl                               ; 84 c9
-    je short 0657eh                           ; 74 12
+    je short 065bdh                           ; 74 12
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov dx, bx                                ; 89 da
@@ -9308,10 +9365,10 @@
     mov byte [bp+012h], al                    ; 88 46 12
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 065a1h                          ; eb 23
+    jmp short 065e0h                          ; eb 23
     lea dx, [bx+005h]                         ; 8d 57 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 06537h                          ; eb b1
+    jmp short 06576h                          ; eb b1
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
@@ -9323,7 +9380,7 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 06575h                          ; eb de
+    jmp short 065b4h                          ; eb de
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 065a1h                          ; eb 04
+    jmp short 065e0h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -9331,5 +9388,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-timer_wait_:                                 ; 0xf65a7 LB 0x43
+timer_wait_:                                 ; 0xf65e6 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9339,5 +9396,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a0b0h                               ; e8 fb 3a
+    call 0a0f0h                               ; e8 fc 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9351,7 +9408,7 @@
     adc bx, strict byte 0ffffh                ; 83 d3 ff
     cmp bx, strict byte 0ffffh                ; 83 fb ff
-    jne short 065d4h                          ; 75 05
+    jne short 06613h                          ; 75 05
     cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 065e3h                           ; 74 0f
+    je short 06622h                           ; 74 0f
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -9360,6 +9417,6 @@
     and AL, strict byte 010h                  ; 24 10
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jne short 065d4h                          ; 75 f3
-    jmp short 065c4h                          ; eb e1
+    jne short 06613h                          ; 75 f3
+    jmp short 06603h                          ; eb e1
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop cx                                    ; 59
@@ -9367,5 +9424,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_enable_a20_:                             ; 0xf65ea LB 0x30
+set_enable_a20_:                             ; 0xf6629 LB 0x30
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9380,14 +9437,14 @@
     mov cl, al                                ; 88 c1
     test bx, bx                               ; 85 db
-    je short 06603h                           ; 74 05
+    je short 06642h                           ; 74 05
     or AL, strict byte 002h                   ; 0c 02
     out DX, AL                                ; ee
-    jmp short 06606h                          ; eb 03
+    jmp short 06645h                          ; eb 03
     and AL, strict byte 0fdh                  ; 24 fd
     out DX, AL                                ; ee
     test cl, 002h                             ; f6 c1 02
-    je short 06610h                           ; 74 05
+    je short 0664fh                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 06612h                          ; eb 02
+    jmp short 06651h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -9397,5 +9454,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_e820_range_:                             ; 0xf661a LB 0x88
+set_e820_range_:                             ; 0xf6659 LB 0x88
     push si                                   ; 56
     push bp                                   ; 55
@@ -9427,8 +9484,8 @@
     retn 0000ah                               ; c2 0a 00
     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
-    db  0ach, 069h, 0ddh, 066h, 0f1h, 066h, 086h, 067h, 08ch, 067h, 091h, 067h, 096h, 067h, 03eh, 068h
-    db  069h, 068h, 07fh, 067h, 07fh, 067h, 036h, 069h, 05eh, 069h, 071h, 069h, 080h, 069h, 086h, 067h
-    db  087h, 069h
-_int15_function:                             ; 0xf66a2 LB 0x33c
+    db  0ebh, 069h, 01ch, 067h, 030h, 067h, 0c5h, 067h, 0cbh, 067h, 0d0h, 067h, 0d5h, 067h, 07dh, 068h
+    db  0a8h, 068h, 0beh, 067h, 0beh, 067h, 075h, 069h, 09dh, 069h, 0b0h, 069h, 0bfh, 069h, 0c5h, 067h
+    db  0c6h, 069h
+_int15_function:                             ; 0xf66e1 LB 0x33c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9438,13 +9495,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, 000ech                            ; 3d ec 00
-    jnbe short 066e7h                         ; 77 35
+    jnbe short 06726h                         ; 77 35
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00011h                ; b9 11 00
-    mov di, 06670h                            ; bf 70 66
+    mov di, 066afh                            ; bf af 66
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov si, word [cs:di+06680h]               ; 2e 8b b5 80 66
+    mov si, word [cs:di+066bfh]               ; 2e 8b b5 bf 66
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9459,29 +9516,29 @@
     xor ah, ah                                ; 30 e4
     cmp ax, 000c0h                            ; 3d c0 00
-    je short 066eah                           ; 74 03
-    jmp near 069ach                           ; e9 c2 02
+    je short 06729h                           ; 74 03
+    jmp near 069ebh                           ; e9 c2 02
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06955h                           ; e9 64 02
+    jmp near 06994h                           ; e9 64 02
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06706h                           ; 72 0e
-    jbe short 0671ah                          ; 76 20
+    jc short 06745h                           ; 72 0e
+    jbe short 06759h                          ; 76 20
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 06747h                           ; 74 48
+    je short 06786h                           ; 74 48
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 0672ah                           ; 74 26
-    jmp short 06754h                          ; eb 4e
+    je short 06769h                           ; 74 26
+    jmp short 06793h                          ; eb 4e
     test ax, ax                               ; 85 c0
-    jne short 06754h                          ; 75 4a
+    jne short 06793h                          ; 75 4a
     xor ax, ax                                ; 31 c0
-    call 065eah                               ; e8 db fe
+    call 06629h                               ; e8 db fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp near 0677fh                           ; e9 65 00
+    jmp near 067beh                           ; e9 65 00
     mov ax, strict word 00001h                ; b8 01 00
-    call 065eah                               ; e8 ca fe
+    call 06629h                               ; e8 ca fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], dh                    ; 88 76 13
-    jmp near 0677fh                           ; e9 55 00
+    jmp near 067beh                           ; e9 55 00
     mov dx, 00092h                            ; ba 92 00
     in AL, DX                                 ; ec
@@ -9495,13 +9552,13 @@
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
-    jmp near 0677fh                           ; e9 38 00
+    jmp near 067beh                           ; e9 38 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
     mov word [bp+00ch], ax                    ; 89 46 0c
-    jmp near 0677fh                           ; e9 2b 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 067beh                           ; e9 2b 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 c4 b1
+    call 01923h                               ; e8 85 b1
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9509,5 +9566,5 @@
     push 0082eh                               ; 68 2e 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 f9 b1
+    call 01966h                               ; e8 ba b1
     add sp, strict byte 00006h                ; 83 c4 06
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9522,36 +9579,36 @@
     retn                                      ; c3
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp near 06838h                           ; e9 ac 00
+    jmp near 06877h                           ; e9 ac 00
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 0677fh                          ; eb ee
+    jmp short 067beh                          ; eb ee
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp short 0677ch                          ; eb e6
+    jmp short 067bbh                          ; eb e6
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 0680bh                          ; 75 6f
+    jne short 0684ah                          ; 75 6f
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 ab ae
+    call 01650h                               ; e8 6c ae
     test AL, strict byte 001h                 ; a8 01
-    jne short 06808h                          ; 75 5f
+    jne short 06847h                          ; 75 5f
     mov bx, strict word 00001h                ; bb 01 00
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 a9 ae
+    call 0165eh                               ; e8 6a ae
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 b9 ae
+    call 0167ah                               ; e8 7a ae
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 ad ae
+    call 0167ah                               ; e8 6e ae
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 a1 ae
+    call 0167ah                               ; e8 62 ae
     mov bx, word [bp+010h]                    ; 8b 5e 10
     mov dx, 0009eh                            ; ba 9e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ah                               ; e8 95 ae
+    call 0167ah                               ; e8 56 ae
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov dx, 000a1h                            ; ba a1 00
@@ -9562,24 +9619,24 @@
     out DX, AL                                ; ee
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 b4 ae
+    call 016ach                               ; e8 75 ae
     mov dl, al                                ; 88 c2
     or dl, 040h                               ; 80 ca 40
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 c2 ae
-    jmp near 0677fh                           ; e9 77 ff
-    jmp near 0694ch                           ; e9 41 01
+    call 016c7h                               ; e8 83 ae
+    jmp near 067beh                           ; e9 77 ff
+    jmp near 0698bh                           ; e9 41 01
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0682ch                          ; 75 1c
+    jne short 0686bh                          ; 75 1c
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 43 ae
+    call 0165eh                               ; e8 04 ae
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 87 ae
+    call 016ach                               ; e8 48 ae
     mov dl, al                                ; 88 c2
     and dl, 0bfh                              ; 80 e2 bf
-    jmp short 067fdh                          ; eb d1
+    jmp short 0683ch                          ; eb d1
     mov word [bp+018h], dx                    ; 89 56 18
     mov ax, bx                                ; 89 d8
@@ -9589,48 +9646,48 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+012h], bx                    ; 89 5e 12
-    jmp near 0677fh                           ; e9 41 ff
+    jmp near 067beh                           ; e9 41 ff
     mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 68 ae
+    call 016ach                               ; e8 29 ae
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 5b ae
+    call 016ach                               ; e8 1c ae
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
     cmp dx, strict byte 0ffc0h                ; 83 fa c0
-    jbe short 06862h                          ; 76 05
+    jbe short 068a1h                          ; 76 05
     mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    jmp near 0677fh                           ; e9 16 ff
+    jmp near 067beh                           ; e9 16 ff
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 065eah                               ; e8 7a fd
+    call 06629h                               ; e8 7a fd
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00038h                ; 83 c2 38
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 fb ad
+    call 0167ah                               ; e8 bc ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ah                ; 83 c2 3a
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 ed ad
+    call 0167ah                               ; e8 ae ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ch                ; 83 c2 3c
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 0165eh                               ; e8 c2 ad
+    call 0165eh                               ; e8 83 ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003dh                ; 83 c2 3d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 0165eh                               ; e8 b3 ad
+    call 0165eh                               ; e8 74 ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003eh                ; 83 c2 3e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 c1 ad
+    call 0167ah                               ; e8 82 ad
     mov AL, strict byte 011h                  ; b0 11
     mov dx, strict word 00020h                ; ba 20 00
@@ -9662,5 +9719,5 @@
     out DX, AL                                ; ee
     mov si, word [bp+006h]                    ; 8b 76 06
-    call 068fah                               ; e8 00 00
+    call 06939h                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 00018h                ; 83 c7 18
@@ -9690,12 +9747,12 @@
     push cx                                   ; 51
     retf                                      ; cb
-    jmp near 0677fh                           ; e9 49 fe
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 067beh                           ; e9 49 fe
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 e2 af
+    call 01923h                               ; e8 a3 af
     push 0086eh                               ; 68 6e 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 1d b0
+    call 01966h                               ; e8 de af
     add sp, strict byte 00004h                ; 83 c4 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9704,54 +9761,52 @@
     or ah, 086h                               ; 80 cc 86
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 0677fh                           ; e9 21 fe
+    jmp near 067beh                           ; e9 21 fe
     mov word [bp+018h], cx                    ; 89 4e 18
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
-    jmp near 0677fh                           ; e9 0e fe
+    jmp near 067beh                           ; e9 0e fe
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 f2 ac
+    call 0166ch                               ; e8 b3 ac
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 06862h                           ; e9 e2 fe
+    jmp near 068a1h                           ; e9 e2 fe
     push 0089dh                               ; 68 9d 08
     push strict byte 00008h                   ; 6a 08
-    jmp short 06946h                          ; eb bf
+    jmp short 06985h                          ; eb bf
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 069ach                          ; 75 1f
+    jne short 069ebh                          ; 75 1f
     mov word [bp+012h], ax                    ; 89 46 12
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 069a5h                           ; 72 0b
+    jc short 069e4h                           ; 72 0b
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnbe short 069a5h                         ; 77 06
+    jnbe short 069e4h                         ; 77 06
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp near 0677fh                           ; e9 da fd
+    jmp near 067beh                           ; e9 da fd
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 0677fh                           ; e9 d3 fd
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 067beh                           ; e9 d3 fd
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 6c af
+    call 01923h                               ; e8 2d af
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
     push 008b4h                               ; 68 b4 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 a1 af
+    call 01966h                               ; e8 62 af
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp short 0694ch                          ; eb 82
-    dec ax                                    ; 48
-    imul bp, word [di+06bh], strict byte 0ff8dh ; 6b 6d 6b 8d
-    imul bx, sp, strict byte 0006bh           ; 6b dc 6b
-    cli                                       ; fa
-    imul dx, word [bx], strict byte 0006ch    ; 6b 17 6c
-    cmp word [si+05bh], bp                    ; 39 6c 5b
+    jmp short 0698bh                          ; eb 82
+    xchg word [bp+di-054h], bp                ; 87 6b ac
+    imul cx, sp, strict byte 0006bh           ; 6b cc 6b
+    sbb bp, word [si+039h]                    ; 1b 6c 39
     insb                                      ; 6c
-    cbw                                       ; 98
+    push si                                   ; 56
     insb                                      ; 6c
-    int3                                      ; cc
-    insb                                      ; 6c
-_int15_function32:                           ; 0xf69de LB 0x38a
+    js short 06a83h                           ; 78 6c
+    call far 00b6ch:0d76ch                    ; 9a 6c d7 6c 0b
+    insw                                      ; 6d
+_int15_function32:                           ; 0xf6a1d LB 0x38a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9765,32 +9820,32 @@
     xor dh, dh                                ; 30 f6
     cmp ax, 000e8h                            ; 3d e8 00
-    je short 06a45h                           ; 74 4a
+    je short 06a84h                           ; 74 4a
     cmp ax, 000d0h                            ; 3d d0 00
-    je short 06a12h                           ; 74 12
+    je short 06a51h                           ; 74 12
     cmp ax, 00086h                            ; 3d 86 00
-    jne short 06a43h                          ; 75 3e
+    jne short 06a82h                          ; 75 3e
     sti                                       ; fb
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     mov ax, word [bp+018h]                    ; 8b 46 18
-    call 065a7h                               ; e8 98 fb
-    jmp near 06bd6h                           ; e9 c4 01
+    call 065e6h                               ; e8 98 fb
+    jmp near 06c15h                           ; e9 c4 01
     cmp dx, strict byte 0004fh                ; 83 fa 4f
-    jne short 06a43h                          ; 75 2c
+    jne short 06a82h                          ; 75 2c
     cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
-    jne short 06a79h                          ; 75 5b
+    jne short 06ab8h                          ; 75 5b
     cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
-    jne short 06a79h                          ; 75 54
+    jne short 06ab8h                          ; 75 54
     cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
-    jne short 06a79h                          ; 75 4d
+    jne short 06ab8h                          ; 75 4d
     cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
-    jne short 06a79h                          ; 75 46
+    jne short 06ab8h                          ; 75 46
     mov ax, word [bp+00ah]                    ; 8b 46 0a
     or ax, word [bp+008h]                     ; 0b 46 08
-    jne short 06a79h                          ; 75 3e
+    jne short 06ab8h                          ; 75 3e
     mov ax, word [bp+006h]                    ; 8b 46 06
     or ax, word [bp+004h]                     ; 0b 46 04
-    je short 06a47h                           ; 74 04
-    jmp short 06a79h                          ; eb 34
-    jmp short 06a6fh                          ; eb 28
+    je short 06a86h                           ; 74 04
+    jmp short 06ab8h                          ; eb 34
+    jmp short 06aaeh                          ; eb 28
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -9804,17 +9859,17 @@
     mov word [bp+020h], 03332h                ; c7 46 20 32 33
     mov word [bp+022h], 04941h                ; c7 46 22 41 49
-    jmp near 06bd6h                           ; e9 67 01
+    jmp near 06c15h                           ; e9 67 01
     cmp dx, strict byte 00020h                ; 83 fa 20
-    je short 06a7fh                           ; 74 0b
+    je short 06abeh                           ; 74 0b
     cmp dx, strict byte 00001h                ; 83 fa 01
-    je short 06a7ch                           ; 74 03
-    jmp near 06bach                           ; e9 30 01
-    jmp near 06d1ah                           ; e9 9b 02
+    je short 06abbh                           ; 74 03
+    jmp near 06bebh                           ; e9 30 01
+    jmp near 06d59h                           ; e9 9b 02
     cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
-    jne short 06a79h                          ; 75 f3
+    jne short 06ab8h                          ; 75 f3
     cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
-    jne short 06a79h                          ; 75 ec
+    jne short 06ab8h                          ; 75 ec
     mov ax, strict word 00035h                ; b8 35 00
-    call 016ach                               ; e8 19 ac
+    call 016ach                               ; e8 da ab
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -9823,7 +9878,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06a9ch                               ; e2 fa
+    loop 06adbh                               ; e2 fa
     mov ax, strict word 00034h                ; b8 34 00
-    call 016ach                               ; e8 04 ac
+    call 016ach                               ; e8 c5 ab
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
@@ -9833,10 +9888,10 @@
     adc dx, 00100h                            ; 81 d2 00 01
     cmp dx, 00100h                            ; 81 fa 00 01
-    jc short 06ac2h                           ; 72 06
-    jne short 06af0h                          ; 75 32
+    jc short 06b01h                           ; 72 06
+    jne short 06b2fh                          ; 75 32
     test bx, bx                               ; 85 db
-    jnbe short 06af0h                         ; 77 2e
+    jnbe short 06b2fh                         ; 77 2e
     mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 e4 ab
+    call 016ach                               ; e8 a5 ab
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -9845,7 +9900,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06ad1h                               ; e2 fa
+    loop 06b10h                               ; e2 fa
     mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 cf ab
+    call 016ach                               ; e8 90 ab
     xor ah, ah                                ; 30 e4
     or bx, ax                                 ; 09 c3
@@ -9853,9 +9908,9 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06ae4h                               ; e2 fa
+    loop 06b23h                               ; e2 fa
     add bx, strict byte 00000h                ; 83 c3 00
     adc dx, strict byte 00010h                ; 83 d2 10
     mov ax, strict word 00062h                ; b8 62 00
-    call 016ach                               ; e8 b6 ab
+    call 016ach                               ; e8 77 ab
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
@@ -9865,7 +9920,7 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 06b03h                               ; e2 f8
+    loop 06b42h                               ; e2 f8
     mov ax, strict word 00061h                ; b8 61 00
-    call 016ach                               ; e8 9b ab
+    call 016ach                               ; e8 5c ab
     xor ah, ah                                ; 30 e4
     or word [bp-00ah], ax                     ; 09 46 f6
@@ -9874,10 +9929,10 @@
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     mov ax, strict word 00063h                ; b8 63 00
-    call 016ach                               ; e8 85 ab
+    call 016ach                               ; e8 46 ab
     mov byte [bp-004h], al                    ; 88 46 fc
     mov byte [bp-006h], al                    ; 88 46 fa
     mov ax, word [bp+014h]                    ; 8b 46 14
     cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 06bach                         ; 77 77
+    jnbe short 06bebh                         ; 77 77
     mov si, ax                                ; 89 c6
     add si, ax                                ; 01 c6
@@ -9886,5 +9941,5 @@
     mov cx, dx                                ; 89 d1
     adc cx, strict byte 0ffffh                ; 83 d1 ff
-    jmp word [cs:si+069cah]                   ; 2e ff a4 ca 69
+    jmp word [cs:si+06a09h]                   ; 2e ff a4 09 6a
     push strict byte 00001h                   ; 6a 01
     push strict byte 00000h                   ; 6a 00
@@ -9896,8 +9951,8 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 0661ah                               ; e8 ba fa
+    call 06659h                               ; e8 ba fa
     mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
-    jmp near 06cffh                           ; e9 92 01
+    jmp near 06d3eh                           ; e9 92 01
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -9909,7 +9964,7 @@
     mov bx, 0fc00h                            ; bb 00 fc
     mov cx, strict word 00009h                ; b9 09 00
-    call 0661ah                               ; e8 94 fa
+    call 06659h                               ; e8 94 fa
     mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
-    jmp short 06b65h                          ; eb d8
+    jmp short 06ba4h                          ; eb d8
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -9921,16 +9976,16 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0000fh                ; b9 0f 00
-    call 0661ah                               ; e8 75 fa
+    call 06659h                               ; e8 75 fa
     mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
-    jmp short 06b65h                          ; eb b9
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp short 06ba4h                          ; eb b9
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 6c ad
+    call 01923h                               ; e8 2d ad
     push word [bp+014h]                       ; ff 76 14
     push word [bp+020h]                       ; ff 76 20
     push 008b4h                               ; 68 b4 08
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 a1 ad
+    call 01966h                               ; e8 62 ad
     add sp, strict byte 00008h                ; 83 c4 08
     or byte [bp+028h], 001h                   ; 80 4e 28 01
@@ -9952,7 +10007,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 00010h                ; b9 10 00
-    call 0661ah                               ; e8 28 fa
+    call 06659h                               ; e8 28 fa
     mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
-    jmp near 06b65h                           ; e9 6b ff
+    jmp near 06ba4h                           ; e9 6b ff
     push strict byte 00003h                   ; 6a 03
     push strict byte 00000h                   ; 6a 00
@@ -9964,7 +10019,7 @@
     mov bx, ax                                ; 89 c3
     mov ax, si                                ; 89 f0
-    call 0661ah                               ; e8 0b fa
+    call 06659h                               ; e8 0b fa
     mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
-    jmp near 06b65h                           ; e9 4e ff
+    jmp near 06ba4h                           ; e9 4e ff
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -9976,7 +10031,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fec0h                            ; b9 c0 fe
-    call 0661ah                               ; e8 e9 f9
+    call 06659h                               ; e8 e9 f9
     mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
-    jmp near 06b65h                           ; e9 2c ff
+    jmp near 06ba4h                           ; e9 2c ff
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -9988,7 +10043,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fee0h                            ; b9 e0 fe
-    call 0661ah                               ; e8 c7 f9
+    call 06659h                               ; e8 c7 f9
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06b65h                           ; e9 0a ff
+    jmp near 06ba4h                           ; e9 0a ff
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -10000,17 +10055,17 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0fffch                ; b9 fc ff
-    call 0661ah                               ; e8 a7 f9
+    call 06659h                               ; e8 a7 f9
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06c80h                          ; 75 07
+    jne short 06cbfh                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06c90h                           ; 74 10
+    je short 06ccfh                           ; 74 10
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06b65h                           ; e9 dd fe
+    jmp near 06ba4h                           ; e9 dd fe
     mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
-    jmp near 06b65h                           ; e9 d5 fe
+    jmp near 06ba4h                           ; e9 d5 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06cffh                          ; eb 67
+    jmp short 06d3eh                          ; eb 67
     push strict byte 00002h                   ; 6a 02
     push strict byte 00000h                   ; 6a 00
@@ -10022,19 +10077,19 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 0661ah                               ; e8 6b f9
+    call 06659h                               ; e8 6b f9
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06cbch                          ; 75 07
+    jne short 06cfbh                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06cc4h                           ; 74 08
+    je short 06d03h                           ; 74 08
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06b65h                           ; e9 a1 fe
+    jmp near 06ba4h                           ; e9 a1 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06cffh                          ; eb 33
+    jmp short 06d3eh                          ; eb 33
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06cd8h                          ; 75 06
+    jne short 06d17h                          ; 75 06
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    je short 06cffh                           ; 74 27
+    je short 06d3eh                           ; 74 27
     push strict byte 00001h                   ; 6a 01
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -10050,5 +10105,5 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 0661ah                               ; e8 23 f9
+    call 06659h                               ; e8 23 f9
     xor ax, ax                                ; 31 c0
     mov word [bp+014h], ax                    ; 89 46 14
@@ -10059,26 +10114,26 @@
     mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
     and byte [bp+028h], 0feh                  ; 80 66 28 fe
-    jmp near 06bd6h                           ; e9 bc fe
+    jmp near 06c15h                           ; e9 bc fe
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, strict word 00031h                ; b8 31 00
-    call 016ach                               ; e8 89 a9
+    call 016ach                               ; e8 4a a9
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00030h                ; b8 30 00
-    call 016ach                               ; e8 7c a9
+    call 016ach                               ; e8 3d a9
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
     mov word [bp+01ch], dx                    ; 89 56 1c
     cmp dx, 03c00h                            ; 81 fa 00 3c
-    jbe short 06d42h                          ; 76 05
+    jbe short 06d81h                          ; 76 05
     mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
     mov ax, strict word 00035h                ; b8 35 00
-    call 016ach                               ; e8 64 a9
+    call 016ach                               ; e8 25 a9
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00034h                ; b8 34 00
-    call 016ach                               ; e8 57 a9
+    call 016ach                               ; e8 18 a9
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
@@ -10087,6 +10142,6 @@
     mov word [bp+020h], ax                    ; 89 46 20
     mov word [bp+014h], dx                    ; 89 56 14
-    jmp near 06bd6h                           ; e9 6e fe
-_int15_blkmove:                              ; 0xf6d68 LB 0x18a
+    jmp near 06c15h                           ; e9 6e fe
+_int15_blkmove:                              ; 0xf6da7 LB 0x18a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10097,5 +10152,5 @@
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 065eah                               ; e8 74 f8
+    call 06629h                               ; e8 74 f8
     mov di, ax                                ; 89 c7
     mov ax, word [bp+006h]                    ; 8b 46 06
@@ -10107,5 +10162,5 @@
     mov byte [bp-006h], dl                    ; 88 56 fa
     cmp cx, ax                                ; 39 c1
-    jnc short 06d95h                          ; 73 05
+    jnc short 06dd4h                          ; 73 05
     db  0feh, 0c2h
     ; inc dl                                    ; fe c2
@@ -10115,10 +10170,10 @@
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0002fh                ; bb 2f 00
-    call 0167ah                               ; e8 d6 a8
+    call 0167ah                               ; e8 97 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, cx                                ; 89 cb
-    call 0167ah                               ; e8 c8 a8
+    call 0167ah                               ; e8 89 a8
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -10126,40 +10181,40 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+006h]                    ; 8b 46 06
-    call 0165eh                               ; e8 9b a8
+    call 0165eh                               ; e8 5c a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000dh                ; 83 c2 0d
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, 00093h                            ; bb 93 00
-    call 0165eh                               ; e8 8c a8
+    call 0165eh                               ; e8 4d a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 9a a8
+    call 0167ah                               ; e8 5b a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00020h                ; 83 c2 20
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 8b a8
+    call 0167ah                               ; e8 4c a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00022h                ; 83 c2 22
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 7d a8
+    call 0167ah                               ; e8 3e a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00024h                ; 83 c2 24
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 0165eh                               ; e8 52 a8
+    call 0165eh                               ; e8 13 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00025h                ; 83 c2 25
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, 0009bh                            ; bb 9b 00
-    call 0165eh                               ; e8 43 a8
+    call 0165eh                               ; e8 04 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00026h                ; 83 c2 26
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 51 a8
+    call 0167ah                               ; e8 12 a8
     mov ax, ss                                ; 8c d0
     mov cx, ax                                ; 89 c1
@@ -10171,10 +10226,10 @@
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ah                               ; e8 35 a8
+    call 0167ah                               ; e8 f6 a7
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002ah                ; 83 c2 2a
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, cx                                ; 89 cb
-    call 0167ah                               ; e8 27 a8
+    call 0167ah                               ; e8 e8 a7
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -10182,15 +10237,15 @@
     add dx, strict byte 0002ch                ; 83 c2 2c
     mov ax, word [bp+006h]                    ; 8b 46 06
-    call 0165eh                               ; e8 fa a7
+    call 0165eh                               ; e8 bb a7
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002dh                ; 83 c2 2d
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, 00093h                            ; bb 93 00
-    call 0165eh                               ; e8 eb a7
+    call 0165eh                               ; e8 ac a7
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002eh                ; 83 c2 2e
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 0167ah                               ; e8 f9 a7
+    call 0167ah                               ; e8 ba a7
     lea bx, [bp+004h]                         ; 8d 5e 04
     mov si, word [bp+00ah]                    ; 8b 76 0a
@@ -10202,5 +10257,5 @@
     mov word [00467h], bx                     ; 89 1e 67 04
     mov [00469h], ss                          ; 8c 16 69 04
-    call 06e9ch                               ; e8 00 00
+    call 06edbh                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 00018h                ; 83 c7 18
@@ -10234,5 +10289,5 @@
     int3                                      ; cc
     mov ax, di                                ; 89 f8
-    call 065eah                               ; e8 08 f7
+    call 06629h                               ; e8 08 f7
     sti                                       ; fb
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -10243,5 +10298,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_inv_op_handler:                             ; 0xf6ef2 LB 0x19b
+_inv_op_handler:                             ; 0xf6f31 LB 0x19b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10252,10 +10307,10 @@
     les bx, [bp+018h]                         ; c4 5e 18
     cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
-    jne short 06f08h                          ; 75 06
+    jne short 06f47h                          ; 75 06
     inc word [bp+018h]                        ; ff 46 18
-    jmp near 07086h                           ; e9 7e 01
+    jmp near 070c5h                           ; e9 7e 01
     cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
-    je short 06f12h                           ; 74 03
-    jmp near 07082h                           ; e9 70 01
+    je short 06f51h                           ; 74 03
+    jmp near 070c1h                           ; e9 70 01
     mov si, 00800h                            ; be 00 08
     xor ax, ax                                ; 31 c0
@@ -10286,9 +10341,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 06f63h                               ; e2 fa
+    loop 06fa2h                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 06f71h                          ; 75 04
+    jne short 06fb0h                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 06f76h                           ; 74 05
+    je short 06fb5h                           ; 74 05
     mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
     mov es, [bp-006h]                         ; 8e 46 fa
@@ -10301,9 +10356,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 06f8ch                               ; e2 fa
+    loop 06fcbh                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 06f9ah                          ; 75 04
+    jne short 06fd9h                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 06f9eh                           ; 74 04
+    je short 06fddh                           ; 74 04
     or byte [bp-008h], 002h                   ; 80 4e f8 02
     push strict byte 00000h                   ; 6a 00
@@ -10359,8 +10414,8 @@
     mov ax, strict word 00008h                ; b8 08 00
     test cx, strict word 00001h               ; f7 c1 01 00
-    je near 0703fh                            ; 0f 84 02 00
+    je near 0707eh                            ; 0f 84 02 00
     mov es, ax                                ; 8e c0
     test cx, strict word 00002h               ; f7 c1 02 00
-    je near 07067h                            ; 0f 84 20 00
+    je near 070a6h                            ; 0f 84 20 00
     mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
     mov word [word ss:00008h], bx             ; 36 89 1e 08 00
@@ -10379,8 +10434,8 @@
     mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
     iret                                      ; cf
-    jmp short 07086h                          ; eb 04
+    jmp short 070c5h                          ; eb 04
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 07083h                          ; eb fd
+    jmp short 070c2h                          ; eb fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -10388,5 +10443,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-init_rtc_:                                   ; 0xf708d LB 0x28
+init_rtc_:                                   ; 0xf70cc LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10394,17 +10449,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016c7h                               ; e8 2d a6
+    call 016c7h                               ; e8 ee a5
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 24 a6
+    call 016c7h                               ; e8 e5 a5
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016ach                               ; e8 03 a6
+    call 016ach                               ; e8 c4 a5
     mov ax, strict word 0000dh                ; b8 0d 00
-    call 016ach                               ; e8 fd a5
+    call 016ach                               ; e8 be a5
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-rtc_updating_:                               ; 0xf70b5 LB 0x21
+rtc_updating_:                               ; 0xf70f4 LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10412,11 +10467,11 @@
     mov dx, 061a8h                            ; ba a8 61
     dec dx                                    ; 4a
-    je short 070cdh                           ; 74 0e
+    je short 0710ch                           ; 74 0e
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016ach                               ; e8 e7 a5
+    call 016ach                               ; e8 a8 a5
     test AL, strict byte 080h                 ; a8 80
-    jne short 070bch                          ; 75 f3
+    jne short 070fbh                          ; 75 f3
     xor ax, ax                                ; 31 c0
-    jmp short 070d0h                          ; eb 03
+    jmp short 0710fh                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -10424,5 +10479,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int70_function:                             ; 0xf70d6 LB 0xbf
+_int70_function:                             ; 0xf7115 LB 0xbf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10430,52 +10485,52 @@
     push ax                                   ; 50
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 cb a5
+    call 016ach                               ; e8 8c a5
     mov bl, al                                ; 88 c3
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016ach                               ; e8 c0 a5
+    call 016ach                               ; e8 81 a5
     mov dl, al                                ; 88 c2
     test bl, 060h                             ; f6 c3 60
-    jne short 070f6h                          ; 75 03
-    jmp near 0717ch                           ; e9 86 00
+    jne short 07135h                          ; 75 03
+    jmp near 071bbh                           ; e9 86 00
     test AL, strict byte 020h                 ; a8 20
-    je short 070feh                           ; 74 04
+    je short 0713dh                           ; 74 04
     sti                                       ; fb
     int 04ah                                  ; cd 4a
     cli                                       ; fa
     test dl, 040h                             ; f6 c2 40
-    je short 07166h                           ; 74 63
+    je short 071a5h                           ; 74 63
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 44 a5
+    call 01650h                               ; e8 05 a5
     test al, al                               ; 84 c0
-    je short 0717ch                           ; 74 6c
+    je short 071bbh                           ; 74 6c
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01688h                               ; e8 6f a5
+    call 01688h                               ; e8 30 a5
     test dx, dx                               ; 85 d2
-    jne short 07168h                          ; 75 4b
+    jne short 071a7h                          ; 75 4b
     cmp ax, 003d1h                            ; 3d d1 03
-    jnc short 07168h                          ; 73 46
+    jnc short 071a7h                          ; 73 46
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 41 a5
+    call 0166ch                               ; e8 02 a5
     mov si, ax                                ; 89 c6
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 36 a5
+    call 0166ch                               ; e8 f7 a4
     mov cx, ax                                ; 89 c1
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 1b a5
+    call 0165eh                               ; e8 dc a4
     mov dl, byte [bp-004h]                    ; 8a 56 fc
     and dl, 037h                              ; 80 e2 37
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 76 a5
+    call 016c7h                               ; e8 37 a5
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01650h                               ; e8 f8 a4
+    call 01650h                               ; e8 b9 a4
     mov bl, al                                ; 88 c3
     or bl, 080h                               ; 80 cb 80
@@ -10483,6 +10538,6 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 f8 a4
-    jmp short 0717ch                          ; eb 14
+    call 0165eh                               ; e8 b9 a4
+    jmp short 071bbh                          ; eb 14
     mov bx, ax                                ; 89 c3
     add bx, 0fc2fh                            ; 81 c3 2f fc
@@ -10491,20 +10546,18 @@
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0169ah                               ; e8 1e a5
-    call 0e030h                               ; e8 b1 6e
+    call 0169ah                               ; e8 df a4
+    call 0e030h                               ; e8 72 6e
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-    stosw                                     ; ab
-    jno short 0715ah                          ; 71 d2
-    jno short 07181h                          ; 71 f7
-    jno short 071bfh                          ; 71 33
-    jc short 07113h                           ; 72 85
-    jc short 0714ch                           ; 72 bc
-    jc short 07195h                           ; 72 03
-    jnc short 071f2h                          ; 73 5e
+    jmp far 03672h:01171h                     ; ea 71 11 72 36
+    jc short 0723dh                           ; 72 72
+    jc short 07191h                           ; 72 c4
+    jc short 071cah                           ; 72 fb
+    jc short 07213h                           ; 72 42
+    jnc short 07170h                          ; 73 9d
     db  073h
-_int1a_function:                             ; 0xf7195 LB 0x1d9
+_int1a_function:                             ; 0xf71d4 LB 0x1d9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10512,9 +10565,9 @@
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe short 071feh                         ; 77 5e
+    jnbe short 0723dh                         ; 77 5e
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     add bx, bx                                ; 01 db
-    jmp word [cs:bx+07185h]                   ; 2e ff a7 85 71
+    jmp word [cs:bx+071c4h]                   ; 2e ff a7 c4 71
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10531,5 +10584,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     sti                                       ; fb
-    jmp short 071feh                          ; eb 2c
+    jmp short 0723dh                          ; eb 2c
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10545,21 +10598,21 @@
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 071feh                          ; eb 07
-    call 070b5h                               ; e8 bb fe
+    jmp short 0723dh                          ; eb 07
+    call 070f4h                               ; e8 bb fe
     test ax, ax                               ; 85 c0
-    je short 07201h                           ; 74 03
-    jmp near 0722fh                           ; e9 2e 00
+    je short 07240h                           ; 74 03
+    jmp near 0726eh                           ; e9 2e 00
     xor ax, ax                                ; 31 c0
-    call 016ach                               ; e8 a6 a4
+    call 016ach                               ; e8 67 a4
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00002h                ; b8 02 00
-    call 016ach                               ; e8 9d a4
+    call 016ach                               ; e8 5e a4
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00004h                ; b8 04 00
-    call 016ach                               ; e8 94 a4
+    call 016ach                               ; e8 55 a4
     mov dl, al                                ; 88 c2
     mov byte [bp+011h], al                    ; 88 46 11
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 89 a4
+    call 016ach                               ; e8 4a a4
     and AL, strict byte 001h                  ; 24 01
     mov byte [bp+00eh], al                    ; 88 46 0e
@@ -10569,22 +10622,22 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    call 070b5h                               ; e8 7f fe
+    call 070f4h                               ; e8 7f fe
     test ax, ax                               ; 85 c0
-    je short 0723dh                           ; 74 03
-    call 0708dh                               ; e8 50 fe
+    je short 0727ch                           ; 74 03
+    call 070cch                               ; e8 50 fe
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     xor ax, ax                                ; 31 c0
-    call 016c7h                               ; e8 80 a4
+    call 016c7h                               ; e8 41 a4
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00002h                ; b8 02 00
-    call 016c7h                               ; e8 75 a4
+    call 016c7h                               ; e8 36 a4
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00004h                ; b8 04 00
-    call 016c7h                               ; e8 6a a4
+    call 016c7h                               ; e8 2b a4
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 49 a4
+    call 016ach                               ; e8 0a a4
     mov bl, al                                ; 88 c3
     and bl, 060h                              ; 80 e3 60
@@ -10596,76 +10649,76 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 4b a4
+    call 016c7h                               ; e8 0c a4
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov byte [bp+012h], bl                    ; 88 5e 12
-    jmp short 0722fh                          ; eb aa
+    jmp short 0726eh                          ; eb aa
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    call 070b5h                               ; e8 29 fe
+    call 070f4h                               ; e8 29 fe
     test ax, ax                               ; 85 c0
-    je short 07292h                           ; 74 02
-    jmp short 0722fh                          ; eb 9d
+    je short 072d1h                           ; 74 02
+    jmp short 0726eh                          ; eb 9d
     mov ax, strict word 00009h                ; b8 09 00
-    call 016ach                               ; e8 14 a4
+    call 016ach                               ; e8 d5 a3
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00008h                ; b8 08 00
-    call 016ach                               ; e8 0b a4
+    call 016ach                               ; e8 cc a3
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00007h                ; b8 07 00
-    call 016ach                               ; e8 02 a4
+    call 016ach                               ; e8 c3 a3
     mov byte [bp+00eh], al                    ; 88 46 0e
     mov ax, strict word 00032h                ; b8 32 00
-    call 016ach                               ; e8 f9 a3
+    call 016ach                               ; e8 ba a3
     mov byte [bp+011h], al                    ; 88 46 11
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 0722fh                           ; e9 73 ff
-    call 070b5h                               ; e8 f6 fd
+    jmp near 0726eh                           ; e9 73 ff
+    call 070f4h                               ; e8 f6 fd
     test ax, ax                               ; 85 c0
-    je short 072c9h                           ; 74 06
-    call 0708dh                               ; e8 c7 fd
-    jmp near 0722fh                           ; e9 66 ff
+    je short 07308h                           ; 74 06
+    call 070cch                               ; e8 c7 fd
+    jmp near 0726eh                           ; e9 66 ff
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00009h                ; b8 09 00
-    call 016c7h                               ; e8 f3 a3
+    call 016c7h                               ; e8 b4 a3
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00008h                ; b8 08 00
-    call 016c7h                               ; e8 e8 a3
+    call 016c7h                               ; e8 a9 a3
     mov dl, byte [bp+00eh]                    ; 8a 56 0e
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00007h                ; b8 07 00
-    call 016c7h                               ; e8 dd a3
+    call 016c7h                               ; e8 9e a3
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00032h                ; b8 32 00
-    call 016c7h                               ; e8 d2 a3
+    call 016c7h                               ; e8 93 a3
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 b1 a3
+    call 016ach                               ; e8 72 a3
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
-    jmp near 07272h                           ; e9 6f ff
+    jmp near 072b1h                           ; e9 6f ff
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 a3 a3
+    call 016ach                               ; e8 64 a3
     mov bl, al                                ; 88 c3
     mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
     test AL, strict byte 020h                 ; a8 20
-    je short 07317h                           ; 74 03
-    jmp near 0722fh                           ; e9 18 ff
-    call 070b5h                               ; e8 9b fd
+    je short 07356h                           ; 74 03
+    jmp near 0726eh                           ; e9 18 ff
+    call 070f4h                               ; e8 9b fd
     test ax, ax                               ; 85 c0
-    je short 07321h                           ; 74 03
-    call 0708dh                               ; e8 6c fd
+    je short 07360h                           ; 74 03
+    call 070cch                               ; e8 6c fd
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00001h                ; b8 01 00
-    call 016c7h                               ; e8 9b a3
+    call 016c7h                               ; e8 5c a3
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00003h                ; b8 03 00
-    call 016c7h                               ; e8 90 a3
+    call 016c7h                               ; e8 51 a3
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00005h                ; b8 05 00
-    call 016c7h                               ; e8 85 a3
+    call 016c7h                               ; e8 46 a3
     mov dx, 000a1h                            ; ba a1 00
     in AL, DX                                 ; ec
@@ -10679,13 +10732,13 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c7h                               ; e8 6c a3
-    jmp near 0722fh                           ; e9 d1 fe
+    call 016c7h                               ; e8 2d a3
+    jmp near 0726eh                           ; e9 d1 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016ach                               ; e8 48 a3
+    call 016ach                               ; e8 09 a3
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     and dl, 057h                              ; 80 e2 57
-    jmp near 07274h                           ; e9 06 ff
-send_to_mouse_ctrl_:                         ; 0xf736e LB 0x34
+    jmp near 072b3h                           ; e9 06 ff
+send_to_mouse_ctrl_:                         ; 0xf73ad LB 0x34
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10698,9 +10751,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0738dh                           ; 74 0e
+    je short 073cch                           ; 74 0e
     push 008eeh                               ; 68 ee 08
-    push 0116ch                               ; 68 6c 11
+    push 01168h                               ; 68 68 11
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 dc a5
+    call 01966h                               ; e8 9d a5
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 0d4h                  ; b0 d4
@@ -10716,5 +10769,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_mouse_data_:                             ; 0xf73a2 LB 0x5d
+get_mouse_data_:                             ; 0xf73e1 LB 0x5d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10731,7 +10784,7 @@
     and ax, strict word 00021h                ; 25 21 00
     cmp ax, strict word 00021h                ; 3d 21 00
-    je short 073e5h                           ; 74 28
+    je short 07424h                           ; 74 28
     test cx, cx                               ; 85 c9
-    je short 073e5h                           ; 74 24
+    je short 07424h                           ; 74 24
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -10750,11 +10803,11 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    je short 073cch                           ; 74 ea
+    je short 0740bh                           ; 74 ea
     dec cx                                    ; 49
-    jmp short 073afh                          ; eb ca
+    jmp short 073eeh                          ; eb ca
     test cx, cx                               ; 85 c9
-    jne short 073edh                          ; 75 04
+    jne short 0742ch                          ; 75 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 073f8h                          ; eb 0b
+    jmp short 07437h                          ; eb 0b
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10768,5 +10821,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_kbd_command_byte_:                       ; 0xf73ff LB 0x32
+set_kbd_command_byte_:                       ; 0xf743e LB 0x32
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10779,9 +10832,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0741eh                           ; 74 0e
+    je short 0745dh                           ; 74 0e
     push 008f8h                               ; 68 f8 08
-    push 0116ch                               ; 68 6c 11
+    push 01168h                               ; 68 68 11
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 4b a5
+    call 01966h                               ; e8 0c a5
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 060h                  ; b0 60
@@ -10796,5 +10849,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int74_function:                             ; 0xf7431 LB 0xd2
+_int74_function:                             ; 0xf7470 LB 0xd2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10802,5 +10855,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 2c a2
+    call 0166ch                               ; e8 ed a1
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -10811,5 +10864,5 @@
     and AL, strict byte 021h                  ; 24 21
     cmp AL, strict byte 021h                  ; 3c 21
-    jne short 07475h                          ; 75 22
+    jne short 074b4h                          ; 75 22
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10819,13 +10872,13 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 ed a1
+    call 01650h                               ; e8 ae a1
     mov byte [bp-002h], al                    ; 88 46 fe
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 e2 a1
+    call 01650h                               ; e8 a3 a1
     mov byte [bp-006h], al                    ; 88 46 fa
     test AL, strict byte 080h                 ; a8 80
-    jne short 07478h                          ; 75 03
-    jmp near 074efh                           ; e9 77 00
+    jne short 074b7h                          ; 75 03
+    jmp near 0752eh                           ; e9 77 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 007h                  ; 24 07
@@ -10841,21 +10894,21 @@
     add dx, strict byte 00028h                ; 83 c2 28
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 c3 a1
+    call 0165eh                               ; e8 84 a1
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp al, byte [bp-004h]                    ; 3a 46 fc
-    jc short 074dfh                           ; 72 3c
+    jc short 0751eh                           ; 72 3c
     mov dx, strict word 00028h                ; ba 28 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 a5 a1
+    call 01650h                               ; e8 66 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+00ch], ax                    ; 89 46 0c
     mov dx, strict word 00029h                ; ba 29 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 98 a1
+    call 01650h                               ; e8 59 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+00ah], ax                    ; 89 46 0a
     mov dx, strict word 0002ah                ; ba 2a 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 8b a1
+    call 01650h                               ; e8 4c a1
     xor ah, ah                                ; 30 e4
     mov word [bp+008h], ax                    ; 89 46 08
@@ -10864,7 +10917,7 @@
     mov byte [bp-002h], ah                    ; 88 66 fe
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 074e2h                           ; 74 0a
+    je short 07521h                           ; 74 0a
     mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
-    jmp short 074e2h                          ; eb 03
+    jmp short 07521h                          ; eb 03
     inc byte [bp-002h]                        ; fe 46 fe
     mov bl, byte [bp-002h]                    ; 8a 5e fe
@@ -10872,18 +10925,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 6f a1
+    call 0165eh                               ; e8 30 a1
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-    inc si                                    ; 46
-    jne short 074b8h                          ; 75 c2
-    jne short 07537h                          ; 75 3f
-    jbe short 074ceh                          ; 76 d4
-    jbe short 0753ch                          ; 76 40
-    jnbe short 0748bh                         ; 77 8d
-    jne short 07568h                          ; 75 68
-    jnbe short 0752fh                         ; 77 2d
+    test word [di+001h], si                   ; 85 75 01
+    jbe short 075b5h                          ; 76 7e
+    jbe short 0754ch                          ; 76 13
+    jnbe short 075bah                         ; 77 7f
+    jnbe short 07509h                         ; 77 cc
+    jne short 074e6h                          ; 75 a7
+    jnbe short 075adh                         ; 77 6c
     db  078h
-_int15_function_mouse:                       ; 0xf7503 LB 0x38d
+_int15_function_mouse:                       ; 0xf7542 LB 0x38d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10892,61 +10944,61 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 59 a1
+    call 0166ch                               ; e8 1a a1
     mov cx, ax                                ; 89 c1
     cmp byte [bp+012h], 007h                  ; 80 7e 12 07
-    jbe short 07526h                          ; 76 0b
+    jbe short 07565h                          ; 76 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp near 0788ah                           ; e9 64 03
+    jmp near 078c9h                           ; e9 64 03
     mov ax, strict word 00065h                ; b8 65 00
-    call 073ffh                               ; e8 d3 fe
+    call 0743eh                               ; e8 d3 fe
     and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov al, byte [bp+012h]                    ; 8a 46 12
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe short 0759bh                         ; 77 60
+    jnbe short 075dah                         ; 77 60
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
     add si, ax                                ; 01 c6
-    jmp word [cs:si+074f3h]                   ; 2e ff a4 f3 74
+    jmp word [cs:si+07532h]                   ; 2e ff a4 32 75
     cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
-    jnbe short 0759eh                         ; 77 52
+    jnbe short 075ddh                         ; 77 52
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 fc a0
+    call 01650h                               ; e8 bd a0
     test AL, strict byte 080h                 ; a8 80
-    jne short 07563h                          ; 75 0b
+    jne short 075a2h                          ; 75 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 005h                  ; c6 46 13 05
-    jmp near 07884h                           ; e9 21 03
+    jmp near 078c3h                           ; e9 21 03
     cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
-    jne short 0756dh                          ; 75 04
+    jne short 075ach                          ; 75 04
     mov AL, strict byte 0f5h                  ; b0 f5
-    jmp short 0756fh                          ; eb 02
+    jmp short 075aeh                          ; eb 02
     mov AL, strict byte 0f4h                  ; b0 f4
     xor ah, ah                                ; 30 e4
-    call 0736eh                               ; e8 fa fd
+    call 073adh                               ; e8 fa fd
     test al, al                               ; 84 c0
-    jne short 075a1h                          ; 75 29
+    jne short 075e0h                          ; 75 29
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 22 fe
+    call 073e1h                               ; e8 22 fe
     test al, al                               ; 84 c0
-    je short 0758ah                           ; 74 06
+    je short 075c9h                           ; 74 06
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    jne short 075a1h                          ; 75 17
-    jmp near 07884h                           ; e9 f7 02
+    jne short 075e0h                          ; 75 17
+    jmp near 078c3h                           ; e9 f7 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 07598h                           ; 72 04
+    jc short 075d7h                           ; 72 04
     cmp AL, strict byte 008h                  ; 3c 08
-    jbe short 075a4h                          ; 76 0c
-    jmp near 07736h                           ; e9 9b 01
-    jmp near 07871h                           ; e9 d3 02
-    jmp near 0787ch                           ; e9 db 02
-    jmp near 07808h                           ; e9 64 02
+    jbe short 075e3h                          ; 76 0c
+    jmp near 07775h                           ; e9 9b 01
+    jmp near 078b0h                           ; e9 d3 02
+    jmp near 078bbh                           ; e9 db 02
+    jmp near 07847h                           ; e9 64 02
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 a4 a0
+    call 01650h                               ; e8 65 a0
     mov ah, byte [bp+00dh]                    ; 8a 66 0d
     db  0feh, 0cch
@@ -10958,8 +11010,8 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 9c a0
+    call 0165eh                               ; e8 5d a0
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 86 a0
+    call 01650h                               ; e8 47 a0
     mov bl, al                                ; 88 c3
     and bl, 0f8h                              ; 80 e3 f8
@@ -10967,20 +11019,20 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 85 a0
+    call 0165eh                               ; e8 46 a0
     mov ax, 000ffh                            ; b8 ff 00
-    call 0736eh                               ; e8 8f fd
+    call 073adh                               ; e8 8f fd
     test al, al                               ; 84 c0
-    jne short 075a1h                          ; 75 be
+    jne short 075e0h                          ; 75 be
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073a2h                               ; e8 b7 fd
+    call 073e1h                               ; e8 b7 fd
     mov cl, al                                ; 88 c1
     cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
-    jne short 075fdh                          ; 75 0a
+    jne short 0763ch                          ; 75 0a
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 004h                  ; c6 46 13 04
-    jmp short 0758ah                          ; eb 8d
+    jmp short 075c9h                          ; eb 8d
     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
-    je short 07614h                           ; 74 11
+    je short 07653h                           ; 74 11
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -10988,89 +11040,89 @@
     push 00903h                               ; 68 03 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 55 a3
+    call 01966h                               ; e8 16 a3
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 075a1h                          ; 75 89
+    jne short 075e0h                          ; 75 89
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 82 fd
+    call 073e1h                               ; e8 82 fd
     test al, al                               ; 84 c0
-    jne short 0767ah                          ; 75 56
+    jne short 076b9h                          ; 75 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073a2h                               ; e8 76 fd
+    call 073e1h                               ; e8 76 fd
     test al, al                               ; 84 c0
-    jne short 0767ah                          ; 75 4a
+    jne short 076b9h                          ; 75 4a
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00ch], al                    ; 88 46 0c
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00dh], al                    ; 88 46 0d
-    jmp near 07884h                           ; e9 45 02
+    jmp near 078c3h                           ; e9 45 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 07656h                           ; 72 10
-    jbe short 07674h                          ; 76 2c
+    jc short 07695h                           ; 72 10
+    jbe short 076b3h                          ; 76 2c
     cmp AL, strict byte 006h                  ; 3c 06
-    je short 07689h                           ; 74 3d
+    je short 076c8h                           ; 74 3d
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 07683h                           ; 74 33
+    je short 076c2h                           ; 74 33
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 0767dh                           ; 74 29
-    jmp short 0768fh                          ; eb 39
+    je short 076bch                           ; 74 29
+    jmp short 076ceh                          ; eb 39
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0766eh                           ; 74 14
+    je short 076adh                           ; 74 14
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 07668h                           ; 74 0a
+    je short 076a7h                           ; 74 0a
     test al, al                               ; 84 c0
-    jne short 0768fh                          ; 75 2d
+    jne short 076ceh                          ; 75 2d
     mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
-    jmp short 07693h                          ; eb 2b
+    jmp short 076d2h                          ; eb 2b
     mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 07693h                          ; eb 25
+    jmp short 076d2h                          ; eb 25
     mov byte [bp-008h], 028h                  ; c6 46 f8 28
-    jmp short 07693h                          ; eb 1f
+    jmp short 076d2h                          ; eb 1f
     mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
-    jmp short 07693h                          ; eb 19
-    jmp near 07808h                           ; e9 8b 01
+    jmp short 076d2h                          ; eb 19
+    jmp near 07847h                           ; e9 8b 01
     mov byte [bp-008h], 050h                  ; c6 46 f8 50
-    jmp short 07693h                          ; eb 10
+    jmp short 076d2h                          ; eb 10
     mov byte [bp-008h], 064h                  ; c6 46 f8 64
-    jmp short 07693h                          ; eb 0a
+    jmp short 076d2h                          ; eb 0a
     mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
-    jmp short 07693h                          ; eb 04
+    jmp short 076d2h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jbe short 076c9h                          ; 76 30
+    jbe short 07708h                          ; 76 30
     mov ax, 000f3h                            ; b8 f3 00
-    call 0736eh                               ; e8 cf fc
+    call 073adh                               ; e8 cf fc
     test al, al                               ; 84 c0
-    jne short 076beh                          ; 75 1b
+    jne short 076fdh                          ; 75 1b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073a2h                               ; e8 f7 fc
+    call 073e1h                               ; e8 f7 fc
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 0736eh                               ; e8 bb fc
+    call 073adh                               ; e8 bb fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073a2h                               ; e8 e7 fc
-    jmp near 07884h                           ; e9 c6 01
+    call 073e1h                               ; e8 e7 fc
+    jmp near 078c3h                           ; e9 c6 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07884h                           ; e9 bb 01
+    jmp near 078c3h                           ; e9 bb 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 07884h                           ; e9 b0 01
+    jmp near 078c3h                           ; e9 b0 01
     cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
-    jnc short 07736h                          ; 73 5c
+    jnc short 07775h                          ; 73 5c
     mov ax, 000e8h                            ; b8 e8 00
-    call 0736eh                               ; e8 8e fc
+    call 073adh                               ; e8 8e fc
     test al, al                               ; 84 c0
-    jne short 0772ch                          ; 75 48
+    jne short 0776bh                          ; 75 48
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 b6 fc
+    call 073e1h                               ; e8 b6 fc
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 07703h                           ; 74 11
+    je short 07742h                           ; 74 11
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11078,14 +11130,14 @@
     push 0092eh                               ; 68 2e 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 66 a2
+    call 01966h                               ; e8 27 a2
     add sp, strict byte 00006h                ; 83 c4 06
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
-    call 0736eh                               ; e8 63 fc
+    call 073adh                               ; e8 63 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 8f fc
+    call 073e1h                               ; e8 8f fc
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 07765h                           ; 74 4c
+    je short 077a4h                           ; 74 4c
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11093,43 +11145,43 @@
     push 0092eh                               ; 68 2e 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 3f a2
+    call 01966h                               ; e8 00 a2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 07765h                          ; eb 39
+    jmp short 077a4h                          ; eb 39
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 07765h                          ; eb 2f
+    jmp short 077a4h                          ; eb 2f
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp short 07765h                          ; eb 25
+    jmp short 077a4h                          ; eb 25
     mov ax, 000f2h                            ; b8 f2 00
-    call 0736eh                               ; e8 28 fc
+    call 073adh                               ; e8 28 fc
     test al, al                               ; 84 c0
-    jne short 0775dh                          ; 75 13
+    jne short 0779ch                          ; 75 13
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 50 fc
+    call 073e1h                               ; e8 50 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073a2h                               ; e8 48 fc
-    jmp near 07636h                           ; e9 d9 fe
+    call 073e1h                               ; e8 48 fc
+    jmp near 07675h                           ; e9 d9 fe
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 07884h                           ; e9 1c 01
+    jmp near 078c3h                           ; e9 1c 01
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     test al, al                               ; 84 c0
-    jbe short 07776h                          ; 76 07
+    jbe short 077b5h                          ; 76 07
     cmp AL, strict byte 002h                  ; 3c 02
-    jbe short 077ddh                          ; 76 6a
-    jmp near 07812h                           ; e9 9c 00
+    jbe short 0781ch                          ; 76 6a
+    jmp near 07851h                           ; e9 9c 00
     mov ax, 000e9h                            ; b8 e9 00
-    call 0736eh                               ; e8 f2 fb
+    call 073adh                               ; e8 f2 fb
     test al, al                               ; 84 c0
-    jne short 077e6h                          ; 75 66
+    jne short 07825h                          ; 75 66
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 1a fc
+    call 073e1h                               ; e8 1a fc
     mov cl, al                                ; 88 c1
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 077a1h                           ; 74 11
+    je short 077e0h                           ; 74 11
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11137,23 +11189,23 @@
     push 0092eh                               ; 68 2e 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 c8 a1
+    call 01966h                               ; e8 89 a1
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 07808h                          ; 75 63
+    jne short 07847h                          ; 75 63
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 f5 fb
+    call 073e1h                               ; e8 f5 fb
     test al, al                               ; 84 c0
-    jne short 07808h                          ; 75 57
+    jne short 07847h                          ; 75 57
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073a2h                               ; e8 e9 fb
+    call 073e1h                               ; e8 e9 fb
     test al, al                               ; 84 c0
-    jne short 07808h                          ; 75 4b
+    jne short 07847h                          ; 75 4b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073a2h                               ; e8 dd fb
+    call 073e1h                               ; e8 dd fb
     test al, al                               ; 84 c0
-    jne short 07808h                          ; 75 3f
+    jne short 07847h                          ; 75 3f
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00ch], al                    ; 88 46 0c
@@ -11162,26 +11214,26 @@
     mov al, byte [bp-004h]                    ; 8a 46 fc
     mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp short 07765h                          ; eb 88
+    jmp short 077a4h                          ; eb 88
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 077e8h                          ; 75 07
+    jne short 07827h                          ; 75 07
     mov ax, 000e6h                            ; b8 e6 00
-    jmp short 077ebh                          ; eb 05
-    jmp short 07808h                          ; eb 20
+    jmp short 0782ah                          ; eb 05
+    jmp short 07847h                          ; eb 20
     mov ax, 000e7h                            ; b8 e7 00
-    call 0736eh                               ; e8 80 fb
+    call 073adh                               ; e8 80 fb
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    jne short 07804h                          ; 75 10
+    jne short 07843h                          ; 75 10
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073a2h                               ; e8 a6 fb
+    call 073e1h                               ; e8 a6 fb
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 07804h                           ; 74 02
+    je short 07843h                           ; 74 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je short 0786fh                           ; 74 67
+    je short 078aeh                           ; 74 67
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 0786fh                          ; eb 5d
+    jmp short 078aeh                          ; eb 5d
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
@@ -11189,30 +11241,30 @@
     push 0095ah                               ; 68 5a 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 46 a1
+    call 01966h                               ; e8 07 a1
     add sp, strict byte 00006h                ; 83 c4 06
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp short 07884h                          ; eb 57
+    jmp short 078c3h                          ; eb 57
     mov si, word [bp+00ch]                    ; 8b 76 0c
     mov bx, si                                ; 89 f3
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, cx                                ; 89 c8
-    call 0167ah                               ; e8 40 9e
+    call 0167ah                               ; e8 01 9e
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, strict word 00024h                ; ba 24 00
     mov ax, cx                                ; 89 c8
-    call 0167ah                               ; e8 35 9e
+    call 0167ah                               ; e8 f6 9d
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01650h                               ; e8 03 9e
+    call 01650h                               ; e8 c4 9d
     mov ah, al                                ; 88 c4
     test si, si                               ; 85 f6
-    jne short 07861h                          ; 75 0e
+    jne short 078a0h                          ; 75 0e
     cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
-    jne short 07861h                          ; 75 08
+    jne short 078a0h                          ; 75 08
     test AL, strict byte 080h                 ; a8 80
-    je short 07863h                           ; 74 06
+    je short 078a2h                           ; 74 06
     and AL, strict byte 07fh                  ; 24 7f
-    jmp short 07863h                          ; eb 02
+    jmp short 078a2h                          ; eb 02
     or AL, strict byte 080h                   ; 0c 80
     mov bl, al                                ; 88 c3
@@ -11220,19 +11272,19 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 0165eh                               ; e8 ef 9d
-    jmp short 07884h                          ; eb 13
+    call 0165eh                               ; e8 b0 9d
+    jmp short 078c3h                          ; eb 13
     push 00974h                               ; 68 74 09
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 ed a0
+    call 01966h                               ; e8 ae a0
     add sp, strict byte 00004h                ; 83 c4 04
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
     mov ax, strict word 00047h                ; b8 47 00
-    call 073ffh                               ; e8 75 fb
+    call 0743eh                               ; e8 75 fb
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-_int17_function:                             ; 0xf7890 LB 0xaf
+_int17_function:                             ; 0xf78cf LB 0xaf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11244,24 +11296,24 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 c8 9d
+    call 0166ch                               ; e8 89 9d
     mov bx, ax                                ; 89 c3
     mov si, ax                                ; 89 c6
     cmp byte [bp+013h], 003h                  ; 80 7e 13 03
-    jnc short 078bah                          ; 73 0c
+    jnc short 078f9h                          ; 73 0c
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnc short 078bah                          ; 73 04
+    jnc short 078f9h                          ; 73 04
     test bx, bx                               ; 85 db
-    jnbe short 078bdh                         ; 77 03
-    jmp near 07935h                           ; e9 78 00
+    jnbe short 078fch                         ; 77 03
+    jmp near 07974h                           ; e9 78 00
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00078h                ; 83 c2 78
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 88 9d
+    call 01650h                               ; e8 49 9d
     xor ah, ah                                ; 30 e4
     mov cx, ax                                ; 89 c1
     sal cx, 008h                              ; c1 e1 08
     cmp byte [bp+013h], 000h                  ; 80 7e 13 00
-    jne short 07901h                          ; 75 2c
+    jne short 07940h                          ; 75 2c
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -11283,11 +11335,11 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 040h                 ; a8 40
-    je short 07901h                           ; 74 07
+    je short 07940h                           ; 74 07
     test cx, cx                               ; 85 c9
-    je short 07901h                           ; 74 03
+    je short 07940h                           ; 74 03
     dec cx                                    ; 49
-    jmp short 078f0h                          ; eb ef
+    jmp short 0792fh                          ; eb ef
     cmp byte [bp+013h], 001h                  ; 80 7e 13 01
-    jne short 0791ch                          ; 75 15
+    jne short 0795bh                          ; 75 15
     lea dx, [si+002h]                         ; 8d 54 02
     in AL, DX                                 ; ec
@@ -11308,8 +11360,8 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cx, cx                               ; 85 c9
-    jne short 0792fh                          ; 75 04
+    jne short 0796eh                          ; 75 04
     or byte [bp+013h], 001h                   ; 80 4e 13 01
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 07939h                          ; eb 04
+    jmp short 07978h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -11317,5 +11369,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-wait_:                                       ; 0xf793f LB 0xaf
+wait_:                                       ; 0xf797e LB 0xaf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11335,5 +11387,5 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 01688h                               ; e8 26 9d
+    call 01688h                               ; e8 e7 9c
     mov word [bp-010h], ax                    ; 89 46 f0
     mov bx, dx                                ; 89 d3
@@ -11341,20 +11393,20 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 01688h                               ; e8 18 9d
+    call 01688h                               ; e8 d9 9c
     mov word [bp-012h], ax                    ; 89 46 ee
     mov di, dx                                ; 89 d7
     cmp dx, bx                                ; 39 da
-    jnbe short 07980h                         ; 77 07
-    jne short 07987h                          ; 75 0c
+    jnbe short 079bfh                         ; 77 07
+    jne short 079c6h                          ; 75 0c
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jbe short 07987h                          ; 76 07
+    jbe short 079c6h                          ; 76 07
     sub ax, word [bp-010h]                    ; 2b 46 f0
     sbb dx, bx                                ; 19 da
-    jmp short 07992h                          ; eb 0b
+    jmp short 079d1h                          ; eb 0b
     cmp dx, bx                                ; 39 da
-    jc short 07992h                           ; 72 07
-    jne short 07996h                          ; 75 09
+    jc short 079d1h                           ; 72 07
+    jne short 079d5h                          ; 75 09
     cmp ax, word [bp-010h]                    ; 3b 46 f0
-    jnc short 07996h                          ; 73 04
+    jnc short 079d5h                          ; 73 04
     sub si, ax                                ; 29 c6
     sbb cx, dx                                ; 19 d1
@@ -11364,11 +11416,11 @@
     mov ax, 00100h                            ; b8 00 01
     int 016h                                  ; cd 16
-    je short 079aah                           ; 74 05
+    je short 079e9h                           ; 74 05
     mov AL, strict byte 001h                  ; b0 01
-    jmp near 079ach                           ; e9 02 00
+    jmp near 079ebh                           ; e9 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     test al, al                               ; 84 c0
-    je short 079d3h                           ; 74 23
+    je short 07a12h                           ; 74 23
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -11381,15 +11433,15 @@
     push 00996h                               ; 68 96 09
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 a0 9f
+    call 01966h                               ; e8 61 9f
     add sp, strict byte 00006h                ; 83 c4 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 079d3h                           ; 74 04
+    je short 07a12h                           ; 74 04
     mov al, dl                                ; 88 d0
-    jmp short 079e5h                          ; eb 12
+    jmp short 07a24h                          ; eb 12
     test cx, cx                               ; 85 c9
-    jnle short 07967h                         ; 7f 90
-    jne short 079ddh                          ; 75 04
+    jnle short 079a6h                         ; 7f 90
+    jne short 07a1ch                          ; 75 04
     test si, si                               ; 85 f6
-    jnbe short 07967h                         ; 77 8a
+    jnbe short 079a6h                         ; 77 8a
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     push ax                                   ; 50
@@ -11403,5 +11455,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_byte_:                             ; 0xf79ee LB 0x16
+read_logo_byte_:                             ; 0xf7a2d LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11418,5 +11470,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_word_:                             ; 0xf7a04 LB 0x14
+read_logo_word_:                             ; 0xf7a43 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11431,5 +11483,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_detected_harddisks_:                   ; 0xf7a18 LB 0x13a
+print_detected_harddisks_:                   ; 0xf7a57 LB 0x13a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11443,5 +11495,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 41 9c
+    call 0166ch                               ; e8 02 9c
     mov si, ax                                ; 89 c6
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
@@ -11449,9 +11501,9 @@
     xor ch, ch                                ; 30 ed
     mov dx, 00304h                            ; ba 04 03
-    call 01650h                               ; e8 15 9c
+    call 01650h                               ; e8 d6 9b
     mov byte [bp-00ch], al                    ; 88 46 f4
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp-00ch]                    ; 3a 5e f4
-    jnc short 07aa2h                          ; 73 5d
+    jnc short 07ae1h                          ; 73 5d
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -11459,13 +11511,13 @@
     add dx, 00305h                            ; 81 c2 05 03
     mov ax, si                                ; 89 f0
-    call 01650h                               ; e8 fc 9b
+    call 01650h                               ; e8 bd 9b
     mov bh, al                                ; 88 c7
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jc short 07a7fh                           ; 72 25
+    jc short 07abeh                           ; 72 25
     test cl, cl                               ; 84 c9
-    jne short 07a6bh                          ; 75 0d
+    jne short 07aaah                          ; 75 0d
     push 009a7h                               ; 68 a7 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 00 9f
+    call 01966h                               ; e8 c1 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov CL, strict byte 001h                  ; b1 01
@@ -11476,36 +11528,36 @@
     push 009bch                               ; 68 bc 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 ed 9e
+    call 01966h                               ; e8 ae 9e
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 07b1fh                           ; e9 a0 00
+    jmp near 07b5eh                           ; e9 a0 00
     cmp AL, strict byte 008h                  ; 3c 08
-    jc short 07a96h                           ; 72 13
+    jc short 07ad5h                           ; 72 13
     test ch, ch                               ; 84 ed
-    jne short 07a94h                          ; 75 0d
+    jne short 07ad3h                          ; 75 0d
     push 009cfh                               ; 68 cf 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 d7 9e
+    call 01966h                               ; e8 98 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
-    jmp short 07a6bh                          ; eb d5
+    jmp short 07aaah                          ; eb d5
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 07ab6h                          ; 73 1c
+    jnc short 07af5h                          ; 73 1c
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07aa5h                           ; 74 05
-    jmp short 07ab6h                          ; eb 14
-    jmp near 07b24h                           ; e9 7f 00
+    je short 07ae4h                           ; 74 05
+    jmp short 07af5h                          ; eb 14
+    jmp near 07b63h                           ; e9 7f 00
     push 009e4h                               ; 68 e4 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 b9 9e
+    call 01966h                               ; e8 7a 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07acch                          ; eb 16
+    jmp short 07b0bh                          ; eb 16
     cmp bh, 004h                              ; 80 ff 04
-    jc short 07acch                           ; 72 11
+    jc short 07b0bh                           ; 72 11
     test cl, cl                               ; 84 c9
-    jne short 07acch                          ; 75 0d
+    jne short 07b0bh                          ; 75 0d
     push 009f6h                               ; 68 f6 09
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 9f 9e
+    call 01966h                               ; e8 60 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov CL, strict byte 001h                  ; b1 01
@@ -11516,8 +11568,8 @@
     push 00a0ah                               ; 68 0a 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 8c 9e
+    call 01966h                               ; e8 4d 9e
     add sp, strict byte 00006h                ; 83 c4 06
     cmp bh, 004h                              ; 80 ff 04
-    jc short 07ae5h                           ; 72 03
+    jc short 07b24h                           ; 72 03
     sub bh, 004h                              ; 80 ef 04
     mov al, bh                                ; 88 f8
@@ -11528,10 +11580,10 @@
     sar ax, 1                                 ; d1 f8
     test ax, ax                               ; 85 c0
-    je short 07af7h                           ; 74 05
+    je short 07b36h                           ; 74 05
     push 00a14h                               ; 68 14 0a
-    jmp short 07afah                          ; eb 03
+    jmp short 07b39h                          ; eb 03
     push 00a1fh                               ; 68 1f 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 67 9e
+    call 01966h                               ; e8 28 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, bh                                ; 88 f8
@@ -11541,27 +11593,27 @@
     idiv di                                   ; f7 ff
     test dx, dx                               ; 85 d2
-    je short 07b15h                           ; 74 05
+    je short 07b54h                           ; 74 05
     push 00a28h                               ; 68 28 0a
-    jmp short 07b18h                          ; eb 03
+    jmp short 07b57h                          ; eb 03
     push 00a2eh                               ; 68 2e 0a
     push di                                   ; 57
-    call 01966h                               ; e8 4a 9e
+    call 01966h                               ; e8 0b 9e
     add sp, strict byte 00004h                ; 83 c4 04
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp near 07a40h                           ; e9 1c ff
+    jmp near 07a7fh                           ; e9 1c ff
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 07b3dh                          ; 75 13
+    jne short 07b7ch                          ; 75 13
     test cl, cl                               ; 84 c9
-    jne short 07b3dh                          ; 75 0f
+    jne short 07b7ch                          ; 75 0f
     test ch, ch                               ; 84 ed
-    jne short 07b3dh                          ; 75 0b
+    jne short 07b7ch                          ; 75 0b
     push 00a35h                               ; 68 35 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 2c 9e
+    call 01966h                               ; e8 ed 9d
     add sp, strict byte 00004h                ; 83 c4 04
     push 00a49h                               ; 68 49 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 21 9e
+    call 01966h                               ; e8 e2 9d
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -11573,5 +11625,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_boot_drive_:                             ; 0xf7b52 LB 0x28
+get_boot_drive_:                             ; 0xf7b91 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11581,10 +11633,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 0a 9b
+    call 0166ch                               ; e8 cb 9a
     mov dx, 00304h                            ; ba 04 03
-    call 01650h                               ; e8 e8 9a
+    call 01650h                               ; e8 a9 9a
     sub bl, 002h                              ; 80 eb 02
     cmp bl, al                                ; 38 c3
-    jc short 07b71h                           ; 72 02
+    jc short 07bb0h                           ; 72 02
     mov BL, strict byte 0ffh                  ; b3 ff
     mov al, bl                                ; 88 d8
@@ -11594,5 +11646,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-show_logo_:                                  ; 0xf7b7a LB 0x231
+show_logo_:                                  ; 0xf7bb9 LB 0x231
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11605,5 +11657,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 de 9a
+    call 0166ch                               ; e8 9f 9a
     mov si, ax                                ; 89 c6
     xor cl, cl                                ; 30 c9
@@ -11617,7 +11669,7 @@
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 07a04h                               ; e8 5d fe
+    call 07a43h                               ; e8 5d fe
     cmp ax, 066bbh                            ; 3d bb 66
-    jne short 07bbeh                          ; 75 12
+    jne short 07bfdh                          ; 75 12
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -11627,10 +11679,10 @@
     mov word [es:di], bx                      ; 26 89 1d
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    je short 07bc1h                           ; 74 03
-    jmp near 07c89h                           ; e9 c8 00
+    je short 07c00h                           ; 74 03
+    jmp near 07cc8h                           ; e9 c8 00
     mov al, dl                                ; 88 d0
     add AL, strict byte 004h                  ; 04 04
     xor ah, ah                                ; 30 e4
-    call 079eeh                               ; e8 24 fe
+    call 07a2dh                               ; e8 24 fe
     mov ch, al                                ; 88 c5
     mov byte [bp-012h], al                    ; 88 46 ee
@@ -11638,5 +11690,5 @@
     add AL, strict byte 005h                  ; 04 05
     xor ah, ah                                ; 30 e4
-    call 079eeh                               ; e8 16 fe
+    call 07a2dh                               ; e8 16 fe
     mov dh, al                                ; 88 c6
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -11644,5 +11696,5 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 07a04h                               ; e8 1e fe
+    call 07a43h                               ; e8 1e fe
     mov bx, ax                                ; 89 c3
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -11650,22 +11702,22 @@
     add AL, strict byte 006h                  ; 04 06
     xor ah, ah                                ; 30 e4
-    call 079eeh                               ; e8 fa fd
+    call 07a2dh                               ; e8 fa fd
     mov byte [bp-00eh], al                    ; 88 46 f2
     test ch, ch                               ; 84 ed
-    jne short 07c03h                          ; 75 08
+    jne short 07c42h                          ; 75 08
     test dh, dh                               ; 84 f6
-    jne short 07c03h                          ; 75 04
+    jne short 07c42h                          ; 75 04
     test bx, bx                               ; 85 db
-    je short 07bbeh                           ; 74 bb
+    je short 07bfdh                           ; 74 bb
     mov bx, 00142h                            ; bb 42 01
     mov ax, 04f02h                            ; b8 02 4f
     int 010h                                  ; cd 10
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    je short 07c34h                           ; 74 23
+    je short 07c73h                           ; 74 23
     xor bx, bx                                ; 31 db
-    jmp short 07c1bh                          ; eb 06
+    jmp short 07c5ah                          ; eb 06
     inc bx                                    ; 43
     cmp bx, strict byte 00010h                ; 83 fb 10
-    jnbe short 07c3bh                         ; 77 20
+    jnbe short 07c7ah                         ; 77 20
     mov ax, bx                                ; 89 d8
     or ah, 002h                               ; 80 cc 02
@@ -11674,30 +11726,30 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 0793fh                               ; e8 13 fd
+    call 0797eh                               ; e8 13 fd
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07c15h                          ; 75 e5
+    jne short 07c54h                          ; 75 e5
     mov CL, strict byte 001h                  ; b1 01
-    jmp short 07c3bh                          ; eb 07
+    jmp short 07c7ah                          ; eb 07
     mov ax, 00210h                            ; b8 10 02
     mov dx, 003b8h                            ; ba b8 03
     out DX, ax                                ; ef
     test cl, cl                               ; 84 c9
-    jne short 07c51h                          ; 75 12
+    jne short 07c90h                          ; 75 12
     mov ax, word [bp-014h]                    ; 8b 46 ec
     shr ax, 004h                              ; c1 e8 04
     mov dx, strict word 00001h                ; ba 01 00
-    call 0793fh                               ; e8 f4 fc
+    call 0797eh                               ; e8 f4 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07c51h                          ; 75 02
+    jne short 07c90h                          ; 75 02
     mov CL, strict byte 001h                  ; b1 01
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 07c7eh                           ; 74 27
+    je short 07cbdh                           ; 74 27
     test cl, cl                               ; 84 c9
-    jne short 07c7eh                          ; 75 23
+    jne short 07cbdh                          ; 75 23
     mov bx, strict word 00010h                ; bb 10 00
-    jmp short 07c65h                          ; eb 05
+    jmp short 07ca4h                          ; eb 05
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 07c89h                          ; 76 24
+    jbe short 07cc8h                          ; 76 24
     mov ax, bx                                ; 89 d8
     or ah, 002h                               ; 80 cc 02
@@ -11706,11 +11758,11 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 0793fh                               ; e8 c9 fc
+    call 0797eh                               ; e8 c9 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07c60h                          ; 75 e6
+    jne short 07c9fh                          ; 75 e6
     mov CL, strict byte 001h                  ; b1 01
-    jmp short 07c89h                          ; eb 0b
+    jmp short 07cc8h                          ; eb 0b
     test cl, cl                               ; 84 c9
-    jne short 07c89h                          ; 75 07
+    jne short 07cc8h                          ; 75 07
     mov ax, 00200h                            ; b8 00 02
     mov dx, 003b8h                            ; ba b8 03
@@ -11719,34 +11771,34 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 cb 99
+    call 0165eh                               ; e8 8c 99
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
     int 010h                                  ; cd 10
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07cb3h                           ; 74 14
+    je short 07cf2h                           ; 74 14
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    jne short 07cdah                          ; 75 35
+    jne short 07d19h                          ; 75 35
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 07cdah                          ; 75 2f
+    jne short 07d19h                          ; 75 2f
     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
-    je short 07cb6h                           ; 74 05
-    jmp short 07cdah                          ; eb 27
-    jmp near 07d8eh                           ; e9 d8 00
+    je short 07cf5h                           ; 74 05
+    jmp short 07d19h                          ; eb 27
+    jmp near 07dcdh                           ; e9 d8 00
     cmp byte [bp-00eh], 002h                  ; 80 7e f2 02
-    jne short 07cc7h                          ; 75 0b
+    jne short 07d06h                          ; 75 0b
     push 00a4bh                               ; 68 4b 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 a2 9c
+    call 01966h                               ; e8 63 9c
     add sp, strict byte 00004h                ; 83 c4 04
     test cl, cl                               ; 84 c9
-    jne short 07cdah                          ; 75 0f
+    jne short 07d19h                          ; 75 0f
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, 000c0h                            ; b8 c0 00
-    call 0793fh                               ; e8 6b fc
+    call 0797eh                               ; e8 6b fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07cdah                          ; 75 02
+    jne short 07d19h                          ; 75 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je short 07cb3h                           ; 74 d5
+    je short 07cf2h                           ; 74 d5
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     mov ax, 00100h                            ; b8 00 01
@@ -11767,55 +11819,55 @@
     push 00a6dh                               ; 68 6d 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 5f 9c
+    call 01966h                               ; e8 20 9c
     add sp, strict byte 00004h                ; 83 c4 04
-    call 07a18h                               ; e8 0b fd
+    call 07a57h                               ; e8 0b fd
     push 00ab1h                               ; 68 b1 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 51 9c
+    call 01966h                               ; e8 12 9c
     add sp, strict byte 00004h                ; 83 c4 04
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0793fh                               ; e8 1e fc
+    call 0797eh                               ; e8 1e fc
     mov bl, al                                ; 88 c3
     test al, al                               ; 84 c0
-    je short 07d18h                           ; 74 f1
+    je short 07d57h                           ; 74 f1
     cmp AL, strict byte 030h                  ; 3c 30
-    je short 07d7bh                           ; 74 50
+    je short 07dbah                           ; 74 50
     cmp bl, 002h                              ; 80 fb 02
-    jc short 07d54h                           ; 72 24
+    jc short 07d93h                           ; 72 24
     cmp bl, 009h                              ; 80 fb 09
-    jnbe short 07d54h                         ; 77 1f
+    jnbe short 07d93h                         ; 77 1f
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 07b52h                               ; e8 16 fe
+    call 07b91h                               ; e8 16 fe
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 07d42h                          ; 75 02
-    jmp short 07d18h                          ; eb d6
+    jne short 07d81h                          ; 75 02
+    jmp short 07d57h                          ; eb d6
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 10 99
+    call 0165eh                               ; e8 d1 98
     mov byte [bp-00ch], 002h                  ; c6 46 f4 02
-    jmp short 07d7bh                          ; eb 27
+    jmp short 07dbah                          ; eb 27
     cmp bl, 02eh                              ; 80 fb 2e
-    je short 07d69h                           ; 74 10
+    je short 07da8h                           ; 74 10
     cmp bl, 026h                              ; 80 fb 26
-    je short 07d6fh                           ; 74 11
+    je short 07daeh                           ; 74 11
     cmp bl, 021h                              ; 80 fb 21
-    jne short 07d75h                          ; 75 12
+    jne short 07db4h                          ; 75 12
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07d7bh                          ; eb 12
+    jmp short 07dbah                          ; eb 12
     mov byte [bp-00ch], 003h                  ; c6 46 f4 03
-    jmp short 07d7bh                          ; eb 0c
+    jmp short 07dbah                          ; eb 0c
     mov byte [bp-00ch], 004h                  ; c6 46 f4 04
-    jmp short 07d7bh                          ; eb 06
+    jmp short 07dbah                          ; eb 06
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07d18h                           ; 74 9d
+    je short 07d57h                           ; 74 9d
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
     xor bh, bh                                ; 30 ff
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 0165eh                               ; e8 d6 98
+    call 0165eh                               ; e8 97 98
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
@@ -11830,5 +11882,5 @@
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 20 70
+    call 0edbfh                               ; e8 e1 6f
     pop DS                                    ; 1f
     pop bp                                    ; 5d
@@ -11841,5 +11893,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-delay_boot_:                                 ; 0xf7dab LB 0x6b
+delay_boot_:                                 ; 0xf7dea LB 0x6b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11851,5 +11903,5 @@
     mov dx, ax                                ; 89 c2
     test ax, ax                               ; 85 c0
-    je short 07e0ch                           ; 74 53
+    je short 07e4bh                           ; 74 53
     mov AL, strict byte 034h                  ; b0 34
     out strict byte 043h, AL                  ; e6 43
@@ -11861,22 +11913,22 @@
     push 00afbh                               ; 68 fb 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 98 9b
+    call 01966h                               ; e8 59 9b
     add sp, strict byte 00006h                ; 83 c4 06
     mov bx, dx                                ; 89 d3
     test bx, bx                               ; 85 db
-    jbe short 07deeh                          ; 76 17
+    jbe short 07e2dh                          ; 76 17
     push bx                                   ; 53
     push 00b19h                               ; 68 19 0b
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 86 9b
+    call 01966h                               ; e8 47 9b
     add sp, strict byte 00006h                ; 83 c4 06
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0793fh                               ; e8 54 fb
+    call 0797eh                               ; e8 54 fb
     dec bx                                    ; 4b
-    jmp short 07dd3h                          ; eb e5
+    jmp short 07e12h                          ; eb e5
     push 00a49h                               ; 68 49 0a
     push strict byte 00002h                   ; 6a 02
-    call 01966h                               ; e8 70 9b
+    call 01966h                               ; e8 31 9b
     add sp, strict byte 00004h                ; 83 c4 04
     mov AL, strict byte 034h                  ; b0 34
@@ -11889,5 +11941,5 @@
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 b5 6f
+    call 0edbfh                               ; e8 76 6f
     pop DS                                    ; 1f
     pop bp                                    ; 5d
@@ -11900,5 +11952,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_cmd_data_in_:                           ; 0xf7e16 LB 0xd5
+scsi_cmd_data_in_:                           ; 0xf7e55 LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11916,10 +11968,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07e2ch                          ; 75 f7
+    jne short 07e6bh                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 07e40h                          ; 75 04
+    jne short 07e7fh                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07e42h                          ; eb 02
+    jmp short 07e81h                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov di, ax                                ; 89 c7
@@ -11929,5 +11981,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07e4ch                               ; e2 fa
+    loop 07e8bh                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -11947,5 +11999,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07e71h                               ; e2 fa
+    loop 07eb0h                               ; e2 fa
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
@@ -11954,5 +12006,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 07e93h                          ; 73 0e
+    jnc short 07ed2h                          ; 73 0e
     les di, [bp-00ah]                         ; c4 7e f6
     add di, cx                                ; 01 cf
@@ -11961,5 +12013,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07e7ch                          ; eb e9
+    jmp short 07ebbh                          ; eb e9
     mov dx, si                                ; 89 f2
     in AL, DX                                 ; ec
@@ -11967,7 +12019,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07e93h                          ; 75 f7
+    jne short 07ed2h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 07eaeh                           ; 74 0e
+    je short 07eedh                           ; 74 0e
     lea dx, [si+003h]                         ; 8d 54 03
     xor al, al                                ; 30 c0
@@ -11977,10 +12029,10 @@
     ; sub ah, ah                                ; 2a e4
     mov di, strict word 00004h                ; bf 04 00
-    jmp short 07ee0h                          ; eb 32
+    jmp short 07f1fh                          ; eb 32
     lea dx, [si+001h]                         ; 8d 54 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07ebdh                          ; 75 06
+    jne short 07efch                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07ed7h                          ; 76 1a
+    jbe short 07f16h                          ; 76 1a
     mov cx, 08000h                            ; b9 00 80
     les di, [bp+006h]                         ; c4 7e 06
@@ -11991,5 +12043,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07eaeh                          ; eb d7
+    jmp short 07eedh                          ; eb d7
     mov cx, bx                                ; 89 d9
     les di, [bp+006h]                         ; c4 7e 06
@@ -12002,5 +12054,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-scsi_cmd_data_out_:                          ; 0xf7eeb LB 0xd5
+scsi_cmd_data_out_:                          ; 0xf7f2a LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12018,10 +12070,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07f01h                          ; 75 f7
+    jne short 07f40h                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 07f15h                          ; 75 04
+    jne short 07f54h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07f17h                          ; eb 02
+    jmp short 07f56h                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
@@ -12031,5 +12083,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07f21h                               ; e2 fa
+    loop 07f60h                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -12049,5 +12101,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07f46h                               ; e2 fa
+    loop 07f85h                               ; e2 fa
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -12056,5 +12108,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 07f68h                          ; 73 0e
+    jnc short 07fa7h                          ; 73 0e
     les si, [bp-00ah]                         ; c4 76 f6
     add si, cx                                ; 01 ce
@@ -12063,10 +12115,10 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07f51h                          ; eb e9
+    jmp short 07f90h                          ; eb e9
     lea dx, [di+001h]                         ; 8d 55 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07f77h                          ; 75 06
+    jne short 07fb6h                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07f92h                          ; 76 1b
+    jbe short 07fd1h                          ; 76 1b
     mov cx, 08000h                            ; b9 00 80
     les si, [bp+006h]                         ; c4 76 06
@@ -12078,5 +12130,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07f68h                          ; eb d6
+    jmp short 07fa7h                          ; eb d6
     mov cx, bx                                ; 89 d9
     les si, [bp+006h]                         ; c4 76 06
@@ -12088,7 +12140,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07f9ah                          ; 75 f7
+    jne short 07fd9h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 07fb5h                           ; 74 0e
+    je short 07ff4h                           ; 74 0e
     lea dx, [di+003h]                         ; 8d 55 03
     xor al, al                                ; 30 c0
@@ -12098,5 +12150,5 @@
     ; sub ah, ah                                ; 2a e4
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 07fb7h                          ; eb 02
+    jmp short 07ff6h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -12105,5 +12157,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-@scsi_read_sectors:                          ; 0xf7fc0 LB 0xe0
+@scsi_read_sectors:                          ; 0xf7fff LB 0xe0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12117,5 +12169,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 07fech                          ; 76 11
+    jbe short 0802bh                          ; 76 11
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12123,5 +12175,5 @@
     push 00b30h                               ; 68 30 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 7d 99
+    call 01966h                               ; e8 3e 99
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12163,5 +12215,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 08056h                               ; e2 f8
+    loop 08095h                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12172,8 +12224,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07e16h                               ; e8 9e fd
+    call 07e55h                               ; e8 9e fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 08093h                          ; 75 15
+    jne short 080d2h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12189,5 +12241,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@scsi_write_sectors:                         ; 0xf80a0 LB 0xe0
+@scsi_write_sectors:                         ; 0xf80df LB 0xe0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12201,5 +12253,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 080cch                          ; 76 11
+    jbe short 0810bh                          ; 76 11
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12207,5 +12259,5 @@
     push 00b30h                               ; 68 30 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 9d 98
+    call 01966h                               ; e8 5e 98
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12247,5 +12299,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 08136h                               ; e2 f8
+    loop 08175h                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12256,8 +12308,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07eebh                               ; e8 93 fd
+    call 07f2ah                               ; e8 93 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 08173h                          ; 75 15
+    jne short 081b2h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12273,5 +12325,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-scsi_cmd_packet_:                            ; 0xf8180 LB 0x168
+scsi_cmd_packet_:                            ; 0xf81bf LB 0x168
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12285,20 +12337,20 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 d0 94
+    call 0166ch                               ; e8 91 94
     mov si, 00122h                            ; be 22 01
     mov word [bp-00ah], ax                    ; 89 46 f6
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 081c7h                          ; 75 1f
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 08206h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 70 97
+    call 01923h                               ; e8 31 97
     push 00b62h                               ; 68 62 0b
     push 00b72h                               ; 68 72 0b
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 a8 97
+    call 01966h                               ; e8 69 97
     add sp, strict byte 00006h                ; 83 c4 06
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 082ddh                           ; e9 16 01
+    jmp near 0831ch                           ; e9 16 01
     sub di, strict byte 00008h                ; 83 ef 08
     sal di, 002h                              ; c1 e7 02
@@ -12314,5 +12366,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 081e3h                          ; 75 f7
+    jne short 08222h                          ; 75 f7
     xor ax, ax                                ; 31 c0
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -12330,5 +12382,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 0820eh                               ; e2 fa
+    loop 0824dh                               ; e2 fa
     and ax, 000f0h                            ; 25 f0 00
     mov cl, byte [bp-006h]                    ; 8a 4e fa
@@ -12349,5 +12401,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08236h                               ; e2 fa
+    loop 08275h                               ; e2 fa
     mov dx, bx                                ; 89 da
     out DX, AL                                ; ee
@@ -12356,5 +12408,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 08258h                          ; 73 0e
+    jnc short 08297h                          ; 73 0e
     les di, [bp-00eh]                         ; c4 7e f2
     add di, cx                                ; 01 cf
@@ -12363,5 +12415,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 08241h                          ; eb e9
+    jmp short 08280h                          ; eb e9
     mov dx, bx                                ; 89 da
     in AL, DX                                 ; ec
@@ -12369,7 +12421,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 08258h                          ; 75 f7
+    jne short 08297h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 08273h                           ; 74 0e
+    je short 082b2h                           ; 74 0e
     lea dx, [bx+003h]                         ; 8d 57 03
     xor al, al                                ; 30 c0
@@ -12379,12 +12431,12 @@
     ; sub ah, ah                                ; 2a e4
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 082ddh                          ; eb 6a
+    jmp short 0831ch                          ; eb 6a
     mov ax, word [bp+004h]                    ; 8b 46 04
     test ax, ax                               ; 85 c0
-    je short 08282h                           ; 74 08
+    je short 082c1h                           ; 74 08
     lea dx, [bx+001h]                         ; 8d 57 01
     mov cx, ax                                ; 89 c1
     in AL, DX                                 ; ec
-    loop 0827fh                               ; e2 fd
+    loop 082beh                               ; e2 fd
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -12394,7 +12446,7 @@
     lea ax, [bx+001h]                         ; 8d 47 01
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 082a3h                          ; 75 07
+    jne short 082e2h                          ; 75 07
     cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
-    jbe short 082c0h                          ; 76 1d
+    jbe short 082ffh                          ; 76 1d
     mov dx, ax                                ; 89 c2
     mov cx, 08000h                            ; b9 00 80
@@ -12406,5 +12458,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 08293h                          ; eb d3
+    jmp short 082d2h                          ; eb d3
     mov dx, ax                                ; 89 c2
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -12413,8 +12465,8 @@
     mov es, [bp-00ah]                         ; 8e 46 f6
     cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
-    je short 082dbh                           ; 74 07
+    je short 0831ah                           ; 74 07
     mov cx, word [es:si+020h]                 ; 26 8b 4c 20
     in AL, DX                                 ; ec
-    loop 082d8h                               ; e2 fd
+    loop 08317h                               ; e2 fd
     xor dx, dx                                ; 31 d2
     mov ax, dx                                ; 89 d0
@@ -12424,5 +12476,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-scsi_enumerate_attached_devices_:            ; 0xf82e8 LB 0x4a6
+scsi_enumerate_attached_devices_:            ; 0xf8327 LB 0x4a6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12436,17 +12488,17 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 6e 93
+    call 0166ch                               ; e8 2f 93
     mov di, 00122h                            ; bf 22 01
     mov word [bp-020h], ax                    ; 89 46 e0
     mov word [bp-022h], strict word 00000h    ; c7 46 de 00 00
-    jmp near 0870ch                           ; e9 00 04
+    jmp near 0874bh                           ; e9 00 04
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 08313h                           ; 72 03
-    jmp near 08784h                           ; e9 71 04
+    jc short 08352h                           ; 72 03
+    jmp near 087c3h                           ; e9 71 04
     mov cx, strict word 00010h                ; b9 10 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a100h                               ; e8 e0 1d
+    call 0a140h                               ; e8 e1 1d
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12463,11 +12515,11 @@
     lea bx, [bp-046h]                         ; 8d 5e ba
     mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07e16h                               ; e8 cd fa
+    call 07e55h                               ; e8 cd fa
     test al, al                               ; 84 c0
-    je short 0835bh                           ; 74 0e
+    je short 0839ah                           ; 74 0e
     push 00b92h                               ; 68 92 0b
     push 00bcbh                               ; 68 cb 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 0e 96
+    call 01966h                               ; e8 cf 95
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
@@ -12501,5 +12553,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 083aah                               ; e2 fa
+    loop 083e9h                               ; e2 fa
     or bx, ax                                 ; 09 c3
     or dx, si                                 ; 09 f2
@@ -12509,11 +12561,11 @@
     mov word [bp-028h], bx                    ; 89 5e d8
     test dx, dx                               ; 85 d2
-    jne short 083c9h                          ; 75 06
+    jne short 08408h                          ; 75 06
     cmp bx, 00200h                            ; 81 fb 00 02
-    je short 083e9h                           ; 74 20
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 08428h                           ; 74 20
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 4f 95
+    call 01923h                               ; e8 10 95
     push dx                                   ; 52
     push word [bp-028h]                       ; ff 76 d8
@@ -12521,24 +12573,24 @@
     push 00beah                               ; 68 ea 0b
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 83 95
+    call 01966h                               ; e8 44 95
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 08700h                           ; e9 17 03
+    jmp near 0873fh                           ; e9 17 03
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 083fch                           ; 72 0c
-    jbe short 08404h                          ; 76 12
+    jc short 0843bh                           ; 72 0c
+    jbe short 08443h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0840ch                           ; 74 16
+    je short 0844bh                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 08408h                           ; 74 0e
-    jmp short 08455h                          ; eb 59
+    je short 08447h                           ; 74 0e
+    jmp short 08494h                          ; eb 59
     test al, al                               ; 84 c0
-    jne short 08455h                          ; 75 55
+    jne short 08494h                          ; 75 55
     mov BL, strict byte 090h                  ; b3 90
-    jmp short 0840eh                          ; eb 0a
+    jmp short 0844dh                          ; eb 0a
     mov BL, strict byte 098h                  ; b3 98
-    jmp short 0840eh                          ; eb 06
+    jmp short 0844dh                          ; eb 06
     mov BL, strict byte 0a0h                  ; b3 a0
-    jmp short 0840eh                          ; eb 02
+    jmp short 0844dh                          ; eb 02
     mov BL, strict byte 0a8h                  ; b3 a8
     mov cl, bl                                ; 88 d9
@@ -12546,17 +12598,17 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 016ach                               ; e8 92 92
+    call 016ach                               ; e8 53 92
     test al, al                               ; 84 c0
-    je short 08455h                           ; 74 37
+    je short 08494h                           ; 74 37
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 85 92
+    call 016ach                               ; e8 46 92
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov al, bl                                ; 88 d8
-    call 016ach                               ; e8 79 92
+    call 016ach                               ; e8 3a 92
     xor ah, ah                                ; 30 e4
     add ax, dx                                ; 01 d0
@@ -12566,12 +12618,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 69 92
+    call 016ach                               ; e8 2a 92
     xor ah, ah                                ; 30 e4
     mov word [bp-018h], ax                    ; 89 46 e8
     mov ax, cx                                ; 89 c8
-    call 016ach                               ; e8 5f 92
+    call 016ach                               ; e8 20 92
     xor ah, ah                                ; 30 e4
     mov word [bp-026h], ax                    ; 89 46 da
-    jmp near 08543h                           ; e9 ee 00
+    jmp near 08582h                           ; e9 ee 00
     mov ax, word [bp-012h]                    ; 8b 46 ee
     mov bx, word [bp-010h]                    ; 8b 5e f0
@@ -12579,5 +12631,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a0e0h                               ; e8 79 1c
+    call 0a120h                               ; e8 7a 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-016h], bx                    ; 89 5e ea
@@ -12586,13 +12638,13 @@
     mov ax, word [bp-012h]                    ; 8b 46 ee
     test ax, ax                               ; 85 c0
-    jnbe short 0848fh                         ; 77 15
-    je short 0847fh                           ; 74 03
-    jmp near 08504h                           ; e9 85 00
+    jnbe short 084ceh                         ; 77 15
+    je short 084beh                           ; 74 03
+    jmp near 08543h                           ; e9 85 00
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    jnbe short 0848fh                         ; 77 0a
-    jne short 0847ch                          ; 75 f5
+    jnbe short 084ceh                         ; 77 0a
+    jne short 084bbh                          ; 75 f5
     cmp word [bp-01ch], strict byte 00040h    ; 83 7e e4 40
-    jnbe short 0848fh                         ; 77 02
-    jne short 08504h                          ; 75 75
+    jnbe short 084ceh                         ; 77 02
+    jne short 08543h                          ; 75 75
     mov word [bp-018h], 000ffh                ; c7 46 e8 ff 00
     mov word [bp-026h], strict word 0003fh    ; c7 46 da 3f 00
@@ -12601,5 +12653,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 00006h                ; be 06 00
-    call 0a0e0h                               ; e8 38 1c
+    call 0a120h                               ; e8 39 1c
     mov si, word [bp-01eh]                    ; 8b 76 e2
     add si, dx                                ; 01 d6
@@ -12619,5 +12671,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a0e0h                               ; e8 08 1c
+    call 0a120h                               ; e8 09 1c
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12628,5 +12680,5 @@
     mov dx, word [bp-036h]                    ; 8b 56 ca
     mov si, strict word 00010h                ; be 10 00
-    call 0a0e0h                               ; e8 ed 1b
+    call 0a120h                               ; e8 ee 1b
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12635,17 +12687,17 @@
     mov ax, word [bp-02eh]                    ; 8b 46 d2
     adc ax, bx                                ; 11 d8
-    jmp short 08543h                          ; eb 3f
+    jmp short 08582h                          ; eb 3f
     test ax, ax                               ; 85 c0
-    jnbe short 0851ah                         ; 77 12
-    jne short 08526h                          ; 75 1c
+    jnbe short 08559h                         ; 77 12
+    jne short 08565h                          ; 75 1c
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    jnbe short 0851ah                         ; 77 0a
-    jne short 08526h                          ; 75 14
+    jnbe short 08559h                         ; 77 0a
+    jne short 08565h                          ; 75 14
     cmp word [bp-01ch], strict byte 00020h    ; 83 7e e4 20
-    jnbe short 0851ah                         ; 77 02
-    jne short 08526h                          ; 75 0c
+    jnbe short 08559h                         ; 77 02
+    jne short 08565h                          ; 75 0c
     mov word [bp-018h], 00080h                ; c7 46 e8 80 00
     mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
-    jmp short 0853fh                          ; eb 19
+    jmp short 0857eh                          ; eb 19
     mov word [bp-018h], strict word 00040h    ; c7 46 e8 40 00
     mov word [bp-026h], strict word 00020h    ; c7 46 da 20 00
@@ -12654,5 +12706,5 @@
     mov dx, word [bp-014h]                    ; 8b 56 ec
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a0e0h                               ; e8 a1 1b
+    call 0a120h                               ; e8 a2 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12689,16 +12741,16 @@
     mov word [es:bx+034h], ax                 ; 26 89 47 34
     test dx, dx                               ; 85 d2
-    jne short 085b5h                          ; 75 06
+    jne short 085f4h                          ; 75 06
     cmp si, 00400h                            ; 81 fe 00 04
-    jbe short 085c3h                          ; 76 0e
+    jbe short 08602h                          ; 76 0e
     mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
     mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
-    jmp short 085cbh                          ; eb 08
+    jmp short 0860ah                          ; eb 08
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 4d 93
+    call 01923h                               ; e8 0e 93
     push word [bp-012h]                       ; ff 76 ee
     push word [bp-010h]                       ; ff 76 f0
@@ -12715,5 +12767,5 @@
     push 00c18h                               ; 68 18 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 6b 93
+    call 01966h                               ; e8 2c 93
     add sp, strict byte 00018h                ; 83 c4 18
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -12743,5 +12795,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 01 90
+    call 01650h                               ; e8 c2 8f
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -12750,11 +12802,11 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 00 90
+    call 0165eh                               ; e8 c1 8f
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 086f5h                           ; e9 91 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 08734h                           ; e9 91 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 b4 92
+    call 01923h                               ; e8 75 92
     push word [bp-022h]                       ; ff 76 de
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12763,5 +12815,5 @@
     push 00c46h                               ; 68 46 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 e6 92
+    call 01966h                               ; e8 a7 92
     add sp, strict byte 00008h                ; 83 c4 08
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12769,7 +12821,7 @@
     mov byte [bp-00eh], al                    ; 88 46 f2
     test byte [bp-00245h], 080h               ; f6 86 bb fd 80
-    je short 08697h                           ; 74 05
+    je short 086d6h                           ; 74 05
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 08699h                          ; eb 02
+    jmp short 086d8h                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12807,6 +12859,6 @@
     inc word [bp-022h]                        ; ff 46 de
     cmp word [bp-022h], strict byte 00010h    ; 83 7e de 10
-    jl short 0870ch                           ; 7c 03
-    jmp near 08784h                           ; e9 78 00
+    jl short 0874bh                           ; 7c 03
+    jmp near 087c3h                           ; e9 78 00
     mov byte [bp-046h], 012h                  ; c6 46 ba 12
     xor al, al                                ; 30 c0
@@ -12827,11 +12879,11 @@
     lea bx, [bp-046h]                         ; 8d 5e ba
     mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07e16h                               ; e8 d7 f6
+    call 07e55h                               ; e8 d7 f6
     test al, al                               ; 84 c0
-    je short 08751h                           ; 74 0e
+    je short 08790h                           ; 74 0e
     push 00b92h                               ; 68 92 0b
     push 00bb2h                               ; 68 b2 0b
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 18 92
+    call 01966h                               ; e8 d9 91
     add sp, strict byte 00006h                ; 83 c4 06
     mov es, [bp-020h]                         ; 8e 46 e0
@@ -12839,16 +12891,16 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 0876dh                          ; 75 0a
+    jne short 087ach                          ; 75 0a
     test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
-    jne short 0876dh                          ; 75 03
-    jmp near 0830ch                           ; e9 9f fb
+    jne short 087ach                          ; 75 03
+    jmp near 0834bh                           ; e9 9f fb
     test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 086f5h                          ; 75 81
+    jne short 08734h                          ; 75 81
     mov al, byte [bp-00246h]                  ; 8a 86 ba fd
     and AL, strict byte 01fh                  ; 24 1f
     cmp AL, strict byte 005h                  ; 3c 05
-    jne short 08781h                          ; 75 03
-    jmp near 08664h                           ; e9 e3 fe
-    jmp near 086f5h                           ; e9 71 ff
+    jne short 087c0h                          ; 75 03
+    jmp near 086a3h                           ; e9 e3 fe
+    jmp near 08734h                           ; e9 71 ff
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -12859,13 +12911,13 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_pci_init_:                              ; 0xf878e LB 0x2a
+scsi_pci_init_:                              ; 0xf87cd LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push bx                                   ; 53
     push cx                                   ; 51
-    call 09eb5h                               ; e8 1f 17
+    call 09ef4h                               ; e8 1f 17
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 087b1h                           ; 74 14
+    je short 087f0h                           ; 74 14
     mov dl, bl                                ; 88 da
     xor dh, dh                                ; 30 f6
@@ -12875,5 +12927,5 @@
     mov cx, strict word 00007h                ; b9 07 00
     mov bx, strict word 00004h                ; bb 04 00
-    call 09f7eh                               ; e8 cd 17
+    call 09fbdh                               ; e8 cd 17
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop cx                                    ; 59
@@ -12881,10 +12933,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf87b8 LB 0x81
+_scsi_init:                                  ; 0xf87f7 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 a8 8e
+    call 0166ch                               ; e8 69 8e
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12897,13 +12949,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 087f1h                          ; 75 15
+    jne short 08830h                          ; 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 00 fb
+    call 08327h                               ; e8 00 fb
     mov dx, 01040h                            ; ba 40 10
     mov ax, 0104bh                            ; b8 4b 10
-    call 0878eh                               ; e8 9d ff
+    call 087cdh                               ; e8 9d ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12913,13 +12965,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08813h                          ; 75 15
+    jne short 08852h                          ; 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 de fa
+    call 08327h                               ; e8 de fa
     mov dx, strict word 00030h                ; ba 30 00
     mov ax, 01000h                            ; b8 00 10
-    call 0878eh                               ; e8 7b ff
+    call 087cdh                               ; e8 7b ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12929,17 +12981,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08835h                          ; 75 15
+    jne short 08874h                          ; 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 bc fa
+    call 08327h                               ; e8 bc fa
     mov dx, strict word 00054h                ; ba 54 00
     mov ax, 01000h                            ; b8 00 10
-    call 0878eh                               ; e8 59 ff
+    call 087cdh                               ; e8 59 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf8839 LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf8878 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -12950,12 +13002,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 08850h                               ; e3 06
+    jcxz 0888fh                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 0884ah                               ; e2 fa
+    loop 08889h                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf8855 LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf8894 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -12968,5 +13020,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08863h                               ; e2 fa
+    loop 088a2h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -12976,5 +13028,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf8873 LB 0x156
+ahci_port_cmd_sync_:                         ; 0xf88b2 LB 0x156
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12991,6 +13043,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 08896h                          ; 75 03
-    jmp near 089c1h                           ; e9 2b 01
+    jne short 088d5h                          ; 75 03
+    jmp near 08a00h                           ; e9 2b 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -13005,5 +13057,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 08855h                               ; e8 92 ff
+    call 08894h                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13071,12 +13123,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 08954h                          ; 75 04
+    jne short 08993h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 08958h                           ; 74 04
+    je short 08997h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0895ah                          ; eb 02
+    jmp short 08999h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 08927h                           ; 74 c9
+    je short 08966h                           ; 74 c9
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13134,5 +13186,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf89c9 LB 0x267
+ahci_cmd_data_:                              ; 0xf8a08 LB 0x267
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13159,5 +13211,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a100h                               ; e8 f9 16
+    call 0a140h                               ; e8 fa 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13177,5 +13229,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a0e0h                               ; e8 95 16
+    call 0a120h                               ; e8 96 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13188,5 +13240,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a0e0h                               ; e8 6f 16
+    call 0a120h                               ; e8 70 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13200,5 +13252,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a0e0h                               ; e8 43 16
+    call 0a120h                               ; e8 44 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13211,5 +13263,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a0e0h                               ; e8 1d 16
+    call 0a120h                               ; e8 1e 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13222,5 +13274,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a0e0h                               ; e8 f7 15
+    call 0a120h                               ; e8 f8 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13236,5 +13288,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 0a090h                               ; e8 72 15
+    call 0a0d0h                               ; e8 73 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13246,5 +13298,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09fdeh                               ; e8 a4 14
+    call 0a01dh                               ; e8 a4 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13269,5 +13321,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08bcch                           ; 74 3b
+    je short 08c0bh                           ; 74 3b
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13287,13 +13339,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08bd9h                          ; 75 06
+    jne short 08c18h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08bf0h                          ; eb 17
+    jmp short 08c2fh                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08bech                          ; 75 0f
+    jne short 08c2bh                          ; 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 08bf0h                          ; eb 04
+    jmp short 08c2fh                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13302,5 +13354,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 08873h                               ; e8 71 fc
+    call 088b2h                               ; e8 71 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13309,11 +13361,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a055h                               ; e8 3e 14
+    call 0a094h                               ; e8 3e 14
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08c26h                           ; 74 05
+    je short 08c65h                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08c28h                          ; eb 02
+    jmp short 08c67h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13323,5 +13375,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8c30 LB 0x180
+ahci_port_deinit_current_:                   ; 0xf8c6f LB 0x180
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13338,5 +13390,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08cb1h                           ; 74 5f
+    je short 08cf0h                           ; 74 5f
     xor ah, ah                                ; 30 e4
     sal ax, 007h                              ; c1 e0 07
@@ -13382,26 +13434,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08cb4h                           ; 74 07
+    je short 08cf3h                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08cb6h                          ; eb 05
-    jmp near 08da7h                           ; e9 f3 00
+    jmp short 08cf5h                          ; eb 05
+    jmp near 08de6h                           ; e9 f3 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08c84h                           ; 74 ca
+    je short 08cc3h                           ; 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 0a100h                               ; e8 39 14
+    call 0a140h                               ; e8 3a 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 0a100h                               ; e8 2a 14
+    call 0a140h                               ; e8 2b 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 0a100h                               ; e8 1b 14
+    call 0a140h                               ; e8 1c 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13508,5 +13560,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8db0 LB 0x24d
+ahci_port_init_:                             ; 0xf8def LB 0x24d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13518,5 +13570,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08c30h                               ; e8 6c fe
+    call 08c6fh                               ; e8 6c fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13567,20 +13619,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08e35h                           ; 74 04
+    je short 08e74h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08e37h                          ; eb 02
+    jmp short 08e76h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08e00h                           ; 74 c5
+    je short 08e3fh                           ; 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 0a100h                               ; e8 b8 12
+    call 0a140h                               ; e8 b9 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 0a100h                               ; e8 a9 12
+    call 0a140h                               ; e8 aa 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13588,5 +13640,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a100h                               ; e8 98 12
+    call 0a140h                               ; e8 99 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13606,5 +13658,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08855h                               ; e8 bf f9
+    call 08894h                               ; e8 bf f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13651,5 +13703,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 08855h                               ; e8 53 f9
+    call 08894h                               ; e8 53 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13756,5 +13808,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf8ffd LB 0xa8
+@ahci_read_sectors:                          ; 0xf903c LB 0xa8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13767,10 +13819,10 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 09023h                          ; 76 0f
+    jbe short 09062h                          ; 76 0f
     push bx                                   ; 53
     push 00c62h                               ; 68 62 0c
     push 00c74h                               ; 68 74 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 46 89
+    call 01966h                               ; e8 07 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -13787,9 +13839,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08db0h                               ; e8 60 fd
+    call 08defh                               ; 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 089c9h                               ; e8 6e f9
+    call 08a08h                               ; e8 6e f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13820,5 +13872,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf90a5 LB 0x86
+@ahci_write_sectors:                         ; 0xf90e4 LB 0x86
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13832,10 +13884,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 090cfh                          ; 76 0f
+    jbe short 0910eh                          ; 76 0f
     push dx                                   ; 52
     push 00c93h                               ; 68 93 0c
     push 00c74h                               ; 68 74 0c
     push strict byte 00007h                   ; 6a 07
-    call 01966h                               ; e8 9a 88
+    call 01966h                               ; e8 5b 88
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13852,9 +13904,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08db0h                               ; e8 b6 fc
+    call 08defh                               ; e8 b6 fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 089c9h                               ; e8 c5 f8
+    call 08a08h                               ; e8 c5 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13871,5 +13923,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf912b LB 0x18a
+ahci_cmd_packet_:                            ; 0xf916a LB 0x18a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13883,22 +13935,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 26 85
+    call 0166ch                               ; e8 e7 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 09171h                          ; 75 1f
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 091b0h                          ; 75 1f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 c6 87
+    call 01923h                               ; e8 87 87
     push 00ca6h                               ; 68 a6 0c
     push 00cb6h                               ; 68 b6 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 fe 87
+    call 01966h                               ; e8 bf 87
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 092ach                           ; e9 3b 01
+    jmp near 092ebh                           ; e9 3b 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 0916bh                          ; 75 f4
+    jne short 091aah                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13906,5 +13958,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09180h                               ; e2 fa
+    loop 091bfh                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13920,5 +13972,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a0b0h                               ; e8 f7 0e
+    call 0a0f0h                               ; e8 f8 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13939,5 +13991,5 @@
     mov bx, ax                                ; 89 c3
     xor al, al                                ; 30 c0
-    call 08db0h                               ; e8 b8 fb
+    call 08defh                               ; e8 b8 fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -13947,5 +13999,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a110h                               ; e8 03 0f
+    call 0a150h                               ; e8 04 0f
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13954,5 +14006,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 0924bh                           ; 74 27
+    je short 0928ah                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13967,5 +14019,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 089c9h                               ; e8 73 f7
+    call 08a08h                               ; e8 73 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -13994,7 +14046,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 092aah                          ; 75 05
+    jne short 092e9h                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 092ach                          ; eb 02
+    jmp short 092ebh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14003,10 +14055,10 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-wait_ticks_device_init_:                     ; 0xf92b5 LB 0x5
+wait_ticks_device_init_:                     ; 0xf92f4 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_detect_device_:                    ; 0xf92ba LB 0x4ee
+ahci_port_detect_device_:                    ; 0xf92f9 LB 0x4ee
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14022,8 +14074,8 @@
     xor ch, ch                                ; 30 ed
     mov bx, cx                                ; 89 cb
-    call 08db0h                               ; e8 d6 fa
+    call 08defh                               ; e8 d6 fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 89 83
+    call 0166ch                               ; e8 4a 83
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -14084,11 +14136,11 @@
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, word [bp-024h]                    ; 3b 46 dc
-    jc short 0938ch                           ; 72 11
+    jc short 093cbh                           ; 72 11
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, word [bp-024h]                    ; 3b 46 dc
-    jne short 093d8h                          ; 75 54
+    jne short 09417h                          ; 75 54
     mov ax, word [es:di]                      ; 26 8b 05
     cmp ax, word [bp-01ah]                    ; 3b 46 e6
-    jnc short 093d8h                          ; 73 4c
+    jnc short 09417h                          ; 73 4c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -14118,11 +14170,11 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 08839h                               ; e8 68 f4
+    call 08878h                               ; e8 68 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 0936fh                          ; 75 99
-    jmp short 093e1h                          ; eb 09
+    jne short 093aeh                          ; 75 99
+    jmp short 09420h                          ; eb 09
     cmp word [bp-01ch], strict byte 00000h    ; 83 7e e4 00
-    jne short 093e1h                          ; 75 03
-    jmp near 097a0h                           ; e9 bf 03
+    jne short 09420h                          ; 75 03
+    jmp near 097dfh                           ; e9 bf 03
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -14130,7 +14182,7 @@
     mov ax, word [bp-020h]                    ; 8b 46 e0
     mov dx, word [bp-01eh]                    ; 8b 56 e2
-    call 08839h                               ; e8 48 f4
+    call 08878h                               ; e8 48 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 093deh                          ; 75 e8
+    jne short 0941dh                          ; 75 e8
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -14163,5 +14215,5 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 093deh                          ; 73 99
+    jnc short 0941dh                          ; 73 99
     lea ax, [di+00118h]                       ; 8d 85 18 01
     mov es, [bp-018h]                         ; 8e 46 e8
@@ -14213,7 +14265,7 @@
     mov byte [bp-00eh], dl                    ; 88 56 f2
     test bx, bx                               ; 85 db
-    jne short 0950fh                          ; 75 57
+    jne short 0954eh                          ; 75 57
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 0950fh                          ; 75 52
+    jne short 0954eh                          ; 75 52
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-010h]                    ; 8b 5e f0
@@ -14230,12 +14282,12 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov dx, es                                ; 8c c2
-    call 089c9h                               ; e8 cc f4
+    call 08a08h                               ; e8 cc f4
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00232h], 080h               ; f6 86 ce fd 80
-    je short 09512h                           ; 74 08
+    je short 09551h                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09514h                          ; eb 05
-    jmp near 096dbh                           ; e9 c9 01
+    jmp short 09553h                          ; eb 05
+    jmp near 0971ah                           ; e9 c9 01
     xor ax, ax                                ; 31 c0
     mov dl, al                                ; 88 c2
@@ -14252,7 +14304,7 @@
     mov word [bp-022h], ax                    ; 89 46 de
     cmp di, 00fffh                            ; 81 ff ff 0f
-    jne short 0955ch                          ; 75 1b
+    jne short 0959bh                          ; 75 1b
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 0955ch                          ; 75 16
+    jne short 0959bh                          ; 75 16
     mov ax, word [bp-00164h]                  ; 8b 86 9c fe
     mov word [bp-022h], ax                    ; 89 46 de
@@ -14291,19 +14343,19 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 095d4h                           ; 72 0c
-    jbe short 095dch                          ; 76 12
+    jc short 09613h                           ; 72 0c
+    jbe short 0961bh                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 095e4h                           ; 74 16
+    je short 09623h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 095e0h                           ; 74 0e
-    jmp short 09630h                          ; eb 5c
+    je short 0961fh                           ; 74 0e
+    jmp short 0966fh                          ; eb 5c
     test al, al                               ; 84 c0
-    jne short 09630h                          ; 75 58
+    jne short 0966fh                          ; 75 58
     mov BL, strict byte 040h                  ; b3 40
-    jmp short 095e6h                          ; eb 0a
+    jmp short 09625h                          ; eb 0a
     mov BL, strict byte 048h                  ; b3 48
-    jmp short 095e6h                          ; eb 06
+    jmp short 09625h                          ; eb 06
     mov BL, strict byte 050h                  ; b3 50
-    jmp short 095e6h                          ; eb 02
+    jmp short 09625h                          ; eb 02
     mov BL, strict byte 058h                  ; b3 58
     mov dl, bl                                ; 88 da
@@ -14311,12 +14363,12 @@
     xor dh, dh                                ; 30 f6
     mov ax, dx                                ; 89 d0
-    call 016ach                               ; e8 ba 80
+    call 016ach                               ; e8 7b 80
     test al, al                               ; 84 c0
-    je short 09630h                           ; 74 3a
+    je short 0966fh                           ; 74 3a
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 ad 80
+    call 016ach                               ; e8 6e 80
     xor ah, ah                                ; 30 e4
     sal ax, 008h                              ; c1 e0 08
@@ -14324,5 +14376,5 @@
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 016ach                               ; e8 9e 80
+    call 016ach                               ; e8 5f 80
     xor ah, ah                                ; 30 e4
     mov cx, word [bp-02ah]                    ; 8b 4e d6
@@ -14331,12 +14383,12 @@
     mov al, bl                                ; 88 d8
     add AL, strict byte 002h                  ; 04 02
-    call 016ach                               ; e8 8d 80
+    call 016ach                               ; e8 4e 80
     xor ah, ah                                ; 30 e4
     mov word [bp-032h], ax                    ; 89 46 ce
     mov ax, dx                                ; 89 d0
-    call 016ach                               ; e8 83 80
+    call 016ach                               ; e8 44 80
     xor ah, ah                                ; 30 e4
     mov word [bp-02eh], ax                    ; 89 46 d2
-    jmp short 09640h                          ; eb 10
+    jmp short 0967fh                          ; eb 10
     push word [bp-022h]                       ; ff 76 de
     push word [bp-014h]                       ; ff 76 ec
@@ -14345,9 +14397,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-032h]                         ; 8d 46 ce
-    call 05a02h                               ; e8 c2 c3
-    mov bx, 00da4h                            ; bb a4 0d
+    call 05a41h                               ; e8 c2 c3
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 d8 82
+    call 01923h                               ; e8 99 82
     push word [bp-022h]                       ; ff 76 de
     push word [bp-014h]                       ; ff 76 ec
@@ -14370,5 +14422,5 @@
     push 00cd6h                               ; 68 d6 0c
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 ec 82
+    call 01966h                               ; e8 ad 82
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -14402,5 +14454,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01650h                               ; e8 87 7f
+    call 01650h                               ; e8 48 7f
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14409,10 +14461,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0165eh                               ; e8 86 7f
-    jmp near 0978fh                           ; e9 b4 00
+    call 0165eh                               ; e8 47 7f
+    jmp near 097ceh                           ; e9 b4 00
     cmp bx, 0eb14h                            ; 81 fb 14 eb
-    jne short 09738h                          ; 75 57
+    jne short 09777h                          ; 75 57
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 09738h                          ; 75 52
+    jne short 09777h                          ; 75 52
     mov es, [bp-016h]                         ; 8e 46 ea
     mov bx, word [bp-010h]                    ; 8b 5e f0
@@ -14429,12 +14481,12 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov dx, es                                ; 8c c2
-    call 089c9h                               ; e8 a3 f2
+    call 08a08h                               ; e8 a3 f2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00232h], 080h               ; f6 86 ce fd 80
-    je short 0973ah                           ; 74 07
+    je short 09779h                           ; 74 07
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 0973ch                          ; eb 04
-    jmp short 0978fh                          ; eb 55
+    jmp short 0977bh                          ; eb 04
+    jmp short 097ceh                          ; eb 55
     xor dx, dx                                ; 31 d2
     mov bl, byte [bp-008h]                    ; 8a 5e f8
@@ -14475,5 +14527,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf97a8 LB 0x43
+ahci_mem_alloc_:                             ; 0xf97e7 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14485,7 +14537,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166ch                               ; e8 b4 7e
+    call 0166ch                               ; e8 75 7e
     test ax, ax                               ; 85 c0
-    je short 097e1h                           ; 74 25
+    je short 09820h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14494,5 +14546,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 097c4h                               ; e2 fa
+    loop 09803h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14500,8 +14552,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 097d1h                               ; e2 fa
+    loop 09810h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ah                               ; e8 9b 7e
+    call 0167ah                               ; e8 5c 7e
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14513,5 +14565,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf97eb LB 0x16d
+ahci_hba_init_:                              ; 0xf982a LB 0x16d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14525,5 +14577,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166ch                               ; e8 6b 7e
+    call 0166ch                               ; e8 2c 7e
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14542,9 +14594,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 097a8h                               ; e8 83 ff
+    call 097e7h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 0982fh                          ; 75 03
-    jmp near 09937h                           ; e9 08 01
+    jne short 0986eh                          ; 75 03
+    jmp near 09976h                           ; e9 08 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14596,5 +14648,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09889h                          ; 75 de
+    jne short 098c8h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14614,31 +14666,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 08839h                               ; e8 6a ef
+    call 08878h                               ; e8 6a 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 098fbh                          ; eb 21
+    jmp short 0993ah                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 098f2h                           ; 74 12
+    je short 09931h                           ; 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 092bah                               ; e8 cd f9
+    call 092f9h                               ; e8 cd f9
     dec byte [bp-00ch]                        ; fe 4e f4
-    je short 09935h                           ; 74 43
+    je short 09974h                           ; 74 43
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 020h                  ; 80 7e f2 20
-    jnc short 09935h                          ; 73 3a
+    jnc short 09974h                          ; 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 0990dh                               ; e3 06
+    jcxz 0994ch                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09907h                               ; e2 fa
+    loop 09946h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14656,9 +14708,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 09931h                          ; 75 04
+    jne short 09970h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 098dah                           ; 74 a9
+    je short 09919h                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 098dch                          ; eb a7
+    jmp short 0991bh                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14670,7 +14722,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 041h, 09ah, 01fh, 09ah, 025h, 09ah, 02bh, 09ah, 031h
-    db  09ah, 037h, 09ah, 03dh, 09ah, 041h, 09ah
-_ahci_init:                                  ; 0xf9958 LB 0x13a
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 080h, 09ah, 05eh, 09ah, 064h, 09ah, 06ah, 09ah, 070h
+    db  09ah, 076h, 09ah, 07ch, 09ah, 080h, 09ah
+_ahci_init:                                  ; 0xf9997 LB 0x13a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14680,8 +14732,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09eadh                               ; e8 44 05
+    call 09eech                               ; e8 44 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 099bch                           ; 74 4c
+    je short 099fbh                           ; 74 4c
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14691,8 +14743,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09ed8h                               ; e8 53 05
+    call 09f17h                               ; e8 53 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 099bfh                           ; 74 34
+    je short 099feh                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14705,7 +14757,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09ed8h                               ; e8 2e 05
+    call 09f17h                               ; e8 2e 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 099bfh                           ; 74 11
+    je short 099feh                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -14714,8 +14766,8 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    jmp short 09982h                          ; eb c6
-    jmp near 09a8bh                           ; e9 cc 00
+    jmp short 099c1h                          ; eb c6
+    jmp near 09acah                           ; e9 cc 00
     test cl, cl                               ; 84 c9
-    je short 099bch                           ; 74 f9
+    je short 099fbh                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -14729,7 +14781,7 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09ed8h                               ; e8 f3 04
+    call 09f17h                               ; e8 f3 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 099bch                          ; 75 d3
+    jne short 099fbh                          ; 75 d3
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov bl, cl                                ; 88 cb
@@ -14738,29 +14790,29 @@
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 09f06h                               ; e8 09 05
+    call 09f45h                               ; 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 09a41h                         ; 77 37
+    jnbe short 09a80h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09941h                            ; bf 41 99
+    mov di, 09980h                            ; bf 80 99
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-066b8h]               ; 2e 8b 85 48 99
+    mov ax, word [cs:di-06679h]               ; 2e 8b 85 87 99
     jmp ax                                    ; ff e0
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
-    jmp short 09a41h                          ; eb 1c
+    jmp short 09a80h                          ; eb 1c
     mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 09a41h                          ; eb 16
+    jmp short 09a80h                          ; eb 16
     mov byte [bp-008h], 018h                  ; c6 46 f8 18
-    jmp short 09a41h                          ; eb 10
+    jmp short 09a80h                          ; eb 10
     mov byte [bp-008h], 01ch                  ; c6 46 f8 1c
-    jmp short 09a41h                          ; eb 0a
+    jmp short 09a80h                          ; eb 0a
     mov byte [bp-008h], 020h                  ; c6 46 f8 20
-    jmp short 09a41h                          ; eb 04
+    jmp short 09a80h                          ; eb 04
     mov byte [bp-008h], 024h                  ; c6 46 f8 24
     mov si, dx                                ; 89 d6
@@ -14769,5 +14821,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     test al, al                               ; 84 c0
-    je short 09a8bh                           ; 74 3b
+    je short 09acah                           ; 74 3b
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -14780,7 +14832,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09f30h                               ; e8 c1 04
+    call 09f6fh                               ; e8 c1 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09a8bh                           ; 74 18
+    je short 09acah                           ; 74 18
     and AL, strict byte 0f0h                  ; 24 f0
     add si, ax                                ; 01 c6
@@ -14789,7 +14841,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09f7eh                               ; e8 f8 04
+    call 09fbdh                               ; e8 f8 04
     mov ax, si                                ; 89 f0
-    call 097ebh                               ; e8 60 fd
+    call 0982ah                               ; e8 60 fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -14797,5 +14849,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9a92 LB 0x39
+apm_out_str_:                                ; 0xf9ad1 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14803,5 +14855,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09aa7h                           ; 74 0a
+    je short 09ae6h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14810,28 +14862,21 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09a9fh                          ; 75 f8
+    jne short 09adeh                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    in AL, DX                                 ; ec
-    call far 09afeh:09b74h                    ; 9a 74 9b fe 9a
-    sbb word [bp+di-0648ch], bx               ; 19 9b 74 9b
-    inc sp                                    ; 44
+    sub bx, word [bp+di-0644dh]               ; 2b 9b b3 9b
+    cmp ax, 0589bh                            ; 3d 9b 58
     wait                                      ; 9b
-    je short 09a56h                           ; 74 9b
-    jp short 09a58h                           ; 7a 9b
-    dec cx                                    ; 49
+    mov BL, strict byte 09bh                  ; b3 9b
+    sbb word [bp+di-0644dh], strict byte 0ffb9h ; 83 9b b3 9b b9
     wait                                      ; 9b
-    dec cx                                    ; 49
+    mov byte [bp+di-06478h], bl               ; 88 9b 88 9b
+    mov byte [bp+di-06408h], bl               ; 88 9b f8 9b
+    mov byte [bp+di-06478h], bl               ; 88 9b 88 9b
+    db  0f1h
     wait                                      ; 9b
-    dec cx                                    ; 49
-    wait                                      ; 9b
-    mov cx, 0499bh                            ; b9 9b 49
-    wait                                      ; 9b
-    dec cx                                    ; 49
-    wait                                      ; 9b
-    mov DL, strict byte 09bh                  ; b2 9b
-_apm_function:                               ; 0xf9acb LB 0xf3
+_apm_function:                               ; 0xf9b0a LB 0xf3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14841,21 +14886,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09b49h                         ; 77 6c
+    jnbe short 09b88h                         ; 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-06553h]                   ; 2e ff a7 ad 9a
+    jmp word [cs:bx-06514h]                   ; 2e ff a7 ec 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 09b74h                           ; e9 76 00
+    jmp near 09bb3h                           ; e9 76 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a184h                ; c7 46 0c 84 a1
+    mov word [bp+00ch], 0a1c4h                ; c7 46 0c c4 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 09b74h                           ; e9 5b 00
+    jmp near 09bb3h                           ; e9 5b 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14870,17 +14915,17 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09b74h                           ; e9 30 00
+    jmp near 09bb3h                           ; e9 30 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09b74h                           ; e9 2b 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 09bb3h                           ; e9 2b 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 cf 7d
+    call 01923h                               ; e8 90 7d
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
     push 00d29h                               ; 68 29 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 04 7e
+    call 01966h                               ; e8 c5 7d
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14894,28 +14939,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09b9fh                           ; 74 1f
+    je short 09bdeh                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09b97h                           ; 74 11
+    je short 09bd6h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09ba7h                          ; 75 1b
+    jne short 09be6h                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d10h                            ; b8 10 0d
-    call 09a92h                               ; e8 fd fe
-    jmp short 09b74h                          ; eb dd
+    call 09ad1h                               ; e8 fd fe
+    jmp short 09bb3h                          ; eb dd
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d18h                            ; b8 18 0d
-    jmp short 09b92h                          ; eb f3
+    jmp short 09bd1h                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d20h                            ; b8 20 0d
-    jmp short 09b92h                          ; eb eb
+    jmp short 09bd1h                          ; 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 09b74h                          ; eb c2
+    jmp short 09bb3h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09b74h                          ; eb bb
+    jmp short 09bb3h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09baah                          ; eb ec
-pci16_select_reg_:                           ; 0xf9bbe LB 0x24
+    jmp short 09be9h                          ; eb ec
+pci16_select_reg_:                           ; 0xf9bfd LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14934,5 +14979,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9be2 LB 0xf9
+pci16_find_device_:                          ; 0xf9c21 LB 0xf9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14948,8 +14993,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09c2ah                          ; 75 2d
+    jne short 09c69h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09bbeh                               ; e8 b9 ff
+    call 09bfdh                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14958,23 +15003,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09c18h                          ; 75 06
+    jne short 09c57h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09cabh                           ; e9 93 00
+    jmp near 09ceah                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09c25h                           ; 74 07
+    je short 09c64h                           ; 74 07
     mov word [bp-010h], strict word 00001h    ; c7 46 f0 01 00
-    jmp short 09c2ah                          ; eb 05
+    jmp short 09c69h                          ; 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 09c52h                          ; 75 1f
+    jne short 09c91h                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09c52h                          ; 75 16
+    jne short 09c91h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09bbeh                               ; e8 7a ff
+    call 09bfdh                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14982,13 +15027,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09c52h                          ; 76 03
+    jbe short 09c91h                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09c5bh                           ; 74 05
+    je short 09c9ah                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09c5dh                          ; eb 02
+    jmp short 09c9ch                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09bbeh                               ; e8 5c ff
+    call 09bfdh                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15001,22 +15046,22 @@
     mov word [bp-00eh], strict word 00000h    ; c7 46 f2 00 00
     test di, di                               ; 85 ff
-    je short 09c8ch                           ; 74 0f
+    je short 09ccbh                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09c80h                               ; e2 fa
+    loop 09cbfh                               ; 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 09c9ch                          ; 75 08
+    jne short 09cdbh                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09ca2h                           ; 74 06
+    je short 09ce1h                           ; 74 06
     cmp word [bp-00eh], strict byte 00000h    ; 83 7e f2 00
-    je short 09ca8h                           ; 74 06
+    je short 09ce7h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09cbch                           ; 74 14
+    je short 09cfbh                           ; 74 14
     add bx, word [bp-010h]                    ; 03 5e f0
     mov dx, bx                                ; 89 da
@@ -15025,10 +15070,10 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    jnbe short 09cbch                         ; 77 03
-    jmp near 09bf8h                           ; e9 3c ff
+    jnbe short 09cfbh                         ; 77 03
+    jmp near 09c37h                           ; e9 3c ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09cc5h                          ; 75 04
+    jne short 09d04h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09cc8h                          ; eb 03
+    jmp short 09d07h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -15037,12 +15082,13 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov sp, 0d59dh                            ; bc 9d d5
-    popfw                                     ; 9d
-    out 09dh, ax                              ; e7 9d
     sti                                       ; fb
     popfw                                     ; 9d
-    or ax, 0209eh                             ; 0d 9e 20
+    adc AL, strict byte 09eh                  ; 14 9e
+    db  026h, 09eh
+    ; es sahf                                   ; 26 9e
+    cmp bl, byte [bp-061b4h]                  ; 3a 9e 4c 9e
+    pop di                                    ; 5f
     sahf                                      ; 9e
-_pci16_function:                             ; 0xf9cdb LB 0x1d2
+_pci16_function:                             ; 0xf9d1a LB 0x1d2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15058,18 +15104,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09d0dh                           ; 72 13
-    jbe short 09d60h                          ; 76 64
+    jc short 09d4ch                           ; 72 13
+    jbe short 09d9fh                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09d68h                           ; 74 67
+    je short 09da7h                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09d17h                           ; 72 11
+    jc short 09d56h                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09d6bh                          ; 76 60
-    jmp short 09d17h                          ; eb 0a
+    jbe short 09daah                          ; 76 60
+    jmp short 09d56h                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09d36h                           ; 74 24
+    je short 09d75h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09d1ah                           ; 74 03
-    jmp near 09e79h                           ; e9 5f 01
+    je short 09d59h                           ; 74 03
+    jmp near 09eb8h                           ; 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
@@ -15077,52 +15123,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09ea6h                           ; e9 70 01
+    jmp near 09ee5h                           ; e9 70 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09d42h                          ; 75 06
+    jne short 09d81h                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09e9fh                           ; e9 5d 01
+    jmp near 09edeh                           ; 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 09be2h                               ; e8 92 fe
+    call 09c21h                               ; e8 92 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d62h                          ; 75 0d
+    jne short 09da1h                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e9fh                           ; e9 3f 01
-    jmp short 09d6dh                          ; eb 0b
+    jmp near 09edeh                           ; e9 3f 01
+    jmp short 09dach                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ea6h                           ; e9 3e 01
-    jmp near 09e34h                           ; e9 c9 00
-    jmp short 09d92h                          ; eb 25
+    jmp near 09ee5h                           ; e9 3e 01
+    jmp near 09e73h                           ; e9 c9 00
+    jmp short 09dd1h                          ; 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 09be2h                               ; e8 66 fe
+    call 09c21h                               ; e8 66 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d8ch                          ; 75 0b
+    jne short 09dcbh                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e9fh                           ; e9 13 01
+    jmp near 09edeh                           ; e9 13 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ea6h                           ; e9 14 01
+    jmp near 09ee5h                           ; e9 14 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09d9fh                           ; 72 06
+    jc short 09ddeh                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09e9fh                           ; e9 00 01
+    jmp near 09edeh                           ; e9 00 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09bbeh                               ; e8 16 fe
+    call 09bfdh                               ; 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 09e1dh                         ; 77 68
+    jnbe short 09e5ch                         ; 77 68
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-06331h]                   ; 2e ff a7 cf 9c
+    jmp word [cs:bx-062f2h]                   ; 2e ff a7 0e 9d
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15135,5 +15181,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09e1dh                          ; eb 48
+    jmp short 09e5ch                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15142,5 +15188,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09e1dh                          ; eb 36
+    jmp short 09e5ch                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15151,5 +15197,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09e1dh                          ; eb 22
+    jmp short 09e5ch                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15158,5 +15204,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09e1dh                          ; eb 10
+    jmp short 09e5ch                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15165,5 +15211,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09ea6h                           ; e9 86 00
+    jmp near 09ee5h                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15174,5 +15220,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09ea6h                          ; eb 72
+    jmp short 09ee5h                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15181,5 +15227,5 @@
     mov cx, word [0f380h]                     ; 8b 0e 80 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09e5ah                          ; 76 11
+    jbe short 09e99h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15187,5 +15233,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09e6eh                          ; eb 14
+    jmp short 09eadh                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f1a0h                            ; be a0 f1
@@ -15199,9 +15245,9 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09ea6h                          ; eb 2d
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp short 09ee5h                          ; eb 2d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01923h                               ; e8 9f 7a
+    call 01923h                               ; e8 60 7a
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
@@ -15210,5 +15256,5 @@
     push 00d5ch                               ; 68 5c 0d
     push strict byte 00004h                   ; 6a 04
-    call 01966h                               ; e8 d2 7a
+    call 01966h                               ; e8 93 7a
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15222,5 +15268,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9ead LB 0x8
+pci_find_classcode_:                         ; 0xf9eec LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15228,5 +15274,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_device_:                            ; 0xf9eb5 LB 0x23
+pci_find_device_:                            ; 0xf9ef4 LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15240,5 +15286,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je short 09eceh                           ; 74 03
+    je short 09f0dh                           ; 74 03
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -15249,5 +15295,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9ed8 LB 0x2e
+pci_read_config_byte_:                       ; 0xf9f17 LB 0x2e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15275,5 +15321,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9f06 LB 0x2a
+pci_read_config_word_:                       ; 0xf9f45 LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15299,5 +15345,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9f30 LB 0x4e
+pci_read_config_dword_:                      ; 0xf9f6f LB 0x4e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15321,5 +15367,5 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    jne short 09f6fh                          ; 75 14
+    jne short 09faeh                          ; 75 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -15331,7 +15377,7 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    je short 09f74h                           ; 74 05
+    je short 09fb3h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 09f76h                          ; eb 02
+    jmp short 09fb5h                          ; eb 02
     xor ax, ax                                ; 31 c0
     cwd                                       ; 99
@@ -15341,5 +15387,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9f7e LB 0x25
+pci_write_config_word_:                      ; 0xf9fbd LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15361,5 +15407,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9fa3 LB 0x1d
+vds_is_present_:                             ; 0xf9fe2 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15369,5 +15415,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09fbbh                           ; 74 06
+    je short 09ffah                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15378,5 +15424,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9fc0 LB 0x1e
+vds_real_to_lin_:                            ; 0xf9fff LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15389,5 +15435,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09fceh                               ; e2 fa
+    loop 0a00dh                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15397,5 +15443,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9fde LB 0x77
+vds_build_sg_list_:                          ; 0xfa01d LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15411,21 +15457,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09fc0h                               ; e8 c3 ff
+    call 09fffh                               ; 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 09fa3h                               ; e8 93 ff
+    call 09fe2h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a025h                           ; 74 11
+    je short 0a064h                           ; 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 0a022h                           ; 72 02
+    jc short 0a061h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a04ch                          ; eb 27
+    jmp short 0a08bh                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15444,5 +15490,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa055 LB 0x3b
+vds_free_sg_list_:                           ; 0xfa094 LB 0x3c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15450,7 +15496,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09fa3h                               ; e8 44 ff
+    call 09fe2h                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 0a074h                           ; 74 11
+    je short 0a0b3h                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15458,5 +15504,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a073h                           ; 72 02
+    jc short 0a0b2h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15469,6 +15515,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0xd db 0
-__U4M:                                       ; 0xfa090 LB 0x20
+    times 0xe db 0
+__U4M:                                       ; 0xfa0d0 LB 0x20
     pushfw                                    ; 9c
     push si                                   ; 56
@@ -15497,5 +15543,5 @@
     retn                                      ; c3
     times 0x4 db 0
-__U4D:                                       ; 0xfa0b0 LB 0x30
+__U4D:                                       ; 0xfa0f0 LB 0x30
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -15512,5 +15558,5 @@
     push dx                                   ; 52
     push ax                                   ; 50
-    call 0a195h                               ; e8 d0 00
+    call 0a1d5h                               ; e8 d0 00
     mov cx, word [bp-002h]                    ; 8b 4e fe
     mov bx, word [bp-004h]                    ; 8b 5e fc
@@ -15523,7 +15569,7 @@
     retn                                      ; c3
     times 0xe db 0
-__U8RS:                                      ; 0xfa0e0 LB 0x10
+__U8RS:                                      ; 0xfa120 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a0efh                           ; 74 0b
+    je short 0a12fh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15531,9 +15577,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a0e4h                          ; 75 f5
+    jne short 0a124h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa0f0 LB 0x10
+__U8LS:                                      ; 0xfa130 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a0ffh                           ; 74 0b
+    je short 0a13fh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15541,7 +15587,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a0f4h                          ; 75 f5
+    jne short 0a134h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa100 LB 0x10
+_fmemset_:                                   ; 0xfa140 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15554,5 +15600,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa110 LB 0x3a
+_fmemcpy_:                                   ; 0xfa150 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15579,15 +15625,17 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    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
+    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
     sti                                       ; fb
     push ax                                   ; 50
@@ -15601,21 +15649,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a180h                          ; 73 25
-    jmp word [cs:bp-05ed0h]                   ; 2e ff a6 30 a1
-    jmp short 0a17eh                          ; eb 1c
+    jnc short 0a1c0h                          ; 73 25
+    jmp word [cs:bp-05e90h]                   ; 2e ff a6 70 a1
+    jmp short 0a1beh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a17eh                          ; eb 18
-    jmp short 0a17eh                          ; eb 16
-    jmp short 0a180h                          ; eb 16
+    jmp short 0a1beh                          ; eb 18
+    jmp short 0a1beh                          ; eb 16
+    jmp short 0a1c0h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a182h                          ; eb 14
-    jmp short 0a180h                          ; eb 10
+    jmp short 0a1c2h                          ; eb 14
+    jmp short 0a1c0h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a17eh                          ; eb 09
-    jmp short 0a17eh                          ; eb 07
+    jmp short 0a1beh                          ; eb 09
+    jmp short 0a1beh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a17eh                          ; eb 00
+    jmp short 0a1beh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15623,5 +15671,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa184 LB 0x11
+apm_pm16_entry:                              ; 0xfa1c4 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15631,9 +15679,9 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a14ah                               ; e8 b8 ff
+    call 0a18ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
-_DoUInt32Div:                                ; 0xfa195 LB 0x26b
+_DoUInt32Div:                                ; 0xfa1d5 LB 0x26b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15653,10 +15701,10 @@
     mov [bp-006h], ds                         ; 8c 5e fa
     cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
-    jne short 0a1e5h                          ; 75 22
+    jne short 0a225h                          ; 75 22
     mov ax, word [bx]                         ; 8b 07
     test ax, ax                               ; 85 c0
-    je short 0a1e2h                           ; 74 19
+    je short 0a222h                           ; 74 19
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0a1e5h                          ; 75 17
+    jne short 0a225h                          ; 75 17
     xor ax, ax                                ; 31 c0
     mov word [bp+00ah], ax                    ; 89 46 0a
@@ -15666,35 +15714,35 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [bp+006h], ax                    ; 89 46 06
-    jmp near 0a3edh                           ; e9 08 02
+    jmp near 0a42dh                           ; 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 0a20bh                           ; 74 18
+    je short 0a24bh                           ; 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 0a206h                          ; 76 05
+    jbe short 0a246h                          ; 76 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a22ch                          ; eb 26
+    jmp short 0a26ch                          ; eb 26
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a22ch                          ; eb 21
+    jmp short 0a26ch                          ; 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 0a22ah                           ; 74 13
+    je short 0a26ah                           ; 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 0a225h                          ; 76 02
-    jmp short 0a201h                          ; eb dc
+    jbe short 0a265h                          ; 76 02
+    jmp short 0a241h                          ; eb dc
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a22ch                          ; eb 02
+    jmp short 0a26ch                          ; eb 02
     xor ax, ax                                ; 31 c0
     test ax, ax                               ; 85 c0
-    jnl short 0a24eh                          ; 7d 1e
+    jnl short 0a28eh                          ; 7d 1e
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx]                         ; 8b 07
@@ -15706,6 +15754,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 0a1e2h                          ; eb 94
-    jne short 0a265h                          ; 75 15
+    jmp short 0a222h                          ; eb 94
+    jne short 0a2a5h                          ; 75 15
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov word [di+002h], ax                    ; 89 45 02
@@ -15714,20 +15762,20 @@
     mov word [bx], strict word 00001h         ; c7 07 01 00
     mov word [bx+002h], ax                    ; 89 47 02
-    jmp near 0a3edh                           ; e9 88 01
+    jmp near 0a42dh                           ; 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 0a280h                           ; 74 11
+    je short 0a2c0h                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a400h                               ; e8 88 01
+    call 0a440h                               ; e8 88 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a28dh                          ; eb 0d
+    jmp short 0a2cdh                          ; eb 0d
     push word [bx]                            ; ff 37
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a400h                               ; e8 76 01
+    call 0a440h                               ; e8 76 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -15735,16 +15783,16 @@
     mov ax, word [si+002h]                    ; 8b 44 02
     test ax, ax                               ; 85 c0
-    je short 0a2abh                           ; 74 11
+    je short 0a2ebh                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a400h                               ; e8 5d 01
+    call 0a440h                               ; e8 5d 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a2b8h                          ; eb 0d
+    jmp short 0a2f8h                          ; eb 0d
     push word [si]                            ; ff 34
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a400h                               ; e8 4b 01
+    call 0a440h                               ; e8 4b 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -15757,5 +15805,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test dx, dx                               ; 85 d2
-    je short 0a328h                           ; 74 56
+    je short 0a368h                           ; 74 56
     mov cx, dx                                ; 89 d1
     xor ch, dh                                ; 30 f5
@@ -15763,8 +15811,8 @@
     mov ax, word [si]                         ; 8b 04
     mov dx, word [si+002h]                    ; 8b 54 02
-    jcxz 0a2e6h                               ; e3 06
+    jcxz 0a326h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a2e0h                               ; e2 fa
+    loop 0a320h                               ; e2 fa
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -15772,25 +15820,25 @@
     lds bx, [bp-00ch]                         ; c5 5e f4
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jnbe short 0a306h                         ; 77 0f
+    jnbe short 0a346h                         ; 77 0f
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jne short 0a30ah                          ; 75 0b
+    jne short 0a34ah                          ; 75 0b
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, word [bx]                         ; 3b 07
-    jbe short 0a30ah                          ; 76 04
+    jbe short 0a34ah                          ; 76 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a30ch                          ; eb 02
+    jmp short 0a34ch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a333h                           ; 74 23
+    je short 0a373h                           ; 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 0a333h                          ; eb 18
+    jmp short 0a373h                          ; 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 0a31eh                               ; e2 f8
-    jmp short 0a316h                          ; eb ee
+    loop 0a35eh                               ; e2 f8
+    jmp short 0a356h                          ; eb ee
     mov ax, word [si]                         ; 8b 04
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -15809,27 +15857,27 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jnbe short 0a35fh                         ; 77 06
-    jne short 0a363h                          ; 75 08
+    jnbe short 0a39fh                         ; 77 06
+    jne short 0a3a3h                          ; 75 08
     cmp dx, word [si]                         ; 3b 14
-    jc short 0a363h                           ; 72 04
+    jc short 0a3a3h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a365h                          ; eb 02
+    jmp short 0a3a5h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3cah                           ; 74 61
+    je short 0a40ah                           ; 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 0a380h                         ; 77 0c
+    jnbe short 0a3c0h                         ; 77 0c
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jne short 0a384h                          ; 75 0b
+    jne short 0a3c4h                          ; 75 0b
     mov ax, word [di]                         ; 8b 05
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 0a384h                           ; 72 04
+    jc short 0a3c4h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a386h                          ; eb 02
+    jmp short 0a3c6h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3b0h                           ; 74 26
+    je short 0a3f0h                           ; 74 26
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mov ds, [bp-008h]                         ; 8e 5e f8
@@ -15840,8 +15888,8 @@
     xor dx, dx                                ; 31 d2
     mov cx, word [bp-012h]                    ; 8b 4e ee
-    jcxz 0a3a8h                               ; e3 06
+    jcxz 0a3e8h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a3a2h                               ; e2 fa
+    loop 0a3e2h                               ; e2 fa
     lds bx, [bp-010h]                         ; c5 5e f0
     or word [bx], ax                          ; 09 07
@@ -15852,24 +15900,24 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jc short 0a3c6h                           ; 72 06
-    jne short 0a3cch                          ; 75 0a
+    jc short 0a406h                           ; 72 06
+    jne short 0a40ch                          ; 75 0a
     cmp dx, word [si]                         ; 3b 14
-    jnc short 0a3cch                          ; 73 06
+    jnc short 0a40ch                          ; 73 06
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3ceh                          ; eb 04
-    jmp short 0a3edh                          ; eb 21
+    jmp short 0a40eh                          ; eb 04
+    jmp short 0a42dh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3e1h                           ; 74 0f
-    jmp short 0a3edh                          ; eb 19
+    je short 0a421h                           ; 74 0f
+    jmp short 0a42dh                          ; 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 0a3d7h                               ; e2 f8
-    jmp short 0a3e7h                          ; eb 06
+    loop 0a417h                               ; e2 f8
+    jmp short 0a427h                          ; 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 0a369h                           ; e9 7c ff
+    jmp near 0a3a9h                           ; e9 7c ff
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, word [bp-01ah]                    ; 8b 56 e6
@@ -15880,5 +15928,5 @@
     retn                                      ; c3
     times 0x6 db 0
-_ASMBitLastSetU16:                           ; 0xfa400 LB 0x18
+_ASMBitLastSetU16:                           ; 0xfa440 LB 0x18
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15886,10 +15934,10 @@
     mov cx, word [bp+004h]                    ; 8b 4e 04
     test cx, cx                               ; 85 c9
-    je short 0a414h                           ; 74 0a
+    je short 0a454h                           ; 74 0a
     mov ax, strict word 00010h                ; b8 10 00
     sal cx, 1                                 ; d1 e1
-    jc short 0a416h                           ; 72 05
+    jc short 0a456h                           ; 72 05
     dec ax                                    ; 48
-    jmp short 0a40dh                          ; eb f9
+    jmp short 0a44dh                          ; eb f9
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -15897,6 +15945,6 @@
     retn                                      ; c3
 
-  ; Padding 0x35e8 bytes at 0xfa418
-  times 13800 db 0
+  ; Padding 0x35a8 bytes at 0xfa458
+  times 13736 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15945,5 +15993,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a186h                            ; bd 86 a1
+    mov bp, 0a1c6h                            ; bd c6 a1
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16411,5 +16459,5 @@
     cmp AL, strict byte 009h                  ; 3c 09
     jne short 0e0bch                          ; 75 03
-    jmp near 0e368h                           ; e9 ac 02
+    jmp near 0e350h                           ; e9 94 02
     cmp AL, strict byte 005h                  ; 3c 05
     je short 0e044h                           ; 74 84
@@ -16554,5 +16602,5 @@
     mov dx, 0c800h                            ; ba 00 c8
     call 01600h                               ; e8 ea 33
-    call 04eddh                               ; e8 c4 6c
+    call 04f1ch                               ; e8 03 6d
     pop DS                                    ; 1f
     mov ax, 0ff53h                            ; b8 53 ff
@@ -16614,5 +16662,5 @@
     mov word [001c2h], ax                     ; a3 c2 01
     call 0edbfh                               ; e8 0e 0b
-    jmp short 0e31bh                          ; eb 68
+    jmp short 0e303h                          ; eb 50
 biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
     times 0xe db 0
@@ -16629,5 +16677,5 @@
     int 002h                                  ; cd 02
     iret                                      ; cf
-hard_drive_post:                             ; 0xfe2d2 LB 0xbf
+hard_drive_post:                             ; 0xfe2d2 LB 0xa7
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16648,12 +16696,4 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001dah], ax                     ; a3 da 01
-    mov ax, strict word 0003dh                ; b8 3d 00
-    mov word [00104h], ax                     ; a3 04 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [00106h], ax                     ; a3 06 01
-    mov ax, strict word 0004dh                ; b8 4d 00
-    mov word [00118h], ax                     ; a3 18 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [0011ah], ax                     ; a3 1a 01
     retn                                      ; c3
     mov ax, 0f8bfh                            ; b8 bf f8
@@ -16665,16 +16705,16 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001d6h], ax                     ; a3 d6 01
-    call 0e753h                               ; e8 1d 04
+    call 0e753h                               ; e8 35 04
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 01c9fh                               ; e8 63 39
-    call 02118h                               ; e8 d9 3d
+    call 01c9fh                               ; e8 7b 39
+    call 02118h                               ; e8 f1 3d
     sti                                       ; fb
-    call 09958h                               ; e8 15 b6
+    call 09997h                               ; e8 6c b6
     cli                                       ; fa
-    call 087b8h                               ; e8 71 a4
-    call 0ed2fh                               ; e8 e5 09
-    call 0e2d2h                               ; e8 85 ff
+    call 087f7h                               ; e8 c8 a4
+    call 0ed2fh                               ; e8 fd 09
+    call 0e2d2h                               ; e8 9d ff
     push CS                                   ; 0e
     pop DS                                    ; 1f
@@ -16682,12 +16722,12 @@
     mov ax, 0c800h                            ; b8 00 c8
     mov dx, 0f000h                            ; ba 00 f0
-    call 01600h                               ; e8 a7 32
-    call 0178dh                               ; e8 31 34
-    call 03b54h                               ; e8 f5 57
+    call 01600h                               ; e8 bf 32
+    call 0178dh                               ; e8 49 34
+    call 03b93h                               ; e8 4c 58
     sti                                       ; fb
     int 019h                                  ; cd 19
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0e363h                          ; eb fd
+    jmp short 0e34bh                          ; eb fd
     cli                                       ; fa
     hlt                                       ; f4
@@ -16711,6 +16751,6 @@
     sti                                       ; fb
     retf 00002h                               ; ca 02 00
-biosorg_check_before_or_at_0E3FCh:           ; 0xfe391 LB 0x6d
-    times 0x6b db 0
+biosorg_check_before_or_at_0E3FCh:           ; 0xfe379 LB 0x85
+    times 0x83 db 0
     db  'XM'
 int13_handler:                               ; 0xfe3fe LB 0x3
@@ -16786,5 +16826,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0644bh                               ; e8 09 7d
+    call 0648ah                               ; e8 48 7d
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -16867,5 +16907,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0570dh                               ; e8 ca 6e
+    call 0574ch                               ; e8 09 6f
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -16885,5 +16925,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0570dh                               ; e8 a9 6e
+    call 0574ch                               ; e8 e8 6e
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -16926,5 +16966,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 051e5h                               ; e8 26 68
+    call 05224h                               ; e8 65 68
     pop ES                                    ; 07
     popaw                                     ; 61
@@ -16942,5 +16982,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06ef2h                               ; e8 1d 85
+    call 06f31h                               ; e8 5c 85
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -16964,5 +17004,5 @@
     cld                                       ; fc
     push 0ece9h                               ; 68 e9 ec
-    jmp near 03b98h                           ; e9 27 4f
+    jmp near 03bd7h                           ; e9 66 4f
     push ES                                   ; 06
     push ax                                   ; 50
@@ -16970,8 +17010,8 @@
     push cx                                   ; 51
     push dx                                   ; 52
-    call 03b6ch                               ; e8 f3 4e
+    call 03babh                               ; e8 32 4f
     cmp AL, strict byte 000h                  ; 3c 00
     je short 0ecabh                           ; 74 2e
-    call 03b82h                               ; e8 02 4f
+    call 03bc1h                               ; e8 41 4f
     pop dx                                    ; 5a
     push dx                                   ; 52
@@ -16991,5 +17031,5 @@
     cld                                       ; fc
     push 0ece9h                               ; 68 e9 ec
-    jmp near 04192h                           ; e9 fb 54
+    jmp near 041d1h                           ; e9 3a 55
     and dl, 0e0h                              ; 80 e2 e0
     db  03ah, 0c2h
@@ -17031,5 +17071,5 @@
     jne short 0ecc8h                          ; 75 06
     push 0ece9h                               ; 68 e9 ec
-    jmp near 0314fh                           ; e9 87 44
+    jmp near 0318eh                           ; e9 c6 44
 int13_notfloppy:                             ; 0xfecc8 LB 0x14
     cmp dl, 0e0h                              ; 80 fa e0
@@ -17037,5 +17077,5 @@
     shr ebx, 010h                             ; 66 c1 eb 10
     push bx                                   ; 53
-    call 045d4h                               ; e8 ff 58
+    call 04613h                               ; e8 3e 59
     pop bx                                    ; 5b
     sal ebx, 010h                             ; 66 c1 e3 10
@@ -17044,7 +17084,7 @@
     cmp ah, 040h                              ; 80 fc 40
     jnbe short 0ece6h                         ; 77 05
-    call 05ae9h                               ; e8 05 6e
+    call 05b28h                               ; e8 44 6e
     jmp short 0ece9h                          ; eb 03
-    call 05f3ch                               ; e8 53 72
+    call 05f7bh                               ; e8 92 72
 int13_out:                                   ; 0xfece9 LB 0x4
     pop DS                                    ; 1f
@@ -17260,5 +17300,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07890h                               ; e8 b3 88
+    call 078cfh                               ; e8 f2 88
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -17311,5 +17351,5 @@
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
-    call 04c59h                               ; e8 89 5b
+    call 04c98h                               ; e8 c8 5b
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17318,5 +17358,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 04c59h                               ; e8 7c 5b
+    call 04c98h                               ; e8 bb 5b
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17325,5 +17365,5 @@
     mov ax, strict word 00003h                ; b8 03 00
     push ax                                   ; 50
-    call 04c59h                               ; e8 6f 5b
+    call 04c98h                               ; e8 ae 5b
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17332,5 +17372,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 04c59h                               ; e8 62 5b
+    call 04c98h                               ; e8 a1 5b
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17483,5 +17523,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06d68h                               ; e8 01 75
+    call 06da7h                               ; e8 40 75
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -17505,5 +17545,5 @@
     cmp ah, 0c2h                              ; 80 fc c2
     je short 0f899h                           ; 74 0e
-    call 066a2h                               ; e8 14 6e
+    call 066e1h                               ; e8 53 6e
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -17511,12 +17551,12 @@
     popfw                                     ; 9d
     jmp short 0f8a5h                          ; eb 11
-    call 09acbh                               ; e8 34 a2
+    call 09b0ah                               ; e8 73 a2
     jmp short 0f88eh                          ; eb f5
 int15_handler_mouse:                         ; 0xff899 LB 0x5
-    call 07503h                               ; e8 67 7c
+    call 07542h                               ; e8 a6 7c
     jmp short 0f88eh                          ; eb f0
 int15_handler32:                             ; 0xff89e LB 0x7
     pushaw                                    ; 60
-    call 069deh                               ; e8 3c 71
+    call 06a1dh                               ; e8 7b 71
     popaw                                     ; 61
     jmp short 0f88fh                          ; eb ea
@@ -17551,5 +17591,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07431h                               ; e8 61 7b
+    call 07470h                               ; e8 a0 7b
     pop cx                                    ; 59
     jcxz 0f8dfh                               ; e3 0c
@@ -17583,5 +17623,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 070d6h                               ; e8 d1 77
+    call 07115h                               ; e8 10 78
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -17672,5 +17712,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07195h                               ; e8 1e 73
+    call 071d4h                               ; e8 5d 73
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -17777,3 +17817,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, 0a8h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e5h
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 69111)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum	(revision 69128)
@@ -1,1 +1,1 @@
-d155ba841f31c1a57eaef68a9f7f28f6 *VBoxPcBios286.rom
+fce56fd1ede722bb71537af5a0525b14 *VBoxPcBios286.rom
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 69111)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm	(revision 69128)
@@ -951,10 +951,10 @@
     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, 089h, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 07bh, 02ch, 038h, 082h, 0a7h, 091h
 _softrst:                                    ; 0xf0076 LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0b6h, 03ch, 0b6h, 03ch
+    db  000h, 000h, 000h, 000h, 000h, 000h, 063h, 02fh, 0d4h, 03ch, 0d4h, 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, 05fh, 090h, 005h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06bh, 02bh, 020h, 02ch, 000h, 000h, 000h, 000h
+    db  082h, 080h, 05dh, 081h, 07dh, 090h, 023h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
@@ -1078,18 +1078,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fe class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0da0 LB 0x16
-    db  'VirtualBox 5.2.0_RC1', 000h, 000h
-_bios_prefix_string:                         ; 0xf0db6 LB 0x8
+section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0da0 LB 0x12
+    db  'VirtualBox 5.2.0', 000h, 000h
+_bios_prefix_string:                         ; 0xf0db2 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0dbe LB 0x6
+_isotag:                                     ; 0xf0dba LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0dc4 LB 0x18
+_eltorito:                                   ; 0xf0dc0 LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0ddc LB 0x28
+_drivetypes:                                 ; 0xf0dd8 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:                          ; 0xf0e04 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0e00 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
@@ -1148,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:                 ; 0xf117e LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf117a LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x462 bytes at 0xf119e
-  times 1122 db 0
+  ; Padding 0x466 bytes at 0xf119a
+  times 1126 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ba5 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bc5 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x50
     push bp                                   ; 55
@@ -1501,5 +1501,5 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -1530,5 +1530,5 @@
     int 010h                                  ; cd 10
     jmp short 018bah                          ; eb 03
-    call 07c22h                               ; e8 68 63
+    call 07c40h                               ; e8 86 63
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -1676,5 +1676,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a0b0h                               ; e8 de 86
+    call 0a0d0h                               ; e8 fe 86
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1902,5 +1902,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a0f0h                               ; e8 ec 84
+    call 0a110h                               ; e8 0c 85
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2344,5 +2344,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a0f0h                               ; e8 90 80
+    call 0a110h                               ; e8 b0 80
     xor dh, dh                                ; 30 f6
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -2354,5 +2354,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a0f0h                               ; e8 70 80
+    call 0a110h                               ; e8 90 80
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01eh]                    ; 8b 46 e2
@@ -2385,5 +2385,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a0f0h                               ; e8 1f 80
+    call 0a110h                               ; e8 3f 80
     mov word [bp-014h], dx                    ; 89 56 ec
     mov bx, word [bp-018h]                    ; 8b 5e e8
@@ -2394,5 +2394,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a0f0h                               ; e8 01 80
+    call 0a110h                               ; e8 21 80
     and dx, strict byte 0000fh                ; 83 e2 0f
     or dl, 040h                               ; 80 ca 40
@@ -2533,5 +2533,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_ata_detect:                                 ; 0xf2235 LB 0x65c
+_ata_detect:                                 ; 0xf2235 LB 0x67a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2542,9 +2542,9 @@
     mov ax, strict word 00040h                ; b8 40 00
     call 01765h                               ; e8 1e f5
-    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-024h], ax                    ; 89 46 dc
     mov di, 00122h                            ; bf 22 01
     mov es, ax                                ; 8e c0
-    mov word [bp-022h], di                    ; 89 7e de
-    mov word [bp-034h], ax                    ; 89 46 cc
+    mov word [bp-028h], di                    ; 89 7e d8
+    mov word [bp-01ah], ax                    ; 89 46 e6
     mov byte [es:di+00204h], 000h             ; 26 c6 85 04 02 00
     db  066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h
@@ -2556,54 +2556,53 @@
     mov byte [es:di+0020bh], 00fh             ; 26 c6 85 0b 02 0f
     xor al, al                                ; 30 c0
-    mov byte [bp-006h], al                    ; 88 46 fa
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-012h], al                    ; 88 46 ee
     mov byte [bp-010h], al                    ; 88 46 f0
-    mov byte [bp-016h], al                    ; 88 46 ea
-    jmp near 02815h                           ; e9 86 05
+    jmp near 02835h                           ; e9 a6 05
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [si+006h]                         ; 8d 54 06
     out DX, AL                                ; ee
-    lea di, [si+002h]                         ; 8d 7c 02
+    lea bx, [si+002h]                         ; 8d 5c 02
+    mov AL, strict byte 055h                  ; b0 55
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
+    lea di, [si+003h]                         ; 8d 7c 03
+    mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
     mov AL, strict byte 055h                  ; b0 55
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
-    lea bx, [si+003h]                         ; 8d 5c 03
+    mov dx, bx                                ; 89 da
+    out DX, AL                                ; ee
     mov AL, strict byte 0aah                  ; b0 aa
+    mov dx, di                                ; 89 fa
+    out DX, AL                                ; ee
     mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 055h                  ; b0 55
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
-    mov dx, di                                ; 89 fa
-    out DX, AL                                ; ee
-    mov AL, strict byte 0aah                  ; b0 aa
-    mov dx, bx                                ; 89 da
-    out DX, AL                                ; ee
+    in AL, DX                                 ; ec
+    db  02ah, 0e4h
+    ; sub ah, ah                                ; 2a e4
+    mov bx, ax                                ; 89 c3
     mov dx, di                                ; 89 fa
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov cx, ax                                ; 89 c1
-    mov dx, bx                                ; 89 da
-    in AL, DX                                 ; ec
-    db  02ah, 0e4h
-    ; sub ah, ah                                ; 2a e4
-    cmp cl, 055h                              ; 80 f9 55
-    jne near 02393h                           ; 0f 85 ca 00
+    cmp bl, 055h                              ; 80 fb 55
+    jne near 02391h                           ; 0f 85 c8 00
     cmp AL, strict byte 0aah                  ; 3c aa
-    jne near 02393h                           ; 0f 85 c4 00
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
+    jne near 02391h                           ; 0f 85 c2 00
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    add bx, word [bp-028h]                    ; 03 5e d8
     mov byte [es:bx+022h], 001h               ; 26 c6 47 22 01
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    call 01e75h                               ; e8 8b fb
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 022f5h                           ; 74 05
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    call 01e75h                               ; e8 8d fb
+    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
+    je short 022f3h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 022f8h                          ; eb 03
+    jmp short 022f6h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [si+006h]                         ; 8d 54 06
@@ -2619,7 +2618,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp bl, 001h                              ; 80 fb 01
-    jne near 02393h                           ; 0f 85 82 00
+    jne near 02391h                           ; 0f 85 82 00
     cmp al, bl                                ; 38 d8
-    jne near 02393h                           ; 0f 85 7c 00
+    jne near 02391h                           ; 0f 85 7c 00
     lea dx, [si+004h]                         ; 8d 54 04
     in AL, DX                                 ; ec
@@ -2627,5 +2626,5 @@
     ; sub ah, ah                                ; 2a e4
     mov bx, ax                                ; 89 c3
-    mov byte [bp-018h], al                    ; 88 46 e8
+    mov byte [bp-00ah], al                    ; 88 46 f6
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
@@ -2639,60 +2638,61 @@
     ; sub ah, ah                                ; 2a e4
     cmp bl, 014h                              ; 80 fb 14
-    jne short 02352h                          ; 75 1b
+    jne short 02350h                          ; 75 1b
     cmp cl, 0ebh                              ; 80 f9 eb
-    jne short 02352h                          ; 75 16
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    jne short 02350h                          ; 75 16
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov bx, word [bp-028h]                    ; 8b 5e d8
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
-    jmp short 02393h                          ; eb 41
-    cmp byte [bp-018h], 000h                  ; 80 7e e8 00
-    jne short 02374h                          ; 75 1c
+    jmp short 02391h                          ; eb 41
+    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    jne short 02372h                          ; 75 1c
     test bh, bh                               ; 84 ff
-    jne short 02374h                          ; 75 18
+    jne short 02372h                          ; 75 18
     test al, al                               ; 84 c0
-    je short 02374h                           ; 74 14
-    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
+    je short 02372h                           ; 74 14
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     imul bx, bx, strict byte 0001ch           ; 6b db 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add bx, word [bp-022h]                    ; 03 5e de
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    add bx, word [bp-028h]                    ; 03 5e d8
     mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
-    jmp short 02393h                          ; eb 1f
-    mov al, byte [bp-018h]                    ; 8a 46 e8
+    jmp short 02391h                          ; eb 1f
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 02393h                          ; 75 18
+    jne short 02391h                          ; 75 18
     cmp bh, al                                ; 38 c7
-    jne short 02393h                          ; 75 14
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    jne short 02391h                          ; 75 14
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov bx, word [bp-028h]                    ; 8b 5e d8
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
-    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov dx, word [bp-020h]                    ; 8b 56 e0
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    movzx si, byte [bp-016h]                  ; 0f b6 76 ea
-    imul si, si, strict byte 0001ch           ; 6b f6 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add si, word [bp-022h]                    ; 03 76 de
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov si, word [bp-028h]                    ; 8b 76 d8
+    add si, ax                                ; 01 c6
     mov al, byte [es:si+022h]                 ; 26 8a 44 22
-    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 002h                  ; 3c 02
-    jne near 025e2h                           ; 0f 85 2c 02
+    jne near 02601h                           ; 0f 85 4b 02
     mov byte [es:si+023h], 0ffh               ; 26 c6 44 23 ff
     mov byte [es:si+026h], 000h               ; 26 c6 44 26 00
     lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov bx, word [bp-028h]                    ; 8b 5e d8
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+00ch], al                 ; 26 88 47 0c
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000ech                            ; bb ec 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov ax, word [bp-028h]                    ; 8b 46 d8
     mov dx, es                                ; 8c c2
     call 01f53h                               ; e8 6f fb
@@ -2707,35 +2707,35 @@
     ; setne al                                  ; 0f 95 c0
     xor ah, ah                                ; 30 e4
-    mov byte [bp-014h], al                    ; 88 46 ec
+    mov byte [bp-018h], al                    ; 88 46 e8
     cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
     db  00fh, 095h, 0c0h
     ; setne al                                  ; 0f 95 c0
     xor ah, ah                                ; 30 e4
-    mov byte [bp-012h], al                    ; 88 46 ee
+    mov byte [bp-00eh], al                    ; 88 46 f2
     mov word [bp-02ah], 00200h                ; c7 46 d6 00 02
     mov ax, word [bp-00262h]                  ; 8b 86 9e fd
-    mov word [bp-026h], ax                    ; 89 46 da
+    mov word [bp-01eh], ax                    ; 89 46 e2
     mov ax, word [bp-0025eh]                  ; 8b 86 a2 fd
+    mov word [bp-034h], ax                    ; 89 46 cc
+    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
     mov word [bp-01ch], ax                    ; 89 46 e4
-    mov ax, word [bp-00258h]                  ; 8b 86 a8 fd
-    mov word [bp-01ah], ax                    ; 89 46 e6
-    mov si, word [bp-001ech]                  ; 8b b6 14 fe
-    mov ax, word [bp-001eah]                  ; 8b 86 16 fe
-    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov ax, word [bp-001ech]                  ; 8b 86 14 fe
+    mov word [bp-030h], ax                    ; 89 46 d0
+    mov si, word [bp-001eah]                  ; 8b b6 16 fe
     xor ax, ax                                ; 31 c0
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov word [bp-01eh], ax                    ; 89 46 e2
-    cmp word [bp-02ch], 00fffh                ; 81 7e d4 ff 0f
-    jne short 0245fh                          ; 75 1e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
+    mov word [bp-032h], ax                    ; 89 46 ce
+    mov word [bp-022h], ax                    ; 89 46 de
+    cmp si, 00fffh                            ; 81 fe ff 0f
+    jne short 0245fh                          ; 75 1f
+    cmp word [bp-030h], strict byte 0ffffh    ; 83 7e d0 ff
     jne short 0245fh                          ; 75 19
     mov ax, word [bp-00196h]                  ; 8b 86 6a fe
-    mov word [bp-01eh], ax                    ; 89 46 e2
+    mov word [bp-022h], ax                    ; 89 46 de
     mov ax, word [bp-00198h]                  ; 8b 86 68 fe
-    mov word [bp-028h], ax                    ; 89 46 d8
-    mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
-    mov word [bp-02ch], ax                    ; 89 46 d4
-    mov si, word [bp-0019ch]                  ; 8b b6 64 fe
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov word [bp-032h], ax                    ; 89 46 ce
+    mov si, word [bp-0019ah]                  ; 8b b6 66 fe
+    mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
+    mov word [bp-030h], ax                    ; 89 46 d0
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     cmp AL, strict byte 001h                  ; 3c 01
     jc short 02472h                           ; 72 0c
@@ -2781,12 +2781,12 @@
     mov word [bp-036h], ax                    ; 89 46 ca
     jmp short 024d1h                          ; eb 12
-    push word [bp-01eh]                       ; ff 76 e2
-    push word [bp-028h]                       ; ff 76 d8
-    push word [bp-02ch]                       ; ff 76 d4
+    push word [bp-022h]                       ; ff 76 de
+    push word [bp-032h]                       ; ff 76 ce
     push si                                   ; 56
+    push word [bp-030h]                       ; ff 76 d0
     mov dx, ss                                ; 8c d2
     lea ax, [bp-03ah]                         ; 8d 46 c6
-    call 05ad0h                               ; e8 ff 35
-    mov bx, 00db6h                            ; bb b6 0d
+    call 05aeeh                               ; e8 1d 36
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2798,38 +2798,40 @@
     mov ax, word [bp-038h]                    ; 8b 46 c8
     push ax                                   ; 50
-    push dword [bp-01ch]                      ; 66 ff 76 e4
-    push word [bp-026h]                       ; ff 76 da
-    movzx ax, byte [bp-00eh]                  ; 0f b6 46 f2
+    push word [bp-01ch]                       ; ff 76 e4
+    push word [bp-034h]                       ; ff 76 cc
+    push word [bp-01eh]                       ; ff 76 e2
+    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
     push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
     push 0015fh                               ; 68 5f 01
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 6a f5
+    call 01a6bh                               ; e8 68 f5
     add sp, strict byte 00014h                ; 83 c4 14
-    movzx di, byte [bp-016h]                  ; 0f b6 7e ea
-    imul di, di, strict byte 0001ch           ; 6b ff 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add di, word [bp-022h]                    ; 03 7e de
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov di, word [bp-028h]                    ; 8b 7e d8
+    add di, ax                                ; 01 c7
     mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
-    mov al, byte [bp-014h]                    ; 8a 46 ec
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     mov byte [es:di+024h], al                 ; 26 88 45 24
-    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [es:di+026h], al                 ; 26 88 45 26
     mov ax, word [bp-02ah]                    ; 8b 46 d6
     mov word [es:di+028h], ax                 ; 26 89 45 28
+    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov word [es:di+030h], ax                 ; 26 89 45 30
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov word [es:di+032h], ax                 ; 26 89 45 32
     mov ax, word [bp-01ch]                    ; 8b 46 e4
-    mov word [es:di+030h], ax                 ; 26 89 45 30
-    mov ax, word [bp-026h]                    ; 8b 46 da
-    mov word [es:di+032h], ax                 ; 26 89 45 32
-    mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [es:di+034h], ax                 ; 26 89 45 34
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov ax, word [bp-022h]                    ; 8b 46 de
     mov word [es:di+03ch], ax                 ; 26 89 45 3c
-    mov ax, word [bp-028h]                    ; 8b 46 d8
+    mov ax, word [bp-032h]                    ; 8b 46 ce
     mov word [es:di+03ah], ax                 ; 26 89 45 3a
-    mov ax, word [bp-02ch]                    ; 8b 46 d4
-    mov word [es:di+038h], ax                 ; 26 89 45 38
-    mov word [es:di+036h], si                 ; 26 89 75 36
+    mov word [es:di+038h], si                 ; 26 89 75 38
+    mov ax, word [bp-030h]                    ; 8b 46 d0
+    mov word [es:di+036h], ax                 ; 26 89 45 36
     lea di, [di+02ah]                         ; 8d 7d 2a
     push DS                                   ; 1e
@@ -2841,13 +2843,21 @@
     movsw                                     ; a5
     pop DS                                    ; 1f
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     cmp AL, strict byte 002h                  ; 3c 02
-    jnc short 025cdh                          ; 73 60
+    jnc near 025ech                           ; 0f 83 79 00
     test al, al                               ; 84 c0
-    jne short 02576h                          ; 75 05
+    jne short 0257ch                          ; 75 05
     mov di, strict word 0003dh                ; bf 3d 00
-    jmp short 02579h                          ; eb 03
+    jmp short 0257fh                          ; eb 03
     mov di, strict word 0004dh                ; bf 4d 00
-    mov dx, word [bp-020h]                    ; 8b 56 e0
+    mov dx, word [bp-024h]                    ; 8b 56 dc
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    imul bx, bx, strict byte 00005h           ; 6b db 05
+    sal bx, 002h                              ; c1 e3 02
+    add bx, 00104h                            ; 81 c3 04 01
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov word [es:bx], di                      ; 26 89 3f
+    mov word [es:bx+002h], dx                 ; 26 89 57 02
     mov ax, word [bp-038h]                    ; 8b 46 c8
     mov es, dx                                ; 8e c2
@@ -2856,17 +2866,17 @@
     mov byte [es:di+002h], al                 ; 26 88 45 02
     mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov al, byte [bp-01ch]                    ; 8a 46 e4
     mov byte [es:di+004h], al                 ; 26 88 45 04
-    mov ax, word [bp-026h]                    ; 8b 46 da
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
     mov word [es:di+009h], ax                 ; 26 89 45 09
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov al, byte [bp-034h]                    ; 8a 46 cc
     mov byte [es:di+00bh], al                 ; 26 88 45 0b
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov al, byte [bp-036h]                    ; 8a 46 ca
     mov byte [es:di+00eh], al                 ; 26 88 45 0e
     xor al, al                                ; 30 c0
     xor ah, ah                                ; 30 e4
-    jmp short 025b7h                          ; eb 05
+    jmp short 025d6h                          ; eb 05
     cmp ah, 00fh                              ; 80 fc 0f
-    jnc short 025c5h                          ; 73 0e
+    jnc short 025e4h                          ; 73 0e
     movzx bx, ah                              ; 0f b6 dc
     mov es, dx                                ; 8e c2
@@ -2875,39 +2885,39 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 025b2h                          ; eb ed
+    jmp short 025d1h                          ; eb ed
     neg al                                    ; f6 d8
     mov es, dx                                ; 8e c2
     mov byte [es:di+00fh], al                 ; 26 88 45 0f
-    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
-    mov es, [bp-034h]                         ; 8e 46 cc
-    add bx, word [bp-022h]                    ; 03 5e de
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    add bx, word [bp-028h]                    ; 03 5e d8
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
-    inc byte [bp-010h]                        ; fe 46 f0
-    cmp byte [bp-00ah], 003h                  ; 80 7e f6 03
-    jne near 02685h                           ; 0f 85 9b 00
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
+    inc byte [bp-012h]                        ; fe 46 ee
+    cmp byte [bp-00ch], 003h                  ; 80 7e f4 03
+    jne near 026a7h                           ; 0f 85 9e 00
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov bx, word [bp-028h]                    ; 8b 5e d8
     add bx, ax                                ; 01 c3
     mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     lea dx, [bp-00264h]                       ; 8d 96 9c fd
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    mov bx, word [bp-028h]                    ; 8b 5e d8
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+00ch], al                 ; 26 88 47 0c
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000a1h                            ; bb a1 00
-    mov ax, word [bp-022h]                    ; 8b 46 de
+    mov ax, word [bp-028h]                    ; 8b 46 d8
     mov dx, es                                ; 8c c2
-    call 01f53h                               ; e8 2c f9
+    call 01f53h                               ; e8 0d f9
     test ax, ax                               ; 85 c0
-    je short 02636h                           ; 74 0b
+    je short 02655h                           ; 74 0b
     push 00186h                               ; 68 86 01
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 38 f4
+    call 01a6bh                               ; e8 19 f4
     add sp, strict byte 00004h                ; 83 c4 04
     mov dl, byte [bp-00263h]                  ; 8a 96 9d fd
@@ -2916,59 +2926,60 @@
     db  00fh, 095h, 0c0h
     ; setne al                                  ; 0f 95 c0
-    movzx bx, al                              ; 0f b6 d8
+    xor ah, ah                                ; 30 e4
+    mov cx, ax                                ; 89 c1
     cmp byte [bp-00204h], 000h                ; 80 be fc fd 00
     db  00fh, 095h, 0c0h
     ; setne al                                  ; 0f 95 c0
     xor ah, ah                                ; 30 e4
-    movzx cx, byte [bp-016h]                  ; 0f b6 4e ea
-    imul cx, cx, strict byte 0001ch           ; 6b c9 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov si, word [bp-022h]                    ; 8b 76 de
-    add si, cx                                ; 01 ce
+    mov bx, ax                                ; 89 c3
+    movzx ax, byte [bp-010h]                  ; 0f b6 46 f0
+    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov si, word [bp-028h]                    ; 8b 76 d8
+    add si, ax                                ; 01 c6
     mov byte [es:si+023h], dl                 ; 26 88 54 23
-    mov byte [es:si+024h], bl                 ; 26 88 5c 24
-    mov byte [es:si+026h], al                 ; 26 88 44 26
+    mov byte [es:si+024h], cl                 ; 26 88 4c 24
+    mov byte [es:si+026h], bl                 ; 26 88 5c 26
     mov word [es:si+028h], 00800h             ; 26 c7 44 28 00 08
-    movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
-    add bx, word [bp-022h]                    ; 03 5e de
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
+    add bx, word [bp-028h]                    ; 03 5e d8
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
-    inc byte [bp-006h]                        ; fe 46 fa
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    inc byte [bp-008h]                        ; fe 46 f8
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 026bdh                           ; 74 31
+    je short 026ddh                           ; 74 2f
     cmp AL, strict byte 002h                  ; 3c 02
-    jne near 02720h                           ; 0f 85 8e 00
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov si, word [bp-022h]                    ; 8b 76 de
-    add si, ax                                ; 01 c6
-    mov ax, word [es:si+03ch]                 ; 26 8b 44 3c
-    mov bx, word [es:si+03ah]                 ; 26 8b 5c 3a
-    mov cx, word [es:si+038h]                 ; 26 8b 4c 38
-    mov dx, word [es:si+036h]                 ; 26 8b 54 36
+    jne near 02740h                           ; 0f 85 8c 00
+    movzx di, byte [bp-010h]                  ; 0f b6 7e f0
+    imul di, di, strict byte 0001ch           ; 6b ff 1c
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    add di, word [bp-028h]                    ; 03 7e d8
+    mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
+    mov bx, word [es:di+03ah]                 ; 26 8b 5d 3a
+    mov cx, word [es:di+038h]                 ; 26 8b 4d 38
+    mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a0f0h                               ; e8 39 7a
-    mov word [bp-030h], dx                    ; 89 56 d0
-    mov word [bp-02eh], cx                    ; 89 4e d2
+    call 0a110h                               ; e8 39 7a
+    mov word [bp-02ch], dx                    ; 89 56 d4
+    mov word [bp-026h], cx                    ; 89 4e da
     movzx ax, byte [bp-001c3h]                ; 0f b6 86 3d fe
     sal ax, 008h                              ; c1 e0 08
     movzx dx, byte [bp-001c4h]                ; 0f b6 96 3c fe
     or dx, ax                                 ; 09 c2
-    mov byte [bp-00ch], 00fh                  ; c6 46 f4 0f
-    jmp short 026dbh                          ; eb 09
-    dec byte [bp-00ch]                        ; fe 4e f4
-    cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jbe short 026e8h                          ; 76 0d
-    movzx cx, byte [bp-00ch]                  ; 0f b6 4e f4
+    mov byte [bp-014h], 00fh                  ; c6 46 ec 0f
+    jmp short 026fbh                          ; eb 09
+    dec byte [bp-014h]                        ; fe 4e ec
+    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    jbe short 02708h                          ; 76 0d
+    movzx cx, byte [bp-014h]                  ; 0f b6 4e ec
     mov ax, strict word 00001h                ; b8 01 00
     sal ax, CL                                ; d3 e0
     test dx, ax                               ; 85 c2
-    je short 026d2h                           ; 74 ea
+    je short 026f2h                           ; 74 ea
     xor di, di                                ; 31 ff
-    jmp short 026f1h                          ; eb 05
+    jmp short 02711h                          ; eb 05
     cmp di, strict byte 00014h                ; 83 ff 14
-    jnl short 02706h                          ; 7d 15
+    jnl short 02726h                          ; 7d 15
     mov si, di                                ; 89 fe
     add si, di                                ; 01 fe
@@ -2978,34 +2989,34 @@
     mov byte [bp+si-063h], al                 ; 88 42 9d
     inc di                                    ; 47
-    jmp short 026ech                          ; eb e6
+    jmp short 0270ch                          ; eb e6
     mov byte [bp-03ch], 000h                  ; c6 46 c4 00
     mov di, strict word 00027h                ; bf 27 00
-    jmp short 02714h                          ; eb 05
+    jmp short 02734h                          ; eb 05
     dec di                                    ; 4f
     test di, di                               ; 85 ff
-    jle short 02720h                          ; 7e 0c
+    jle short 02740h                          ; 7e 0c
     cmp byte [bp+di-064h], 020h               ; 80 7b 9c 20
-    jne short 02720h                          ; 75 06
+    jne short 02740h                          ; 75 06
     mov byte [bp+di-064h], 000h               ; c6 43 9c 00
-    jmp short 0270fh                          ; eb ef
-    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    jmp short 0272fh                          ; eb ef
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 02783h                           ; 74 5c
+    je short 027a5h                           ; 74 5e
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 02734h                           ; 74 09
+    je short 02754h                           ; 74 09
     cmp AL, strict byte 001h                  ; 3c 01
-    je near 027edh                            ; 0f 84 bc 00
-    jmp near 0280ch                           ; e9 d8 00
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 0273fh                           ; 74 05
+    je near 0280dh                            ; 0f 84 bc 00
+    jmp near 0282ch                           ; e9 d8 00
+    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
+    je short 0275fh                           ; 74 05
     mov ax, 001b1h                            ; b8 b1 01
-    jmp short 02742h                          ; eb 03
+    jmp short 02762h                          ; eb 03
     mov ax, 001b8h                            ; b8 b8 01
     push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
     push 001bfh                               ; 68 bf 01
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 1b f3
+    call 01a6bh                               ; e8 fb f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -3013,30 +3024,31 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 0276ch                           ; 74 0e
+    je short 0278ch                           ; 74 0e
     push ax                                   ; 50
     push 001cah                               ; 68 ca 01
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 04 f3
+    call 01a6bh                               ; e8 e4 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 02755h                          ; eb e9
-    push dword [bp-030h]                      ; 66 ff 76 d0
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    jmp short 02775h                          ; eb e9
+    push word [bp-026h]                       ; ff 76 da
+    push word [bp-02ch]                       ; ff 76 d4
+    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     push ax                                   ; 50
     push 001cdh                               ; 68 cd 01
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 ee f2
+    call 01a6bh                               ; e8 cc f2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0280ch                           ; e9 89 00
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 0278eh                           ; 74 05
+    jmp near 0282ch                           ; e9 87 00
+    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
+    je short 027b0h                           ; 74 05
     mov ax, 001b1h                            ; b8 b1 01
-    jmp short 02791h                          ; eb 03
+    jmp short 027b3h                          ; eb 03
     mov ax, 001b8h                            ; b8 b8 01
     push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
     push 001bfh                               ; 68 bf 01
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 cc f2
+    call 01a6bh                               ; e8 aa f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -3044,45 +3056,44 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 027bbh                           ; 74 0e
+    je short 027ddh                           ; 74 0e
     push ax                                   ; 50
     push 001cah                               ; 68 ca 01
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 b5 f2
+    call 01a6bh                               ; e8 93 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 027a4h                          ; eb e9
-    movzx ax, byte [bp-016h]                  ; 0f b6 46 ea
-    imul ax, ax, strict byte 0001ch           ; 6b c0 1c
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
+    jmp short 027c6h                          ; eb e9
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    imul bx, bx, strict byte 0001ch           ; 6b db 1c
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    add bx, word [bp-028h]                    ; 03 5e d8
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 027dbh                          ; 75 0a
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    jne short 027fbh                          ; 75 0a
+    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     push ax                                   ; 50
     push 001edh                               ; 68 ed 01
-    jmp short 027e3h                          ; eb 08
-    movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
+    jmp short 02803h                          ; eb 08
+    movzx ax, byte [bp-014h]                  ; 0f b6 46 ec
     push ax                                   ; 50
     push 00207h                               ; 68 07 02
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 83 f2
+    call 01a6bh                               ; e8 63 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0280ch                          ; eb 1f
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 027f8h                           ; 74 05
+    jmp short 0282ch                          ; eb 1f
+    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
+    je short 02818h                           ; 74 05
     mov ax, 001b1h                            ; b8 b1 01
-    jmp short 027fbh                          ; eb 03
+    jmp short 0281bh                          ; eb 03
     mov ax, 001b8h                            ; b8 b8 01
     push ax                                   ; 50
-    movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
+    movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
     push 00219h                               ; 68 19 02
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 62 f2
+    call 01a6bh                               ; e8 42 f2
     add sp, strict byte 00008h                ; 83 c4 08
-    inc byte [bp-016h]                        ; fe 46 ea
-    cmp byte [bp-016h], 008h                  ; 80 7e ea 08
-    jnc short 02867h                          ; 73 52
-    movzx bx, byte [bp-016h]                  ; 0f b6 5e ea
+    inc byte [bp-010h]                        ; fe 46 f0
+    cmp byte [bp-010h], 008h                  ; 80 7e f0 08
+    jnc short 02885h                          ; 73 50
+    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
     mov ax, bx                                ; 89 d8
     cwd                                       ; 99
@@ -3091,38 +3102,37 @@
     sar ax, 1                                 ; d1 f8
     mov cx, ax                                ; 89 c1
-    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-006h], al                    ; 88 46 fa
     mov ax, bx                                ; 89 d8
     cwd                                       ; 99
     mov bx, strict word 00002h                ; bb 02 00
     idiv bx                                   ; f7 fb
-    mov word [bp-032h], dx                    ; 89 56 ce
-    mov al, byte [bp-032h]                    ; 8a 46 ce
-    mov byte [bp-00eh], al                    ; 88 46 f2
-    movzx ax, cl                              ; 0f b6 c1
-    imul ax, ax, strict byte 00006h           ; 6b c0 06
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
-    add bx, ax                                ; 01 c3
+    mov word [bp-02eh], dx                    ; 89 56 d2
+    mov al, byte [bp-02eh]                    ; 8a 46 d2
+    mov byte [bp-016h], al                    ; 88 46 ea
+    movzx bx, cl                              ; 0f b6 d9
+    imul bx, bx, strict byte 00006h           ; 6b db 06
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    add bx, word [bp-028h]                    ; 03 5e d8
     mov si, word [es:bx+00206h]               ; 26 8b b7 06 02
     mov ax, word [es:bx+00208h]               ; 26 8b 87 08 02
-    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-020h], ax                    ; 89 46 e0
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 00ah                  ; b0 0a
     out DX, AL                                ; ee
-    cmp byte [bp-032h], 000h                  ; 80 7e ce 00
-    je near 0228fh                            ; 0f 84 2e fa
+    cmp byte [bp-02eh], 000h                  ; 80 7e d2 00
+    je near 0228fh                            ; 0f 84 10 fa
     mov ax, 000b0h                            ; b8 b0 00
-    jmp near 02292h                           ; e9 2b fa
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    mov es, [bp-034h]                         ; 8e 46 cc
-    mov bx, word [bp-022h]                    ; 8b 5e de
+    jmp near 02292h                           ; e9 0d fa
+    mov al, byte [bp-012h]                    ; 8a 46 ee
+    mov es, [bp-01ah]                         ; 8e 46 e6
+    mov bx, word [bp-028h]                    ; 8b 5e d8
     mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
-    movzx bx, byte [bp-010h]                  ; 0f b6 5e f0
+    movzx bx, byte [bp-012h]                  ; 0f b6 5e ee
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 cd ee
+    call 01757h                               ; e8 af ee
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3130,5 +3140,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ata_cmd_data_out_:                           ; 0xf2891 LB 0x2bc
+ata_cmd_data_out_:                           ; 0xf28af LB 0x2bc
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3161,7 +3171,7 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 028e9h                          ; 75 07
+    jne short 02907h                          ; 75 07
     mov word [bp-020h], 00080h                ; c7 46 e0 80 00
-    jmp short 028eeh                          ; eb 05
+    jmp short 0290ch                          ; eb 05
     mov word [bp-020h], 00100h                ; c7 46 e0 00 01
     mov dx, word [bp-00ah]                    ; 8b 56 f6
@@ -3171,5 +3181,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 0290ah                           ; 74 0f
+    je short 02928h                           ; 74 0f
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3177,5 +3187,5 @@
     out DX, AL                                ; ee
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 02b44h                           ; e9 3a 02
+    jmp near 02b62h                           ; e9 3a 02
     mov es, [bp-00ch]                         ; 8e 46 f4
     mov ax, word [es:di+006h]                 ; 26 8b 45 06
@@ -3199,5 +3209,5 @@
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     test ax, ax                               ; 85 c0
-    jne near 02a1bh                           ; 0f 85 c7 00
+    jne near 02a39h                           ; 0f 85 c7 00
     xor dx, dx                                ; 31 d2
     xor bx, bx                                ; 31 db
@@ -3208,12 +3218,12 @@
     adc ax, word [bp-010h]                    ; 13 46 f0
     test ax, ax                               ; 85 c0
-    jnbe short 0297bh                         ; 77 10
-    jne short 029deh                          ; 75 71
+    jnbe short 02999h                         ; 77 10
+    jne short 029fch                          ; 75 71
     test bx, bx                               ; 85 db
-    jnbe short 0297bh                         ; 77 0a
-    jne short 029deh                          ; 75 6b
+    jnbe short 02999h                         ; 77 0a
+    jne short 029fch                          ; 75 6b
     cmp dx, 01000h                            ; 81 fa 00 10
-    jnbe short 0297bh                         ; 77 02
-    jne short 029deh                          ; 75 63
+    jnbe short 02999h                         ; 77 02
+    jne short 029fch                          ; 75 63
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov bx, word [bp-014h]                    ; 8b 5e ec
@@ -3221,5 +3231,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00018h                ; be 18 00
-    call 0a0f0h                               ; e8 63 77
+    call 0a110h                               ; e8 65 77
     xor dh, dh                                ; 30 f6
     mov word [bp-01ch], dx                    ; 89 56 e4
@@ -3229,5 +3239,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00020h                ; be 20 00
-    call 0a0f0h                               ; e8 4c 77
+    call 0a110h                               ; e8 4e 77
     mov bx, dx                                ; 89 d3
     mov ax, word [bp-01ah]                    ; 8b 46 e6
@@ -3263,5 +3273,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00008h                ; be 08 00
-    call 0a0f0h                               ; e8 f8 76
+    call 0a110h                               ; e8 fa 76
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -3270,5 +3280,5 @@
     mov word [bp-026h], dx                    ; 89 56 da
     mov si, strict word 00010h                ; be 10 00
-    call 0a0f0h                               ; e8 e3 76
+    call 0a110h                               ; e8 e5 76
     mov word [bp-01eh], dx                    ; 89 56 e2
     mov ax, dx                                ; 89 d0
@@ -3303,7 +3313,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 02a5dh                           ; 74 05
+    je short 02a7bh                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02a60h                          ; eb 03
+    jmp short 02a7eh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     movzx dx, byte [bp-022h]                  ; 0f b6 56 de
@@ -3323,7 +3333,7 @@
     mov dl, al                                ; 88 c2
     test AL, strict byte 080h                 ; a8 80
-    jne short 02a77h                          ; 75 f1
+    jne short 02a95h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02a99h                           ; 74 0f
+    je short 02ab7h                           ; 74 0f
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3331,7 +3341,7 @@
     out DX, AL                                ; ee
     mov dx, strict word 00002h                ; ba 02 00
-    jmp near 02b44h                           ; e9 ab 00
+    jmp near 02b62h                           ; e9 ab 00
     test dl, 008h                             ; f6 c2 08
-    jne short 02aadh                          ; 75 0f
+    jne short 02acbh                          ; 75 0f
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3339,9 +3349,9 @@
     out DX, AL                                ; ee
     mov dx, strict word 00003h                ; ba 03 00
-    jmp near 02b44h                           ; e9 97 00
+    jmp near 02b62h                           ; e9 97 00
     sti                                       ; fb
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     cmp ax, 0f800h                            ; 3d 00 f8
-    jc short 02ac6h                           ; 72 10
+    jc short 02ae4h                           ; 72 10
     sub ax, 00800h                            ; 2d 00 08
     mov dx, word [bp-018h]                    ; 8b 56 e8
@@ -3350,5 +3360,5 @@
     mov word [bp-018h], dx                    ; 89 56 e8
     cmp byte [bp-008h], 001h                  ; 80 7e f8 01
-    jne short 02adeh                          ; 75 12
+    jne short 02afch                          ; 75 12
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov cx, word [bp-020h]                    ; 8b 4e e0
@@ -3357,5 +3367,5 @@
     db  0f3h, 066h, 026h, 06fh
     ; rep es outsd                              ; f3 66 26 6f
-    jmp short 02aedh                          ; eb 0f
+    jmp short 02b0bh                          ; eb 0f
     mov dx, word [bp-00ah]                    ; 8b 56 f6
     mov cx, word [bp-020h]                    ; 8b 4e e0
@@ -3375,10 +3385,10 @@
     mov dl, al                                ; 88 c2
     test AL, strict byte 080h                 ; a8 80
-    jne short 02afah                          ; 75 f1
+    jne short 02b18h                          ; 75 f1
     cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
-    jne short 02b23h                          ; 75 14
+    jne short 02b41h                          ; 75 14
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02b39h                           ; 74 24
+    je short 02b57h                           ; 74 24
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3386,9 +3396,9 @@
     out DX, AL                                ; ee
     mov dx, strict word 00006h                ; ba 06 00
-    jmp short 02b44h                          ; eb 21
+    jmp short 02b62h                          ; eb 21
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02aaeh                           ; 74 83
+    je short 02acch                           ; 74 83
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3396,5 +3406,5 @@
     out DX, AL                                ; ee
     mov dx, strict word 00007h                ; ba 07 00
-    jmp short 02b44h                          ; eb 0b
+    jmp short 02b62h                          ; eb 0b
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3408,5 +3418,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ata_read_sectors:                           ; 0xf2b4d LB 0xb5
+@ata_read_sectors:                           ; 0xf2b6b LB 0xb5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3421,5 +3431,5 @@
     sal dx, 009h                              ; c1 e2 09
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02b8eh                           ; 74 1f
+    je short 02bach                           ; 74 1f
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -3431,7 +3441,7 @@
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01f53h                               ; e8 ca f3
+    call 01f53h                               ; e8 ac f3
     mov es, [bp-00ah]                         ; 8e 46 f6
-    jmp short 02bf3h                          ; eb 65
+    jmp short 02c11h                          ; eb 65
     xor bx, bx                                ; 31 db
     mov word [bp-00ah], bx                    ; 89 5e f6
@@ -3448,17 +3458,17 @@
     adc di, word [bp-00ch]                    ; 13 7e f4
     test di, di                               ; 85 ff
-    jnbe short 02bcah                         ; 77 11
-    jne short 02bd6h                          ; 75 1b
+    jnbe short 02be8h                         ; 77 11
+    jne short 02bf4h                          ; 75 1b
     test bx, bx                               ; 85 db
-    jnbe short 02bcah                         ; 77 0b
-    jne short 02bd6h                          ; 75 15
+    jnbe short 02be8h                         ; 77 0b
+    jne short 02bf4h                          ; 75 15
     cmp word [bp-006h], 01000h                ; 81 7e fa 00 10
-    jnbe short 02bcah                         ; 77 02
-    jne short 02bd6h                          ; 75 0c
+    jnbe short 02be8h                         ; 77 02
+    jne short 02bf4h                          ; 75 0c
     mov bx, strict word 00024h                ; bb 24 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01f53h                               ; e8 7f f3
-    jmp short 02bf9h                          ; eb 23
+    call 01f53h                               ; e8 61 f3
+    jmp short 02c17h                          ; eb 23
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -3470,5 +3480,5 @@
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01f53h                               ; e8 63 f3
+    call 01f53h                               ; e8 45 f3
     mov es, [bp-006h]                         ; 8e 46 fa
     mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
@@ -3478,5 +3488,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ata_write_sectors:                          ; 0xf2c02 LB 0x5b
+@ata_write_sectors:                          ; 0xf2c20 LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3487,10 +3497,10 @@
     mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02c22h                           ; 74 0c
+    je short 02c40h                           ; 74 0c
     mov bx, strict word 00030h                ; bb 30 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 02891h                               ; e8 71 fc
-    jmp short 02c54h                          ; eb 32
+    call 028afh                               ; e8 71 fc
+    jmp short 02c72h                          ; eb 32
     xor ax, ax                                ; 31 c0
     xor bx, bx                                ; 31 db
@@ -3503,14 +3513,14 @@
     adc dx, word [es:si+006h]                 ; 26 13 54 06
     test dx, dx                               ; 85 d2
-    jnbe short 02c4fh                         ; 77 0f
-    jne short 02c16h                          ; 75 d4
+    jnbe short 02c6dh                         ; 77 0f
+    jne short 02c34h                          ; 75 d4
     test bx, bx                               ; 85 db
-    jnbe short 02c4fh                         ; 77 09
-    jne short 02c16h                          ; 75 ce
+    jnbe short 02c6dh                         ; 77 09
+    jne short 02c34h                          ; 75 ce
     cmp ax, 01000h                            ; 3d 00 10
-    jnbe short 02c4fh                         ; 77 02
-    jne short 02c16h                          ; 75 c7
+    jnbe short 02c6dh                         ; 77 02
+    jne short 02c34h                          ; 75 c7
     mov bx, strict word 00034h                ; bb 34 00
-    jmp short 02c19h                          ; eb c5
+    jmp short 02c37h                          ; eb c5
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3518,5 +3528,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ata_cmd_packet_:                             ; 0xf2c5d LB 0x2e8
+ata_cmd_packet_:                             ; 0xf2c7b LB 0x2e8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3529,5 +3539,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 f1 ea
+    call 01765h                               ; e8 d3 ea
     mov word [bp-012h], 00122h                ; c7 46 ee 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -3538,18 +3548,18 @@
     mov byte [bp-006h], ah                    ; 88 66 fa
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 02cafh                          ; 75 1f
-    mov bx, 00db6h                            ; bb b6 0d
+    jne short 02ccdh                          ; 75 1f
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 8f ed
+    call 01a2ah                               ; e8 71 ed
     push 00233h                               ; 68 33 02
     push 00242h                               ; 68 42 02
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 c5 ed
+    call 01a6bh                               ; e8 a7 ed
     add sp, strict byte 00006h                ; 83 c4 06
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 02f3ah                           ; e9 8b 02
+    jmp near 02f58h                           ; e9 8b 02
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 02ca9h                          ; 75 f4
+    jne short 02cc7h                          ; 75 f4
     xor ah, ah                                ; 30 e4
     imul ax, ax, strict byte 00006h           ; 6b c0 06
@@ -3569,8 +3579,8 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jnc short 02cf2h                          ; 73 06
+    jnc short 02d10h                          ; 73 06
     mov byte [bp-008h], 00ch                  ; c6 46 f8 0c
-    jmp short 02cf8h                          ; eb 06
-    jbe short 02cf8h                          ; 76 04
+    jmp short 02d16h                          ; eb 06
+    jbe short 02d16h                          ; 76 04
     mov byte [bp-008h], 010h                  ; c6 46 f8 10
     shr byte [bp-008h], 1                     ; d0 6e f8
@@ -3585,7 +3595,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02d20h                           ; 74 06
+    je short 02d3eh                           ; 74 06
     mov dx, strict word 00002h                ; ba 02 00
-    jmp near 02f3ah                           ; e9 1a 02
+    jmp near 02f58h                           ; e9 1a 02
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3599,7 +3609,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 02d40h                           ; 74 05
+    je short 02d5eh                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02d43h                          ; eb 03
+    jmp short 02d61h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [bx+006h]                         ; 8d 57 06
@@ -3614,7 +3624,7 @@
     mov dl, al                                ; 88 c2
     test AL, strict byte 080h                 ; a8 80
-    jne short 02d4dh                          ; 75 f4
+    jne short 02d6bh                          ; 75 f4
     test AL, strict byte 001h                 ; a8 01
-    je short 02d6ch                           ; 74 0f
+    je short 02d8ah                           ; 74 0f
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3622,7 +3632,7 @@
     out DX, AL                                ; ee
     mov dx, strict word 00003h                ; ba 03 00
-    jmp near 02f3ah                           ; e9 ce 01
+    jmp near 02f58h                           ; e9 ce 01
     test dl, 008h                             ; f6 c2 08
-    jne short 02d80h                          ; 75 0f
+    jne short 02d9eh                          ; 75 0f
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3630,5 +3640,5 @@
     out DX, AL                                ; ee
     mov dx, strict word 00004h                ; ba 04 00
-    jmp near 02f3ah                           ; e9 ba 01
+    jmp near 02f58h                           ; e9 ba 01
     sti                                       ; fb
     mov ax, di                                ; 89 f8
@@ -3643,5 +3653,5 @@
     ; rep es outsw                              ; f3 26 6f
     cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
-    jne short 02da9h                          ; 75 0b
+    jne short 02dc7h                          ; 75 0b
     lea dx, [bx+007h]                         ; 8d 57 07
     in AL, DX                                 ; ec
@@ -3649,5 +3659,5 @@
     ; sub ah, ah                                ; 2a e4
     mov dl, al                                ; 88 c2
-    jmp near 02f1bh                           ; e9 72 01
+    jmp near 02f39h                           ; e9 72 01
     lea dx, [bx+007h]                         ; 8d 57 07
     in AL, DX                                 ; ec
@@ -3656,23 +3666,23 @@
     mov dl, al                                ; 88 c2
     test AL, strict byte 080h                 ; a8 80
-    jne short 02da9h                          ; 75 f4
+    jne short 02dc7h                          ; 75 f4
     test AL, strict byte 088h                 ; a8 88
-    je near 02f1bh                            ; 0f 84 60 01
+    je near 02f39h                            ; 0f 84 60 01
     test AL, strict byte 001h                 ; a8 01
-    je short 02dcah                           ; 74 0b
+    je short 02de8h                           ; 74 0b
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02d66h                          ; eb 9c
+    jmp short 02d84h                          ; eb 9c
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02dddh                           ; 74 0b
+    je short 02dfbh                           ; 74 0b
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02d7ah                          ; eb 9d
+    jmp short 02d98h                          ; eb 9d
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     shr ax, 004h                              ; c1 e8 04
@@ -3697,10 +3707,10 @@
     mov ax, word [bp+004h]                    ; 8b 46 04
     cmp ax, cx                                ; 39 c8
-    jbe short 02e1dh                          ; 76 0c
+    jbe short 02e3bh                          ; 76 0c
     mov ax, cx                                ; 89 c8
     sub word [bp+004h], cx                    ; 29 4e 04
     xor ax, cx                                ; 31 c8
     mov word [bp-014h], ax                    ; 89 46 ec
-    jmp short 02e27h                          ; eb 0a
+    jmp short 02e45h                          ; eb 0a
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -3708,8 +3718,8 @@
     xor ax, ax                                ; 31 c0
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 02e50h                          ; 75 21
+    jne short 02e6eh                          ; 75 21
     mov dx, word [bp-014h]                    ; 8b 56 ec
     cmp dx, word [bp+006h]                    ; 3b 56 06
-    jbe short 02e50h                          ; 76 19
+    jbe short 02e6eh                          ; 76 19
     mov ax, word [bp-014h]                    ; 8b 46 ec
     sub ax, word [bp+006h]                    ; 2b 46 06
@@ -3720,5 +3730,5 @@
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 02e5ch                          ; eb 0c
+    jmp short 02e7ah                          ; eb 0c
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -3728,37 +3738,37 @@
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test cl, 003h                             ; f6 c1 03
-    je short 02e69h                           ; 74 02
+    je short 02e87h                           ; 74 02
     xor al, al                                ; 30 c0
     test byte [bp-014h], 003h                 ; f6 46 ec 03
-    je short 02e71h                           ; 74 02
+    je short 02e8fh                           ; 74 02
     xor al, al                                ; 30 c0
     test byte [bp-00ch], 003h                 ; f6 46 f4 03
-    je short 02e79h                           ; 74 02
+    je short 02e97h                           ; 74 02
     xor al, al                                ; 30 c0
     test byte [bp-014h], 001h                 ; f6 46 ec 01
-    je short 02e91h                           ; 74 12
+    je short 02eafh                           ; 74 12
     inc word [bp-014h]                        ; ff 46 ec
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    jbe short 02e91h                          ; 76 09
+    jbe short 02eafh                          ; 76 09
     test byte [bp-00ch], 001h                 ; f6 46 f4 01
-    je short 02e91h                           ; 74 03
+    je short 02eafh                           ; 74 03
     dec word [bp-00ch]                        ; ff 4e f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 02ea2h                          ; 75 0d
+    jne short 02ec0h                          ; 75 0d
     shr word [bp-014h], 002h                  ; c1 6e ec 02
     shr cx, 002h                              ; c1 e9 02
     shr word [bp-00ch], 002h                  ; c1 6e f4 02
-    jmp short 02eaah                          ; eb 08
+    jmp short 02ec8h                          ; eb 08
     shr word [bp-014h], 1                     ; d1 6e ec
     shr cx, 1                                 ; d1 e9
     shr word [bp-00ch], 1                     ; d1 6e f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 02edah                          ; 75 2c
+    jne short 02ef8h                          ; 75 2c
     test cx, cx                               ; 85 c9
-    je short 02ebch                           ; 74 0a
+    je short 02edah                           ; 74 0a
     mov dx, bx                                ; 89 da
     push eax                                  ; 66 50
     in eax, DX                                ; 66 ed
-    loop 02eb6h                               ; e2 fc
+    loop 02ed4h                               ; e2 fc
     pop eax                                   ; 66 58
     mov dx, bx                                ; 89 da
@@ -3769,16 +3779,16 @@
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     test ax, ax                               ; 85 c0
-    je short 02ef9h                           ; 74 2b
+    je short 02f17h                           ; 74 2b
     mov cx, ax                                ; 89 c1
     push eax                                  ; 66 50
     in eax, DX                                ; 66 ed
-    loop 02ed2h                               ; e2 fc
+    loop 02ef0h                               ; e2 fc
     pop eax                                   ; 66 58
-    jmp short 02ef9h                          ; eb 1f
+    jmp short 02f17h                          ; eb 1f
     test cx, cx                               ; 85 c9
-    je short 02ee3h                           ; 74 05
+    je short 02f01h                           ; 74 05
     mov dx, bx                                ; 89 da
     in ax, DX                                 ; ed
-    loop 02ee0h                               ; e2 fd
+    loop 02efeh                               ; e2 fd
     mov dx, bx                                ; 89 da
     mov cx, word [bp-014h]                    ; 8b 4e ec
@@ -3787,8 +3797,8 @@
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     test ax, ax                               ; 85 c0
-    je short 02ef9h                           ; 74 05
+    je short 02f17h                           ; 74 05
     mov cx, ax                                ; 89 c1
     in ax, DX                                 ; ed
-    loop 02ef6h                               ; e2 fd
+    loop 02f14h                               ; e2 fd
     add word [bp+00ch], si                    ; 01 76 0c
     xor ax, ax                                ; 31 c0
@@ -3801,14 +3811,14 @@
     mov ax, word [bp-016h]                    ; 8b 46 ea
     mov word [es:si+01ch], ax                 ; 26 89 44 1c
-    jmp near 02da9h                           ; e9 8e fe
+    jmp near 02dc7h                           ; e9 8e fe
     mov al, dl                                ; 88 d0
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02f2fh                           ; 74 0c
+    je short 02f4dh                           ; 74 0c
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp near 02d7ah                           ; e9 4b fe
+    jmp near 02d98h                           ; e9 4b fe
     mov dx, word [bp-010h]                    ; 8b 56 f0
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3822,5 +3832,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ata_soft_reset_:                             ; 0xf2f45 LB 0x80
+ata_soft_reset_:                             ; 0xf2f63 LB 0x80
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3832,5 +3842,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 0e e8
+    call 01765h                               ; e8 f0 e7
     mov dx, bx                                ; 89 da
     shr dx, 1                                 ; d1 ea
@@ -3847,7 +3857,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02f87h                           ; 74 05
+    je short 02fa5h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02f8ah                          ; eb 03
+    jmp short 02fa8h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, cx                                ; 89 ca
@@ -3864,13 +3874,13 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    jne short 02f98h                          ; 75 f4
+    jne short 02fb6h                          ; 75 f4
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02fb5h                           ; 74 0b
+    je short 02fd3h                           ; 74 0b
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02fbdh                          ; eb 08
+    jmp short 02fdbh                          ; eb 08
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
@@ -3883,5 +3893,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_current_cyl_:                   ; 0xf2fc5 LB 0x2a
+set_diskette_current_cyl_:                   ; 0xf2fe3 LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3889,8 +3899,8 @@
     mov dh, al                                ; 88 c6
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 02fdah                          ; 76 0b
+    jbe short 02ff8h                          ; 76 0b
     push 00262h                               ; 68 62 02
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 94 ea
+    call 01a6bh                               ; e8 76 ea
     add sp, strict byte 00004h                ; 83 c4 04
     movzx bx, dh                              ; 0f b6 de
@@ -3903,5 +3913,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_:                  ; 0xf2fef LB 0x23
+floppy_wait_for_interrupt_:                  ; 0xf300d LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3913,16 +3923,16 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 080h                 ; a8 80
-    je short 03007h                           ; 74 04
+    je short 03025h                           ; 74 04
     and AL, strict byte 080h                  ; 24 80
-    jmp short 0300ch                          ; eb 05
+    jmp short 0302ah                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02ff4h                          ; eb e8
+    jmp short 03012h                          ; eb e8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_or_timeout_:       ; 0xf3012 LB 0x38
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf3030 LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3933,7 +3943,7 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test al, al                               ; 84 c0
-    jne short 03026h                          ; 75 03
+    jne short 03044h                          ; 75 03
     sti                                       ; fb
-    jmp short 03044h                          ; eb 1e
+    jmp short 03062h                          ; eb 1e
     mov bx, strict word 0003eh                ; bb 3e 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -3941,18 +3951,18 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 080h                 ; a8 80
-    je short 0303fh                           ; 74 0a
+    je short 0305dh                           ; 74 0a
     mov ah, al                                ; 88 c4
     and ah, 07fh                              ; 80 e4 7f
     mov byte [es:bx], ah                      ; 26 88 27
-    jmp short 03044h                          ; eb 05
+    jmp short 03062h                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 03017h                          ; eb d3
+    jmp short 03035h                          ; eb d3
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_reset_controller_:                    ; 0xf304a LB 0x42
+floppy_reset_controller_:                    ; 0xf3068 LB 0x42
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3978,5 +3988,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 03065h                          ; 75 f4
+    jne short 03083h                          ; 75 f4
     mov bx, cx                                ; 89 cb
     add bx, 00090h                            ; 81 c3 90 00
@@ -3992,5 +4002,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_prepare_controller_:                  ; 0xf308c LB 0x74
+floppy_prepare_controller_:                  ; 0xf30aa LB 0x74
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4013,7 +4023,7 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     test cx, cx                               ; 85 c9
-    je short 030b8h                           ; 74 04
+    je short 030d6h                           ; 74 04
     mov AL, strict byte 020h                  ; b0 20
-    jmp short 030bah                          ; eb 02
+    jmp short 030d8h                          ; eb 02
     mov AL, strict byte 010h                  ; b0 10
     or AL, strict byte 00ch                   ; 0c 0c
@@ -4035,8 +4045,8 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 030d8h                          ; 75 f4
+    jne short 030f6h                          ; 75 f4
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 030f8h                          ; 75 0e
-    call 02fefh                               ; e8 02 ff
+    jne short 03116h                          ; 75 0e
+    call 0300dh                               ; e8 02 ff
     mov bx, strict word 0003eh                ; bb 3e 00
     mov dx, strict word 00040h                ; ba 40 00
@@ -4049,5 +4059,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_known_:                         ; 0xf3100 LB 0x49
+floppy_media_known_:                         ; 0xf311e LB 0x49
     push bx                                   ; 53
     push dx                                   ; 52
@@ -4060,13 +4070,13 @@
     mov bl, bh                                ; 88 fb
     test ax, ax                               ; 85 c0
-    je short 03118h                           ; 74 02
+    je short 03136h                           ; 74 02
     shr bl, 1                                 ; d0 eb
     and bl, 001h                              ; 80 e3 01
-    jne short 03121h                          ; 75 04
+    jne short 0313fh                          ; 75 04
     xor bh, bh                                ; 30 ff
-    jmp short 03143h                          ; eb 22
+    jmp short 03161h                          ; eb 22
     mov bx, 00090h                            ; bb 90 00
     test ax, ax                               ; 85 c0
-    je short 0312bh                           ; 74 03
+    je short 03149h                           ; 74 03
     mov bx, 00091h                            ; bb 91 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4076,7 +4086,7 @@
     sar ax, 004h                              ; c1 f8 04
     and AL, strict byte 001h                  ; 24 01
-    jne short 03140h                          ; 75 04
+    jne short 0315eh                          ; 75 04
     xor bx, bx                                ; 31 db
-    jmp short 03143h                          ; eb 03
+    jmp short 03161h                          ; eb 03
     mov bx, strict word 00001h                ; bb 01 00
     mov ax, bx                                ; 89 d8
@@ -4085,5 +4095,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-floppy_read_id_:                             ; 0xf3149 LB 0x4e
+floppy_read_id_:                             ; 0xf3167 LB 0x4e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4092,5 +4102,5 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 0308ch                               ; e8 38 ff
+    call 030aah                               ; e8 38 ff
     mov AL, strict byte 04ah                  ; b0 4a
     mov dx, 003f5h                            ; ba f5 03
@@ -4098,9 +4108,9 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02fefh                               ; e8 8f fe
+    call 0300dh                               ; e8 8f fe
     xor bx, bx                                ; 31 db
-    jmp short 03169h                          ; eb 05
+    jmp short 03187h                          ; eb 05
     cmp bx, strict byte 00007h                ; 83 fb 07
-    jnl short 0317dh                          ; 7d 14
+    jnl short 0319bh                          ; 7d 14
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4112,5 +4122,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc bx                                    ; 43
-    jmp short 03164h                          ; eb e7
+    jmp short 03182h                          ; eb e7
     mov bx, strict word 00042h                ; bb 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4127,5 +4137,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_recal_:                         ; 0xf3197 LB 0x41
+floppy_drive_recal_:                         ; 0xf31b5 LB 0x41
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4134,5 +4144,5 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 0308ch                               ; e8 ea fe
+    call 030aah                               ; e8 ea fe
     mov AL, strict byte 007h                  ; b0 07
     mov dx, 003f5h                            ; ba f5 03
@@ -4140,10 +4150,10 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02fefh                               ; e8 41 fe
+    call 0300dh                               ; e8 41 fe
     test bx, bx                               ; 85 db
-    je short 031b9h                           ; 74 07
+    je short 031d7h                           ; 74 07
     or AL, strict byte 002h                   ; 0c 02
     mov bx, 00095h                            ; bb 95 00
-    jmp short 031beh                          ; eb 05
+    jmp short 031dch                          ; eb 05
     or AL, strict byte 001h                   ; 0c 01
     mov bx, 00094h                            ; bb 94 00
@@ -4160,5 +4170,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_sense_:                         ; 0xf31d8 LB 0xe4
+floppy_media_sense_:                         ; 0xf31f6 LB 0xe4
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4168,49 +4178,49 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 03197h                               ; e8 b3 ff
+    call 031b5h                               ; e8 b3 ff
     test ax, ax                               ; 85 c0
-    jne short 031edh                          ; 75 05
+    jne short 0320bh                          ; 75 05
     xor dx, dx                                ; 31 d2
-    jmp near 032b1h                           ; e9 c4 00
+    jmp near 032cfh                           ; e9 c4 00
     mov ax, strict word 00010h                ; b8 10 00
-    call 017a5h                               ; e8 b2 e5
+    call 017a5h                               ; e8 94 e5
     test bx, bx                               ; 85 db
-    jne short 031feh                          ; 75 07
+    jne short 0321ch                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 03203h                          ; eb 05
+    jmp short 03221h                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     cmp dl, 001h                              ; 80 fa 01
-    jne short 03211h                          ; 75 09
+    jne short 0322fh                          ; 75 09
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 015h                  ; b6 15
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 0324fh                          ; eb 3e
+    jmp short 0326dh                          ; eb 3e
     cmp dl, 002h                              ; 80 fa 02
-    jne short 0321ch                          ; 75 06
+    jne short 0323ah                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 035h                  ; b6 35
-    jmp short 0320ch                          ; eb f0
+    jmp short 0322ah                          ; eb f0
     cmp dl, 003h                              ; 80 fa 03
-    jne short 03227h                          ; 75 06
+    jne short 03245h                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 017h                  ; b6 17
-    jmp short 0320ch                          ; eb e5
+    jmp short 0322ah                          ; eb e5
     cmp dl, 004h                              ; 80 fa 04
-    jne short 03232h                          ; 75 06
+    jne short 03250h                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 017h                  ; b6 17
-    jmp short 0320ch                          ; eb da
+    jmp short 0322ah                          ; eb da
     cmp dl, 005h                              ; 80 fa 05
-    jne short 0323dh                          ; 75 06
+    jne short 0325bh                          ; 75 06
     mov DL, strict byte 0cch                  ; b2 cc
     mov DH, strict byte 0d7h                  ; b6 d7
-    jmp short 0320ch                          ; eb cf
+    jmp short 0322ah                          ; eb cf
     cmp dl, 00eh                              ; 80 fa 0e
-    je short 03247h                           ; 74 05
+    je short 03265h                           ; 74 05
     cmp dl, 00fh                              ; 80 fa 0f
-    jne short 03249h                          ; 75 02
-    jmp short 03237h                          ; eb ee
+    jne short 03267h                          ; 75 02
+    jmp short 03255h                          ; eb ee
     xor dl, dl                                ; 30 d2
     xor dh, dh                                ; 30 f6
@@ -4221,30 +4231,30 @@
     mov byte [es:si], dl                      ; 26 88 14
     mov ax, bx                                ; 89 d8
-    call 03149h                               ; e8 ea fe
+    call 03167h                               ; e8 ea fe
     test ax, ax                               ; 85 c0
-    jne short 03295h                          ; 75 32
+    jne short 032b3h                          ; 75 32
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    je short 03295h                           ; 74 2a
+    je short 032b3h                           ; 74 2a
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03282h                           ; 74 0f
+    je short 032a0h                           ; 74 0f
     mov ah, dl                                ; 88 d4
     and ah, 03fh                              ; 80 e4 3f
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 0328eh                           ; 74 12
+    je short 032ach                           ; 74 12
     test al, al                               ; 84 c0
-    je short 03287h                           ; 74 07
-    jmp short 0324fh                          ; eb cd
+    je short 032a5h                           ; 74 07
+    jmp short 0326dh                          ; eb cd
     and dl, 03fh                              ; 80 e2 3f
-    jmp short 0324fh                          ; eb c8
+    jmp short 0326dh                          ; eb c8
     mov dl, ah                                ; 88 e2
     or dl, 040h                               ; 80 ca 40
-    jmp short 0324fh                          ; eb c1
+    jmp short 0326dh                          ; eb c1
     mov dl, ah                                ; 88 e2
     or dl, 080h                               ; 80 ca 80
-    jmp short 0324fh                          ; eb ba
+    jmp short 0326dh                          ; eb ba
     test bx, bx                               ; 85 db
     db  00fh, 095h, 0c0h
@@ -4266,5 +4276,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_exists_:                        ; 0xf32bc LB 0x47
+floppy_drive_exists_:                        ; 0xf32da LB 0x47
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4272,9 +4282,9 @@
     mov dx, ax                                ; 89 c2
     mov ax, strict word 00010h                ; b8 10 00
-    call 017a5h                               ; e8 dd e4
+    call 017a5h                               ; e8 bf e4
     test dx, dx                               ; 85 d2
-    jne short 032d1h                          ; 75 05
+    jne short 032efh                          ; 75 05
     shr al, 004h                              ; c0 e8 04
-    jmp short 032d3h                          ; eb 02
+    jmp short 032f1h                          ; eb 02
     and AL, strict byte 00fh                  ; 24 0f
     test al, al                               ; 84 c0
@@ -4291,22 +4301,21 @@
     add AL, strict byte 003h                  ; 04 03
     add al, byte [bx+di]                      ; 02 01
-    add byte [si+03ch], ah                    ; 00 64 3c
-    inc bx                                    ; 43
-    db  033h, 0c0h
-    ; xor ax, ax                                ; 33 c0
-    db  033h, 0e0h
-    ; xor sp, ax                                ; 33 e0
-    db  033h, 0e0h
-    ; xor sp, ax                                ; 33 e0
-    db  033h, 0e0h
-    ; xor sp, ax                                ; 33 e0
-    xor bx, word [bp+di+037h]                 ; 33 5b 37
-    sbb word [bx+di], di                      ; 19 39
-    or word [bp+si], di                       ; 09 3a
-    dec bx                                    ; 4b
-    cmp bh, byte [bx+03ah]                    ; 3a 7f 3a
-    db  0f1h
-    db  03ah
-_int13_diskette_function:                    ; 0xf3303 LB 0x984
+    add byte [bp+si+0613ch], al               ; 00 82 3c 61
+    db  033h, 0deh
+    ; xor bx, si                                ; 33 de
+    db  033h, 0feh
+    ; xor di, si                                ; 33 fe
+    db  033h, 0feh
+    ; xor di, si                                ; 33 fe
+    db  033h, 0feh
+    ; xor di, si                                ; 33 fe
+    xor di, word [bx+di+037h]                 ; 33 79 37
+    aaa                                       ; 37
+    cmp word [bx], sp                         ; 39 27
+    cmp ch, byte [bx+di+03ah]                 ; 3a 69 3a
+    popfw                                     ; 9d
+    cmp cl, byte [bx]                         ; 3a 0f
+    db  03bh
+_int13_diskette_function:                    ; 0xf3321 LB 0x984
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4316,13 +4325,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00018h                ; 3d 18 00
-    jnbe near 03c64h                          ; 0f 87 4a 09
+    jnbe near 03c82h                          ; 0f 87 4a 09
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 032e0h                            ; bf e0 32
+    mov di, 032feh                            ; bf fe 32
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov di, word [cs:di+032ebh]               ; 2e 8b bd eb 32
+    mov di, word [cs:di+03309h]               ; 2e 8b bd 09 33
     mov dx, word [bp+016h]                    ; 8b 56 16
     xor dh, dh                                ; 30 f6
@@ -4335,5 +4344,5 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jbe short 03365h                          ; 76 1a
+    jbe short 03383h                          ; 76 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4344,16 +4353,16 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 001h                    ; 26 c6 07 01
-    jmp near 03b51h                           ; e9 ec 07
+    jmp near 03b6fh                           ; e9 ec 07
     mov ax, strict word 00010h                ; b8 10 00
-    call 017a5h                               ; e8 3a e4
+    call 017a5h                               ; e8 1c e4
     test bl, bl                               ; 84 db
-    jne short 03376h                          ; 75 07
+    jne short 03394h                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 0337bh                          ; eb 05
+    jmp short 03399h                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     test dl, dl                               ; 84 d2
-    jne short 03399h                          ; 75 1a
+    jne short 033b7h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4364,5 +4373,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 03b51h                           ; e9 b8 07
+    jmp near 03b6fh                           ; e9 b8 07
     mov si, strict word 0003eh                ; be 3e 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4376,5 +4385,5 @@
     movzx ax, bl                              ; 0f b6 c3
     xor dx, dx                                ; 31 d2
-    call 02fc5h                               ; e8 09 fc
+    call 02fe3h                               ; e8 09 fc
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -4390,6 +4399,6 @@
     mov word [bp+016h], dx                    ; 89 56 16
     test al, al                               ; 84 c0
-    je short 033bch                           ; 74 df
-    jmp near 03b51h                           ; e9 71 07
+    je short 033dah                           ; 74 df
+    jmp near 03b6fh                           ; e9 71 07
     mov bh, byte [bp+016h]                    ; 8a 7e 16
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -4403,19 +4412,19 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 03410h                         ; 77 0d
+    jnbe short 0342eh                         ; 77 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 03410h                         ; 77 09
+    jnbe short 0342eh                         ; 77 09
     test bh, bh                               ; 84 ff
-    je short 03410h                           ; 74 05
+    je short 0342eh                           ; 74 05
     cmp bh, 048h                              ; 80 ff 48
-    jbe short 03443h                          ; 76 33
-    mov bx, 00db6h                            ; bb b6 0d
+    jbe short 03461h                          ; 76 33
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 0f e6
+    call 01a2ah                               ; e8 f1 e5
     push 00287h                               ; 68 87 02
     push 0029fh                               ; 68 9f 02
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 45 e6
+    call 01a6bh                               ; e8 27 e6
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -4427,18 +4436,18 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 001h                    ; 26 c6 07 01
-    jmp near 034ceh                           ; e9 8b 00
+    jmp near 034ech                           ; e9 8b 00
     movzx ax, bl                              ; 0f b6 c3
-    call 032bch                               ; e8 73 fe
+    call 032dah                               ; e8 73 fe
     test ax, ax                               ; 85 c0
-    je near 03565h                            ; 0f 84 16 01
+    je near 03583h                            ; 0f 84 16 01
     movzx cx, bl                              ; 0f b6 cb
     mov ax, cx                                ; 89 c8
-    call 03100h                               ; e8 a9 fc
+    call 0311eh                               ; e8 a9 fc
     test ax, ax                               ; 85 c0
-    jne short 0347dh                          ; 75 22
+    jne short 0349bh                          ; 75 22
     mov ax, cx                                ; 89 c8
-    call 031d8h                               ; e8 78 fd
+    call 031f6h                               ; e8 78 fd
     test ax, ax                               ; 85 c0
-    jne short 0347dh                          ; 75 19
+    jne short 0349bh                          ; 75 19
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4449,9 +4458,9 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 00ch                    ; 26 c6 07 0c
-    jmp short 034ceh                          ; eb 51
+    jmp short 034ech                          ; eb 51
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00002h                ; 3d 02 00
-    jne near 03619h                           ; 0f 85 8f 01
+    jne near 03637h                           ; 0f 85 8f 01
     mov dx, word [bp+006h]                    ; 8b 56 06
     shr dx, 00ch                              ; c1 ea 0c
@@ -4463,5 +4472,5 @@
     mov word [bp-008h], si                    ; 89 76 f8
     cmp cx, si                                ; 39 f1
-    jbe short 034a6h                          ; 76 02
+    jbe short 034c4h                          ; 76 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
@@ -4472,5 +4481,5 @@
     add dx, cx                                ; 01 ca
     cmp dx, word [bp-008h]                    ; 3b 56 f8
-    jnc short 034d5h                          ; 73 1e
+    jnc short 034f3h                          ; 73 1e
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4482,5 +4491,5 @@
     mov byte [es:bx], 009h                    ; 26 c6 07 09
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 03b51h                           ; e9 7c 06
+    jmp near 03b6fh                           ; e9 7c 06
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4517,5 +4526,5 @@
     movzx cx, bl                              ; 0f b6 cb
     mov ax, cx                                ; 89 c8
-    call 0308ch                               ; e8 6c fb
+    call 030aah                               ; e8 6c fb
     mov AL, strict byte 0e6h                  ; b0 e6
     mov dx, 003f5h                            ; ba f5 03
@@ -4545,9 +4554,9 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 03012h                               ; e8 b6 fa
+    call 03030h                               ; e8 b6 fa
     test al, al                               ; 84 c0
-    jne short 0357fh                          ; 75 1f
+    jne short 0359dh                          ; 75 1f
     mov ax, cx                                ; 89 c8
-    call 0304ah                               ; e8 e5 fa
+    call 03068h                               ; e8 e5 fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4558,5 +4567,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 034ceh                           ; e9 4f ff
+    jmp near 034ech                           ; e9 4f ff
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4565,14 +4574,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03599h                           ; 74 0e
+    je short 035b7h                           ; 74 0e
     push 00287h                               ; 68 87 02
     push 002bah                               ; 68 ba 02
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 d5 e4
+    call 01a6bh                               ; e8 b7 e4
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 035a2h                          ; eb 05
+    jmp short 035c0h                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 035b8h                          ; 7d 16
+    jnl short 035d6h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4585,5 +4594,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 0359dh                          ; eb e5
+    jmp short 035bbh                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4591,7 +4600,7 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 035e7h                           ; 74 20
+    je short 03605h                           ; 74 20
     movzx ax, bl                              ; 0f b6 c3
-    call 0304ah                               ; e8 7d fa
+    call 03068h                               ; e8 7d fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4602,5 +4611,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 020h                    ; 26 c6 07 20
-    jmp near 034ceh                           ; e9 e7 fe
+    jmp near 034ech                           ; e9 e7 fe
     movzx ax, bh                              ; 0f b6 c7
     sal ax, 009h                              ; c1 e0 09
@@ -4620,12 +4629,12 @@
     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     movzx ax, bl                              ; 0f b6 c3
-    call 02fc5h                               ; e8 b7 f9
+    call 02fe3h                               ; e8 b7 f9
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp near 033bch                           ; e9 a3 fd
+    jmp near 033dah                           ; e9 a3 fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne near 03746h                           ; 0f 85 20 01
+    jne near 03764h                           ; 0f 85 20 01
     mov cx, word [bp+006h]                    ; 8b 4e 06
     shr cx, 00ch                              ; c1 e9 0c
@@ -4637,5 +4646,5 @@
     mov word [bp-008h], si                    ; 89 76 f8
     cmp dx, si                                ; 39 f2
-    jbe short 03642h                          ; 76 02
+    jbe short 03660h                          ; 76 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
@@ -4646,5 +4655,5 @@
     add dx, cx                                ; 01 ca
     cmp dx, word [bp-008h]                    ; 3b 56 f8
-    jc near 034b7h                            ; 0f 82 62 fe
+    jc near 034d5h                            ; 0f 82 62 fe
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4681,5 +4690,5 @@
     movzx cx, bl                              ; 0f b6 cb
     mov ax, cx                                ; 89 c8
-    call 0308ch                               ; e8 ec f9
+    call 030aah                               ; e8 ec f9
     mov AL, strict byte 0c5h                  ; b0 c5
     mov dx, 003f5h                            ; ba f5 03
@@ -4709,7 +4718,7 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 03012h                               ; e8 36 f9
+    call 03030h                               ; e8 36 f9
     test al, al                               ; 84 c0
-    je near 03560h                            ; 0f 84 7e fe
+    je near 0357eh                            ; 0f 84 7e fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4718,14 +4727,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 036fch                           ; 74 0e
+    je short 0371ah                           ; 74 0e
     push 00287h                               ; 68 87 02
     push 002bah                               ; 68 ba 02
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 72 e3
+    call 01a6bh                               ; e8 54 e3
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 03705h                          ; eb 05
+    jmp short 03723h                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 0371bh                          ; 7d 16
+    jnl short 03739h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4738,5 +4747,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 03700h                          ; eb e5
+    jmp short 0371eh                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4744,19 +4753,19 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je near 03604h                            ; 0f 84 d8 fe
+    je near 03622h                            ; 0f 84 d8 fe
     mov bx, strict word 00043h                ; bb 43 00
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 002h                 ; a8 02
-    je short 0373eh                           ; 74 08
+    je short 0375ch                           ; 74 08
     mov word [bp+016h], 00300h                ; c7 46 16 00 03
-    jmp near 03b51h                           ; e9 13 04
+    jmp near 03b6fh                           ; e9 13 04
     mov word [bp+016h], 00100h                ; c7 46 16 00 01
-    jmp near 03b51h                           ; e9 0b 04
+    jmp near 03b6fh                           ; e9 0b 04
     movzx dx, byte [bp-002h]                  ; 0f b6 56 fe
     movzx ax, bl                              ; 0f b6 c3
-    call 02fc5h                               ; e8 75 f8
+    call 02fe3h                               ; e8 75 f8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 033bch                           ; e9 61 fc
+    jmp near 033dah                           ; e9 61 fc
     mov bh, byte [bp+016h]                    ; 8a 7e 16
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -4768,13 +4777,13 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 0378ah                         ; 77 12
+    jnbe short 037a8h                         ; 77 12
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 0378ah                         ; 77 0d
+    jnbe short 037a8h                         ; 77 0d
     cmp AL, strict byte 04fh                  ; 3c 4f
-    jnbe short 0378ah                         ; 77 09
+    jnbe short 037a8h                         ; 77 09
     test bh, bh                               ; 84 ff
-    je short 0378ah                           ; 74 05
+    je short 037a8h                           ; 74 05
     cmp bh, 012h                              ; 80 ff 12
-    jbe short 037a5h                          ; 76 1b
+    jbe short 037c3h                          ; 76 1b
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4787,7 +4796,7 @@
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     movzx ax, bl                              ; 0f b6 c3
-    call 032bch                               ; e8 11 fb
+    call 032dah                               ; e8 11 fb
     test ax, ax                               ; 85 c0
-    jne short 037c9h                          ; 75 1a
+    jne short 037e7h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4798,14 +4807,14 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 03b51h                           ; e9 88 03
+    jmp near 03b6fh                           ; e9 88 03
     movzx cx, bl                              ; 0f b6 cb
     mov ax, cx                                ; 89 c8
-    call 03100h                               ; e8 2f f9
+    call 0311eh                               ; e8 2f f9
     test ax, ax                               ; 85 c0
-    jne short 037e0h                          ; 75 0b
+    jne short 037feh                          ; 75 0b
     mov ax, cx                                ; 89 c8
-    call 031d8h                               ; e8 fe f9
+    call 031f6h                               ; e8 fe f9
     test ax, ax                               ; 85 c0
-    je near 03464h                            ; 0f 84 84 fc
+    je near 03482h                            ; 0f 84 84 fc
     mov dx, word [bp+006h]                    ; 8b 56 06
     shr dx, 00ch                              ; c1 ea 0c
@@ -4817,5 +4826,5 @@
     mov word [bp-008h], si                    ; 89 76 f8
     cmp cx, si                                ; 39 f1
-    jbe short 037fch                          ; 76 02
+    jbe short 0381ah                          ; 76 02
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
@@ -4826,5 +4835,5 @@
     add dx, cx                                ; 01 ca
     cmp dx, word [bp-008h]                    ; 3b 56 f8
-    jc near 034b7h                            ; 0f 82 a8 fc
+    jc near 034d5h                            ; 0f 82 a8 fc
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4861,5 +4870,5 @@
     movzx cx, bl                              ; 0f b6 cb
     mov ax, cx                                ; 89 c8
-    call 0308ch                               ; e8 32 f8
+    call 030aah                               ; e8 32 f8
     mov AL, strict byte 00fh                  ; b0 0f
     mov dx, 003f5h                            ; ba f5 03
@@ -4887,10 +4896,10 @@
     mov AL, strict byte 0f6h                  ; b0 f6
     out DX, AL                                ; ee
-    call 03012h                               ; e8 82 f7
+    call 03030h                               ; e8 82 f7
     test al, al                               ; 84 c0
-    jne short 0389ch                          ; 75 08
+    jne short 038bah                          ; 75 08
     mov ax, cx                                ; 89 c8
-    call 0304ah                               ; e8 b1 f7
-    jmp near 037afh                           ; e9 13 ff
+    call 03068h                               ; e8 b1 f7
+    jmp near 037cdh                           ; e9 13 ff
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4899,14 +4908,14 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 038b6h                           ; 74 0e
+    je short 038d4h                           ; 74 0e
     push 00287h                               ; 68 87 02
     push 002bah                               ; 68 ba 02
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 b8 e1
+    call 01a6bh                               ; e8 9a e1
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 038bfh                          ; eb 05
+    jmp short 038ddh                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 038d5h                          ; 7d 16
+    jnl short 038f3h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4919,5 +4928,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 038bah                          ; eb e5
+    jmp short 038d8h                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4925,13 +4934,13 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 038feh                           ; 74 1a
+    je short 0391ch                           ; 74 1a
     mov si, strict word 00043h                ; be 43 00
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 002h                 ; a8 02
-    jne near 03736h                           ; 0f 85 46 fe
+    jne near 03754h                           ; 0f 85 46 fe
     push 00287h                               ; 68 87 02
     push 002ceh                               ; 68 ce 02
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 70 e1
+    call 01a6bh                               ; e8 52 e1
     add sp, strict byte 00006h                ; 83 c4 06
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -4942,9 +4951,9 @@
     movzx ax, bl                              ; 0f b6 c3
     xor dx, dx                                ; 31 d2
-    call 02fc5h                               ; e8 af f6
-    jmp near 03612h                           ; e9 f9 fc
+    call 02fe3h                               ; e8 af f6
+    jmp near 03630h                           ; e9 f9 fc
     mov bl, ah                                ; 88 e3
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 0393dh                          ; 76 1d
+    jbe short 0395bh                          ; 76 1d
     xor ax, ax                                ; 31 c0
     mov word [bp+016h], ax                    ; 89 46 16
@@ -4956,20 +4965,20 @@
     movzx ax, bh                              ; 0f b6 c7
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 03a5fh                           ; e9 22 01
+    jmp near 03a7dh                           ; e9 22 01
     mov ax, strict word 00010h                ; b8 10 00
-    call 017a5h                               ; e8 62 de
+    call 017a5h                               ; e8 44 de
     mov dl, al                                ; 88 c2
     xor bh, bh                                ; 30 ff
     test AL, strict byte 0f0h                 ; a8 f0
-    je short 0394dh                           ; 74 02
+    je short 0396bh                           ; 74 02
     mov BH, strict byte 001h                  ; b7 01
     test dl, 00fh                             ; f6 c2 0f
-    je short 03954h                           ; 74 02
+    je short 03972h                           ; 74 02
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
     test bl, bl                               ; 84 db
-    jne short 0395dh                          ; 75 05
+    jne short 0397bh                          ; 75 05
     shr dl, 004h                              ; c0 ea 04
-    jmp short 03960h                          ; eb 03
+    jmp short 0397eh                          ; eb 03
     and dl, 00fh                              ; 80 e2 0f
     mov byte [bp+011h], 000h                  ; c6 46 11 00
@@ -4987,59 +4996,59 @@
     mov word [bp+012h], ax                    ; 89 46 12
     cmp dl, 003h                              ; 80 fa 03
-    jc short 039a0h                           ; 72 15
-    jbe short 039c7h                          ; 76 3a
+    jc short 039beh                           ; 72 15
+    jbe short 039e5h                          ; 76 3a
     cmp dl, 005h                              ; 80 fa 05
-    jc short 039ceh                           ; 72 3c
-    jbe short 039d5h                          ; 76 41
+    jc short 039ech                           ; 72 3c
+    jbe short 039f3h                          ; 76 41
     cmp dl, 00fh                              ; 80 fa 0f
-    je short 039e3h                           ; 74 4a
+    je short 03a01h                           ; 74 4a
     cmp dl, 00eh                              ; 80 fa 0e
-    je short 039dch                           ; 74 3e
-    jmp short 039eah                          ; eb 4a
+    je short 039fah                           ; 74 3e
+    jmp short 03a08h                          ; eb 4a
     cmp dl, 002h                              ; 80 fa 02
-    je short 039c0h                           ; 74 1b
+    je short 039deh                           ; 74 1b
     cmp dl, 001h                              ; 80 fa 01
-    je short 039b9h                           ; 74 0f
+    je short 039d7h                           ; 74 0f
     test dl, dl                               ; 84 d2
-    jne short 039eah                          ; 75 3c
+    jne short 03a08h                          ; 75 3c
     mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 039f8h                          ; eb 3f
+    jmp short 03a16h                          ; eb 3f
     mov word [bp+014h], 02709h                ; c7 46 14 09 27
-    jmp short 039f8h                          ; eb 38
+    jmp short 03a16h                          ; eb 38
     mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
-    jmp short 039f8h                          ; eb 31
+    jmp short 03a16h                          ; eb 31
     mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
-    jmp short 039f8h                          ; eb 2a
+    jmp short 03a16h                          ; eb 2a
     mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
-    jmp short 039f8h                          ; eb 23
+    jmp short 03a16h                          ; eb 23
     mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
-    jmp short 039f8h                          ; eb 1c
+    jmp short 03a16h                          ; eb 1c
     mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
-    jmp short 039f8h                          ; eb 15
+    jmp short 03a16h                          ; eb 15
     mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
-    jmp short 039f8h                          ; eb 0e
+    jmp short 03a16h                          ; eb 0e
     push 00287h                               ; 68 87 02
     push 002dfh                               ; 68 df 02
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 76 e0
+    call 01a6bh                               ; e8 58 e0
     add sp, strict byte 00006h                ; 83 c4 06
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     movzx ax, dl                              ; 0f b6 c2
-    call 03c87h                               ; e8 84 02
+    call 03ca5h                               ; e8 84 02
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03612h                           ; e9 09 fc
+    jmp near 03630h                           ; e9 09 fc
     mov bl, ah                                ; 88 e3
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 03a15h                          ; 76 05
+    jbe short 03a33h                          ; 76 05
     mov word [bp+016h], dx                    ; 89 56 16
-    jmp short 03a5fh                          ; eb 4a
+    jmp short 03a7dh                          ; eb 4a
     mov ax, strict word 00010h                ; b8 10 00
-    call 017a5h                               ; e8 8a dd
+    call 017a5h                               ; e8 6c dd
     test bl, bl                               ; 84 db
-    jne short 03a26h                          ; 75 07
+    jne short 03a44h                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 03a2bh                          ; eb 05
+    jmp short 03a49h                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
@@ -5048,14 +5057,14 @@
     xor ah, ah                                ; 30 e4
     test dl, dl                               ; 84 d2
-    je short 03a45h                           ; 74 0d
+    je short 03a63h                           ; 74 0d
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 03a42h                          ; 76 05
+    jbe short 03a60h                          ; 76 05
     or ah, 002h                               ; 80 cc 02
-    jmp short 03a45h                          ; eb 03
+    jmp short 03a63h                          ; eb 03
     or ah, 001h                               ; 80 cc 01
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 033bch                           ; e9 71 f9
+    jmp near 033dah                           ; e9 71 f9
     cmp ah, 001h                              ; 80 fc 01
-    jbe short 03a65h                          ; 76 15
+    jbe short 03a83h                          ; 76 15
     mov word [bp+016h], si                    ; 89 76 16
     mov bx, strict word 00041h                ; bb 41 00
@@ -5064,5 +5073,5 @@
     mov byte [es:bx], 001h                    ; 26 c6 07 01
     mov word [bp+01ch], cx                    ; 89 4e 1c
-    jmp near 033bch                           ; e9 57 f9
+    jmp near 033dah                           ; e9 57 f9
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5073,13 +5082,13 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 006h                    ; 26 c6 07 06
-    jmp near 03b51h                           ; e9 d2 00
+    jmp near 03b6fh                           ; e9 d2 00
     mov bl, ah                                ; 88 e3
     mov dl, byte [bp+016h]                    ; 8a 56 16
     cmp ah, 001h                              ; 80 fc 01
-    jnbe short 03a50h                         ; 77 c7
+    jnbe short 03a6eh                         ; 77 c7
     movzx ax, bl                              ; 0f b6 c3
-    call 032bch                               ; e8 2d f8
+    call 032dah                               ; e8 2d f8
     test ax, ax                               ; 85 c0
-    je near 037afh                            ; 0f 84 1a fd
+    je near 037cdh                            ; 0f 84 1a fd
     test bl, bl                               ; 84 db
     db  00fh, 095h, 0c0h
@@ -5093,18 +5102,18 @@
     and bl, 00fh                              ; 80 e3 0f
     cmp dl, 002h                              ; 80 fa 02
-    jc short 03ac3h                           ; 72 0f
-    jbe short 03ad0h                          ; 76 1a
+    jc short 03ae1h                           ; 72 0f
+    jbe short 03aeeh                          ; 76 1a
     cmp dl, 004h                              ; 80 fa 04
-    je short 03acbh                           ; 74 10
+    je short 03ae9h                           ; 74 10
     cmp dl, 003h                              ; 80 fa 03
-    je short 03ad5h                           ; 74 15
-    jmp near 0334bh                           ; e9 88 f8
+    je short 03af3h                           ; 74 15
+    jmp near 03369h                           ; e9 88 f8
     cmp dl, 001h                              ; 80 fa 01
-    je short 03acbh                           ; 74 03
-    jmp near 0334bh                           ; e9 80 f8
+    je short 03ae9h                           ; 74 03
+    jmp near 03369h                           ; e9 80 f8
     or bl, 090h                               ; 80 cb 90
-    jmp short 03ad8h                          ; eb 08
+    jmp short 03af6h                          ; eb 08
     or bl, 070h                               ; 80 cb 70
-    jmp short 03ad8h                          ; eb 03
+    jmp short 03af6h                          ; eb 03
     or bl, 010h                               ; 80 cb 10
     mov ax, strict word 00040h                ; b8 40 00
@@ -5116,5 +5125,5 @@
     mov bx, strict word 00041h                ; bb 41 00
     mov byte [es:bx], al                      ; 26 88 07
-    jmp near 03612h                           ; e9 21 fb
+    jmp near 03630h                           ; e9 21 fb
     mov bl, ah                                ; 88 e3
     mov dl, byte [bp+014h]                    ; 8a 56 14
@@ -5130,18 +5139,18 @@
     mov byte [bp-002h], dl                    ; 88 56 fe
     cmp ah, 001h                              ; 80 fc 01
-    jnbe near 03a50h                          ; 0f 87 37 ff
+    jnbe near 03a6eh                          ; 0f 87 37 ff
     movzx ax, bl                              ; 0f b6 c3
-    call 032bch                               ; e8 9d f7
+    call 032dah                               ; e8 9d f7
     test ax, ax                               ; 85 c0
-    je near 037afh                            ; 0f 84 8a fc
+    je near 037cdh                            ; 0f 84 8a fc
     movzx cx, bl                              ; 0f b6 cb
     mov ax, cx                                ; 89 c8
-    call 03100h                               ; e8 d3 f5
+    call 0311eh                               ; e8 d3 f5
     test ax, ax                               ; 85 c0
-    jne short 03b58h                          ; 75 27
+    jne short 03b76h                          ; 75 27
     mov ax, cx                                ; 89 c8
-    call 031d8h                               ; e8 a2 f6
+    call 031f6h                               ; e8 a2 f6
     test ax, ax                               ; 85 c0
-    jne short 03b58h                          ; 75 1e
+    jne short 03b76h                          ; 75 1e
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5153,12 +5162,12 @@
     mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 033bch                           ; e9 64 f8
+    jmp near 033dah                           ; e9 64 f8
     mov ax, strict word 00010h                ; b8 10 00
-    call 017a5h                               ; e8 47 dc
+    call 017a5h                               ; e8 29 dc
     test bl, bl                               ; 84 db
-    jne short 03b69h                          ; 75 07
+    jne short 03b87h                          ; 75 07
     mov dl, al                                ; 88 c2
     shr dl, 004h                              ; c0 ea 04
-    jmp short 03b6eh                          ; eb 05
+    jmp short 03b8ch                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
@@ -5174,68 +5183,68 @@
     and bl, 00fh                              ; 80 e3 0f
     cmp dl, 003h                              ; 80 fa 03
-    jc short 03baah                           ; 72 1d
+    jc short 03bc8h                           ; 72 1d
     mov al, bl                                ; 88 d8
     or AL, strict byte 090h                   ; 0c 90
     cmp dl, 003h                              ; 80 fa 03
-    jbe short 03bebh                          ; 76 55
+    jbe short 03c09h                          ; 76 55
     mov ah, bl                                ; 88 dc
     or ah, 010h                               ; 80 cc 10
     cmp dl, 005h                              ; 80 fa 05
-    je near 03c10h                            ; 0f 84 6e 00
+    je near 03c2eh                            ; 0f 84 6e 00
     cmp dl, 004h                              ; 80 fa 04
-    je short 03bfah                           ; 74 53
-    jmp near 03c2ch                           ; e9 82 00
+    je short 03c18h                           ; 74 53
+    jmp near 03c4ah                           ; e9 82 00
     cmp dl, 002h                              ; 80 fa 02
-    je short 03bcbh                           ; 74 1c
+    je short 03be9h                           ; 74 1c
     cmp dl, 001h                              ; 80 fa 01
-    jne near 03c2ch                           ; 0f 85 76 00
+    jne near 03c4ah                           ; 0f 85 76 00
     cmp byte [bp-002h], 027h                  ; 80 7e fe 27
-    jne near 03c2ch                           ; 0f 85 6e 00
+    jne near 03c4ah                           ; 0f 85 6e 00
     cmp bh, 009h                              ; 80 ff 09
-    jne near 03c2ch                           ; 0f 85 67 00
+    jne near 03c4ah                           ; 0f 85 67 00
     or bl, 090h                               ; 80 cb 90
-    jmp near 03c2ch                           ; e9 61 00
+    jmp near 03c4ah                           ; e9 61 00
     cmp byte [bp-002h], 027h                  ; 80 7e fe 27
-    jne short 03bdbh                          ; 75 0a
+    jne short 03bf9h                          ; 75 0a
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03bdbh                          ; 75 05
+    jne short 03bf9h                          ; 75 05
     or bl, 070h                               ; 80 cb 70
-    jmp short 03c2ch                          ; eb 51
+    jmp short 03c4ah                          ; eb 51
     cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
-    jne short 03c2ch                          ; 75 4b
+    jne short 03c4ah                          ; 75 4b
     cmp bh, 00fh                              ; 80 ff 0f
-    jne short 03c2ch                          ; 75 46
+    jne short 03c4ah                          ; 75 46
     or bl, 010h                               ; 80 cb 10
-    jmp short 03c2ch                          ; eb 41
+    jmp short 03c4ah                          ; eb 41
     cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
-    jne short 03c2ch                          ; 75 3b
+    jne short 03c4ah                          ; 75 3b
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03c2ch                          ; 75 36
+    jne short 03c4ah                          ; 75 36
     mov bl, al                                ; 88 c3
-    jmp short 03c2ch                          ; eb 32
+    jmp short 03c4ah                          ; eb 32
     cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
-    jne short 03c2ch                          ; 75 2c
+    jne short 03c4ah                          ; 75 2c
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03c07h                          ; 75 02
-    jmp short 03bf6h                          ; eb ef
+    jne short 03c25h                          ; 75 02
+    jmp short 03c14h                          ; eb ef
     cmp bh, 012h                              ; 80 ff 12
-    jne short 03c2ch                          ; 75 20
+    jne short 03c4ah                          ; 75 20
     mov bl, ah                                ; 88 e3
-    jmp short 03c2ch                          ; eb 1c
+    jmp short 03c4ah                          ; eb 1c
     cmp byte [bp-002h], 04fh                  ; 80 7e fe 4f
-    jne short 03c2ch                          ; 75 16
+    jne short 03c4ah                          ; 75 16
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03c1dh                          ; 75 02
-    jmp short 03bf6h                          ; eb d9
+    jne short 03c3bh                          ; 75 02
+    jmp short 03c14h                          ; eb d9
     cmp bh, 012h                              ; 80 ff 12
-    jne short 03c24h                          ; 75 02
-    jmp short 03c0ch                          ; eb e8
+    jne short 03c42h                          ; 75 02
+    jmp short 03c2ah                          ; eb e8
     cmp bh, 024h                              ; 80 ff 24
-    jne short 03c2ch                          ; 75 03
+    jne short 03c4ah                          ; 75 03
     or bl, 0d0h                               ; 80 cb d0
     movzx ax, bl                              ; 0f b6 c3
     sar ax, 004h                              ; c1 f8 04
     test AL, strict byte 001h                 ; a8 01
-    je near 03b3ah                            ; 0f 84 02 ff
+    je near 03b58h                            ; 0f 84 02 ff
     mov ax, strict word 00040h                ; b8 40 00
     mov es, ax                                ; 8e c0
@@ -5244,5 +5253,5 @@
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     movzx ax, dl                              ; 0f b6 c2
-    call 03c87h                               ; e8 39 00
+    call 03ca5h                               ; e8 39 00
     mov word [bp+008h], ax                    ; 89 46 08
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -5251,9 +5260,9 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 000h                    ; 26 c6 07 00
-    jmp near 03612h                           ; e9 ae f9
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 03630h                           ; e9 ae f9
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 bb dd
+    call 01a2ah                               ; e8 9d dd
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -5262,8 +5271,8 @@
     push 002f4h                               ; 68 f4 02
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 ea dd
+    call 01a6bh                               ; e8 cc dd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 0334bh                           ; e9 c4 f6
-get_floppy_dpt_:                             ; 0xf3c87 LB 0x2f
+    jmp near 03369h                           ; e9 c4 f6
+get_floppy_dpt_:                             ; 0xf3ca5 LB 0x2f
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5272,16 +5281,16 @@
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    jmp short 03c98h                          ; eb 06
+    jmp short 03cb6h                          ; eb 06
     inc ax                                    ; 40
     cmp ax, strict word 00007h                ; 3d 07 00
-    jnc short 03cafh                          ; 73 17
+    jnc short 03ccdh                          ; 73 17
     mov bx, ax                                ; 89 c3
     add bx, ax                                ; 01 c3
     cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
-    jne short 03c92h                          ; 75 f0
+    jne short 03cb0h                          ; 75 f0
     movzx ax, byte [word bx+0005ch]           ; 0f b6 87 5c 00
     imul ax, ax, strict byte 0000dh           ; 6b c0 0d
     add ax, strict word 00000h                ; 05 00 00
-    jmp short 03cb2h                          ; eb 03
+    jmp short 03cd0h                          ; eb 03
     mov ax, strict word 00041h                ; b8 41 00
     pop bp                                    ; 5d
@@ -5289,5 +5298,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-dummy_soft_reset_:                           ; 0xf3cb6 LB 0x7
+dummy_soft_reset_:                           ; 0xf3cd4 LB 0x7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5295,39 +5304,39 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_init:                                 ; 0xf3cbd LB 0x18
+_cdemu_init:                                 ; 0xf3cdb LB 0x18
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 9c da
+    call 01765h                               ; e8 7e da
     xor bx, bx                                ; 31 db
     mov dx, 00366h                            ; ba 66 03
-    call 01757h                               ; e8 86 da
+    call 01757h                               ; e8 68 da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_isactive:                             ; 0xf3cd5 LB 0x16
+_cdemu_isactive:                             ; 0xf3cf3 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 84 da
+    call 01765h                               ; e8 66 da
     mov dx, 00366h                            ; ba 66 03
-    call 01749h                               ; e8 62 da
+    call 01749h                               ; e8 44 da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_emulated_drive:                       ; 0xf3ceb LB 0x16
+_cdemu_emulated_drive:                       ; 0xf3d09 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 6e da
+    call 01765h                               ; e8 50 da
     mov dx, 00368h                            ; ba 68 03
-    call 01749h                               ; e8 4c da
+    call 01749h                               ; e8 2e da
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_eltorito:                             ; 0xf3d01 LB 0x189
+_int13_eltorito:                             ; 0xf3d1f LB 0x189
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5336,5 +5345,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 56 da
+    call 01765h                               ; e8 38 da
     mov si, 00366h                            ; be 66 03
     mov di, ax                                ; 89 c7
@@ -5342,26 +5351,26 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 0004bh                ; 3d 4b 00
-    jc short 03d29h                           ; 72 0a
-    jbe short 03d4fh                          ; 76 2e
+    jc short 03d47h                           ; 72 0a
+    jbe short 03d6dh                          ; 76 2e
     cmp ax, strict word 0004dh                ; 3d 4d 00
-    jbe short 03d30h                          ; 76 0a
-    jmp near 03e4eh                           ; e9 25 01
+    jbe short 03d4eh                          ; 76 0a
+    jmp near 03e6ch                           ; e9 25 01
     cmp ax, strict word 0004ah                ; 3d 4a 00
-    jne near 03e4eh                           ; 0f 85 1e 01
-    mov bx, 00db6h                            ; bb b6 0d
+    jne near 03e6ch                           ; 0f 85 1e 01
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 ef dc
+    call 01a2ah                               ; e8 d1 dc
     push word [bp+016h]                       ; ff 76 16
     push 0030eh                               ; 68 0e 03
     push 0031dh                               ; 68 1d 03
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 22 dd
+    call 01a6bh                               ; e8 04 dd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03e69h                           ; e9 1a 01
+    jmp near 03e87h                           ; e9 1a 01
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
     mov bx, strict word 00013h                ; bb 13 00
-    call 01757h                               ; e8 fc d9
+    call 01757h                               ; e8 de d9
     mov es, di                                ; 8e c7
     movzx bx, byte [es:si+001h]               ; 26 0f b6 5c 01
@@ -5369,5 +5378,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01757h                               ; e8 eb d9
+    call 01757h                               ; e8 cd d9
     mov es, di                                ; 8e c7
     movzx bx, byte [es:si+002h]               ; 26 0f b6 5c 02
@@ -5376,5 +5385,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01757h                               ; e8 d9 d9
+    call 01757h                               ; e8 bb d9
     mov es, di                                ; 8e c7
     movzx bx, byte [es:si+003h]               ; 26 0f b6 5c 03
@@ -5382,5 +5391,5 @@
     add dx, strict byte 00003h                ; 83 c2 03
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01757h                               ; e8 c6 d9
+    call 01757h                               ; e8 a8 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+008h]                 ; 26 8b 5c 08
@@ -5389,5 +5398,5 @@
     add dx, strict byte 00004h                ; 83 c2 04
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01793h                               ; e8 ec d9
+    call 01793h                               ; e8 ce d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+004h]                 ; 26 8b 5c 04
@@ -5395,5 +5404,5 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01773h                               ; e8 ba d9
+    call 01773h                               ; e8 9c d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+006h]                 ; 26 8b 5c 06
@@ -5401,5 +5410,5 @@
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01773h                               ; e8 a8 d9
+    call 01773h                               ; e8 8a d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
@@ -5407,5 +5416,5 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01773h                               ; e8 96 d9
+    call 01773h                               ; e8 78 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
@@ -5413,5 +5422,5 @@
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01773h                               ; e8 84 d9
+    call 01773h                               ; e8 66 d9
     mov es, di                                ; 8e c7
     movzx bx, byte [es:si+012h]               ; 26 0f b6 5c 12
@@ -5419,5 +5428,5 @@
     add dx, strict byte 00010h                ; 83 c2 10
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01757h                               ; e8 55 d9
+    call 01757h                               ; e8 37 d9
     mov es, di                                ; 8e c7
     movzx bx, byte [es:si+014h]               ; 26 0f b6 5c 14
@@ -5425,5 +5434,5 @@
     add dx, strict byte 00011h                ; 83 c2 11
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01757h                               ; e8 42 d9
+    call 01757h                               ; e8 24 d9
     mov es, di                                ; 8e c7
     movzx bx, byte [es:si+010h]               ; 26 0f b6 5c 10
@@ -5431,7 +5440,7 @@
     add dx, strict byte 00012h                ; 83 c2 12
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01757h                               ; e8 2f d9
+    call 01757h                               ; e8 11 d9
     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
-    jne short 03e34h                          ; 75 06
+    jne short 03e52h                          ; 75 06
     mov es, di                                ; 8e c7
     mov byte [es:si], 000h                    ; 26 c6 04 00
@@ -5440,5 +5449,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 14 d9
+    call 01757h                               ; e8 f6 d8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5447,8 +5456,8 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 d1 db
+    call 01a2ah                               ; e8 b3 db
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -5456,5 +5465,5 @@
     push 0030eh                               ; 68 0e 03
     push 00345h                               ; 68 45 03
-    jmp near 03d44h                           ; e9 db fe
+    jmp near 03d62h                           ; e9 db fe
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5466,8 +5475,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 d3 d8
+    call 01757h                               ; e8 b5 d8
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 03e47h                          ; eb bd
-device_is_cdrom_:                            ; 0xf3e8a LB 0x35
+    jmp short 03e65h                          ; eb bd
+device_is_cdrom_:                            ; 0xf3ea8 LB 0x35
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5477,9 +5486,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 cb d8
+    call 01765h                               ; e8 ad d8
     cmp bl, 010h                              ; 80 fb 10
-    jc short 03ea3h                           ; 72 04
+    jc short 03ec1h                           ; 72 04
     xor ax, ax                                ; 31 c0
-    jmp short 03eb8h                          ; eb 15
+    jmp short 03ed6h                          ; eb 15
     xor bh, bh                                ; 30 ff
     imul bx, bx, strict byte 0001ch           ; 6b db 1c
@@ -5487,5 +5496,5 @@
     add bx, 00122h                            ; 81 c3 22 01
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 03e9fh                          ; 75 ea
+    jne short 03ebdh                          ; 75 ea
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5494,5 +5503,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-cdrom_boot_:                                 ; 0xf3ebf LB 0x417
+cdrom_boot_:                                 ; 0xf3edd LB 0x417
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5505,5 +5514,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 91 d8
+    call 01765h                               ; e8 73 d8
     mov word [bp-018h], ax                    ; 89 46 e8
     mov si, 00366h                            ; be 66 03
@@ -5512,21 +5521,21 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 03ef4h                          ; eb 09
+    jmp short 03f12h                          ; eb 09
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jnc short 03effh                          ; 73 0b
+    jnc short 03f1dh                          ; 73 0b
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    call 03e8ah                               ; e8 8f ff
+    call 03ea8h                               ; e8 8f ff
     test ax, ax                               ; 85 c0
-    je short 03eebh                           ; 74 ec
+    je short 03f09h                           ; 74 ec
     cmp byte [bp-00ch], 010h                  ; 80 7e f4 10
-    jc short 03f0bh                           ; 72 06
+    jc short 03f29h                           ; 72 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 04273h                           ; e9 68 03
+    jmp near 04291h                           ; e9 68 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a110h                               ; e8 f8 61
+    call 0a130h                               ; e8 fa 61
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5544,8 +5553,8 @@
     ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 03f50h                          ; eb 09
+    jmp short 03f6eh                          ; eb 09
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 004h                  ; 80 7e f2 04
-    jnbe short 03f86h                         ; 77 36
+    jnbe short 03fa4h                         ; 77 36
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -5567,33 +5576,33 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    jne short 03f47h                          ; 75 c1
+    jne short 03f65h                          ; 75 c1
     test ax, ax                               ; 85 c0
-    je short 03f90h                           ; 74 06
+    je short 03faeh                           ; 74 06
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 04273h                           ; e9 e3 02
+    jmp near 04291h                           ; e9 e3 02
     cmp byte [bp-00826h], 000h                ; 80 be da f7 00
-    je short 03f9dh                           ; 74 06
+    je short 03fbbh                           ; 74 06
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 04273h                           ; e9 d6 02
+    jmp near 04291h                           ; e9 d6 02
     xor di, di                                ; 31 ff
-    jmp short 03fa7h                          ; eb 06
+    jmp short 03fc5h                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00005h                ; 83 ff 05
-    jnc short 03fb7h                          ; 73 10
+    jnc short 03fd5h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00dbeh]                  ; 3a 85 be 0d
-    je short 03fa1h                           ; 74 f0
+    cmp al, byte [di+00dbah]                  ; 3a 85 ba 0d
+    je short 03fbfh                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
-    jmp near 04273h                           ; e9 bc 02
+    jmp near 04291h                           ; e9 bc 02
     xor di, di                                ; 31 ff
-    jmp short 03fc1h                          ; eb 06
+    jmp short 03fdfh                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00017h                ; 83 ff 17
-    jnc short 03fd1h                          ; 73 10
+    jnc short 03fefh                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00dc4h]                  ; 3a 85 c4 0d
-    je short 03fbbh                           ; 74 f0
+    cmp al, byte [di+00dc0h]                  ; 3a 85 c0 0d
+    je short 03fd9h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 04273h                           ; e9 a2 02
+    jmp near 04291h                           ; e9 a2 02
     mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
     mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
@@ -5626,36 +5635,36 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    je short 0402dh                           ; 74 06
+    je short 0404bh                           ; 74 06
     mov ax, strict word 00007h                ; b8 07 00
-    jmp near 04273h                           ; e9 46 02
+    jmp near 04291h                           ; e9 46 02
     cmp byte [bp-00826h], 001h                ; 80 be da f7 01
-    je short 0403ah                           ; 74 06
+    je short 04058h                           ; 74 06
     mov ax, strict word 00008h                ; b8 08 00
-    jmp near 04273h                           ; e9 39 02
+    jmp near 04291h                           ; e9 39 02
     cmp byte [bp-00825h], 000h                ; 80 be db f7 00
-    je short 04047h                           ; 74 06
+    je short 04065h                           ; 74 06
     mov ax, strict word 00009h                ; b8 09 00
-    jmp near 04273h                           ; e9 2c 02
+    jmp near 04291h                           ; e9 2c 02
     cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
-    je short 04054h                           ; 74 06
+    je short 04072h                           ; 74 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    jmp near 04273h                           ; e9 1f 02
+    jmp near 04291h                           ; e9 1f 02
     cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
-    jne short 0404eh                          ; 75 f3
+    jne short 0406ch                          ; 75 f3
     cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
-    je short 04068h                           ; 74 06
+    je short 04086h                           ; 74 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    jmp near 04273h                           ; e9 0b 02
+    jmp near 04291h                           ; e9 0b 02
     mov al, byte [bp-00805h]                  ; 8a 86 fb f7
     mov es, [bp-010h]                         ; 8e 46 f0
     mov byte [es:si+001h], al                 ; 26 88 44 01
     cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
-    jne short 04081h                          ; 75 07
+    jne short 0409fh                          ; 75 07
     mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
-    jmp short 04094h                          ; eb 13
+    jmp short 040b2h                          ; eb 13
     cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
-    jnc short 0408fh                          ; 73 07
+    jnc short 040adh                          ; 73 07
     mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
-    jmp short 04094h                          ; eb 05
+    jmp short 040b2h                          ; eb 05
     mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
     movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
@@ -5675,5 +5684,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test ax, ax                               ; 85 c0
-    jne short 040c2h                          ; 75 05
+    jne short 040e0h                          ; 75 05
     mov word [bp-016h], 007c0h                ; c7 46 ea c0 07
     mov ax, word [bp-016h]                    ; 8b 46 ea
@@ -5684,9 +5693,9 @@
     mov word [es:si+00eh], di                 ; 26 89 7c 0e
     test di, di                               ; 85 ff
-    je short 040e4h                           ; 74 06
+    je short 04102h                           ; 74 06
     cmp di, 00400h                            ; 81 ff 00 04
-    jbe short 040eah                          ; 76 06
+    jbe short 04108h                          ; 76 06
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 04273h                           ; e9 89 01
+    jmp near 04291h                           ; e9 89 01
     mov ax, word [bp-007feh]                  ; 8b 86 02 f8
     mov dx, word [bp-007fch]                  ; 8b 96 04 f8
@@ -5728,5 +5737,5 @@
     sal ax, 1                                 ; d1 e0
     rcl di, 1                                 ; d1 d7
-    loop 04158h                               ; e2 fa
+    loop 04176h                               ; e2 fa
     push di                                   ; 57
     push ax                                   ; 50
@@ -5741,33 +5750,33 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test ax, ax                               ; 85 c0
-    je short 04188h                           ; 74 06
+    je short 041a6h                           ; 74 06
     mov ax, strict word 0000dh                ; b8 0d 00
-    jmp near 04273h                           ; e9 eb 00
+    jmp near 04291h                           ; e9 eb 00
     mov es, [bp-010h]                         ; 8e 46 f0
     mov al, byte [es:si+001h]                 ; 26 8a 44 01
     cmp AL, strict byte 002h                  ; 3c 02
-    jc short 041a0h                           ; 72 0d
-    jbe short 041b8h                          ; 76 23
+    jc short 041beh                           ; 72 0d
+    jbe short 041d6h                          ; 76 23
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 041ceh                           ; 74 35
+    je short 041ech                           ; 74 35
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 041c3h                           ; 74 26
-    jmp near 0421ch                           ; e9 7c 00
+    je short 041e1h                           ; 74 26
+    jmp near 0423ah                           ; e9 7c 00
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 0421ch                          ; 75 78
+    jne short 0423ah                          ; 75 78
     mov es, [bp-010h]                         ; 8e 46 f0
     db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h
     ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00
     mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
-    jmp short 0421ch                          ; eb 64
+    jmp short 0423ah                          ; eb 64
     db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h
     ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00
-    jmp short 041b0h                          ; eb ed
+    jmp short 041ceh                          ; eb ed
     db  066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h
     ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00
-    jmp short 041b0h                          ; eb e2
+    jmp short 041ceh                          ; eb e2
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01749h                               ; e8 72 d5
+    call 01749h                               ; e8 54 d5
     and AL, strict byte 03fh                  ; 24 3f
     xor ah, ah                                ; 30 e4
@@ -5776,5 +5785,5 @@
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01749h                               ; e8 5e d5
+    call 01749h                               ; e8 40 d5
     movzx bx, al                              ; 0f b6 d8
     and bl, 0c0h                              ; 80 e3 c0
@@ -5782,5 +5791,5 @@
     mov dx, 001c5h                            ; ba c5 01
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01749h                               ; e8 4c d5
+    call 01749h                               ; e8 2e d5
     xor ah, ah                                ; 30 e4
     add ax, bx                                ; 01 d8
@@ -5790,5 +5799,5 @@
     mov dx, 001c3h                            ; ba c3 01
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 01749h                               ; e8 37 d5
+    call 01749h                               ; e8 19 d5
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -5797,18 +5806,18 @@
     mov es, [bp-010h]                         ; 8e 46 f0
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 0425ah                           ; 74 34
+    je short 04278h                           ; 74 34
     cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
-    jne short 04243h                          ; 75 16
+    jne short 04261h                          ; 75 16
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 13 d5
+    call 01749h                               ; e8 f5 d4
     or AL, strict byte 041h                   ; 0c 41
     movzx bx, al                              ; 0f b6 d8
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    jmp short 04257h                          ; eb 14
+    jmp short 04275h                          ; eb 14
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01749h                               ; e8 fd d4
+    call 01749h                               ; e8 df d4
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
@@ -5816,8 +5825,8 @@
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01757h                               ; e8 fd d4
+    call 01757h                               ; e8 df d4
     mov es, [bp-010h]                         ; 8e 46 f0
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 04268h                           ; 74 04
+    je short 04286h                           ; 74 04
     mov byte [es:si], 001h                    ; 26 c6 04 01
     mov es, [bp-010h]                         ; 8e 46 f0
@@ -5833,10 +5842,10 @@
     retn                                      ; c3
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06eh, 046h, 07ch
-    db  043h, 0c6h, 043h, 0eeh, 043h, 0bbh, 043h, 0eeh, 043h, 0bbh, 043h, 0c4h, 045h, 0a1h, 043h, 06eh
-    db  046h, 06eh, 046h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 065h, 046h, 0a1h
-    db  043h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh
-    db  046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h
-_int13_cdemu:                                ; 0xf42d6 LB 0x434
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 08ch, 046h, 09ah
+    db  043h, 0e4h, 043h, 00ch, 044h, 0d9h, 043h, 00ch, 044h, 0d9h, 043h, 0e2h, 045h, 0bfh, 043h, 08ch
+    db  046h, 08ch, 046h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 083h, 046h, 0bfh
+    db  043h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch
+    db  046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h
+_int13_cdemu:                                ; 0xf42f4 LB 0x434
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5846,5 +5855,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 7e d4
+    call 01765h                               ; e8 60 d4
     mov di, 00366h                            ; bf 66 03
     mov cx, ax                                ; 89 c1
@@ -5862,17 +5871,17 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 41 d4
+    call 01757h                               ; e8 23 d4
     mov es, cx                                ; 8e c1
     cmp byte [es:di], 000h                    ; 26 80 3d 00
-    je short 0432ch                           ; 74 0e
+    je short 0434ah                           ; 74 0e
     movzx dx, byte [es:di+002h]               ; 26 0f b6 55 02
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    je short 04355h                           ; 74 29
-    mov bx, 00db6h                            ; bb b6 0d
+    je short 04373h                           ; 74 29
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 f3 d6
+    call 01a2ah                               ; e8 d5 d6
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -5884,19 +5893,19 @@
     push 0036ah                               ; 68 6a 03
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 1c d7
+    call 01a6bh                               ; e8 fe d6
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0468eh                           ; e9 39 03
+    jmp near 046ach                           ; e9 39 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe near 0466eh                          ; 0f 87 0c 03
+    jnbe near 0468ch                          ; 0f 87 0c 03
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 0427dh                            ; bf 7d 42
+    mov di, 0429bh                            ; bf 9b 42
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0429ah]               ; 2e 8b 85 9a 42
+    mov ax, word [cs:di+042b8h]               ; 2e 8b 85 b8 42
     mov bx, word [bp+016h]                    ; 8b 5e 16
     xor bh, bh                                ; 30 ff
@@ -5909,5 +5918,5 @@
     add bx, bx                                ; 01 db
     cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
-    je near 043a1h                            ; 0f 84 08 00
+    je near 043bfh                            ; 0f 84 08 00
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     call word [word bx+00076h]                ; ff 97 76 00
@@ -5916,5 +5925,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 a7 d3
+    call 01757h                               ; e8 89 d3
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5926,8 +5935,8 @@
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04696h                           ; e9 d0 02
+    jmp near 046b4h                           ; e9 d0 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 7a d3
+    call 01749h                               ; e8 5c d3
     mov cl, al                                ; 88 c1
     movzx ax, cl                              ; 0f b6 c1
@@ -5938,8 +5947,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 70 d3
+    call 01757h                               ; e8 52 d3
     test cl, cl                               ; 84 c9
-    je short 043a5h                           ; 74 ba
-    jmp near 046aah                           ; e9 bc 02
+    je short 043c3h                           ; 74 ba
+    jmp near 046c8h                           ; e9 bc 02
     mov es, [bp-008h]                         ; 8e 46 f8
     mov di, word [es:si+014h]                 ; 26 8b 7c 14
@@ -5965,17 +5974,17 @@
     mov word [bp-00ah], cx                    ; 89 4e f6
     test cx, cx                               ; 85 c9
-    jne short 0443bh                          ; 75 03
-    jmp near 043a1h                           ; e9 66 ff
+    jne short 04459h                          ; 75 03
+    jmp near 043bfh                           ; e9 66 ff
     cmp di, word [bp-010h]                    ; 3b 7e f0
-    jc near 0468eh                            ; 0f 82 4c 02
+    jc near 046ach                            ; 0f 82 4c 02
     cmp ax, dx                                ; 39 d0
-    jnc near 0468eh                           ; 0f 83 46 02
+    jnc near 046ach                           ; 0f 83 46 02
     cmp si, bx                                ; 39 de
-    jnc near 0468eh                           ; 0f 83 40 02
+    jnc near 046ach                           ; 0f 83 40 02
     mov dx, word [bp+016h]                    ; 8b 56 16
     shr dx, 008h                              ; c1 ea 08
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jne short 0445ch                          ; 75 03
-    jmp near 043a1h                           ; e9 45 ff
+    jne short 0447ah                          ; 75 03
+    jmp near 043bfh                           ; e9 45 ff
     mov dx, word [bp+010h]                    ; 8b 56 10
     shr dx, 004h                              ; c1 ea 04
@@ -5988,5 +5997,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 f6 5b
+    call 0a090h                               ; e8 f8 5b
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -5994,5 +6003,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 e9 5b
+    call 0a090h                               ; e8 eb 5b
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-010h]                    ; 8b 46 f0
@@ -6029,5 +6038,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a110h                               ; e8 32 5c
+    call 0a130h                               ; e8 34 5c
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6077,5 +6086,5 @@
     sal si, 1                                 ; d1 e6
     rcl di, 1                                 ; d1 d7
-    loop 0455eh                               ; e2 fa
+    loop 0457ch                               ; e2 fa
     push di                                   ; 57
     push si                                   ; 56
@@ -6092,9 +6101,9 @@
     ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00
     test al, al                               ; 84 c0
-    je near 043a1h                            ; 0f 84 13 fe
-    mov bx, 00db6h                            ; bb b6 0d
+    je near 043bfh                            ; 0f 84 13 fe
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 91 d4
+    call 01a2ah                               ; e8 73 d4
     movzx ax, dl                              ; 0f b6 c2
     push ax                                   ; 50
@@ -6105,5 +6114,5 @@
     push 003a0h                               ; 68 a0 03
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 bc d4
+    call 01a6bh                               ; e8 9e d4
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6112,5 +6121,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 04699h                           ; e9 d5 00
+    jmp near 046b7h                           ; e9 d5 00
     mov es, [bp-008h]                         ; 8e 46 f8
     mov di, word [es:si+014h]                 ; 26 8b 7c 14
@@ -6151,31 +6160,31 @@
     mov word [bp+010h], ax                    ; 89 46 10
     cmp dl, 003h                              ; 80 fa 03
-    je short 04648h                           ; 74 1a
+    je short 04666h                           ; 74 1a
     cmp dl, 002h                              ; 80 fa 02
-    je short 04644h                           ; 74 11
+    je short 04662h                           ; 74 11
     cmp dl, 001h                              ; 80 fa 01
-    jne short 0464ch                          ; 75 14
+    jne short 0466ah                          ; 75 14
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor al, al                                ; 30 c0
     or AL, strict byte 002h                   ; 0c 02
     mov word [bp+010h], ax                    ; 89 46 10
-    jmp short 0464ch                          ; eb 08
+    jmp short 0466ah                          ; eb 08
     or AL, strict byte 004h                   ; 0c 04
-    jmp short 0463fh                          ; eb f7
+    jmp short 0465dh                          ; eb f7
     or AL, strict byte 005h                   ; 0c 05
-    jmp short 0463fh                          ; eb f3
+    jmp short 0465dh                          ; eb f3
     mov es, [bp-008h]                         ; 8e 46 f8
     cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
-    jnc near 043a1h                           ; 0f 83 49 fd
+    jnc near 043bfh                           ; 0f 83 49 fd
     mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    jmp near 043a1h                           ; e9 3c fd
+    jmp near 043bfh                           ; e9 3c fd
     or bh, 003h                               ; 80 cf 03
     mov word [bp+016h], bx                    ; 89 5e 16
-    jmp near 043a5h                           ; e9 37 fd
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 043c3h                           ; e9 37 fd
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 b1 d3
+    call 01a2ah                               ; e8 93 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -6184,5 +6193,5 @@
     push 003c1h                               ; 68 c1 03
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 e0 d3
+    call 01a6bh                               ; e8 c2 d3
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6195,14 +6204,14 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 ad d0
+    call 01757h                               ; e8 8f d0
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 043b4h                           ; e9 03 fd
+    jmp near 043d2h                           ; e9 03 fd
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 04fh, 04ch, 0cbh
-    db  049h, 0b7h, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0cbh, 049h, 04fh
-    db  04ch, 04fh, 04ch, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0e1h, 047h, 0cbh
-    db  049h, 04fh, 04ch, 0eah, 047h, 0fdh, 047h, 0ach, 047h, 0fdh, 047h, 02bh, 049h, 0e5h, 049h, 0fdh
-    db  047h, 00ch, 04ah, 008h, 04ch, 010h, 04ch, 04fh, 04ch
-_int13_cdrom:                                ; 0xf470a LB 0x562
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06dh, 04ch, 0e9h
+    db  049h, 0d5h, 047h, 06dh, 04ch, 0cah, 047h, 06dh, 04ch, 0cah, 047h, 06dh, 04ch, 0e9h, 049h, 06dh
+    db  04ch, 06dh, 04ch, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0ffh, 047h, 0e9h
+    db  049h, 06dh, 04ch, 008h, 048h, 01bh, 048h, 0cah, 047h, 01bh, 048h, 049h, 049h, 003h, 04ah, 01bh
+    db  048h, 02ah, 04ah, 026h, 04ch, 02eh, 04ch, 06dh, 04ch
+_int13_cdrom:                                ; 0xf4728 LB 0x562
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6212,5 +6221,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 4a d0
+    call 01765h                               ; e8 2c d0
     mov word [bp-01ah], ax                    ; 89 46 e6
     mov si, 00122h                            ; be 22 01
@@ -6219,11 +6228,11 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 28 d0
+    call 01757h                               ; e8 0a d0
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
     cmp ax, 000e0h                            ; 3d e0 00
-    jc short 0473eh                           ; 72 05
+    jc short 0475ch                           ; 72 05
     cmp ax, 000f0h                            ; 3d f0 00
-    jc short 0475ch                           ; 72 1e
+    jc short 0477ah                           ; 72 1e
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6235,7 +6244,7 @@
     push 003fdh                               ; 68 fd 03
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 15 d3
+    call 01a6bh                               ; e8 f7 d2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04c2ch                           ; e9 d0 04
+    jmp near 04c4ah                           ; e9 d0 04
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6246,5 +6255,5 @@
     mov byte [bp-008h], dl                    ; 88 56 f8
     cmp dl, 010h                              ; 80 fa 10
-    jc short 04785h                           ; 72 10
+    jc short 047a3h                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+018h]                    ; 8b 46 18
@@ -6253,17 +6262,17 @@
     push 003f1h                               ; 68 f1 03
     push 00428h                               ; 68 28 04
-    jmp short 04751h                          ; eb cc
+    jmp short 0476fh                          ; eb cc
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe near 04c4fh                          ; 0f 87 bd 04
+    jnbe near 04c6dh                          ; 0f 87 bd 04
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 046b1h                            ; bf b1 46
+    mov di, 046cfh                            ; bf cf 46
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+046ceh]               ; 2e 8b 85 ce 46
+    mov ax, word [cs:di+046ech]               ; 2e 8b 85 ec 46
     mov bx, word [bp+018h]                    ; 8b 5e 18
     xor bh, bh                                ; 30 ff
@@ -6272,8 +6281,8 @@
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04c34h                           ; e9 7d 04
+    jmp near 04c52h                           ; e9 7d 04
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 89 cf
+    call 01749h                               ; e8 6b cf
     mov cl, al                                ; 88 c1
     movzx ax, cl                              ; 0f b6 c1
@@ -6284,16 +6293,16 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 7f cf
+    call 01757h                               ; e8 61 cf
     test cl, cl                               ; 84 c9
-    je near 049cfh                            ; 0f 84 f1 01
-    jmp near 04c48h                           ; e9 67 04
+    je near 049edh                            ; 0f 84 f1 01
+    jmp near 04c66h                           ; e9 67 04
     or bh, 002h                               ; 80 cf 02
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 04c37h                           ; e9 4d 04
+    jmp near 04c55h                           ; e9 4d 04
     mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
     or bh, 030h                               ; 80 cf 30
     mov word [bp+018h], bx                    ; 89 5e 18
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
-    jmp near 049cfh                           ; e9 d2 01
+    jmp near 049edh                           ; e9 d2 01
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov es, [bp+006h]                         ; 8e 46 06
@@ -6310,5 +6319,5 @@
     mov di, word [es:bx+00eh]                 ; 26 8b 7f 0e
     or di, ax                                 ; 09 c7
-    je short 04845h                           ; 74 18
+    je short 04863h                           ; 74 18
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
@@ -6317,7 +6326,7 @@
     push 0045ah                               ; 68 5a 04
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 2c d2
+    call 01a6bh                               ; e8 0e d2
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 04c2ch                           ; e9 e7 03
+    jmp near 04c4ah                           ; e9 e7 03
     les bx, [bp-014h]                         ; c4 5e ec
     mov ax, word [es:bx+008h]                 ; 26 8b 47 08
@@ -6329,12 +6338,12 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     cmp ax, strict word 00044h                ; 3d 44 00
-    je near 049cbh                            ; 0f 84 66 01
+    je near 049e9h                            ; 0f 84 66 01
     cmp ax, strict word 00047h                ; 3d 47 00
-    je near 049cbh                            ; 0f 84 5f 01
+    je near 049e9h                            ; 0f 84 5f 01
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02ch]                         ; 8d 46 d4
-    call 0a110h                               ; e8 97 58
+    call 0a130h                               ; e8 99 58
     mov word [bp-02ch], strict word 00028h    ; c7 46 d4 28 00
     mov ax, word [bp-018h]                    ; 8b 46 e8
@@ -6364,5 +6373,5 @@
     sal ax, 1                                 ; d1 e0
     rcl bx, 1                                 ; d1 d3
-    loop 048c3h                               ; e2 fa
+    loop 048e1h                               ; e2 fa
     push bx                                   ; 53
     push ax                                   ; 50
@@ -6380,13 +6389,13 @@
     shr di, 1                                 ; d1 ef
     rcr ax, 1                                 ; d1 d8
-    loop 048edh                               ; e2 fa
+    loop 0490bh                               ; e2 fa
     les bx, [bp-014h]                         ; c4 5e ec
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     test dl, dl                               ; 84 d2
-    je near 049cbh                            ; 0f 84 cb 00
-    mov bx, 00db6h                            ; bb b6 0d
+    je near 049e9h                            ; 0f 84 cb 00
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 1f d1
+    call 01a2ah                               ; e8 01 d1
     movzx ax, dl                              ; 0f b6 c2
     push ax                                   ; 50
@@ -6395,12 +6404,12 @@
     push 00483h                               ; 68 83 04
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 4e d1
+    call 01a6bh                               ; e8 30 d1
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 04c34h                           ; e9 09 03
+    jmp near 04c52h                           ; e9 09 03
     cmp bx, strict byte 00002h                ; 83 fb 02
-    jnbe near 04c2ch                          ; 0f 87 fa 02
+    jnbe near 04c4ah                          ; 0f 87 fa 02
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -6410,11 +6419,11 @@
     mov al, byte [es:di+025h]                 ; 26 8a 45 25
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 049bch                           ; 74 73
+    je short 049dah                           ; 74 73
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 04989h                           ; 74 3b
+    je short 049a7h                           ; 74 3b
     test bx, bx                               ; 85 db
-    jne near 049cbh                           ; 0f 85 77 00
+    jne near 049e9h                           ; 0f 85 77 00
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 0496ah                          ; 75 12
+    jne short 04988h                          ; 75 12
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6423,5 +6432,5 @@
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 04c34h                           ; e9 ca 02
+    jmp near 04c52h                           ; e9 ca 02
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     imul dx, dx, strict byte 0001ch           ; 6b d2 1c
@@ -6435,11 +6444,11 @@
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+018h], ax                    ; 89 46 18
-    jmp near 049cbh                           ; e9 42 00
+    jmp near 049e9h                           ; e9 42 00
     test al, al                               ; 84 c0
-    jne short 04999h                          ; 75 0c
+    jne short 049b7h                          ; 75 0c
     or bh, 0b0h                               ; 80 cf b0
     mov word [bp+018h], bx                    ; 89 5e 18
     mov byte [bp+018h], al                    ; 88 46 18
-    jmp near 04c37h                           ; e9 9e 02
+    jmp near 04c55h                           ; e9 9e 02
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     imul dx, dx, strict byte 0001ch           ; 6b d2 1c
@@ -6456,5 +6465,5 @@
     xor al, al                                ; 30 c0
     or ax, dx                                 ; 09 d0
-    jmp short 04983h                          ; eb c7
+    jmp short 049a1h                          ; eb c7
     test al, al                               ; 84 c0
     db  00fh, 095h, 0c0h
@@ -6468,5 +6477,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 7d cd
+    call 01757h                               ; e8 5f cd
     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6481,12 +6490,12 @@
     mov al, byte [es:si+025h]                 ; 26 8a 44 25
     test al, al                               ; 84 c0
-    je short 049ffh                           ; 74 06
+    je short 04a1dh                           ; 74 06
     or bh, 0b1h                               ; 80 cf b1
-    jmp near 047e4h                           ; e9 e5 fd
-    je short 049cbh                           ; 74 ca
+    jmp near 04802h                           ; e9 e5 fd
+    je short 049e9h                           ; 74 ca
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 0b1h                               ; 80 cc b1
-    jmp near 04c34h                           ; e9 28 02
+    jmp near 04c52h                           ; e9 28 02
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -6498,6 +6507,6 @@
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jc near 04c2ch                            ; 0f 82 04 02
-    jc short 04a79h                           ; 72 4f
+    jc near 04c4ah                            ; 0f 82 04 02
+    jc short 04a97h                           ; 72 4f
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -6522,5 +6531,5 @@
     ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff
     cmp word [bp-00eh], strict byte 0001eh    ; 83 7e f2 1e
-    jc near 04b50h                            ; 0f 82 cf 00
+    jc near 04b6eh                            ; 0f 82 cf 00
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:bx], strict word 0001eh      ; 26 c7 07 1e 00
@@ -6574,20 +6583,20 @@
     xor cl, cl                                ; 30 c9
     xor ch, ch                                ; 30 ed
-    jmp short 04b33h                          ; eb 05
+    jmp short 04b51h                          ; eb 05
     cmp ch, 00fh                              ; 80 fd 0f
-    jnc short 04b46h                          ; 73 13
+    jnc short 04b64h                          ; 73 13
     movzx dx, ch                              ; 0f b6 d5
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-01ah]                    ; 8b 46 e6
-    call 01749h                               ; e8 09 cc
+    call 01749h                               ; e8 eb cb
     add cl, al                                ; 00 c1
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
-    jmp short 04b2eh                          ; eb e8
+    jmp short 04b4ch                          ; eb e8
     neg cl                                    ; f6 d9
     mov es, [bp-00ch]                         ; 8e 46 f4
     mov byte [es:si+00243h], cl               ; 26 88 8c 43 02
     cmp word [bp-00eh], strict byte 00042h    ; 83 7e f2 42
-    jc near 049cbh                            ; 0f 82 73 fe
+    jc near 049e9h                            ; 0f 82 73 fe
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     cwd                                       ; 99
@@ -6607,5 +6616,5 @@
     mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00
     test al, al                               ; 84 c0
-    jne short 04b99h                          ; 75 09
+    jne short 04bb7h                          ; 75 09
     db  066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h
     ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20
@@ -6616,5 +6625,5 @@
     ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20
     test al, al                               ; 84 c0
-    jne short 04bc5h                          ; 75 13
+    jne short 04be3h                          ; 75 13
     mov word [es:bx+030h], dx                 ; 26 89 57 30
     db  066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h
@@ -6631,7 +6640,7 @@
     xor al, al                                ; 30 c0
     mov AH, strict byte 01eh                  ; b4 1e
-    jmp short 04bedh                          ; eb 05
+    jmp short 04c0bh                          ; eb 05
     cmp ah, 040h                              ; 80 fc 40
-    jnc short 04bfch                          ; 73 0f
+    jnc short 04c1ah                          ; 73 0f
     movzx si, ah                              ; 0f b6 f4
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -6640,21 +6649,21 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 04be8h                          ; eb ec
+    jmp short 04c06h                          ; eb ec
     neg al                                    ; f6 d8
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:bx+041h], al                 ; 26 88 47 41
-    jmp near 049cbh                           ; e9 c3 fd
+    jmp near 049e9h                           ; e9 c3 fd
     or bh, 006h                               ; 80 cf 06
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 04c48h                          ; eb 38
+    jmp short 04c66h                          ; eb 38
     cmp bx, strict byte 00006h                ; 83 fb 06
-    je near 049cbh                            ; 0f 84 b4 fd
+    je near 049e9h                            ; 0f 84 b4 fd
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jc short 04c2ch                           ; 72 10
-    jbe near 049cbh                           ; 0f 86 ab fd
+    jc short 04c4ah                           ; 72 10
+    jbe near 049e9h                           ; 0f 86 ab fd
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 04c2ch                           ; 72 07
+    jc short 04c4ah                           ; 72 07
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe near 049cbh                           ; 0f 86 9f fd
+    jbe near 049e9h                           ; 0f 86 9f fd
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6666,11 +6675,11 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 0f cb
+    call 01757h                               ; e8 f1 ca
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
-    jmp near 049deh                           ; e9 8f fd
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 049fch                           ; e9 8f fd
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 d0 cd
+    call 01a2ah                               ; e8 b2 cd
     mov ax, word [bp+018h]                    ; 8b 46 18
     shr ax, 008h                              ; c1 e8 08
@@ -6679,34 +6688,34 @@
     push 00345h                               ; 68 45 03
     push strict byte 00004h                   ; 6a 04
-    jmp near 0483ch                           ; e9 d0 fb
-print_boot_device_:                          ; 0xf4c6c LB 0x4b
+    jmp near 0485ah                           ; e9 d0 fb
+print_boot_device_:                          ; 0xf4c8a LB 0x4b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     test al, al                               ; 84 c0
-    je short 04c79h                           ; 74 05
+    je short 04c97h                           ; 74 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 04c93h                          ; eb 1a
+    jmp short 04cb1h                          ; eb 1a
     test dl, dl                               ; 84 d2
-    je short 04c82h                           ; 74 05
+    je short 04ca0h                           ; 74 05
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 04c93h                          ; eb 11
+    jmp short 04cb1h                          ; eb 11
     test bl, 080h                             ; f6 c3 80
-    jne short 04c8bh                          ; 75 04
+    jne short 04ca9h                          ; 75 04
     xor dh, dh                                ; 30 f6
-    jmp short 04c93h                          ; eb 08
+    jmp short 04cb1h                          ; eb 08
     test bl, 080h                             ; f6 c3 80
-    je short 04cb1h                           ; 74 21
+    je short 04ccfh                           ; 74 21
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 8c cd
+    call 01a2ah                               ; e8 6e cd
     imul dx, dx, strict byte 0000ah           ; 6b d2 0a
-    add dx, 00ddch                            ; 81 c2 dc 0d
+    add dx, 00dd8h                            ; 81 c2 d8 0d
     push dx                                   ; 52
     push 004a6h                               ; 68 a6 04
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 bd cd
+    call 01a6bh                               ; e8 9f cd
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6714,5 +6723,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_boot_failure_:                         ; 0xf4cb7 LB 0x93
+print_boot_failure_:                         ; 0xf4cd5 LB 0x93
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6723,51 +6732,51 @@
     movzx si, ah                              ; 0f b6 f4
     test al, al                               ; 84 c0
-    je short 04ce4h                           ; 74 1b
-    mov bx, 00db6h                            ; bb b6 0d
+    je short 04d02h                           ; 74 1b
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 56 cd
-    push 00df0h                               ; 68 f0 0d
+    call 01a2ah                               ; e8 38 cd
+    push 00dech                               ; 68 ec 0d
     push 004bah                               ; 68 ba 04
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 8c cd
+    call 01a6bh                               ; e8 6e cd
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 04d28h                          ; eb 44
+    jmp short 04d46h                          ; eb 44
     test dl, dl                               ; 84 d2
-    je short 04cf8h                           ; 74 10
-    mov bx, 00db6h                            ; bb b6 0d
+    je short 04d16h                           ; 74 10
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 37 cd
-    push 00dfah                               ; 68 fa 0d
-    jmp short 04cd7h                          ; eb df
+    call 01a2ah                               ; e8 19 cd
+    push 00df6h                               ; 68 f6 0d
+    jmp short 04cf5h                          ; eb df
     test bl, 080h                             ; f6 c3 80
-    je short 04d0eh                           ; 74 11
-    mov bx, 00db6h                            ; bb b6 0d
+    je short 04d2ch                           ; 74 11
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 22 cd
+    call 01a2ah                               ; e8 04 cd
     push si                                   ; 56
-    push 00de6h                               ; 68 e6 0d
-    jmp short 04d1dh                          ; eb 0f
-    mov bx, 00db6h                            ; bb b6 0d
+    push 00de2h                               ; 68 e2 0d
+    jmp short 04d3bh                          ; eb 0f
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 11 cd
+    call 01a2ah                               ; e8 f3 cc
     push si                                   ; 56
-    push 00ddch                               ; 68 dc 0d
+    push 00dd8h                               ; 68 d8 0d
     push 004cfh                               ; 68 cf 04
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 46 cd
+    call 01a6bh                               ; e8 28 cd
     add sp, strict byte 00008h                ; 83 c4 08
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04d42h                          ; 75 14
+    jne short 04d60h                          ; 75 14
     test dh, dh                               ; 84 f6
-    jne short 04d37h                          ; 75 05
+    jne short 04d55h                          ; 75 05
     push 004e7h                               ; 68 e7 04
-    jmp short 04d3ah                          ; eb 03
+    jmp short 04d58h                          ; eb 03
     push 00511h                               ; 68 11 05
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 2c cd
+    call 01a6bh                               ; e8 0e cd
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6775,5 +6784,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-print_cdromboot_failure_:                    ; 0xf4d4a LB 0x27
+print_cdromboot_failure_:                    ; 0xf4d68 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6782,12 +6791,12 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 cd cc
+    call 01a2ah                               ; e8 af cc
     push dx                                   ; 52
     push 00546h                               ; 68 46 05
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 05 cd
+    call 01a6bh                               ; e8 e7 cc
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -6797,5 +6806,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int19_function:                             ; 0xf4d71 LB 0x256
+_int19_function:                             ; 0xf4d8f LB 0x256
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6805,13 +6814,13 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 e3 c9
+    call 01765h                               ; e8 c5 c9
     mov bx, ax                                ; 89 c3
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov ax, strict word 0003dh                ; b8 3d 00
-    call 017a5h                               ; e8 14 ca
+    call 017a5h                               ; e8 f6 c9
     movzx si, al                              ; 0f b6 f0
     mov ax, strict word 00038h                ; b8 38 00
-    call 017a5h                               ; e8 0b ca
+    call 017a5h                               ; e8 ed c9
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
@@ -6819,5 +6828,5 @@
     or si, ax                                 ; 09 c6
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 017a5h                               ; e8 fc c9
+    call 017a5h                               ; e8 de c9
     and AL, strict byte 00fh                  ; 24 0f
     xor ah, ah                                ; 30 e4
@@ -6826,30 +6835,30 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01749h                               ; e8 8f c9
+    call 01749h                               ; e8 71 c9
     test al, al                               ; 84 c0
-    je short 04dc9h                           ; 74 0b
+    je short 04de7h                           ; 74 0b
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01749h                               ; e8 83 c9
+    call 01749h                               ; e8 65 c9
     movzx si, al                              ; 0f b6 f0
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04ddfh                          ; 75 10
+    jne short 04dfdh                          ; 75 10
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 017a5h                               ; e8 d0 c9
+    call 017a5h                               ; e8 b2 c9
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
     sar ax, 004h                              ; c1 f8 04
-    call 07e53h                               ; e8 74 30
+    call 07e71h                               ; e8 74 30
     cmp byte [bp+004h], 002h                  ; 80 7e 04 02
-    jne short 04de8h                          ; 75 03
+    jne short 04e06h                          ; 75 03
     shr si, 004h                              ; c1 ee 04
     cmp byte [bp+004h], 003h                  ; 80 7e 04 03
-    jne short 04df1h                          ; 75 03
+    jne short 04e0fh                          ; 75 03
     shr si, 008h                              ; c1 ee 08
     cmp byte [bp+004h], 004h                  ; 80 7e 04 04
-    jne short 04dfah                          ; 75 03
+    jne short 04e18h                          ; 75 03
     shr si, 00ch                              ; c1 ee 0c
     cmp si, strict byte 00010h                ; 83 fe 10
-    jnc short 04e03h                          ; 73 04
+    jnc short 04e21h                          ; 73 04
     mov byte [bp-008h], 001h                  ; c6 46 f8 01
     xor al, al                                ; 30 c0
@@ -6857,8 +6866,8 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     mov byte [bp-00ch], al                    ; 88 46 f4
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 11 cc
+    call 01a2ah                               ; e8 f3 cb
     push si                                   ; 56
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
@@ -6866,39 +6875,39 @@
     push 00566h                               ; 68 66 05
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 44 cc
+    call 01a6bh                               ; e8 26 cc
     add sp, strict byte 00008h                ; 83 c4 08
     and si, strict byte 0000fh                ; 83 e6 0f
     cmp si, strict byte 00002h                ; 83 fe 02
-    jc short 04e40h                           ; 72 0e
-    jbe short 04e4fh                          ; 76 1b
+    jc short 04e5eh                           ; 72 0e
+    jbe short 04e6dh                          ; 76 1b
     cmp si, strict byte 00004h                ; 83 fe 04
-    je short 04e6dh                           ; 74 34
+    je short 04e8bh                           ; 74 34
     cmp si, strict byte 00003h                ; 83 fe 03
-    je short 04e63h                           ; 74 25
-    jmp short 04e9ah                          ; eb 5a
+    je short 04e81h                           ; 74 25
+    jmp short 04eb8h                          ; eb 5a
     cmp si, strict byte 00001h                ; 83 fe 01
-    jne short 04e9ah                          ; 75 55
+    jne short 04eb8h                          ; 75 55
     xor al, al                                ; 30 c0
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-00ah], al                    ; 88 46 f6
-    jmp short 04eb2h                          ; eb 63
+    jmp short 04ed0h                          ; eb 63
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 01749h                               ; e8 f1 c8
+    call 01749h                               ; e8 d3 c8
     add AL, strict byte 080h                  ; 04 80
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-00ah], 000h                  ; c6 46 f6 00
-    jmp short 04eb2h                          ; eb 4f
+    jmp short 04ed0h                          ; eb 4f
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov byte [bp-00ah], 001h                  ; c6 46 f6 01
-    jmp short 04e77h                          ; eb 0a
+    jmp short 04e95h                          ; eb 0a
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 04eb2h                           ; 74 3b
-    call 03ebfh                               ; e8 45 f0
+    je short 04ed0h                           ; 74 3b
+    call 03eddh                               ; e8 45 f0
     mov bx, ax                                ; 89 c3
     test AL, strict byte 0ffh                 ; a8 ff
-    je short 04ea1h                           ; 74 21
-    call 04d4ah                               ; e8 c7 fe
+    je short 04ebfh                           ; 74 21
+    call 04d68h                               ; e8 c7 fe
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
@@ -6907,45 +6916,45 @@
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     mov cx, strict word 00001h                ; b9 01 00
-    call 04cb7h                               ; e8 1d fe
+    call 04cd5h                               ; e8 1d fe
     xor ax, ax                                ; 31 c0
     xor dx, dx                                ; 31 d2
-    jmp near 04fc0h                           ; e9 1f 01
+    jmp near 04fdeh                           ; e9 1f 01
     mov dx, 00372h                            ; ba 72 03
     mov ax, word [bp-00eh]                    ; 8b 46 f2
-    call 01765h                               ; e8 bb c8
+    call 01765h                               ; e8 9d c8
     mov di, ax                                ; 89 c7
     shr bx, 008h                              ; c1 eb 08
     mov byte [bp-006h], bl                    ; 88 5e fa
     cmp byte [bp-00ch], 001h                  ; 80 7e f4 01
-    jne near 04f2eh                           ; 0f 85 74 00
+    jne near 04f4ch                           ; 0f 85 74 00
     xor si, si                                ; 31 f6
     mov ax, 0e200h                            ; b8 00 e2
     mov es, ax                                ; 8e c0
     cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 04e83h                          ; 75 bb
+    jne short 04ea1h                          ; 75 bb
     mov cx, ax                                ; 89 c1
     mov si, word [es:si+01ah]                 ; 26 8b 74 1a
     cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
-    jne short 04e83h                          ; 75 ad
+    jne short 04ea1h                          ; 75 ad
     cmp word [es:si], 05024h                  ; 26 81 3c 24 50
-    jne short 04e83h                          ; 75 a6
+    jne short 04ea1h                          ; 75 a6
     mov di, word [es:si+00eh]                 ; 26 8b 7c 0e
     mov dx, word [es:di]                      ; 26 8b 15
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, 06568h                            ; 3d 68 65
-    jne short 04f0ch                          ; 75 1f
+    jne short 04f2ah                          ; 75 1f
     cmp dx, 07445h                            ; 81 fa 45 74
-    jne short 04f0ch                          ; 75 19
+    jne short 04f2ah                          ; 75 19
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 04c6ch                               ; e8 6a fd
+    call 04c8ah                               ; e8 6a fd
     mov word [bp-012h], strict word 00006h    ; c7 46 ee 06 00
     mov word [bp-010h], cx                    ; 89 4e f0
-    jmp short 04f28h                          ; eb 1c
+    jmp short 04f46h                          ; eb 1c
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 04c6ch                               ; e8 51 fd
+    call 04c8ah                               ; e8 51 fd
     sti                                       ; fb
     mov word [bp-010h], cx                    ; 89 4e f0
@@ -6954,9 +6963,9 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     call far [bp-012h]                        ; ff 5e ee
-    jmp near 04e83h                           ; e9 55 ff
+    jmp near 04ea1h                           ; e9 55 ff
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 04f5ah                          ; 75 26
+    jne short 04f78h                          ; 75 26
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 04f5ah                          ; 75 20
+    jne short 04f78h                          ; 75 20
     mov di, 007c0h                            ; bf c0 07
     mov es, di                                ; 8e c7
@@ -6971,27 +6980,27 @@
     sbb ax, strict byte 00000h                ; 83 d8 00
     test ax, ax                               ; 85 c0
-    jne near 04e83h                           ; 0f 85 29 ff
+    jne near 04ea1h                           ; 0f 85 29 ff
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     db  00fh, 094h, 0c1h
     ; sete cl                                   ; 0f 94 c1
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 04f69h                           ; 74 02
+    je short 04f87h                           ; 74 02
     mov CL, strict byte 001h                  ; b1 01
     xor dx, dx                                ; 31 d2
     mov ax, di                                ; 89 f8
-    call 01765h                               ; e8 f5 c7
+    call 01765h                               ; e8 d7 c7
     mov bx, ax                                ; 89 c3
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, di                                ; 89 f8
-    call 01765h                               ; e8 eb c7
+    call 01765h                               ; e8 cd c7
     cmp bx, ax                                ; 39 c3
-    je short 04f8fh                           ; 74 11
+    je short 04fadh                           ; 74 11
     test cl, cl                               ; 84 c9
-    jne short 04fa5h                          ; 75 23
+    jne short 04fc3h                          ; 75 23
     mov dx, 001feh                            ; ba fe 01
     mov ax, di                                ; 89 f8
-    call 01765h                               ; e8 db c7
+    call 01765h                               ; e8 bd c7
     cmp ax, 0aa55h                            ; 3d 55 aa
-    je short 04fa5h                           ; 74 16
+    je short 04fc3h                           ; 74 16
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
@@ -7000,9 +7009,9 @@
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     xor cx, cx                                ; 31 c9
-    jmp near 04e97h                           ; e9 f2 fe
+    jmp near 04eb5h                           ; e9 f2 fe
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     movzx dx, byte [bp-00ch]                  ; 0f b6 56 f4
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
-    call 04c6ch                               ; e8 b8 fc
+    call 04c8ah                               ; e8 b8 fc
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     xor dx, dx                                ; 31 d2
@@ -7015,5 +7024,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-keyboard_panic_:                             ; 0xf4fc7 LB 0x13
+keyboard_panic_:                             ; 0xf4fe5 LB 0x13
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7021,10 +7030,10 @@
     push 00586h                               ; 68 86 05
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 98 ca
+    call 01a6bh                               ; e8 7a ca
     add sp, strict byte 00006h                ; 83 c4 06
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_keyboard_init:                              ; 0xf4fda LB 0x26a
+_keyboard_init:                              ; 0xf4ff8 LB 0x26a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7038,16 +7047,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 04ffdh                           ; 74 0d
+    je short 0501bh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 04ffdh                          ; 76 08
+    jbe short 0501bh                          ; 76 08
     xor al, al                                ; 30 c0
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 04fe6h                          ; eb e9
+    jmp short 05004h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05006h                          ; 75 05
+    jne short 05024h                          ; 75 05
     xor ax, ax                                ; 31 c0
-    call 04fc7h                               ; e8 c1 ff
+    call 04fe5h                               ; e8 c1 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7056,16 +7065,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05020h                          ; 75 0d
+    jne short 0503eh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05020h                          ; 76 08
+    jbe short 0503eh                          ; 76 08
     mov AL, strict byte 001h                  ; b0 01
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05009h                          ; eb e9
+    jmp short 05027h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0502ah                          ; 75 06
+    jne short 05048h                          ; 75 06
     mov ax, strict word 00001h                ; b8 01 00
-    call 04fc7h                               ; e8 9d ff
+    call 04fe5h                               ; e8 9d ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7073,7 +7082,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, strict word 00055h                ; 3d 55 00
-    je short 0503bh                           ; 74 06
+    je short 05059h                           ; 74 06
     mov ax, 003dfh                            ; b8 df 03
-    call 04fc7h                               ; e8 8c ff
+    call 04fe5h                               ; e8 8c ff
     mov AL, strict byte 0abh                  ; b0 ab
     mov dx, strict word 00064h                ; ba 64 00
@@ -7085,16 +7094,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0505bh                           ; 74 0d
+    je short 05079h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0505bh                          ; 76 08
+    jbe short 05079h                          ; 76 08
     mov AL, strict byte 010h                  ; b0 10
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05044h                          ; eb e9
+    jmp short 05062h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05065h                          ; 75 06
+    jne short 05083h                          ; 75 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 04fc7h                               ; e8 62 ff
+    call 04fe5h                               ; e8 62 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7103,16 +7112,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0507fh                          ; 75 0d
+    jne short 0509dh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0507fh                          ; 76 08
+    jbe short 0509dh                          ; 76 08
     mov AL, strict byte 011h                  ; b0 11
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05068h                          ; eb e9
+    jmp short 05086h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05089h                          ; 75 06
+    jne short 050a7h                          ; 75 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 04fc7h                               ; e8 3e ff
+    call 04fe5h                               ; e8 3e ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7120,7 +7129,7 @@
     ; sub ah, ah                                ; 2a e4
     test ax, ax                               ; 85 c0
-    je short 05099h                           ; 74 06
+    je short 050b7h                           ; 74 06
     mov ax, 003e0h                            ; b8 e0 03
-    call 04fc7h                               ; e8 2e ff
+    call 04fe5h                               ; e8 2e ff
     mov AL, strict byte 0ffh                  ; b0 ff
     mov dx, strict word 00060h                ; ba 60 00
@@ -7132,16 +7141,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050b9h                           ; 74 0d
+    je short 050d7h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050b9h                          ; 76 08
+    jbe short 050d7h                          ; 76 08
     mov AL, strict byte 020h                  ; b0 20
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050a2h                          ; eb e9
+    jmp short 050c0h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050c3h                          ; 75 06
+    jne short 050e1h                          ; 75 06
     mov ax, strict word 00014h                ; b8 14 00
-    call 04fc7h                               ; e8 04 ff
+    call 04fe5h                               ; e8 04 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7150,16 +7159,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 050ddh                          ; 75 0d
+    jne short 050fbh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050ddh                          ; 76 08
+    jbe short 050fbh                          ; 76 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050c6h                          ; eb e9
+    jmp short 050e4h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050e7h                          ; 75 06
+    jne short 05105h                          ; 75 06
     mov ax, strict word 00015h                ; b8 15 00
-    call 04fc7h                               ; e8 e0 fe
+    call 04fe5h                               ; e8 e0 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7167,7 +7176,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 050f8h                           ; 74 06
+    je short 05116h                           ; 74 06
     mov ax, 003e1h                            ; b8 e1 03
-    call 04fc7h                               ; e8 cf fe
+    call 04fe5h                               ; e8 cf fe
     mov dx, strict word 00064h                ; ba 64 00
     in AL, DX                                 ; ec
@@ -7175,9 +7184,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0510ah                          ; 75 08
+    jne short 05128h                          ; 75 08
     mov AL, strict byte 031h                  ; b0 31
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050f8h                          ; eb ee
+    jmp short 05116h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7185,12 +7194,12 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 05123h                           ; 74 0e
+    je short 05141h                           ; 74 0e
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 05123h                           ; 74 06
+    je short 05141h                           ; 74 06
     mov ax, 003e2h                            ; b8 e2 03
-    call 04fc7h                               ; e8 a4 fe
+    call 04fe5h                               ; e8 a4 fe
     mov AL, strict byte 0f5h                  ; b0 f5
     mov dx, strict word 00060h                ; ba 60 00
@@ -7202,16 +7211,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 05143h                           ; 74 0d
+    je short 05161h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05143h                          ; 76 08
+    jbe short 05161h                          ; 76 08
     mov AL, strict byte 040h                  ; b0 40
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0512ch                          ; eb e9
+    jmp short 0514ah                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0514dh                          ; 75 06
+    jne short 0516bh                          ; 75 06
     mov ax, strict word 00028h                ; b8 28 00
-    call 04fc7h                               ; e8 7a fe
+    call 04fe5h                               ; e8 7a fe
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7220,16 +7229,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05167h                          ; 75 0d
+    jne short 05185h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05167h                          ; 76 08
+    jbe short 05185h                          ; 76 08
     mov AL, strict byte 041h                  ; b0 41
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05150h                          ; eb e9
+    jmp short 0516eh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05171h                          ; 75 06
+    jne short 0518fh                          ; 75 06
     mov ax, strict word 00029h                ; b8 29 00
-    call 04fc7h                               ; e8 56 fe
+    call 04fe5h                               ; e8 56 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7237,7 +7246,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 05182h                           ; 74 06
+    je short 051a0h                           ; 74 06
     mov ax, 003e3h                            ; b8 e3 03
-    call 04fc7h                               ; e8 45 fe
+    call 04fe5h                               ; e8 45 fe
     mov AL, strict byte 060h                  ; b0 60
     mov dx, strict word 00064h                ; ba 64 00
@@ -7249,16 +7258,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 051a2h                           ; 74 0d
+    je short 051c0h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051a2h                          ; 76 08
+    jbe short 051c0h                          ; 76 08
     mov AL, strict byte 050h                  ; b0 50
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0518bh                          ; eb e9
+    jmp short 051a9h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 051ach                          ; 75 06
+    jne short 051cah                          ; 75 06
     mov ax, strict word 00032h                ; b8 32 00
-    call 04fc7h                               ; e8 1b fe
+    call 04fe5h                               ; e8 1b fe
     mov AL, strict byte 065h                  ; b0 65
     mov dx, strict word 00060h                ; ba 60 00
@@ -7270,16 +7279,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 051cch                           ; 74 0d
+    je short 051eah                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051cch                          ; 76 08
+    jbe short 051eah                          ; 76 08
     mov AL, strict byte 060h                  ; b0 60
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051b5h                          ; eb e9
+    jmp short 051d3h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 051d6h                          ; 75 06
+    jne short 051f4h                          ; 75 06
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 04fc7h                               ; e8 f1 fd
+    call 04fe5h                               ; e8 f1 fd
     mov AL, strict byte 0f4h                  ; b0 f4
     mov dx, strict word 00060h                ; ba 60 00
@@ -7291,16 +7300,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 051f6h                           ; 74 0d
+    je short 05214h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051f6h                          ; 76 08
+    jbe short 05214h                          ; 76 08
     mov AL, strict byte 070h                  ; b0 70
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051dfh                          ; eb e9
+    jmp short 051fdh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05200h                          ; 75 06
+    jne short 0521eh                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04fc7h                               ; e8 c7 fd
+    call 04fe5h                               ; e8 c7 fd
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7309,16 +7318,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0521ah                          ; 75 0d
+    jne short 05238h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0521ah                          ; 76 08
+    jbe short 05238h                          ; 76 08
     mov AL, strict byte 071h                  ; b0 71
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05203h                          ; eb e9
+    jmp short 05221h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05224h                          ; 75 06
+    jne short 05242h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 04fc7h                               ; e8 a3 fd
+    call 04fe5h                               ; e8 a3 fd
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7326,16 +7335,16 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 05235h                           ; 74 06
+    je short 05253h                           ; 74 06
     mov ax, 003e4h                            ; b8 e4 03
-    call 04fc7h                               ; e8 92 fd
+    call 04fe5h                               ; e8 92 fd
     mov AL, strict byte 0a8h                  ; b0 a8
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
     xor ax, ax                                ; 31 c0
-    call 06694h                               ; e8 54 14
+    call 066b2h                               ; e8 54 14
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-enqueue_key_:                                ; 0xf5244 LB 0x99
+enqueue_key_:                                ; 0xf5262 LB 0x99
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7349,30 +7358,30 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 0b c5
+    call 01765h                               ; e8 ed c4
     mov di, ax                                ; 89 c7
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 00 c5
+    call 01765h                               ; e8 e2 c4
     mov si, ax                                ; 89 c6
     lea cx, [si+002h]                         ; 8d 4c 02
     cmp cx, strict byte 0003eh                ; 83 f9 3e
-    jc short 05272h                           ; 72 03
+    jc short 05290h                           ; 72 03
     mov cx, strict word 0001eh                ; b9 1e 00
     cmp cx, di                                ; 39 f9
-    jne short 0527ah                          ; 75 04
+    jne short 05298h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 0529fh                          ; eb 25
+    jmp short 052bdh                          ; eb 25
     xor bh, bh                                ; 30 ff
     mov dx, si                                ; 89 f2
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 d3 c4
+    call 01757h                               ; e8 b5 c4
     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     lea dx, [si+001h]                         ; 8d 54 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 c6 c4
+    call 01757h                               ; e8 a8 c4
     mov bx, cx                                ; 89 cb
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 d7 c4
+    call 01773h                               ; e8 b9 c4
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -7384,8 +7393,8 @@
     retn                                      ; c3
     db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
-    db  01dh, 005h, 056h, 0ceh, 053h, 076h, 053h, 076h, 053h, 057h, 054h, 04ch, 053h, 0d5h, 054h, 043h
-    db  055h, 0ebh, 055h, 0c7h, 055h, 012h, 054h, 076h, 053h, 076h, 053h, 096h, 054h, 068h, 053h, 024h
-    db  055h, 0a8h, 055h, 0e4h, 055h
-_int09_function:                             ; 0xf52dd LB 0x474
+    db  01dh, 023h, 056h, 0ech, 053h, 094h, 053h, 094h, 053h, 075h, 054h, 06ah, 053h, 0f3h, 054h, 061h
+    db  055h, 009h, 056h, 0e5h, 055h, 030h, 054h, 094h, 053h, 094h, 053h, 0b4h, 054h, 086h, 053h, 042h
+    db  055h, 0c6h, 055h, 002h, 056h
+_int09_function:                             ; 0xf52fb LB 0x474
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7395,27 +7404,27 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     test al, al                               ; 84 c0
-    jne short 05307h                          ; 75 19
-    mov bx, 00db6h                            ; bb b6 0d
+    jne short 05325h                          ; 75 19
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 31 c7
+    call 01a2ah                               ; e8 13 c7
     push 00599h                               ; 68 99 05
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 6a c7
+    call 01a6bh                               ; e8 4c c7
     add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 053c8h                           ; e9 c1 00
+    jmp near 053e6h                           ; e9 c1 00
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 39 c4
+    call 01749h                               ; e8 1b c4
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-00ah], al                    ; 88 46 f6
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 2a c4
+    call 01749h                               ; e8 0c c4
     mov byte [bp-00eh], al                    ; 88 46 f2
     mov byte [bp-004h], al                    ; 88 46 fc
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 1b c4
+    call 01749h                               ; e8 fd c3
     mov byte [bp-010h], al                    ; 88 46 f0
     mov byte [bp-008h], al                    ; 88 46 f8
@@ -7424,9 +7433,9 @@
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 052a8h                            ; bf a8 52
+    mov di, 052c6h                            ; bf c6 52
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+052b9h]               ; 2e 8b 85 b9 52
+    mov ax, word [cs:di+052d7h]               ; 2e 8b 85 d7 52
     jmp ax                                    ; ff e0
     xor byte [bp-008h], 040h                  ; 80 76 f8 40
@@ -7434,15 +7443,15 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 fa c3
+    call 01757h                               ; e8 dc c3
     or byte [bp-00ah], 040h                   ; 80 4e f6 40
     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
-    jmp near 055d8h                           ; e9 70 02
+    jmp near 055f6h                           ; e9 70 02
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0bfh                  ; 24 bf
     mov byte [bp-00ah], al                    ; 88 46 f6
     movzx bx, al                              ; 0f b6 d8
-    jmp near 055d8h                           ; e9 62 02
+    jmp near 055f6h                           ; e9 62 02
     test byte [bp-004h], 002h                 ; f6 46 fc 02
-    jne near 053aah                           ; 0f 85 2c 00
+    jne near 053c8h                           ; 0f 85 2c 00
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 07fh                  ; 24 7f
@@ -7454,17 +7463,17 @@
     mov dl, al                                ; 88 c2
     test byte [bp-00ch], 080h                 ; f6 46 f4 80
-    je short 0539ah                           ; 74 07
+    je short 053b8h                           ; 74 07
     not al                                    ; f6 d0
     and byte [bp-008h], al                    ; 20 46 f8
-    jmp short 0539dh                          ; eb 03
+    jmp short 053bbh                          ; eb 03
     or byte [bp-008h], al                     ; 08 46 f8
     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 ad c3
+    call 01757h                               ; e8 8f c3
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 01dh                  ; 3c 1d
-    je short 053b7h                           ; 74 04
+    je short 053d5h                           ; 74 04
     and byte [bp-004h], 0feh                  ; 80 66 fc fe
     and byte [bp-004h], 0fdh                  ; 80 66 fc fd
@@ -7472,5 +7481,5 @@
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 8f c3
+    call 01757h                               ; e8 71 c3
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
@@ -7478,5 +7487,5 @@
     retn                                      ; c3
     test byte [bp-00eh], 001h                 ; f6 46 f2 01
-    jne short 053aah                          ; 75 d6
+    jne short 053c8h                          ; 75 d6
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 004h                   ; 0c 04
@@ -7485,13 +7494,13 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 6f c3
+    call 01757h                               ; e8 51 c3
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 002h                 ; a8 02
-    je short 053fch                           ; 74 0d
+    je short 0541ah                           ; 74 0d
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-004h], al                    ; 88 46 fc
     movzx bx, al                              ; 0f b6 d8
     mov dx, 00096h                            ; ba 96 00
-    jmp short 0540ah                          ; eb 0e
+    jmp short 05428h                          ; eb 0e
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 001h                   ; 0c 01
@@ -7500,8 +7509,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 47 c3
-    jmp short 053aah                          ; eb 98
+    call 01757h                               ; e8 29 c3
+    jmp short 053c8h                          ; eb 98
     test byte [bp-00eh], 001h                 ; f6 46 f2 01
-    jne short 053aah                          ; 75 92
+    jne short 053c8h                          ; 75 92
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0fbh                  ; 24 fb
@@ -7510,13 +7519,13 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 2b c3
+    call 01757h                               ; e8 0d c3
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 002h                 ; a8 02
-    je short 05440h                           ; 74 0d
+    je short 0545eh                           ; 74 0d
     and AL, strict byte 0fbh                  ; 24 fb
     mov byte [bp-004h], al                    ; 88 46 fc
     movzx bx, al                              ; 0f b6 d8
     mov dx, 00096h                            ; ba 96 00
-    jmp short 0544eh                          ; eb 0e
+    jmp short 0546ch                          ; eb 0e
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0feh                  ; 24 fe
@@ -7525,6 +7534,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 03 c3
-    jmp near 053aah                           ; e9 53 ff
+    call 01757h                               ; e8 e5 c2
+    jmp near 053c8h                           ; e9 53 ff
     mov al, byte [bp-010h]                    ; 8a 46 f0
     or AL, strict byte 008h                   ; 0c 08
@@ -7533,13 +7542,13 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 ec c2
+    call 01757h                               ; e8 ce c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 002h                 ; a8 02
-    je short 0547fh                           ; 74 0d
+    je short 0549dh                           ; 74 0d
     or AL, strict byte 008h                   ; 0c 08
     mov byte [bp-004h], al                    ; 88 46 fc
     movzx bx, al                              ; 0f b6 d8
     mov dx, 00096h                            ; ba 96 00
-    jmp short 0548dh                          ; eb 0e
+    jmp short 054abh                          ; eb 0e
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 002h                   ; 0c 02
@@ -7548,6 +7557,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 c4 c2
-    jmp near 053aah                           ; e9 14 ff
+    call 01757h                               ; e8 a6 c2
+    jmp near 053c8h                           ; e9 14 ff
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 0f7h                  ; 24 f7
@@ -7556,13 +7565,13 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 ad c2
+    call 01757h                               ; e8 8f c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 002h                 ; a8 02
-    je short 054beh                           ; 74 0d
+    je short 054dch                           ; 74 0d
     and AL, strict byte 0f7h                  ; 24 f7
     mov byte [bp-004h], al                    ; 88 46 fc
     movzx bx, al                              ; 0f b6 d8
     mov dx, 00096h                            ; ba 96 00
-    jmp short 054cch                          ; eb 0e
+    jmp short 054eah                          ; eb 0e
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fdh                  ; 24 fd
@@ -7571,8 +7580,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 85 c2
-    jmp near 053aah                           ; e9 d5 fe
+    call 01757h                               ; e8 67 c2
+    jmp near 053c8h                           ; e9 d5 fe
     test byte [bp-00eh], 003h                 ; f6 46 f2 03
-    jne short 054f7h                          ; 75 1c
+    jne short 05515h                          ; 75 1c
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 020h                   ; 0c 20
@@ -7581,8 +7590,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 68 c2
+    call 01757h                               ; e8 4a c2
     mov al, byte [bp-010h]                    ; 8a 46 f0
     xor AL, strict byte 020h                  ; 34 20
-    jmp near 05596h                           ; e9 9f 00
+    jmp near 055b4h                           ; e9 9f 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 008h                   ; 0c 08
@@ -7591,17 +7600,17 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 4c c2
+    call 01757h                               ; e8 2e c2
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
-    call 0e034h                               ; e8 20 8b
+    call 0e034h                               ; e8 02 8b
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 2c c2
+    call 01749h                               ; e8 0e c2
     test AL, strict byte 008h                 ; a8 08
-    jne short 05514h                          ; 75 f3
-    jmp near 053aah                           ; e9 86 fe
+    jne short 05532h                          ; 75 f3
+    jmp near 053c8h                           ; e9 86 fe
     test byte [bp-00eh], 003h                 ; f6 46 f2 03
-    jne near 053aah                           ; 0f 85 7e fe
+    jne near 053c8h                           ; 0f 85 7e fe
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0dfh                  ; 24 df
@@ -7610,19 +7619,19 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 17 c2
-    jmp near 053aah                           ; e9 67 fe
+    call 01757h                               ; e8 f9 c1
+    jmp near 053c8h                           ; e9 67 fe
     test byte [bp-00eh], 002h                 ; f6 46 f2 02
-    je short 0557dh                           ; 74 34
+    je short 0559bh                           ; 74 34
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 13 c2
+    call 01765h                               ; e8 f5 c1
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 16 c2
+    call 01773h                               ; e8 f8 c1
     mov bx, 00080h                            ; bb 80 00
     mov dx, strict word 00071h                ; ba 71 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 ee c1
+    call 01757h                               ; e8 d0 c1
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
@@ -7633,6 +7642,6 @@
     xor dx, dx                                ; 31 d2
     xor ax, ax                                ; 31 c0
-    call 05244h                               ; e8 ca fc
-    jmp near 053aah                           ; e9 2d fe
+    call 05262h                               ; e8 ca fc
+    jmp near 053c8h                           ; e9 2d fe
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 010h                   ; 0c 10
@@ -7641,5 +7650,5 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 c6 c1
+    call 01757h                               ; e8 a8 c1
     mov al, byte [bp-010h]                    ; 8a 46 f0
     xor AL, strict byte 010h                  ; 34 10
@@ -7648,8 +7657,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 b2 c1
-    jmp near 053aah                           ; e9 02 fe
+    call 01757h                               ; e8 94 c1
+    jmp near 053c8h                           ; e9 02 fe
     test byte [bp-00eh], 002h                 ; f6 46 f2 02
-    jne near 053aah                           ; 0f 85 fa fd
+    jne near 053c8h                           ; 0f 85 fa fd
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0efh                  ; 24 ef
@@ -7658,9 +7667,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 93 c1
-    jmp near 053aah                           ; e9 e3 fd
+    call 01757h                               ; e8 75 c1
+    jmp near 053c8h                           ; e9 e3 fd
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test AL, strict byte 004h                 ; a8 04
-    jne near 053aah                           ; 0f 85 da fd
+    jne near 053c8h                           ; 0f 85 da fd
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-00ah], al                    ; 88 46 f6
@@ -7668,40 +7677,40 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 76 c1
-    jmp near 053aah                           ; e9 c6 fd
+    call 01757h                               ; e8 58 c1
+    jmp near 053c8h                           ; e9 c6 fd
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fbh                  ; 24 fb
-    jmp short 055d2h                          ; eb e7
+    jmp short 055f0h                          ; eb e7
     mov al, byte [bp-010h]                    ; 8a 46 f0
     and AL, strict byte 00ch                  ; 24 0c
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jne short 05605h                          ; 75 11
+    jne short 05623h                          ; 75 11
     mov bx, 01234h                            ; bb 34 12
     mov dx, strict word 00072h                ; ba 72 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 73 c1
+    call 01773h                               ; e8 55 c1
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
     test byte [bp-00ah], 008h                 ; f6 46 f6 08
-    je short 05619h                           ; 74 0e
+    je short 05637h                           ; 74 0e
     and byte [bp-00ah], 0f7h                  ; 80 66 f6 f7
     movzx bx, byte [bp-00ah]                  ; 0f b6 5e f6
     mov dx, strict word 00018h                ; ba 18 00
-    jmp near 053c2h                           ; e9 a9 fd
+    jmp near 053e0h                           ; e9 a9 fd
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     test AL, strict byte 080h                 ; a8 80
-    je short 05657h                           ; 74 37
+    je short 05675h                           ; 74 37
     cmp AL, strict byte 0fah                  ; 3c fa
-    jne short 05634h                          ; 75 10
+    jne short 05652h                          ; 75 10
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 1c c1
+    call 01749h                               ; e8 fe c0
     mov dl, al                                ; 88 c2
     or dl, 010h                               ; 80 ca 10
-    jmp short 05648h                          ; eb 14
+    jmp short 05666h                          ; eb 14
     cmp AL, strict byte 0feh                  ; 3c fe
-    jne near 053aah                           ; 0f 85 70 fd
+    jne near 053c8h                           ; 0f 85 70 fd
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 06 c1
+    call 01749h                               ; e8 e8 c0
     mov dl, al                                ; 88 c2
     or dl, 020h                               ; 80 ca 20
@@ -7709,92 +7718,92 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 03 c1
-    jmp near 053aah                           ; e9 53 fd
+    call 01757h                               ; e8 e5 c0
+    jmp near 053c8h                           ; e9 53 fd
     cmp byte [bp-00ch], 058h                  ; 80 7e f4 58
-    jbe short 0567bh                          ; 76 1e
-    mov bx, 00db6h                            ; bb b6 0d
+    jbe short 05699h                          ; 76 1e
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 c2 c3
+    call 01a2ah                               ; e8 a4 c3
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
     push ax                                   ; 50
     push 005b3h                               ; 68 b3 05
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 f6 c3
+    call 01a6bh                               ; e8 d8 c3
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 053c8h                           ; e9 4d fd
+    jmp near 053e6h                           ; e9 4d fd
     mov al, byte [bp-008h]                    ; 8a 46 f8
     test AL, strict byte 008h                 ; a8 08
-    je short 05694h                           ; 74 12
+    je short 056b2h                           ; 74 12
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00e0ah]                  ; 8a 97 0a 0e
-    mov ax, word [bx+00e0ah]                  ; 8b 87 0a 0e
-    jmp near 05722h                           ; e9 8e 00
+    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
+    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
+    jmp near 05740h                           ; e9 8e 00
     test AL, strict byte 004h                 ; a8 04
-    je short 056aah                           ; 74 12
+    je short 056c8h                           ; 74 12
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    mov dl, byte [bx+00e08h]                  ; 8a 97 08 0e
-    mov ax, word [bx+00e08h]                  ; 8b 87 08 0e
-    jmp near 05722h                           ; e9 78 00
+    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
+    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
+    jmp near 05740h                           ; e9 78 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     and AL, strict byte 002h                  ; 24 02
     test al, al                               ; 84 c0
-    jbe short 056c8h                          ; 76 15
+    jbe short 056e6h                          ; 76 15
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 047h                  ; 3c 47
-    jc short 056c8h                           ; 72 0e
+    jc short 056e6h                           ; 72 0e
     cmp AL, strict byte 053h                  ; 3c 53
-    jnbe short 056c8h                         ; 77 0a
+    jnbe short 056e6h                         ; 77 0a
     mov DL, strict byte 0e0h                  ; b2 e0
     movzx bx, al                              ; 0f b6 d8
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    jmp short 0571eh                          ; eb 56
+    jmp short 0573ch                          ; eb 56
     test byte [bp-008h], 003h                 ; f6 46 f8 03
-    je short 056fch                           ; 74 2e
+    je short 0571ah                           ; 74 2e
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00e0ch]                ; 0f b6 87 0c 0e
+    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     test dx, ax                               ; 85 c2
-    je short 056ech                           ; 74 0a
-    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
-    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
-    jmp short 056f4h                          ; eb 08
-    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
-    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
+    je short 0570ah                           ; 74 0a
+    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
+    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
+    jmp short 05712h                          ; eb 08
+    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
+    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ch], al                    ; 88 46 f4
-    jmp short 05728h                          ; eb 2c
+    jmp short 05746h                          ; eb 2c
     movzx bx, byte [bp-00ch]                  ; 0f b6 5e f4
     imul bx, bx, strict byte 0000ah           ; 6b db 0a
-    movzx ax, byte [bx+00e0ch]                ; 0f b6 87 0c 0e
+    movzx ax, byte [bx+00e08h]                ; 0f b6 87 08 0e
     movzx dx, byte [bp-008h]                  ; 0f b6 56 f8
     test dx, ax                               ; 85 c2
-    je short 0571ah                           ; 74 0a
-    mov dl, byte [bx+00e06h]                  ; 8a 97 06 0e
-    mov ax, word [bx+00e06h]                  ; 8b 87 06 0e
-    jmp short 05722h                          ; eb 08
-    mov dl, byte [bx+00e04h]                  ; 8a 97 04 0e
-    mov ax, word [bx+00e04h]                  ; 8b 87 04 0e
+    je short 05738h                           ; 74 0a
+    mov dl, byte [bx+00e02h]                  ; 8a 97 02 0e
+    mov ax, word [bx+00e02h]                  ; 8b 87 02 0e
+    jmp short 05740h                          ; eb 08
+    mov dl, byte [bx+00e00h]                  ; 8a 97 00 0e
+    mov ax, word [bx+00e00h]                  ; 8b 87 00 0e
     shr ax, 008h                              ; c1 e8 08
     mov byte [bp-00ch], al                    ; 88 46 f4
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 05748h                          ; 75 1a
+    jne short 05766h                          ; 75 1a
     test dl, dl                               ; 84 d2
-    jne short 05748h                          ; 75 16
-    mov bx, 00db6h                            ; bb b6 0d
+    jne short 05766h                          ; 75 16
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 ed c2
+    call 01a2ah                               ; e8 cf c2
     push 005eah                               ; 68 ea 05
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 26 c3
+    call 01a6bh                               ; e8 08 c3
     add sp, strict byte 00004h                ; 83 c4 04
     xor dh, dh                                ; 30 f6
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
-    jmp near 05577h                           ; e9 26 fe
-dequeue_key_:                                ; 0xf5751 LB 0x94
+    jmp near 05595h                           ; e9 26 fe
+dequeue_key_:                                ; 0xf576f LB 0x94
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7809,18 +7818,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 fa bf
+    call 01765h                               ; e8 dc bf
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 ef bf
+    call 01765h                               ; e8 d1 bf
     cmp bx, ax                                ; 39 c3
-    je short 057b7h                           ; 74 3d
+    je short 057d5h                           ; 74 3d
     mov dx, bx                                ; 89 da
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 c7 bf
+    call 01749h                               ; e8 a9 bf
     mov cl, al                                ; 88 c1
     lea dx, [bx+001h]                         ; 8d 57 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 bc bf
+    call 01749h                               ; e8 9e bf
     mov es, [bp-008h]                         ; 8e 46 f8
     mov byte [es:si], cl                      ; 26 88 0c
@@ -7828,15 +7837,15 @@
     mov byte [es:di], al                      ; 26 88 05
     cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 057b2h                           ; 74 13
+    je short 057d0h                           ; 74 13
     inc bx                                    ; 43
     inc bx                                    ; 43
     cmp bx, strict byte 0003eh                ; 83 fb 3e
-    jc short 057a9h                           ; 72 03
+    jc short 057c7h                           ; 72 03
     mov bx, strict word 0001eh                ; bb 1e 00
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 c1 bf
+    call 01773h                               ; e8 a3 bf
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 057b9h                          ; eb 02
+    jmp short 057d7h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -7849,20 +7858,21 @@
     or cl, byte [bx+di]                       ; 0a 09
     add ax, 00102h                            ; 05 02 01
-    add byte [bx-064a6h], al                  ; 00 87 5a 9b
+    add byte [di-046a6h], ah                  ; 00 a5 5a b9
     pop ax                                    ; 58
-    loop 0582bh                               ; e2 58
-    das                                       ; 2f
+    add byte [bx+di+04dh], bl                 ; 00 59 4d
     pop cx                                    ; 59
-    aas                                       ; 3f
+    pop bp                                    ; 5d
     pop cx                                    ; 59
-    imul bx, word [bx+di+072h], 0e359h        ; 69 59 72 59 e3
+    xchg word [bx+di-070h], bx                ; 87 59 90
     pop cx                                    ; 59
-    adc AL, strict byte 05ah                  ; 14 5a
-    inc dx                                    ; 42
+    add word [bp+si+032h], bx                 ; 01 5a 32
     pop dx                                    ; 5a
-    jl short 0583dh                           ; 7c 5a
-    db  0cah
+    pushaw                                    ; 60
     pop dx                                    ; 5a
-_int16_function:                             ; 0xf57e5 LB 0x2eb
+    db  09ah
+    pop dx                                    ; 5a
+    db  0e8h
+    pop dx                                    ; 5a
+_int16_function:                             ; 0xf5803 LB 0x2eb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7871,10 +7881,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 54 bf
+    call 01749h                               ; e8 36 bf
     mov cl, al                                ; 88 c1
     mov bl, al                                ; 88 c3
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 47 bf
+    call 01749h                               ; e8 29 bf
     mov bh, al                                ; 88 c7
     movzx dx, cl                              ; 0f b6 d1
@@ -7885,5 +7895,5 @@
     xor al, dl                                ; 30 d0
     test ax, ax                               ; 85 c0
-    je short 05879h                           ; 74 62
+    je short 05897h                           ; 74 62
     cli                                       ; fa
     mov AL, strict byte 0edh                  ; b0 ed
@@ -7895,9 +7905,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05830h                          ; 75 08
+    jne short 0584eh                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0581eh                          ; eb ee
+    jmp short 0583ch                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7905,5 +7915,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 05878h                          ; 75 3d
+    jne short 05896h                          ; 75 3d
     and bh, 0c8h                              ; 80 e7 c8
     movzx dx, bl                              ; 0f b6 d3
@@ -7921,9 +7931,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05866h                          ; 75 08
+    jne short 05884h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05854h                          ; eb ee
+    jmp short 05872h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7933,18 +7943,18 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 df be
+    call 01757h                               ; e8 c1 be
     sti                                       ; fb
     mov ax, word [bp+012h]                    ; 8b 46 12
     shr ax, 008h                              ; c1 e8 08
     cmp ax, 000a2h                            ; 3d a2 00
-    jnbe near 05a87h                          ; 0f 87 01 02
+    jnbe near 05aa5h                          ; 0f 87 01 02
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 057c2h                            ; bf c2 57
+    mov di, 057e0h                            ; bf e0 57
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+057cdh]               ; 2e 8b 85 cd 57
+    mov ax, word [cs:di+057ebh]               ; 2e 8b 85 eb 57
     jmp ax                                    ; ff e0
     push strict byte 00001h                   ; 6a 01
@@ -7953,17 +7963,17 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05751h                               ; e8 a7 fe
+    call 0576fh                               ; e8 a7 fe
     test ax, ax                               ; 85 c0
-    jne short 058b9h                          ; 75 0b
+    jne short 058d7h                          ; 75 0b
     push 00621h                               ; 68 21 06
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 b5 c1
+    call 01a6bh                               ; e8 97 c1
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 058c5h                           ; 74 06
+    je short 058e3h                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 058cbh                           ; 74 06
+    je short 058e9h                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 058cfh                          ; 75 04
+    jne short 058edh                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
@@ -7972,5 +7982,5 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05acah                           ; e9 e8 01
+    jmp near 05ae8h                           ; e9 e8 01
     mov ax, word [bp+018h]                    ; 8b 46 18
     mov word [bp+01eh], ax                    ; 89 46 1e
@@ -7980,15 +7990,15 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05751h                               ; e8 5a fe
+    call 0576fh                               ; e8 5a fe
     test ax, ax                               ; 85 c0
-    jne short 05902h                          ; 75 07
+    jne short 05920h                          ; 75 07
     or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
-    jmp near 05acah                           ; e9 c8 01
+    jmp near 05ae8h                           ; e9 c8 01
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 0590eh                           ; 74 06
+    je short 0592ch                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 05914h                           ; 74 06
+    je short 05932h                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 05918h                          ; 75 04
+    jne short 05936h                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     movzx dx, byte [bp-006h]                  ; 0f b6 56 fa
@@ -7998,11 +8008,11 @@
     mov word [bp+012h], dx                    ; 89 56 12
     and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
-    jmp near 05acah                           ; e9 9b 01
+    jmp near 05ae8h                           ; e9 9b 01
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 11 be
+    call 01749h                               ; e8 f3 bd
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
-    jmp short 058dch                          ; eb 9d
+    jmp short 058fah                          ; eb 9d
     mov al, byte [bp+010h]                    ; 8a 46 10
     movzx dx, al                              ; 0f b6 d0
@@ -8010,18 +8020,18 @@
     shr ax, 008h                              ; c1 e8 08
     xor ah, ah                                ; 30 e4
-    call 05244h                               ; e8 f4 f8
+    call 05262h                               ; e8 f4 f8
     test ax, ax                               ; 85 c0
-    jne short 05961h                          ; 75 0d
+    jne short 0597fh                          ; 75 0d
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 05acah                           ; e9 69 01
+    jmp near 05ae8h                           ; e9 69 01
     and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
-    jmp near 05acah                           ; e9 61 01
+    jmp near 05ae8h                           ; e9 61 01
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp short 0595bh                          ; eb e9
+    jmp short 05979h                          ; eb e9
     mov byte [bp-004h], 002h                  ; c6 46 fc 02
     xor cx, cx                                ; 31 c9
@@ -8036,15 +8046,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05999h                          ; 75 0d
+    jne short 059b7h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05999h                          ; 76 08
+    jbe short 059b7h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 05982h                          ; eb e9
+    jmp short 059a0h                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 059ddh                          ; 76 40
+    jbe short 059fbh                          ; 76 40
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8052,5 +8062,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 059ddh                          ; 75 35
+    jne short 059fbh                          ; 75 35
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -8059,15 +8069,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 059c2h                          ; 75 0d
+    jne short 059e0h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 059c2h                          ; 76 08
+    jbe short 059e0h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 059abh                          ; eb e9
+    jmp short 059c9h                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 059d4h                          ; 76 0e
+    jbe short 059f2h                          ; 76 0e
     shr cx, 008h                              ; c1 e9 08
     mov dx, strict word 00060h                ; ba 60 00
@@ -8079,7 +8089,7 @@
     dec byte [bp-004h]                        ; fe 4e fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jnbe short 059a8h                         ; 77 cb
+    jnbe short 059c6h                         ; 77 cb
     mov word [bp+00ch], cx                    ; 89 4e 0c
-    jmp near 05acah                           ; e9 e7 00
+    jmp near 05ae8h                           ; e9 e7 00
     push strict byte 00001h                   ; 6a 01
     mov cx, ss                                ; 8c d1
@@ -8087,16 +8097,16 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05751h                               ; e8 5f fd
+    call 0576fh                               ; e8 5f fd
     test ax, ax                               ; 85 c0
-    jne short 05a01h                          ; 75 0b
+    jne short 05a1fh                          ; 75 0b
     push 00621h                               ; 68 21 06
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 6d c0
+    call 01a6bh                               ; e8 4f c0
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je near 058cfh                            ; 0f 84 c6 fe
+    je near 058edh                            ; 0f 84 c6 fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je near 058cbh                            ; 0f 84 ba fe
-    jmp near 058cfh                           ; e9 bb fe
+    je near 058e9h                            ; 0f 84 ba fe
+    jmp near 058edh                           ; e9 bb fe
     mov ax, word [bp+018h]                    ; 8b 46 18
     mov word [bp+01eh], ax                    ; 89 46 1e
@@ -8106,15 +8116,15 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 05751h                               ; e8 28 fd
+    call 0576fh                               ; e8 28 fd
     test ax, ax                               ; 85 c0
-    je near 058fbh                            ; 0f 84 cc fe
+    je near 05919h                            ; 0f 84 cc fe
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je near 05918h                            ; 0f 84 e1 fe
+    je near 05936h                            ; 0f 84 e1 fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je near 05914h                            ; 0f 84 d5 fe
-    jmp near 05918h                           ; e9 d6 fe
+    je near 05932h                            ; 0f 84 d5 fe
+    jmp near 05936h                           ; e9 d6 fe
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 fe bc
+    call 01749h                               ; e8 e0 bc
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
@@ -8122,10 +8132,10 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 ed bc
+    call 01749h                               ; e8 cf bc
     mov bl, al                                ; 88 c3
     and bl, 073h                              ; 80 e3 73
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 df bc
+    call 01749h                               ; e8 c1 bc
     and AL, strict byte 00ch                  ; 24 0c
     or bl, al                                 ; 08 c3
@@ -8134,13 +8144,13 @@
     movzx ax, bl                              ; 0f b6 c3
     sal ax, 008h                              ; c1 e0 08
-    jmp near 058dah                           ; e9 5e fe
+    jmp near 058f8h                           ; e9 5e fe
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     or ah, 080h                               ; 80 cc 80
-    jmp near 0595bh                           ; e9 d4 fe
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 05979h                           ; e9 d4 fe
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 98 bf
+    call 01a2ah                               ; e8 7a bf
     mov ax, word [bp+012h]                    ; 8b 46 12
     shr ax, 008h                              ; c1 e8 08
@@ -8148,10 +8158,10 @@
     push 00645h                               ; 68 45 06
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 ca bf
+    call 01a6bh                               ; e8 ac bf
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 7b bf
+    call 01a2ah                               ; e8 5d bf
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     push ax                                   ; 50
@@ -8164,5 +8174,5 @@
     push 0066dh                               ; 68 6d 06
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 a4 bf
+    call 01a6bh                               ; e8 86 bf
     add sp, strict byte 0000ch                ; 83 c4 0c
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -8170,5 +8180,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_geom_lba_:                               ; 0xf5ad0 LB 0xe5
+set_geom_lba_:                               ; 0xf5aee LB 0xe5
     push bx                                   ; 53
     push cx                                   ; 51
@@ -8185,30 +8195,30 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a0f0h                               ; e8 f5 45
+    call 0a110h                               ; e8 f7 45
     test ax, ax                               ; 85 c0
-    jne short 05b0bh                          ; 75 0c
+    jne short 05b29h                          ; 75 0c
     test bx, bx                               ; 85 db
-    jne short 05b0bh                          ; 75 08
+    jne short 05b29h                          ; 75 08
     test cx, cx                               ; 85 c9
-    jne short 05b0bh                          ; 75 04
+    jne short 05b29h                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 05b12h                           ; 74 07
+    je short 05b30h                           ; 74 07
     mov bx, strict word 0ffffh                ; bb ff ff
     mov si, bx                                ; 89 de
-    jmp short 05b18h                          ; eb 06
+    jmp short 05b36h                          ; eb 06
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov si, word [bp+00eh]                    ; 8b 76 0e
     mov word [bp-004h], bx                    ; 89 5e fc
     xor bx, bx                                ; 31 db
-    jmp short 05b24h                          ; eb 05
+    jmp short 05b42h                          ; eb 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jnl short 05b47h                          ; 7d 23
+    jnl short 05b65h                          ; 7d 23
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp si, ax                                ; 39 c6
-    jc short 05b35h                           ; 72 0a
-    jne short 05b3eh                          ; 75 11
+    jc short 05b53h                           ; 72 0a
+    jne short 05b5ch                          ; 75 11
     mov ax, word [bp-004h]                    ; 8b 46 fc
     cmp ax, word [bp-008h]                    ; 3b 46 f8
-    jnbe short 05b3eh                         ; 77 09
+    jnbe short 05b5ch                         ; 77 09
     mov ax, word [bp-002h]                    ; 8b 46 fe
     inc ax                                    ; 40
@@ -8218,18 +8228,18 @@
     rcr word [bp-008h], 1                     ; d1 5e f8
     inc bx                                    ; 43
-    jmp short 05b1fh                          ; eb d8
+    jmp short 05b3dh                          ; eb d8
     mov ax, word [bp-002h]                    ; 8b 46 fe
     xor dx, dx                                ; 31 d2
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 1c 45
+    call 0a090h                               ; e8 1e 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 0a0b0h                               ; e8 50 45
+    call 0a0d0h                               ; e8 52 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
-    jbe short 05b6fh                          ; 76 06
+    jbe short 05b8dh                          ; 76 06
     mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
     mov ax, word [bp-002h]                    ; 8b 46 fe
@@ -8242,42 +8252,42 @@
     pop bx                                    ; 5b
     retn 00008h                               ; c2 08 00
-    inc bx                                    ; 43
+    popaw                                     ; 61
     pop sp                                    ; 5c
-    imul bx, word [si-06ah], 0965ch           ; 69 5c 96 5c 96
+    xchg word [si-04ch], bx                   ; 87 5c b4
     pop sp                                    ; 5c
-    xchg si, ax                               ; 96
-    pop sp                                    ; 5c
-    jnbe short 05bedh                         ; 77 5e
-    movsw                                     ; a5
+    mov AH, strict byte 05ch                  ; b4 5c
+    mov AH, strict byte 05ch                  ; b4 5c
+    xchg bp, ax                               ; 95
+    pop si                                    ; 5e
+    retn                                      ; c3
     pop di                                    ; 5f
-    movsw                                     ; a5
+    retn                                      ; c3
     pop di                                    ; 5f
-    nop                                       ; 90
+    scasb                                     ; ae
     pop si                                    ; 5e
-    db  082h, 05fh, 0a5h, 05fh
-    ; sbb byte [bx-05bh], 05fh                  ; 82 5f a5 5f
-    movsw                                     ; a5
+    mov AL, byte [0c35fh]                     ; a0 5f c3
     pop di                                    ; 5f
-    db  082h, 05fh, 082h, 05fh
-    ; sbb byte [bx-07eh], 05fh                  ; 82 5f 82 5f
-    movsw                                     ; a5
+    retn                                      ; c3
     pop di                                    ; 5f
-    movsw                                     ; a5
+    mov AL, byte [0a05fh]                     ; a0 5f a0
     pop di                                    ; 5f
-    push ES                                   ; 06
+    retn                                      ; c3
     pop di                                    ; 5f
-    db  082h, 05fh, 0a5h, 05fh
-    ; sbb byte [bx-05bh], 05fh                  ; 82 5f a5 5f
-    movsw                                     ; a5
+    retn                                      ; c3
     pop di                                    ; 5f
-    db  082h, 05fh, 036h, 05fh
-    ; sbb byte [bx+036h], 05fh                  ; 82 5f 36 5f
-    movsw                                     ; a5
+    and AL, strict byte 05fh                  ; 24 5f
+    mov AL, byte [0c35fh]                     ; a0 5f c3
     pop di                                    ; 5f
-    movsw                                     ; a5
+    retn                                      ; c3
     pop di                                    ; 5f
-    movsw                                     ; a5
+    mov AL, byte [0545fh]                     ; a0 5f 54
     pop di                                    ; 5f
-_int13_harddisk:                             ; 0xf5bb5 LB 0x44e
+    retn                                      ; c3
+    pop di                                    ; 5f
+    retn                                      ; c3
+    pop di                                    ; 5f
+    retn                                      ; c3
+    pop di                                    ; 5f
+_int13_harddisk:                             ; 0xf5bd3 LB 0x44e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8286,5 +8296,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 9d bb
+    call 01765h                               ; e8 7f bb
     mov si, 00122h                            ; be 22 01
     mov word [bp-004h], ax                    ; 89 46 fc
@@ -8292,11 +8302,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 7e bb
+    call 01757h                               ; e8 60 bb
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05be8h                           ; 72 05
+    jc short 05c06h                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05c06h                           ; 72 1e
+    jc short 05c24h                           ; 72 1e
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8308,7 +8318,7 @@
     push 0069fh                               ; 68 9f 06
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 6b be
+    call 01a6bh                               ; e8 4d be
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 05fc0h                           ; e9 ba 03
+    jmp near 05fdeh                           ; e9 ba 03
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8319,5 +8329,5 @@
     mov byte [bp-002h], dl                    ; 88 56 fe
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05c2fh                           ; 72 10
+    jc short 05c4dh                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8326,20 +8336,20 @@
     push 00690h                               ; 68 90 06
     push 006cah                               ; 68 ca 06
-    jmp short 05bfbh                          ; eb cc
+    jmp short 05c19h                          ; eb cc
     mov bx, word [bp+016h]                    ; 8b 5e 16
     shr bx, 008h                              ; c1 eb 08
     cmp bx, strict byte 00018h                ; 83 fb 18
-    jnbe near 05fa5h                          ; 0f 87 69 03
+    jnbe near 05fc3h                          ; 0f 87 69 03
     add bx, bx                                ; 01 db
-    jmp word [cs:bx+05b83h]                   ; 2e ff a7 83 5b
+    jmp word [cs:bx+05ba1h]                   ; 2e ff a7 a1 5b
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jnc near 05c52h                           ; 0f 83 07 00
+    jnc near 05c70h                           ; 0f 83 07 00
     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
-    call 01e75h                               ; e8 23 c2
+    call 01e75h                               ; e8 05 c2
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 f6 ba
+    call 01757h                               ; e8 d8 ba
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -8348,5 +8358,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 d7 ba
+    call 01749h                               ; e8 b9 ba
     mov cl, al                                ; 88 c1
     mov dx, word [bp+016h]                    ; 8b 56 16
@@ -8359,8 +8369,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 c8 ba
+    call 01757h                               ; e8 aa ba
     test cl, cl                               ; 84 c9
-    je short 05c56h                           ; 74 c3
-    jmp near 05fdch                           ; e9 46 03
+    je short 05c74h                           ; 74 c3
+    jmp near 05ffah                           ; e9 46 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8382,11 +8392,11 @@
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     cmp ax, 00080h                            ; 3d 80 00
-    jnbe short 05cd1h                         ; 77 04
+    jnbe short 05cefh                         ; 77 04
     test ax, ax                               ; 85 c0
-    jne short 05cf4h                          ; 75 23
-    mov bx, 00db6h                            ; bb b6 0d
+    jne short 05d12h                          ; 75 23
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 4e bd
+    call 01a2ah                               ; e8 30 bd
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8395,7 +8405,7 @@
     push 006fch                               ; 68 fc 06
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 7d bd
+    call 01a6bh                               ; e8 5f bd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05fc0h                           ; e9 cc 02
+    jmp near 05fdeh                           ; e9 cc 02
     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -8408,14 +8418,14 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     cmp di, ax                                ; 39 c7
-    jnc short 05d21h                          ; 73 0c
+    jnc short 05d3fh                          ; 73 0c
     cmp cx, word [bp-008h]                    ; 3b 4e f8
-    jbe short 05d21h                          ; 76 07
+    jbe short 05d3fh                          ; 76 07
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp ax, dx                                ; 39 d0
-    jbe short 05d4fh                          ; 76 2e
-    mov bx, 00db6h                            ; bb b6 0d
+    jbe short 05d6dh                          ; 76 2e
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 fe bc
+    call 01a2ah                               ; e8 e0 bc
     push dword [bp-008h]                      ; 66 ff 76 f8
     push di                                   ; 57
@@ -8429,12 +8439,12 @@
     push 00724h                               ; 68 24 07
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 22 bd
+    call 01a6bh                               ; e8 04 bd
     add sp, strict byte 00010h                ; 83 c4 10
-    jmp near 05fc0h                           ; e9 71 02
+    jmp near 05fdeh                           ; e9 71 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
     cmp ax, strict word 00004h                ; 3d 04 00
-    jne short 05d5dh                          ; 75 03
-    jmp near 05c52h                           ; e9 f5 fe
+    jne short 05d7bh                          ; 75 03
+    jmp near 05c70h                           ; e9 f5 fe
     movzx bx, byte [bp-002h]                  ; 0f b6 5e fe
     imul bx, bx, strict byte 0001ch           ; 6b db 1c
@@ -8442,15 +8452,15 @@
     add bx, si                                ; 01 f3
     cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
-    jne short 05d7eh                          ; 75 0f
+    jne short 05d9ch                          ; 75 0f
     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
     cmp ax, word [bp-00ah]                    ; 3b 46 f6
-    jne short 05d7eh                          ; 75 06
+    jne short 05d9ch                          ; 75 06
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jc short 05daeh                           ; 72 30
+    jc short 05dcch                           ; 72 30
     mov ax, di                                ; 89 f8
     xor dx, dx                                ; 31 d2
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 e7 42
+    call 0a090h                               ; e8 e9 42
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8458,5 +8468,5 @@
     mov bx, word [bp-00ah]                    ; 8b 5e f6
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 d8 42
+    call 0a090h                               ; e8 da 42
     xor bx, bx                                ; 31 db
     add ax, word [bp-006h]                    ; 03 46 fa
@@ -8513,9 +8523,9 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     test dl, dl                               ; 84 d2
-    je near 05c52h                            ; 0f 84 0a fe
-    mov bx, 00db6h                            ; bb b6 0d
+    je near 05c70h                            ; 0f 84 0a fe
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 d7 bb
+    call 01a2ah                               ; e8 b9 bb
     movzx ax, dl                              ; 0f b6 c2
     push ax                                   ; 50
@@ -8526,19 +8536,19 @@
     push 0076bh                               ; 68 6b 07
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 02 bc
+    call 01a6bh                               ; e8 e4 bb
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 05fc8h                           ; e9 51 01
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 05fe6h                           ; e9 51 01
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 a8 bb
+    call 01a2ah                               ; e8 8a bb
     push 0078ch                               ; 68 8c 07
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 e1 bb
+    call 01a6bh                               ; e8 c3 bb
     add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 05c52h                           ; e9 c2 fd
+    jmp near 05c70h                           ; e9 c2 fd
     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -8583,5 +8593,5 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 05c52h                           ; e9 4c fd
+    jmp near 05c70h                           ; e9 4c fd
     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     cwd                                       ; 99
@@ -8599,10 +8609,10 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 040h                  ; 3c 40
-    jne short 05f2bh                          ; 75 03
-    jmp near 05c52h                           ; e9 27 fd
+    jne short 05f49h                          ; 75 03
+    jmp near 05c70h                           ; e9 27 fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 0aah                               ; 80 cc aa
-    jmp near 05fc8h                           ; e9 92 00
+    jmp near 05fe6h                           ; e9 92 00
     movzx ax, byte [bp-002h]                  ; 0f b6 46 fe
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -8618,8 +8628,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 10 41
+    call 0a090h                               ; e8 12 41
     mov bx, word [bp-006h]                    ; 8b 5e fa
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 08 41
+    call 0a090h                               ; e8 0a 41
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-00eh], dx                    ; 89 56 f2
@@ -8630,9 +8640,9 @@
     or ah, 003h                               ; 80 cc 03
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 05c56h                           ; e9 d4 fc
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 05c74h                           ; e9 d4 fc
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 9d ba
+    call 01a2ah                               ; e8 7f ba
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8641,11 +8651,11 @@
     push 007a6h                               ; 68 a6 07
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 cc ba
+    call 01a6bh                               ; e8 ae ba
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05c52h                           ; e9 ad fc
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 05c70h                           ; e9 ad fc
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 7a ba
+    call 01a2ah                               ; e8 5c ba
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8653,5 +8663,5 @@
     push 00690h                               ; 68 90 06
     push 007d9h                               ; 68 d9 07
-    jmp near 05ce9h                           ; e9 29 fd
+    jmp near 05d07h                           ; e9 29 fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8663,19 +8673,33 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 7b b7
+    call 01757h                               ; e8 5d b7
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 05c65h                           ; e9 82 fc
-    mov ax, word [0b960h]                     ; a1 60 b9
+    jmp near 05c83h                           ; e9 82 fc
+    mov di, 0d760h                            ; bf 60 d7
     pushaw                                    ; 60
-    mov cx, 0b960h                            ; b9 60 b9
+    xlatb                                     ; d7
     pushaw                                    ; 60
-    lea sp, [si+00eh]                         ; 8d 64 0e
-    bound di, [bx+di+01460h]                  ; 62 b9 60 14
-    bound cx, [di-0239ch]                     ; 62 8d 64 dc
-    fsub qword [fs:si-024h]                   ; 64 dc 64 dc
-    fsub qword [fs:si-05ch]                   ; 64 dc 64 a4
-    fsub qword [fs:si-024h]                   ; 64 dc 64 dc
+    xlatb                                     ; d7
+    pushaw                                    ; 60
+    stosw                                     ; ab
+    db  064h, 02ch, 062h
+    ; fs sub AL, strict byte 062h               ; 64 2c 62
+    xlatb                                     ; d7
+    pushaw                                    ; 60
+    xor ah, byte [bp+si-055h]                 ; 32 62 ab
+    db  064h, 0fah
+    ; fs cli                                    ; 64 fa
+    db  064h, 0fah
+    ; fs cli                                    ; 64 fa
+    db  064h, 0fah
+    ; fs cli                                    ; 64 fa
+    db  064h, 0fah
+    ; fs cli                                    ; 64 fa
+    db  064h, 0c2h, 064h, 0fah
+    ; fs retn 0fa64h                            ; 64 c2 64 fa
+    db  064h, 0fah
+    ; fs cli                                    ; 64 fa
     db  064h
-_int13_harddisk_ext:                         ; 0xf6003 LB 0x4f4
+_int13_harddisk_ext:                         ; 0xf6021 LB 0x4f4
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8683,9 +8707,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 53 b7
+    call 01765h                               ; e8 35 b7
     mov word [bp-014h], ax                    ; 89 46 ec
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 47 b7
+    call 01765h                               ; e8 29 b7
     mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     mov word [bp-006h], ax                    ; 89 46 fa
@@ -8693,11 +8717,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 26 b7
+    call 01757h                               ; e8 08 b7
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 06040h                           ; 72 05
+    jc short 0605eh                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 0605eh                           ; 72 1e
+    jc short 0607ch                           ; 72 1e
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8709,7 +8733,7 @@
     push 0069fh                               ; 68 9f 06
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 13 ba
+    call 01a6bh                               ; e8 f5 b9
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 064bah                           ; e9 5c 04
+    jmp near 064d8h                           ; e9 5c 04
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8719,5 +8743,5 @@
     mov byte [bp-004h], dl                    ; 88 56 fc
     cmp dl, 010h                              ; 80 fa 10
-    jc short 06085h                           ; 72 10
+    jc short 060a3h                           ; 72 10
     push ax                                   ; 50
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8726,14 +8750,14 @@
     push 00807h                               ; 68 07 08
     push 006cah                               ; 68 ca 06
-    jmp short 06053h                          ; eb ce
+    jmp short 06071h                          ; eb ce
     mov bx, word [bp+016h]                    ; 8b 5e 16
     shr bx, 008h                              ; c1 eb 08
     sub bx, strict byte 00041h                ; 83 eb 41
     cmp bx, strict byte 0000fh                ; 83 fb 0f
-    jnbe near 064dch                          ; 0f 87 47 04
+    jnbe near 064fah                          ; 0f 87 47 04
     add bx, bx                                ; 01 db
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
-    jmp word [cs:bx+05fe3h]                   ; 2e ff a7 e3 5f
+    jmp word [cs:bx+06001h]                   ; 2e ff a7 01 60
     mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -8742,5 +8766,5 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06491h                           ; e9 d8 03
+    jmp near 064afh                           ; e9 d8 03
     mov di, word [bp+00ah]                    ; 8b 7e 0a
     mov es, [bp+004h]                         ; 8e 46 04
@@ -8758,5 +8782,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a100h                               ; e8 14 40
+    call 0a120h                               ; e8 16 40
     mov word [bp-00eh], bx                    ; 89 5e f2
     mov bx, word [es:di+008h]                 ; 26 8b 5d 08
@@ -8770,21 +8794,21 @@
     mov bl, byte [es:di+022h]                 ; 26 8a 5d 22
     cmp ax, word [es:di+03ch]                 ; 26 3b 45 3c
-    jnbe short 06133h                         ; 77 22
-    jne short 06156h                          ; 75 43
+    jnbe short 06151h                         ; 77 22
+    jne short 06174h                          ; 75 43
     mov si, word [bp-00eh]                    ; 8b 76 f2
     cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
-    jnbe short 06133h                         ; 77 17
+    jnbe short 06151h                         ; 77 17
     mov si, word [bp-00eh]                    ; 8b 76 f2
     cmp si, word [es:di+03ah]                 ; 26 3b 75 3a
-    jne short 06156h                          ; 75 31
+    jne short 06174h                          ; 75 31
     cmp cx, word [es:di+038h]                 ; 26 3b 4d 38
-    jnbe short 06133h                         ; 77 08
-    jne short 06156h                          ; 75 29
+    jnbe short 06151h                         ; 77 08
+    jne short 06174h                          ; 75 29
     cmp dx, word [es:di+036h]                 ; 26 3b 55 36
-    jc short 06156h                           ; 72 23
-    mov bx, 00db6h                            ; bb b6 0d
+    jc short 06174h                           ; 72 23
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 ec b8
+    call 01a2ah                               ; e8 ce b8
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -8793,13 +8817,13 @@
     push 0081ah                               ; 68 1a 08
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 1b b9
+    call 01a6bh                               ; e8 fd b8
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 064bah                           ; e9 64 03
+    jmp near 064d8h                           ; e9 64 03
     mov di, word [bp+016h]                    ; 8b 7e 16
     shr di, 008h                              ; c1 ef 08
     cmp di, strict byte 00044h                ; 83 ff 44
-    je near 0648dh                            ; 0f 84 2a 03
+    je near 064abh                            ; 0f 84 2a 03
     cmp di, strict byte 00047h                ; 83 ff 47
-    je near 0648dh                            ; 0f 84 23 03
+    je near 064abh                            ; 0f 84 23 03
     les si, [bp-008h]                         ; c4 76 f8
     db  066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h
@@ -8838,9 +8862,9 @@
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     test dl, dl                               ; 84 d2
-    je near 0648dh                            ; 0f 84 a8 02
-    mov bx, 00db6h                            ; bb b6 0d
+    je near 064abh                            ; 0f 84 a8 02
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 3a b8
+    call 01a2ah                               ; e8 1c b8
     movzx ax, dl                              ; 0f b6 c2
     push ax                                   ; 50
@@ -8849,12 +8873,12 @@
     push 0076bh                               ; 68 6b 07
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 6b b8
+    call 01a6bh                               ; e8 4d b8
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 064c2h                           ; e9 b4 02
+    jmp near 064e0h                           ; e9 b4 02
     or ah, 0b2h                               ; 80 cc b2
-    jmp near 064c2h                           ; e9 ae 02
+    jmp near 064e0h                           ; e9 ae 02
     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
@@ -8866,6 +8890,6 @@
     mov word [bp-010h], ax                    ; 89 46 f0
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jc near 064bah                            ; 0f 82 89 02
-    jc near 062d0h                            ; 0f 82 9b 00
+    jc near 064d8h                            ; 0f 82 89 02
+    jc near 062eeh                            ; 0f 82 9b 00
     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     imul ax, ax, strict byte 0001ch           ; 6b c0 1c
@@ -8909,10 +8933,10 @@
     mov bx, word [bp-00eh]                    ; 8b 5e f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a0f0h                               ; e8 2a 3e
+    call 0a110h                               ; e8 2c 3e
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
     mov word [es:bx+016h], cx                 ; 26 89 4f 16
     cmp word [bp-010h], strict byte 0001eh    ; 83 7e f0 1e
-    jc near 063d5h                            ; 0f 82 fd 00
+    jc near 063f3h                            ; 0f 82 fd 00
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
@@ -8940,7 +8964,7 @@
     mov al, byte [es:bx+027h]                 ; 26 8a 47 27
     test al, al                               ; 84 c0
-    jne short 0632fh                          ; 75 04
+    jne short 0634dh                          ; 75 04
     xor bx, bx                                ; 31 db
-    jmp short 06332h                          ; eb 03
+    jmp short 06350h                          ; eb 03
     mov bx, strict word 00008h                ; bb 08 00
     or bl, 010h                               ; 80 cb 10
@@ -8956,7 +8980,7 @@
     or bx, cx                                 ; 09 cb
     cmp AL, strict byte 003h                  ; 3c 03
-    jne short 06353h                          ; 75 05
+    jne short 06371h                          ; 75 05
     mov ax, strict word 00003h                ; b8 03 00
-    jmp short 06355h                          ; eb 02
+    jmp short 06373h                          ; eb 02
     xor ax, ax                                ; 31 c0
     or bx, ax                                 ; 09 c3
@@ -8984,20 +9008,20 @@
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 063b8h                          ; eb 05
+    jmp short 063d6h                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 063cbh                          ; 73 13
+    jnc short 063e9h                          ; 73 13
     movzx dx, bh                              ; 0f b6 d7
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01749h                               ; e8 84 b3
+    call 01749h                               ; e8 66 b3
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 063b3h                          ; eb e8
+    jmp short 063d1h                          ; eb e8
     neg bl                                    ; f6 db
     les si, [bp-008h]                         ; c4 76 f8
     mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
     cmp word [bp-010h], strict byte 00042h    ; 83 7e f0 42
-    jc near 0648dh                            ; 0f 82 b0 00
+    jc near 064abh                            ; 0f 82 b0 00
     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     cwd                                       ; 99
@@ -9017,5 +9041,5 @@
     mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
     test al, al                               ; 84 c0
-    jne short 0641eh                          ; 75 09
+    jne short 0643ch                          ; 75 09
     db  066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h
     ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20
@@ -9026,5 +9050,5 @@
     ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20
     test al, al                               ; 84 c0
-    jne short 0644ah                          ; 75 13
+    jne short 06468h                          ; 75 13
     mov word [es:di+030h], dx                 ; 26 89 55 30
     db  066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h
@@ -9041,15 +9065,15 @@
     xor bl, bl                                ; 30 db
     mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 06472h                          ; eb 05
+    jmp short 06490h                          ; eb 05
     cmp bh, 040h                              ; 80 ff 40
-    jnc short 06484h                          ; 73 12
+    jnc short 064a2h                          ; 73 12
     movzx dx, bh                              ; 0f b6 d7
     add dx, word [bp+00ah]                    ; 03 56 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01749h                               ; e8 cb b2
+    call 01749h                               ; e8 ad b2
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 0646dh                          ; eb e9
+    jmp short 0648bh                          ; eb e9
     neg bl                                    ; f6 db
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -9059,5 +9083,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 bb b2
+    call 01757h                               ; e8 9d b2
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -9065,12 +9089,12 @@
     retn                                      ; c3
     cmp ax, strict word 00006h                ; 3d 06 00
-    je short 0648dh                           ; 74 e4
+    je short 064abh                           ; 74 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 064bah                           ; 72 0c
-    jbe short 0648dh                          ; 76 dd
+    jc short 064d8h                           ; 72 0c
+    jbe short 064abh                          ; 76 dd
     cmp ax, strict word 00003h                ; 3d 03 00
-    jc short 064bah                           ; 72 05
+    jc short 064d8h                           ; 72 05
     cmp ax, strict word 00004h                ; 3d 04 00
-    jbe short 0648dh                          ; 76 d3
+    jbe short 064abh                          ; 76 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -9082,11 +9106,11 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 81 b2
+    call 01757h                               ; e8 63 b2
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 064a0h                          ; eb c4
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp short 064beh                          ; eb c4
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 43 b5
+    call 01a2ah                               ; e8 25 b5
     mov ax, word [bp+016h]                    ; 8b 46 16
     shr ax, 008h                              ; c1 e8 08
@@ -9094,6 +9118,6 @@
     push 00807h                               ; 68 07 08
     push 007d9h                               ; 68 d9 07
-    jmp near 0614bh                           ; e9 54 fc
-_int14_function:                             ; 0xf64f7 LB 0x15a
+    jmp near 06169h                           ; e9 54 fc
+_int14_function:                             ; 0xf6515 LB 0x15a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9103,5 +9127,5 @@
     add dx, dx                                ; 01 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 5e b2
+    call 01765h                               ; e8 40 b2
     mov si, ax                                ; 89 c6
     mov bx, ax                                ; 89 c3
@@ -9109,21 +9133,21 @@
     add dx, strict byte 0007ch                ; 83 c2 7c
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 32 b2
+    call 01749h                               ; e8 14 b2
     mov cl, al                                ; 88 c1
     cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
-    jnc near 06647h                           ; 0f 83 26 01
+    jnc near 06665h                           ; 0f 83 26 01
     test si, si                               ; 85 f6
-    jbe near 06647h                           ; 0f 86 20 01
+    jbe near 06665h                           ; 0f 86 20 01
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0653fh                           ; 72 11
-    jbe short 06598h                          ; 76 68
+    jc short 0655dh                           ; 72 11
+    jbe short 065b6h                          ; 76 68
     cmp AL, strict byte 003h                  ; 3c 03
-    je near 06630h                            ; 0f 84 fa 00
+    je near 0664eh                            ; 0f 84 fa 00
     cmp AL, strict byte 002h                  ; 3c 02
-    je near 065e6h                            ; 0f 84 aa 00
-    jmp near 06641h                           ; e9 02 01
+    je near 06604h                            ; 0f 84 aa 00
+    jmp near 0665fh                           ; e9 02 01
     test al, al                               ; 84 c0
-    jne near 06641h                           ; 0f 85 fc 00
+    jne near 0665fh                           ; 0f 85 fc 00
     lea dx, [bx+003h]                         ; 8d 57 03
     in AL, DX                                 ; ec
@@ -9135,5 +9159,5 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     test AL, strict byte 0e0h                 ; a8 e0
-    jne short 06564h                          ; 75 0c
+    jne short 06582h                          ; 75 0c
     mov AL, strict byte 017h                  ; b0 17
     mov dx, bx                                ; 89 da
@@ -9142,5 +9166,5 @@
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
-    jmp short 0657ah                          ; eb 16
+    jmp short 06598h                          ; eb 16
     and AL, strict byte 0e0h                  ; 24 e0
     movzx cx, al                              ; 0f b6 c8
@@ -9167,8 +9191,8 @@
     ; sub ah, ah                                ; 2a e4
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 06622h                           ; e9 8a 00
+    jmp near 06640h                           ; e9 8a 00
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 c4 b1
+    call 01765h                               ; e8 a6 b1
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9178,18 +9202,18 @@
     and ax, strict word 00060h                ; 25 60 00
     cmp ax, strict word 00060h                ; 3d 60 00
-    je short 065c8h                           ; 74 17
+    je short 065e6h                           ; 74 17
     test cl, cl                               ; 84 c9
-    je short 065c8h                           ; 74 13
+    je short 065e6h                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 a7 b1
+    call 01765h                               ; e8 89 b1
     cmp ax, si                                ; 39 f0
-    je short 065a3h                           ; 74 e1
+    je short 065c1h                           ; 74 e1
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 065a3h                          ; eb db
+    jmp short 065c1h                          ; eb db
     test cl, cl                               ; 84 c9
-    je short 065d2h                           ; 74 06
+    je short 065f0h                           ; 74 06
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -9201,11 +9225,11 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cl, cl                               ; 84 c9
-    jne short 06622h                          ; 75 43
+    jne short 06640h                          ; 75 43
     or AL, strict byte 080h                   ; 0c 80
     mov byte [bp+013h], al                    ; 88 46 13
-    jmp short 06622h                          ; eb 3c
+    jmp short 06640h                          ; eb 3c
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 76 b1
+    call 01765h                               ; e8 58 b1
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9214,18 +9238,18 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 06612h                          ; 75 17
+    jne short 06630h                          ; 75 17
     test cl, cl                               ; 84 c9
-    je short 06612h                           ; 74 13
+    je short 06630h                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 5d b1
+    call 01765h                               ; e8 3f b1
     cmp ax, si                                ; 39 f0
-    je short 065f1h                           ; 74 e5
+    je short 0660fh                           ; 74 e5
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 065f1h                          ; eb df
+    jmp short 0660fh                          ; eb df
     test cl, cl                               ; 84 c9
-    je short 06628h                           ; 74 12
+    je short 06646h                           ; 74 12
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov dx, bx                                ; 89 da
@@ -9235,10 +9259,10 @@
     mov byte [bp+012h], al                    ; 88 46 12
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 0664bh                          ; eb 23
+    jmp short 06669h                          ; eb 23
     lea dx, [bx+005h]                         ; 8d 57 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 065e1h                          ; eb b1
+    jmp short 065ffh                          ; eb b1
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
@@ -9250,7 +9274,7 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 0661fh                          ; eb de
+    jmp short 0663dh                          ; eb de
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 0664bh                          ; eb 04
+    jmp short 06669h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -9258,5 +9282,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-timer_wait_:                                 ; 0xf6651 LB 0x43
+timer_wait_:                                 ; 0xf666f LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9266,5 +9290,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a0b0h                               ; e8 51 3a
+    call 0a0d0h                               ; e8 53 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9278,7 +9302,7 @@
     adc bx, strict byte 0ffffh                ; 83 d3 ff
     cmp bx, strict byte 0ffffh                ; 83 fb ff
-    jne short 0667eh                          ; 75 05
+    jne short 0669ch                          ; 75 05
     cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 0668dh                           ; 74 0f
+    je short 066abh                           ; 74 0f
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -9287,6 +9311,6 @@
     and AL, strict byte 010h                  ; 24 10
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jne short 0667eh                          ; 75 f3
-    jmp short 0666eh                          ; eb e1
+    jne short 0669ch                          ; 75 f3
+    jmp short 0668ch                          ; eb e1
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop cx                                    ; 59
@@ -9294,5 +9318,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_enable_a20_:                             ; 0xf6694 LB 0x2c
+set_enable_a20_:                             ; 0xf66b2 LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9307,8 +9331,8 @@
     mov cl, al                                ; 88 c1
     test bx, bx                               ; 85 db
-    je short 066adh                           ; 74 05
+    je short 066cbh                           ; 74 05
     or AL, strict byte 002h                   ; 0c 02
     out DX, AL                                ; ee
-    jmp short 066b0h                          ; eb 03
+    jmp short 066ceh                          ; eb 03
     and AL, strict byte 0fdh                  ; 24 fd
     out DX, AL                                ; ee
@@ -9323,5 +9347,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_e820_range_:                             ; 0xf66c0 LB 0x89
+set_e820_range_:                             ; 0xf66de LB 0x89
     push si                                   ; 56
     push bp                                   ; 55
@@ -9352,8 +9376,8 @@
     retn 0000ah                               ; c2 0a 00
     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
-    db  04dh, 06ah, 086h, 067h, 099h, 067h, 02eh, 068h, 034h, 068h, 039h, 068h, 03eh, 068h, 0e0h, 068h
-    db  00ah, 069h, 027h, 068h, 027h, 068h, 0d7h, 069h, 0ffh, 069h, 012h, 06ah, 021h, 06ah, 02eh, 068h
-    db  028h, 06ah
-_int15_function:                             ; 0xf6749 LB 0x336
+    db  06bh, 06ah, 0a4h, 067h, 0b7h, 067h, 04ch, 068h, 052h, 068h, 057h, 068h, 05ch, 068h, 0feh, 068h
+    db  028h, 069h, 045h, 068h, 045h, 068h, 0f5h, 069h, 01dh, 06ah, 030h, 06ah, 03fh, 06ah, 04ch, 068h
+    db  046h, 06ah
+_int15_function:                             ; 0xf6767 LB 0x336
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9363,13 +9387,13 @@
     shr ax, 008h                              ; c1 e8 08
     cmp ax, 000ech                            ; 3d ec 00
-    jnbe near 06a4dh                          ; 0f 87 f2 02
+    jnbe near 06a6bh                          ; 0f 87 f2 02
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00011h                ; b9 11 00
-    mov di, 06717h                            ; bf 17 67
+    mov di, 06735h                            ; bf 35 67
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov si, word [cs:di+06727h]               ; 2e 8b b5 27 67
+    mov si, word [cs:di+06745h]               ; 2e 8b b5 45 67
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9384,28 +9408,28 @@
     xor ah, ah                                ; 30 e4
     cmp ax, 000c0h                            ; 3d c0 00
-    jne near 06a4dh                           ; 0f 85 bb 02
+    jne near 06a6bh                           ; 0f 85 bb 02
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 069f6h                           ; e9 5d 02
+    jmp near 06a14h                           ; e9 5d 02
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 067aeh                           ; 72 0e
-    jbe short 067c2h                          ; 76 20
+    jc short 067cch                           ; 72 0e
+    jbe short 067e0h                          ; 76 20
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 067efh                           ; 74 48
+    je short 0680dh                           ; 74 48
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 067d2h                           ; 74 26
-    jmp short 067fch                          ; eb 4e
+    je short 067f0h                           ; 74 26
+    jmp short 0681ah                          ; eb 4e
     test ax, ax                               ; 85 c0
-    jne short 067fch                          ; 75 4a
+    jne short 0681ah                          ; 75 4a
     xor ax, ax                                ; 31 c0
-    call 06694h                               ; e8 dd fe
+    call 066b2h                               ; e8 dd fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp near 06827h                           ; e9 65 00
+    jmp near 06845h                           ; e9 65 00
     mov ax, strict word 00001h                ; b8 01 00
-    call 06694h                               ; e8 cc fe
+    call 066b2h                               ; e8 cc fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], dh                    ; 88 76 13
-    jmp near 06827h                           ; e9 55 00
+    jmp near 06845h                           ; e9 55 00
     mov dx, 00092h                            ; ba 92 00
     in AL, DX                                 ; ec
@@ -9419,13 +9443,13 @@
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
-    jmp near 06827h                           ; e9 38 00
+    jmp near 06845h                           ; e9 38 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
     mov word [bp+00ch], ax                    ; 89 46 0c
-    jmp near 06827h                           ; e9 2b 00
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 06845h                           ; e9 2b 00
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 23 b2
+    call 01a2ah                               ; e8 05 b2
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9433,5 +9457,5 @@
     push 00840h                               ; 68 40 08
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 56 b2
+    call 01a6bh                               ; e8 38 b2
     add sp, strict byte 00006h                ; 83 c4 06
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9446,36 +9470,36 @@
     retn                                      ; c3
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 068dah                           ; e9 a6 00
+    jmp near 068f8h                           ; e9 a6 00
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 06827h                          ; eb ee
+    jmp short 06845h                          ; eb ee
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp short 06824h                          ; eb e6
+    jmp short 06842h                          ; eb e6
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 068b0h                          ; 75 6c
+    jne short 068ceh                          ; 75 6c
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 fc ae
+    call 01749h                               ; e8 de ae
     test AL, strict byte 001h                 ; a8 01
-    jne near 069edh                           ; 0f 85 9a 01
+    jne near 06a0bh                           ; 0f 85 9a 01
     mov bx, strict word 00001h                ; bb 01 00
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 f8 ae
+    call 01757h                               ; e8 da ae
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 08 af
+    call 01773h                               ; e8 ea ae
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 fc ae
+    call 01773h                               ; e8 de ae
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 f0 ae
+    call 01773h                               ; e8 d2 ae
     mov bx, word [bp+010h]                    ; 8b 5e 10
     mov dx, 0009eh                            ; ba 9e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01773h                               ; e8 e4 ae
+    call 01773h                               ; e8 c6 ae
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov dx, 000a1h                            ; ba a1 00
@@ -9486,21 +9510,21 @@
     out DX, AL                                ; ee
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 03 af
+    call 017a5h                               ; e8 e5 ae
     or AL, strict byte 040h                   ; 0c 40
     movzx dx, al                              ; 0f b6 d0
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017c2h                               ; e8 15 af
-    jmp near 06827h                           ; e9 77 ff
+    call 017c2h                               ; e8 f7 ae
+    jmp near 06845h                           ; e9 77 ff
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 068ceh                          ; 75 19
+    jne short 068ech                          ; 75 19
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 97 ae
+    call 01757h                               ; e8 79 ae
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 db ae
+    call 017a5h                               ; e8 bd ae
     and AL, strict byte 0bfh                  ; 24 bf
-    jmp short 068a4h                          ; eb d6
+    jmp short 068c2h                          ; eb d6
     mov word [bp+018h], bx                    ; 89 5e 18
     mov ax, dx                                ; 89 d0
@@ -9510,47 +9534,47 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 06827h                           ; e9 47 ff
+    jmp near 06845h                           ; e9 47 ff
     mov ax, strict word 00031h                ; b8 31 00
-    call 017a5h                               ; e8 bf ae
+    call 017a5h                               ; e8 a1 ae
     movzx dx, al                              ; 0f b6 d0
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00030h                ; b8 30 00
-    call 017a5h                               ; e8 b3 ae
+    call 017a5h                               ; e8 95 ae
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
     mov word [bp+012h], dx                    ; 89 56 12
     cmp dx, strict byte 0ffc0h                ; 83 fa c0
-    jbe short 06903h                          ; 76 05
+    jbe short 06921h                          ; 76 05
     mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    jmp near 06827h                           ; e9 1d ff
+    jmp near 06845h                           ; e9 1d ff
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 06694h                               ; e8 83 fd
+    call 066b2h                               ; e8 83 fd
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00038h                ; 83 c2 38
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 01773h                               ; e8 53 ae
+    call 01773h                               ; e8 35 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ah                ; 83 c2 3a
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 01773h                               ; e8 45 ae
+    call 01773h                               ; e8 27 ae
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ch                ; 83 c2 3c
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 01757h                               ; e8 1a ae
+    call 01757h                               ; e8 fc ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003dh                ; 83 c2 3d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 01757h                               ; e8 0b ae
+    call 01757h                               ; e8 ed ad
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003eh                ; 83 c2 3e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 01773h                               ; e8 19 ae
+    call 01773h                               ; e8 fb ad
     mov AL, strict byte 011h                  ; b0 11
     mov dx, strict word 00020h                ; ba 20 00
@@ -9582,5 +9606,5 @@
     out DX, AL                                ; ee
     mov si, word [bp+006h]                    ; 8b 76 06
-    call 0699bh                               ; e8 00 00
+    call 069b9h                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 00018h                ; 83 c7 18
@@ -9610,12 +9634,12 @@
     push cx                                   ; 51
     retf                                      ; cb
-    jmp near 06827h                           ; e9 50 fe
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 06845h                           ; e9 50 fe
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 48 b0
+    call 01a2ah                               ; e8 2a b0
     push 00880h                               ; 68 80 08
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 81 b0
+    call 01a6bh                               ; e8 63 b0
     add sp, strict byte 00004h                ; 83 c4 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9624,54 +9648,57 @@
     or ah, 086h                               ; 80 cc 86
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 06827h                           ; e9 28 fe
+    jmp near 06845h                           ; e9 28 fe
     mov word [bp+018h], cx                    ; 89 4e 18
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
-    jmp near 06827h                           ; e9 15 fe
+    jmp near 06845h                           ; e9 15 fe
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 4a ad
+    call 01765h                               ; e8 2c ad
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 06903h                           ; e9 e2 fe
+    jmp near 06921h                           ; e9 e2 fe
     push 008afh                               ; 68 af 08
     push strict byte 00008h                   ; 6a 08
-    jmp short 069e7h                          ; eb bf
+    jmp short 06a05h                          ; eb bf
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 06a4dh                          ; 75 1f
+    jne short 06a6bh                          ; 75 1f
     mov word [bp+012h], ax                    ; 89 46 12
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06a46h                           ; 72 0b
+    jc short 06a64h                           ; 72 0b
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnbe short 06a46h                         ; 77 06
+    jnbe short 06a64h                         ; 77 06
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp near 06827h                           ; e9 e1 fd
+    jmp near 06845h                           ; e9 e1 fd
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06827h                           ; e9 da fd
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 06845h                           ; e9 da fd
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 d2 af
+    call 01a2ah                               ; e8 b4 af
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
     push 008c6h                               ; 68 c6 08
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 05 b0
+    call 01a6bh                               ; e8 e7 af
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp short 069edh                          ; eb 82
-    clc                                       ; f8
-    imul bx, word [bp+si], strict byte 0006ch ; 6b 1a 6c
-    cmp ax, 05f6ch                            ; 3d 6c 5f
+    jmp short 06a0bh                          ; eb 82
+    push SS                                   ; 16
     insb                                      ; 6c
-    jnle short 06ae1h                         ; 7f 6c
-    sahf                                      ; 9e
+    cmp byte [si+05bh], ch                    ; 38 6c 5b
     insb                                      ; 6c
-    retn 0e66ch                               ; c2 6c e6
+    jnl short 06afdh                          ; 7d 6c
+    popfw                                     ; 9d
     insb                                      ; 6c
-    and ax, 0516dh                            ; 25 6d 51
+    mov sp, 0e06ch                            ; bc 6c e0
+    insb                                      ; 6c
+    add AL, strict byte 06dh                  ; 04 6d
+    inc bx                                    ; 43
     insw                                      ; 6d
-_int15_function32:                           ; 0xf6a7f LB 0x396
+    outsw                                     ; 6f
+    insw                                      ; 6d
+_int15_function32:                           ; 0xf6a9d LB 0x396
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9685,30 +9712,30 @@
     xor dh, dh                                ; 30 f6
     cmp ax, 000e8h                            ; 3d e8 00
-    je near 06b1ch                            ; 0f 84 7e 00
+    je near 06b3ah                            ; 0f 84 7e 00
     cmp ax, 000d0h                            ; 3d d0 00
-    je short 06ab7h                           ; 74 14
+    je short 06ad5h                           ; 74 14
     cmp ax, 00086h                            ; 3d 86 00
-    jne near 06de5h                           ; 0f 85 3b 03
+    jne near 06e03h                           ; 0f 85 3b 03
     sti                                       ; fb
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     mov ax, word [bp+018h]                    ; 8b 46 18
-    call 06651h                               ; e8 9d fb
-    jmp near 06e0fh                           ; e9 58 03
+    call 0666fh                               ; e8 9d fb
+    jmp near 06e2dh                           ; e9 58 03
     cmp dx, strict byte 0004fh                ; 83 fa 4f
-    jne near 06de5h                           ; 0f 85 27 03
+    jne near 06e03h                           ; 0f 85 27 03
     cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
-    jne near 06de5h                           ; 0f 85 1e 03
+    jne near 06e03h                           ; 0f 85 1e 03
     cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
-    jne near 06de5h                           ; 0f 85 15 03
+    jne near 06e03h                           ; 0f 85 15 03
     cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
-    jne near 06de5h                           ; 0f 85 0c 03
+    jne near 06e03h                           ; 0f 85 0c 03
     cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
-    jne near 06de5h                           ; 0f 85 03 03
+    jne near 06e03h                           ; 0f 85 03 03
     mov ax, word [bp+00ah]                    ; 8b 46 0a
     or ax, word [bp+008h]                     ; 0b 46 08
-    jne near 06de5h                           ; 0f 85 f9 02
+    jne near 06e03h                           ; 0f 85 f9 02
     mov ax, word [bp+006h]                    ; 8b 46 06
     or ax, word [bp+004h]                     ; 0b 46 04
-    jne near 06de5h                           ; 0f 85 ef 02
+    jne near 06e03h                           ; 0f 85 ef 02
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -9721,16 +9748,16 @@
     mov word [bp+006h], ax                    ; 89 46 06
     mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49
-    jmp near 06e0fh                           ; e9 f3 02
+    jmp near 06e2dh                           ; e9 f3 02
     cmp dx, strict byte 00020h                ; 83 fa 20
-    je short 06b2bh                           ; 74 0a
+    je short 06b49h                           ; 74 0a
     cmp dx, strict byte 00001h                ; 83 fa 01
-    je near 06d98h                            ; 0f 84 70 02
-    jmp near 06de5h                           ; e9 ba 02
+    je near 06db6h                            ; 0f 84 70 02
+    jmp near 06e03h                           ; e9 ba 02
     cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
-    jne near 06de5h                           ; 0f 85 b1 02
+    jne near 06e03h                           ; 0f 85 b1 02
     cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
-    jne near 06de5h                           ; 0f 85 a8 02
+    jne near 06e03h                           ; 0f 85 a8 02
     mov ax, strict word 00035h                ; b8 35 00
-    call 017a5h                               ; e8 62 ac
+    call 017a5h                               ; e8 44 ac
     movzx bx, al                              ; 0f b6 d8
     xor dx, dx                                ; 31 d2
@@ -9738,7 +9765,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06b4bh                               ; e2 fa
+    loop 06b69h                               ; e2 fa
     mov ax, strict word 00034h                ; b8 34 00
-    call 017a5h                               ; e8 4e ac
+    call 017a5h                               ; e8 30 ac
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
@@ -9748,10 +9775,10 @@
     adc dx, 00100h                            ; 81 d2 00 01
     cmp dx, 00100h                            ; 81 fa 00 01
-    jc short 06b71h                           ; 72 06
-    jne short 06b9eh                          ; 75 31
+    jc short 06b8fh                           ; 72 06
+    jne short 06bbch                          ; 75 31
     test bx, bx                               ; 85 db
-    jnbe short 06b9eh                         ; 77 2d
+    jnbe short 06bbch                         ; 77 2d
     mov ax, strict word 00031h                ; b8 31 00
-    call 017a5h                               ; e8 2e ac
+    call 017a5h                               ; e8 10 ac
     movzx bx, al                              ; 0f b6 d8
     xor dx, dx                                ; 31 d2
@@ -9759,7 +9786,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06b7fh                               ; e2 fa
+    loop 06b9dh                               ; e2 fa
     mov ax, strict word 00030h                ; b8 30 00
-    call 017a5h                               ; e8 1a ac
+    call 017a5h                               ; e8 fc ab
     xor ah, ah                                ; 30 e4
     or bx, ax                                 ; 09 c3
@@ -9767,9 +9794,9 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06b92h                               ; e2 fa
+    loop 06bb0h                               ; e2 fa
     add bx, strict byte 00000h                ; 83 c3 00
     adc dx, strict byte 00010h                ; 83 d2 10
     mov ax, strict word 00062h                ; b8 62 00
-    call 017a5h                               ; e8 01 ac
+    call 017a5h                               ; e8 e3 ab
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
@@ -9779,7 +9806,7 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 06bb1h                               ; e2 f8
+    loop 06bcfh                               ; e2 f8
     mov ax, strict word 00061h                ; b8 61 00
-    call 017a5h                               ; e8 e6 ab
+    call 017a5h                               ; e8 c8 ab
     xor ah, ah                                ; 30 e4
     or word [bp-00ah], ax                     ; 09 46 f6
@@ -9788,10 +9815,10 @@
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     mov ax, strict word 00063h                ; b8 63 00
-    call 017a5h                               ; e8 d0 ab
+    call 017a5h                               ; e8 b2 ab
     mov byte [bp-004h], al                    ; 88 46 fc
     mov byte [bp-006h], al                    ; 88 46 fa
     mov ax, word [bp+014h]                    ; 8b 46 14
     cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe near 06de5h                          ; 0f 87 00 02
+    jnbe near 06e03h                          ; 0f 87 00 02
     mov si, ax                                ; 89 c6
     add si, ax                                ; 01 c6
@@ -9800,5 +9827,5 @@
     mov cx, dx                                ; 89 d1
     adc cx, strict byte 0ffffh                ; 83 d1 ff
-    jmp word [cs:si+06a6bh]                   ; 2e ff a4 6b 6a
+    jmp word [cs:si+06a89h]                   ; 2e ff a4 89 6a
     push strict byte 00001h                   ; 6a 01
     push dword 000000000h                     ; 66 6a 00
@@ -9809,7 +9836,7 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 066c0h                               ; e8 b1 fa
+    call 066deh                               ; e8 b1 fa
     mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00
-    jmp near 06d82h                           ; e9 68 01
+    jmp near 06da0h                           ; e9 68 01
     push strict byte 00002h                   ; 6a 02
     push dword 000000000h                     ; 66 6a 00
@@ -9820,7 +9847,7 @@
     mov bx, 0fc00h                            ; bb 00 fc
     mov cx, strict word 00009h                ; b9 09 00
-    call 066c0h                               ; e8 8e fa
+    call 066deh                               ; e8 8e fa
     mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00
-    jmp near 06d82h                           ; e9 45 01
+    jmp near 06da0h                           ; e9 45 01
     push strict byte 00002h                   ; 6a 02
     push dword 000000000h                     ; 66 6a 00
@@ -9831,7 +9858,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0000fh                ; b9 0f 00
-    call 066c0h                               ; e8 6c fa
+    call 066deh                               ; e8 6c fa
     mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00
-    jmp near 06d82h                           ; e9 23 01
+    jmp near 06da0h                           ; e9 23 01
     push strict byte 00001h                   ; 6a 01
     push dword 000000000h                     ; 66 6a 00
@@ -9842,7 +9869,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 00010h                ; b9 10 00
-    call 066c0h                               ; e8 4c fa
+    call 066deh                               ; e8 4c fa
     mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00
-    jmp near 06d82h                           ; e9 03 01
+    jmp near 06da0h                           ; e9 03 01
     push strict byte 00003h                   ; 6a 03
     push dword 000000000h                     ; 66 6a 00
@@ -9853,7 +9880,7 @@
     mov bx, ax                                ; 89 c3
     mov ax, si                                ; 89 f0
-    call 066c0h                               ; e8 2d fa
+    call 066deh                               ; e8 2d fa
     mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00
-    jmp near 06d82h                           ; e9 e4 00
+    jmp near 06da0h                           ; e9 e4 00
     push strict byte 00002h                   ; 6a 02
     push dword 000000000h                     ; 66 6a 00
@@ -9864,7 +9891,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fec0h                            ; b9 c0 fe
-    call 066c0h                               ; e8 09 fa
+    call 066deh                               ; e8 09 fa
     mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00
-    jmp near 06d82h                           ; e9 c0 00
+    jmp near 06da0h                           ; e9 c0 00
     push strict byte 00002h                   ; 6a 02
     push dword 000000000h                     ; 66 6a 00
@@ -9875,7 +9902,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fee0h                            ; b9 e0 fe
-    call 066c0h                               ; e8 e5 f9
+    call 066deh                               ; e8 e5 f9
     mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00
-    jmp near 06d82h                           ; e9 9c 00
+    jmp near 06da0h                           ; e9 9c 00
     push strict byte 00002h                   ; 6a 02
     push dword 000000000h                     ; 66 6a 00
@@ -9885,17 +9912,17 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0fffch                ; b9 fc ff
-    call 066c0h                               ; e8 c4 f9
+    call 066deh                               ; e8 c4 f9
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06d09h                          ; 75 07
+    jne short 06d27h                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06d1dh                           ; 74 14
+    je short 06d3bh                           ; 74 14
     mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00
-    jmp short 06d82h                          ; eb 6f
+    jmp short 06da0h                          ; eb 6f
     mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00
-    jmp short 06d82h                          ; eb 65
+    jmp short 06da0h                          ; eb 65
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06d82h                          ; eb 5d
+    jmp short 06da0h                          ; eb 5d
     push strict byte 00002h                   ; 6a 02
     push dword 000000000h                     ; 66 6a 00
@@ -9905,18 +9932,18 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 066c0h                               ; e8 86 f9
+    call 066deh                               ; e8 86 f9
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06d47h                          ; 75 07
+    jne short 06d65h                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06d49h                           ; 74 02
-    jmp short 06d09h                          ; eb c0
+    je short 06d67h                           ; 74 02
+    jmp short 06d27h                          ; eb c0
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06d82h                          ; eb 31
+    jmp short 06da0h                          ; eb 31
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06d5dh                          ; 75 06
+    jne short 06d7bh                          ; 75 06
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    je short 06d82h                           ; 74 25
+    je short 06da0h                           ; 74 25
     push strict byte 00001h                   ; 6a 01
     mov al, byte [bp-006h]                    ; 8a 46 fa
@@ -9931,5 +9958,5 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 066c0h                               ; e8 46 f9
+    call 066deh                               ; e8 46 f9
     xor ax, ax                                ; 31 c0
     mov word [bp+014h], ax                    ; 89 46 14
@@ -9938,26 +9965,26 @@
     mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00
     and byte [bp+028h], 0feh                  ; 80 66 28 fe
-    jmp short 06e0fh                          ; eb 77
+    jmp short 06e2dh                          ; eb 77
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, strict word 00031h                ; b8 31 00
-    call 017a5h                               ; e8 04 aa
+    call 017a5h                               ; e8 e6 a9
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00030h                ; b8 30 00
-    call 017a5h                               ; e8 f7 a9
+    call 017a5h                               ; e8 d9 a9
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
     mov word [bp+01ch], dx                    ; 89 56 1c
     cmp dx, 03c00h                            ; 81 fa 00 3c
-    jbe short 06dc0h                          ; 76 05
+    jbe short 06ddeh                          ; 76 05
     mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
     mov ax, strict word 00035h                ; b8 35 00
-    call 017a5h                               ; e8 df a9
+    call 017a5h                               ; e8 c1 a9
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     sal dx, 008h                              ; c1 e2 08
     mov ax, strict word 00034h                ; b8 34 00
-    call 017a5h                               ; e8 d2 a9
+    call 017a5h                               ; e8 b4 a9
     xor ah, ah                                ; 30 e4
     or dx, ax                                 ; 09 c2
@@ -9966,14 +9993,14 @@
     mov word [bp+020h], ax                    ; 89 46 20
     mov word [bp+014h], dx                    ; 89 56 14
-    jmp short 06e0fh                          ; eb 2a
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp short 06e2dh                          ; eb 2a
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 3a ac
+    call 01a2ah                               ; e8 1c ac
     push word [bp+014h]                       ; ff 76 14
     push word [bp+020h]                       ; ff 76 20
     push 008c6h                               ; 68 c6 08
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 6d ac
+    call 01a6bh                               ; e8 4f ac
     add sp, strict byte 00008h                ; 83 c4 08
     or byte [bp+028h], 001h                   ; 80 4e 28 01
@@ -9986,5 +10013,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int15_blkmove:                              ; 0xf6e15 LB 0x1ab
+_int15_blkmove:                              ; 0xf6e33 LB 0x1ab
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9995,5 +10022,5 @@
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 06694h                               ; e8 71 f8
+    call 066b2h                               ; e8 71 f8
     mov di, ax                                ; 89 c7
     mov ax, word [bp+006h]                    ; 8b 46 06
@@ -10005,5 +10032,5 @@
     mov byte [bp-006h], dl                    ; 88 56 fa
     cmp cx, ax                                ; 39 c1
-    jnc short 06e42h                          ; 73 05
+    jnc short 06e60h                          ; 73 05
     db  0feh, 0c2h
     ; inc dl                                    ; fe c2
@@ -10013,50 +10040,50 @@
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0002fh                ; bb 2f 00
-    call 01773h                               ; e8 22 a9
+    call 01773h                               ; e8 04 a9
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, cx                                ; 89 cb
-    call 01773h                               ; e8 14 a9
+    call 01773h                               ; e8 f6 a8
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+006h]                    ; 8b 46 06
-    call 01757h                               ; e8 e8 a8
+    call 01757h                               ; e8 ca a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000dh                ; 83 c2 0d
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, 00093h                            ; bb 93 00
-    call 01757h                               ; e8 d9 a8
+    call 01757h                               ; e8 bb a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 01773h                               ; e8 e7 a8
+    call 01773h                               ; e8 c9 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00020h                ; 83 c2 20
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 01773h                               ; e8 d8 a8
+    call 01773h                               ; e8 ba a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00022h                ; 83 c2 22
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 01773h                               ; e8 ca a8
+    call 01773h                               ; e8 ac a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00024h                ; 83 c2 24
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 01757h                               ; e8 9f a8
+    call 01757h                               ; e8 81 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00025h                ; 83 c2 25
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, 0009bh                            ; bb 9b 00
-    call 01757h                               ; e8 90 a8
+    call 01757h                               ; e8 72 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 00026h                ; 83 c2 26
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 01773h                               ; e8 9e a8
+    call 01773h                               ; e8 80 a8
     mov ax, ss                                ; 8c d0
     mov cx, ax                                ; 89 c1
@@ -10068,25 +10095,25 @@
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 01773h                               ; e8 82 a8
+    call 01773h                               ; e8 64 a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002ah                ; 83 c2 2a
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, cx                                ; 89 cb
-    call 01773h                               ; e8 74 a8
+    call 01773h                               ; e8 56 a8
     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002ch                ; 83 c2 2c
     mov ax, word [bp+006h]                    ; 8b 46 06
-    call 01757h                               ; e8 48 a8
+    call 01757h                               ; e8 2a a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002dh                ; 83 c2 2d
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov bx, 00093h                            ; bb 93 00
-    call 01757h                               ; e8 39 a8
+    call 01757h                               ; e8 1b a8
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     add dx, strict byte 0002eh                ; 83 c2 2e
     mov ax, word [bp+006h]                    ; 8b 46 06
     xor bx, bx                                ; 31 db
-    call 01773h                               ; e8 47 a8
+    call 01773h                               ; e8 29 a8
     lea ax, [bp+004h]                         ; 8d 46 04
     mov si, word [bp+00ah]                    ; 8b 76 0a
@@ -10100,5 +10127,5 @@
     mov word [00467h], sp                     ; 89 26 67 04
     mov [00469h], ss                          ; 8c 16 69 04
-    call 06f4bh                               ; e8 00 00
+    call 06f69h                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 0001bh                ; 83 c7 1b
@@ -10123,5 +10150,5 @@
     cld                                       ; fc
     rep movsw                                 ; f3 a5
-    call 06f7fh                               ; e8 00 00
+    call 06f9dh                               ; e8 00 00
     pop ax                                    ; 58
     push 0f000h                               ; 68 00 f0
@@ -10144,5 +10171,5 @@
     pop DS                                    ; 1f
     mov ax, di                                ; 89 f8
-    call 06694h                               ; e8 e4 f6
+    call 066b2h                               ; e8 e4 f6
     sti                                       ; fb
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -10153,5 +10180,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_inv_op_handler:                             ; 0xf6fc0 LB 0x195
+_inv_op_handler:                             ; 0xf6fde LB 0x195
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10162,9 +10189,9 @@
     les bx, [bp+018h]                         ; c4 5e 18
     cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
-    jne short 06fd6h                          ; 75 06
+    jne short 06ff4h                          ; 75 06
     inc word [bp+018h]                        ; ff 46 18
-    jmp near 0714eh                           ; e9 78 01
+    jmp near 0716ch                           ; e9 78 01
     cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
-    jne near 0714ah                           ; 0f 85 6b 01
+    jne near 07168h                           ; 0f 85 6b 01
     mov si, 00800h                            ; be 00 08
     xor ax, ax                                ; 31 c0
@@ -10194,9 +10221,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0702fh                               ; e2 fa
+    loop 0704dh                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 0703dh                          ; 75 04
+    jne short 0705bh                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 07042h                           ; 74 05
+    je short 07060h                           ; 74 05
     mov word [bp-008h], strict word 00001h    ; c7 46 f8 01 00
     mov es, [bp-006h]                         ; 8e 46 fa
@@ -10208,9 +10235,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 07057h                               ; e2 fa
+    loop 07075h                               ; e2 fa
     cmp di, dx                                ; 39 d7
-    jne short 07065h                          ; 75 04
+    jne short 07083h                          ; 75 04
     cmp bx, ax                                ; 39 c3
-    je short 07069h                           ; 74 04
+    je short 07087h                           ; 74 04
     or byte [bp-008h], 002h                   ; 80 4e f8 02
     push strict byte 00000h                   ; 6a 00
@@ -10262,8 +10289,8 @@
     mov ax, strict word 00008h                ; b8 08 00
     test cx, strict word 00001h               ; f7 c1 01 00
-    je near 07107h                            ; 0f 84 02 00
+    je near 07125h                            ; 0f 84 02 00
     mov es, ax                                ; 8e c0
     test cx, strict word 00002h               ; f7 c1 02 00
-    je near 0712fh                            ; 0f 84 20 00
+    je near 0714dh                            ; 0f 84 20 00
     mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
     mov word [word ss:00008h], bx             ; 36 89 1e 08 00
@@ -10282,8 +10309,8 @@
     mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
     iret                                      ; cf
-    jmp short 0714eh                          ; eb 04
+    jmp short 0716ch                          ; eb 04
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0714bh                          ; eb fd
+    jmp short 07169h                          ; eb fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -10291,5 +10318,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-init_rtc_:                                   ; 0xf7155 LB 0x28
+init_rtc_:                                   ; 0xf7173 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10297,17 +10324,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 017c2h                               ; e8 60 a6
+    call 017c2h                               ; e8 42 a6
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017c2h                               ; e8 57 a6
+    call 017c2h                               ; e8 39 a6
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 017a5h                               ; e8 34 a6
+    call 017a5h                               ; e8 16 a6
     mov ax, strict word 0000dh                ; b8 0d 00
-    call 017a5h                               ; e8 2e a6
+    call 017a5h                               ; e8 10 a6
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-rtc_updating_:                               ; 0xf717d LB 0x21
+rtc_updating_:                               ; 0xf719b LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10315,11 +10342,11 @@
     mov dx, 061a8h                            ; ba a8 61
     dec dx                                    ; 4a
-    je short 07195h                           ; 74 0e
+    je short 071b3h                           ; 74 0e
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 017a5h                               ; e8 18 a6
+    call 017a5h                               ; e8 fa a5
     test AL, strict byte 080h                 ; a8 80
-    jne short 07184h                          ; 75 f3
+    jne short 071a2h                          ; 75 f3
     xor ax, ax                                ; 31 c0
-    jmp short 07198h                          ; eb 03
+    jmp short 071b6h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -10327,5 +10354,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int70_function:                             ; 0xf719e LB 0xbe
+_int70_function:                             ; 0xf71bc LB 0xbe
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10333,57 +10360,57 @@
     push ax                                   ; 50
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 fc a5
+    call 017a5h                               ; e8 de a5
     mov dl, al                                ; 88 c2
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 017a5h                               ; e8 f1 a5
+    call 017a5h                               ; e8 d3 a5
     mov dh, al                                ; 88 c6
     test dl, 060h                             ; f6 c2 60
-    je near 07243h                            ; 0f 84 86 00
+    je near 07261h                            ; 0f 84 86 00
     test AL, strict byte 020h                 ; a8 20
-    je short 071c5h                           ; 74 04
+    je short 071e3h                           ; 74 04
     sti                                       ; fb
     int 04ah                                  ; cd 4a
     cli                                       ; fa
     test dh, 040h                             ; f6 c6 40
-    je near 07243h                            ; 0f 84 77 00
+    je near 07261h                            ; 0f 84 77 00
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 74 a5
+    call 01749h                               ; e8 56 a5
     test al, al                               ; 84 c0
-    je short 07243h                           ; 74 6a
+    je short 07261h                           ; 74 6a
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01781h                               ; e8 9f a5
+    call 01781h                               ; e8 81 a5
     test dx, dx                               ; 85 d2
-    jne short 0722fh                          ; 75 49
+    jne short 0724dh                          ; 75 49
     cmp ax, 003d1h                            ; 3d d1 03
-    jnc short 0722fh                          ; 73 44
+    jnc short 0724dh                          ; 73 44
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 71 a5
+    call 01765h                               ; e8 53 a5
     mov si, ax                                ; 89 c6
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 66 a5
+    call 01765h                               ; e8 48 a5
     mov cx, ax                                ; 89 c1
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 4b a5
+    call 01757h                               ; e8 2d a5
     mov al, byte [bp-004h]                    ; 8a 46 fc
     and AL, strict byte 037h                  ; 24 37
     movzx dx, al                              ; 0f b6 d0
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017c2h                               ; e8 a8 a5
+    call 017c2h                               ; e8 8a a5
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01749h                               ; e8 28 a5
+    call 01749h                               ; e8 0a a5
     or AL, strict byte 080h                   ; 0c 80
     movzx bx, al                              ; 0f b6 d8
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01757h                               ; e8 2a a5
-    jmp short 07243h                          ; eb 14
+    call 01757h                               ; e8 0c a5
+    jmp short 07261h                          ; eb 14
     mov bx, ax                                ; 89 c3
     add bx, 0fc2fh                            ; 81 c3 2f fc
@@ -10392,20 +10419,20 @@
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01793h                               ; e8 50 a5
-    call 0e030h                               ; e8 ea 6d
+    call 01793h                               ; e8 32 a5
+    call 0e030h                               ; e8 cc 6d
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-    jnc short 072c0h                          ; 73 72
-    pushfw                                    ; 9c
-    jc short 07212h                           ; 72 c1
-    jc short 07246h                           ; 72 f3
-    jc short 07297h                           ; 72 42
-    jnc short 072d1h                          ; 73 7a
-    jnc short 07216h                          ; 73 bd
-    jnc short 0726fh                          ; 73 14
+    xchg cx, ax                               ; 91
+    jc short 07227h                           ; 72 ba
+    jc short 0724eh                           ; 72 df
+    jc short 07282h                           ; 72 11
+    jnc short 072d3h                          ; 73 60
+    jnc short 0720dh                          ; 73 98
+    jnc short 07252h                          ; 73 db
+    jnc short 072abh                          ; 73 32
     db  074h
-_int1a_function:                             ; 0xf725c LB 0x1c8
+_int1a_function:                             ; 0xf727a LB 0x1c8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10413,8 +10440,8 @@
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe near 07298h                          ; 0f 87 2f 00
+    jnbe near 072b6h                          ; 0f 87 2f 00
     movzx bx, al                              ; 0f b6 d8
     add bx, bx                                ; 01 db
-    jmp word [cs:bx+0724ch]                   ; 2e ff a7 4c 72
+    jmp word [cs:bx+0726ah]                   ; 2e ff a7 6a 72
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10447,39 +10474,39 @@
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 07298h                          ; eb d7
-    call 0717dh                               ; e8 b9 fe
+    jmp short 072b6h                          ; eb d7
+    call 0719bh                               ; e8 b9 fe
     test ax, ax                               ; 85 c0
-    je short 072cah                           ; 74 02
-    jmp short 07298h                          ; eb ce
+    je short 072e8h                           ; 74 02
+    jmp short 072b6h                          ; eb ce
     xor ax, ax                                ; 31 c0
-    call 017a5h                               ; e8 d6 a4
+    call 017a5h                               ; e8 b8 a4
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00002h                ; b8 02 00
-    call 017a5h                               ; e8 cd a4
+    call 017a5h                               ; e8 af a4
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00004h                ; b8 04 00
-    call 017a5h                               ; e8 c4 a4
+    call 017a5h                               ; e8 a6 a4
     mov bl, al                                ; 88 c3
     mov byte [bp+011h], al                    ; 88 46 11
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 b9 a4
+    call 017a5h                               ; e8 9b a4
     and AL, strict byte 001h                  ; 24 01
     mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp short 07338h                          ; eb 45
-    call 0717dh                               ; e8 87 fe
+    jmp short 07356h                          ; eb 45
+    call 0719bh                               ; e8 87 fe
     test ax, ax                               ; 85 c0
-    je short 072fdh                           ; 74 03
-    call 07155h                               ; e8 58 fe
+    je short 0731bh                           ; 74 03
+    call 07173h                               ; e8 58 fe
     movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
     xor ax, ax                                ; 31 c0
-    call 017c2h                               ; e8 bc a4
+    call 017c2h                               ; e8 9e a4
     movzx dx, byte [bp+010h]                  ; 0f b6 56 10
     mov ax, strict word 00002h                ; b8 02 00
-    call 017c2h                               ; e8 b2 a4
+    call 017c2h                               ; e8 94 a4
     movzx dx, byte [bp+011h]                  ; 0f b6 56 11
     mov ax, strict word 00004h                ; b8 04 00
-    call 017c2h                               ; e8 a8 a4
+    call 017c2h                               ; e8 8a a4
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 85 a4
+    call 017a5h                               ; e8 67 a4
     mov bl, al                                ; 88 c3
     and bl, 060h                              ; 80 e3 60
@@ -10490,69 +10517,69 @@
     movzx dx, bl                              ; 0f b6 d3
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017c2h                               ; e8 8a a4
+    call 017c2h                               ; e8 6c a4
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov byte [bp+012h], bl                    ; 88 5e 12
-    jmp near 07298h                           ; e9 56 ff
+    jmp near 072b6h                           ; e9 56 ff
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    call 0717dh                               ; e8 34 fe
+    call 0719bh                               ; e8 34 fe
     test ax, ax                               ; 85 c0
-    je short 07350h                           ; 74 03
-    jmp near 07298h                           ; e9 48 ff
+    je short 0736eh                           ; 74 03
+    jmp near 072b6h                           ; e9 48 ff
     mov ax, strict word 00009h                ; b8 09 00
-    call 017a5h                               ; e8 4f a4
+    call 017a5h                               ; e8 31 a4
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00008h                ; b8 08 00
-    call 017a5h                               ; e8 46 a4
+    call 017a5h                               ; e8 28 a4
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00007h                ; b8 07 00
-    call 017a5h                               ; e8 3d a4
+    call 017a5h                               ; e8 1f a4
     mov byte [bp+00eh], al                    ; 88 46 0e
     mov ax, strict word 00032h                ; b8 32 00
-    call 017a5h                               ; e8 34 a4
+    call 017a5h                               ; e8 16 a4
     mov byte [bp+011h], al                    ; 88 46 11
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 07298h                           ; e9 1e ff
-    call 0717dh                               ; e8 00 fe
+    jmp near 072b6h                           ; e9 1e ff
+    call 0719bh                               ; e8 00 fe
     test ax, ax                               ; 85 c0
-    je short 07387h                           ; 74 06
-    call 07155h                               ; e8 d1 fd
-    jmp near 07298h                           ; e9 11 ff
+    je short 073a5h                           ; 74 06
+    call 07173h                               ; e8 d1 fd
+    jmp near 072b6h                           ; e9 11 ff
     movzx dx, byte [bp+010h]                  ; 0f b6 56 10
     mov ax, strict word 00009h                ; b8 09 00
-    call 017c2h                               ; e8 31 a4
+    call 017c2h                               ; e8 13 a4
     movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
     mov ax, strict word 00008h                ; b8 08 00
-    call 017c2h                               ; e8 27 a4
+    call 017c2h                               ; e8 09 a4
     movzx dx, byte [bp+00eh]                  ; 0f b6 56 0e
     mov ax, strict word 00007h                ; b8 07 00
-    call 017c2h                               ; e8 1d a4
+    call 017c2h                               ; e8 ff a3
     movzx dx, byte [bp+011h]                  ; 0f b6 56 11
     mov ax, strict word 00032h                ; b8 32 00
-    call 017c2h                               ; e8 13 a4
+    call 017c2h                               ; e8 f5 a3
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 f0 a3
+    call 017a5h                               ; e8 d2 a3
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
-    jmp near 0732fh                           ; e9 72 ff
+    jmp near 0734dh                           ; e9 72 ff
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 e2 a3
+    call 017a5h                               ; e8 c4 a3
     mov bl, al                                ; 88 c3
     mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
     test AL, strict byte 020h                 ; a8 20
-    je short 073d1h                           ; 74 03
-    jmp near 07298h                           ; e9 c7 fe
-    call 0717dh                               ; e8 a9 fd
+    je short 073efh                           ; 74 03
+    jmp near 072b6h                           ; e9 c7 fe
+    call 0719bh                               ; e8 a9 fd
     test ax, ax                               ; 85 c0
-    je short 073dbh                           ; 74 03
-    call 07155h                               ; e8 7a fd
+    je short 073f9h                           ; 74 03
+    call 07173h                               ; e8 7a fd
     movzx dx, byte [bp+00fh]                  ; 0f b6 56 0f
     mov ax, strict word 00001h                ; b8 01 00
-    call 017c2h                               ; e8 dd a3
+    call 017c2h                               ; e8 bf a3
     movzx dx, byte [bp+010h]                  ; 0f b6 56 10
     mov ax, strict word 00003h                ; b8 03 00
-    call 017c2h                               ; e8 d3 a3
+    call 017c2h                               ; e8 b5 a3
     movzx dx, byte [bp+011h]                  ; 0f b6 56 11
     mov ax, strict word 00005h                ; b8 05 00
-    call 017c2h                               ; e8 c9 a3
+    call 017c2h                               ; e8 ab a3
     mov dx, 000a1h                            ; ba a1 00
     in AL, DX                                 ; ec
@@ -10566,13 +10593,13 @@
     movzx dx, al                              ; 0f b6 d0
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017c2h                               ; e8 b1 a3
-    jmp near 07298h                           ; e9 84 fe
+    call 017c2h                               ; e8 93 a3
+    jmp near 072b6h                           ; e9 84 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 017a5h                               ; e8 8b a3
+    call 017a5h                               ; e8 6d a3
     mov bl, al                                ; 88 c3
     and AL, strict byte 057h                  ; 24 57
     movzx dx, al                              ; 0f b6 d0
-    jmp near 07332h                           ; e9 0e ff
-send_to_mouse_ctrl_:                         ; 0xf7424 LB 0x34
+    jmp near 07350h                           ; e9 0e ff
+send_to_mouse_ctrl_:                         ; 0xf7442 LB 0x34
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10585,9 +10612,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 07443h                           ; 74 0e
+    je short 07461h                           ; 74 0e
     push 00900h                               ; 68 00 09
-    push 0117eh                               ; 68 7e 11
+    push 0117ah                               ; 68 7a 11
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 2b a6
+    call 01a6bh                               ; e8 0d a6
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 0d4h                  ; b0 d4
@@ -10603,5 +10630,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_mouse_data_:                             ; 0xf7458 LB 0x5c
+get_mouse_data_:                             ; 0xf7476 LB 0x5c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10618,7 +10645,7 @@
     and ax, strict word 00021h                ; 25 21 00
     cmp ax, strict word 00021h                ; 3d 21 00
-    je short 0749ah                           ; 74 27
+    je short 074b8h                           ; 74 27
     test cx, cx                               ; 85 c9
-    je short 0749ah                           ; 74 23
+    je short 074b8h                           ; 74 23
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -10636,11 +10663,11 @@
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     cmp dx, ax                                ; 39 c2
-    je short 07482h                           ; 74 eb
+    je short 074a0h                           ; 74 eb
     dec cx                                    ; 49
-    jmp short 07465h                          ; eb cb
+    jmp short 07483h                          ; eb cb
     test cx, cx                               ; 85 c9
-    jne short 074a2h                          ; 75 04
+    jne short 074c0h                          ; 75 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 074adh                          ; eb 0b
+    jmp short 074cbh                          ; eb 0b
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10654,5 +10681,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_kbd_command_byte_:                       ; 0xf74b4 LB 0x32
+set_kbd_command_byte_:                       ; 0xf74d2 LB 0x32
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10665,9 +10692,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 074d3h                           ; 74 0e
+    je short 074f1h                           ; 74 0e
     push 0090ah                               ; 68 0a 09
-    push 0117eh                               ; 68 7e 11
+    push 0117ah                               ; 68 7a 11
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 9b a5
+    call 01a6bh                               ; e8 7d a5
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 060h                  ; b0 60
@@ -10682,5 +10709,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int74_function:                             ; 0xf74e6 LB 0xca
+_int74_function:                             ; 0xf7504 LB 0xca
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10688,5 +10715,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 70 a2
+    call 01765h                               ; e8 52 a2
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -10697,5 +10724,5 @@
     and AL, strict byte 021h                  ; 24 21
     cmp AL, strict byte 021h                  ; 3c 21
-    jne near 0759ch                           ; 0f 85 92 00
+    jne near 075bah                           ; 0f 85 92 00
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10705,12 +10732,12 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 2f a2
+    call 01749h                               ; e8 11 a2
     mov byte [bp-006h], al                    ; 88 46 fa
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 24 a2
+    call 01749h                               ; e8 06 a2
     mov byte [bp-008h], al                    ; 88 46 f8
     test AL, strict byte 080h                 ; a8 80
-    je short 0759ch                           ; 74 70
+    je short 075bah                           ; 74 70
     mov al, byte [bp-008h]                    ; 8a 46 f8
     and AL, strict byte 007h                  ; 24 07
@@ -10723,21 +10750,21 @@
     add dx, strict byte 00028h                ; 83 c2 28
     mov ax, cx                                ; 89 c8
-    call 01757h                               ; e8 0e a2
+    call 01757h                               ; e8 f0 a1
     mov al, byte [bp-004h]                    ; 8a 46 fc
     cmp al, byte [bp-002h]                    ; 3a 46 fe
-    jc short 0758dh                           ; 72 3c
+    jc short 075abh                           ; 72 3c
     mov dx, strict word 00028h                ; ba 28 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 f0 a1
+    call 01749h                               ; e8 d2 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+00ch], ax                    ; 89 46 0c
     mov dx, strict word 00029h                ; ba 29 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 e3 a1
+    call 01749h                               ; e8 c5 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+00ah], ax                    ; 89 46 0a
     mov dx, strict word 0002ah                ; ba 2a 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 d6 a1
+    call 01749h                               ; e8 b8 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+008h], ax                    ; 89 46 08
@@ -10746,25 +10773,24 @@
     mov byte [bp-006h], ah                    ; 88 66 fa
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 07590h                           ; 74 0a
+    je short 075aeh                           ; 74 0a
     mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
-    jmp short 07590h                          ; eb 03
+    jmp short 075aeh                          ; eb 03
     inc byte [bp-006h]                        ; fe 46 fa
     movzx bx, byte [bp-006h]                  ; 0f b6 5e fa
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01757h                               ; e8 bb a1
+    call 01757h                               ; e8 9d a1
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-    hlt                                       ; f4
-    jne short 0760dh                          ; 75 6a
-    jbe short 07592h                          ; 76 ed
-    jbe short 07625h                          ; 76 7e
-    jnbe short 07595h                         ; 77 ec
-    jnbe short 075ebh                         ; 77 40
-    jbe short 075c1h                          ; 76 14
-    js short 07588h                           ; 78 d9
+    adc dh, byte [bp-078h]                    ; 12 76 88
+    jbe short 075ceh                          ; 76 0b
+    jnbe short 07561h                         ; 77 9c
+    jnbe short 075d1h                         ; 77 0a
+    js short 07627h                           ; 78 5e
+    jbe short 075fdh                          ; 76 32
+    js short 075c4h                           ; 78 f7
     db  078h
-_int15_function_mouse:                       ; 0xf75b0 LB 0x38b
+_int15_function_mouse:                       ; 0xf75ce LB 0x38b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10773,31 +10799,31 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 a5 a1
+    call 01765h                               ; e8 87 a1
     mov cx, ax                                ; 89 c1
     cmp byte [bp+012h], 007h                  ; 80 7e 12 07
-    jbe short 075d3h                          ; 76 0b
+    jbe short 075f1h                          ; 76 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp near 07935h                           ; e9 62 03
+    jmp near 07953h                           ; e9 62 03
     mov ax, strict word 00065h                ; b8 65 00
-    call 074b4h                               ; e8 db fe
+    call 074d2h                               ; e8 db fe
     and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov al, byte [bp+012h]                    ; 8a 46 12
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe near 0791ch                          ; 0f 87 32 03
+    jnbe near 0793ah                          ; 0f 87 32 03
     movzx si, al                              ; 0f b6 f0
     add si, si                                ; 01 f6
-    jmp word [cs:si+075a0h]                   ; 2e ff a4 a0 75
+    jmp word [cs:si+075beh]                   ; 2e ff a4 be 75
     cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
-    jnbe near 07927h                          ; 0f 87 2b 03
+    jnbe near 07945h                          ; 0f 87 2b 03
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 45 a1
+    call 01749h                               ; e8 27 a1
     test AL, strict byte 080h                 ; a8 80
-    jne short 07613h                          ; 75 0b
+    jne short 07631h                          ; 75 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 005h                  ; c6 46 13 05
-    jmp near 0792fh                           ; e9 1c 03
+    jmp near 0794dh                           ; e9 1c 03
     cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
     db  00fh, 094h, 0c0h
@@ -10805,24 +10831,24 @@
     add AL, strict byte 0f4h                  ; 04 f4
     xor ah, ah                                ; 30 e4
-    call 07424h                               ; e8 03 fe
+    call 07442h                               ; e8 03 fe
     test al, al                               ; 84 c0
-    jne near 078b5h                           ; 0f 85 8e 02
+    jne near 078d3h                           ; 0f 85 8e 02
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 29 fe
+    call 07476h                               ; e8 29 fe
     test al, al                               ; 84 c0
-    je near 0792fh                            ; 0f 84 fa 02
+    je near 0794dh                            ; 0f 84 fa 02
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    jne near 078b5h                           ; 0f 85 78 02
-    jmp near 0792fh                           ; e9 ef 02
+    jne near 078d3h                           ; 0f 85 78 02
+    jmp near 0794dh                           ; e9 ef 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0764bh                           ; 72 04
+    jc short 07669h                           ; 72 04
     cmp AL, strict byte 008h                  ; 3c 08
-    jbe short 0764eh                          ; 76 03
-    jmp near 077e1h                           ; e9 93 01
+    jbe short 0766ch                          ; 76 03
+    jmp near 077ffh                           ; e9 93 01
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 f3 a0
+    call 01749h                               ; e8 d5 a0
     mov ah, byte [bp+00dh]                    ; 8a 66 0d
     db  0feh, 0cch
@@ -10833,194 +10859,194 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01757h                               ; e8 ed a0
+    call 01757h                               ; e8 cf a0
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 d7 a0
+    call 01749h                               ; e8 b9 a0
     and AL, strict byte 0f8h                  ; 24 f8
     movzx bx, al                              ; 0f b6 d8
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01757h                               ; e8 d8 a0
+    call 01757h                               ; e8 ba a0
     mov ax, 000ffh                            ; b8 ff 00
-    call 07424h                               ; e8 9f fd
+    call 07442h                               ; e8 9f fd
     test al, al                               ; 84 c0
-    jne near 078b5h                           ; 0f 85 2a 02
+    jne near 078d3h                           ; 0f 85 2a 02
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 07458h                               ; e8 c5 fd
+    call 07476h                               ; e8 c5 fd
     mov cl, al                                ; 88 c1
     cmp byte [bp-004h], 0feh                  ; 80 7e fc fe
-    jne short 076a6h                          ; 75 0b
+    jne short 076c4h                          ; 75 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 004h                  ; c6 46 13 04
-    jmp near 0792fh                           ; e9 89 02
+    jmp near 0794dh                           ; e9 89 02
     cmp byte [bp-004h], 0fah                  ; 80 7e fc fa
-    je short 076bch                           ; 74 10
+    je short 076dah                           ; 74 10
     movzx ax, byte [bp-004h]                  ; 0f b6 46 fc
     push ax                                   ; 50
     push 00915h                               ; 68 15 09
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 b2 a3
+    call 01a6bh                               ; e8 94 a3
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne near 078b5h                           ; 0f 85 f3 01
+    jne near 078d3h                           ; 0f 85 f3 01
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 8e fd
+    call 07476h                               ; e8 8e fd
     test al, al                               ; 84 c0
-    jne near 078b5h                           ; 0f 85 e5 01
+    jne near 078d3h                           ; 0f 85 e5 01
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07458h                               ; e8 80 fd
+    call 07476h                               ; e8 80 fd
     test al, al                               ; 84 c0
-    jne near 078b5h                           ; 0f 85 d7 01
+    jne near 078d3h                           ; 0f 85 d7 01
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00ch], al                    ; 88 46 0c
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00dh], al                    ; 88 46 0d
-    jmp near 0792fh                           ; e9 42 02
+    jmp near 0794dh                           ; e9 42 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 07704h                           ; 72 10
-    jbe short 07722h                          ; 76 2c
+    jc short 07722h                           ; 72 10
+    jbe short 07740h                          ; 76 2c
     cmp AL, strict byte 006h                  ; 3c 06
-    je short 07734h                           ; 74 3a
+    je short 07752h                           ; 74 3a
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 0772eh                           ; 74 30
+    je short 0774ch                           ; 74 30
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 07728h                           ; 74 26
-    jmp short 0773ah                          ; eb 36
+    je short 07746h                           ; 74 26
+    jmp short 07758h                          ; eb 36
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0771ch                           ; 74 14
+    je short 0773ah                           ; 74 14
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 07716h                           ; 74 0a
+    je short 07734h                           ; 74 0a
     test al, al                               ; 84 c0
-    jne short 0773ah                          ; 75 2a
+    jne short 07758h                          ; 75 2a
     mov byte [bp-008h], 00ah                  ; c6 46 f8 0a
-    jmp short 0773eh                          ; eb 28
+    jmp short 0775ch                          ; eb 28
     mov byte [bp-008h], 014h                  ; c6 46 f8 14
-    jmp short 0773eh                          ; eb 22
+    jmp short 0775ch                          ; eb 22
     mov byte [bp-008h], 028h                  ; c6 46 f8 28
-    jmp short 0773eh                          ; eb 1c
+    jmp short 0775ch                          ; eb 1c
     mov byte [bp-008h], 03ch                  ; c6 46 f8 3c
-    jmp short 0773eh                          ; eb 16
+    jmp short 0775ch                          ; eb 16
     mov byte [bp-008h], 050h                  ; c6 46 f8 50
-    jmp short 0773eh                          ; eb 10
+    jmp short 0775ch                          ; eb 10
     mov byte [bp-008h], 064h                  ; c6 46 f8 64
-    jmp short 0773eh                          ; eb 0a
+    jmp short 0775ch                          ; eb 0a
     mov byte [bp-008h], 0c8h                  ; c6 46 f8 c8
-    jmp short 0773eh                          ; eb 04
+    jmp short 0775ch                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jbe short 07773h                          ; 76 2f
+    jbe short 07791h                          ; 76 2f
     mov ax, 000f3h                            ; b8 f3 00
-    call 07424h                               ; e8 da fc
+    call 07442h                               ; e8 da fc
     test al, al                               ; 84 c0
-    jne short 07768h                          ; 75 1a
+    jne short 07786h                          ; 75 1a
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07458h                               ; e8 02 fd
+    call 07476h                               ; e8 02 fd
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
-    call 07424h                               ; e8 c7 fc
+    call 07442h                               ; e8 c7 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07458h                               ; e8 f3 fc
-    jmp near 0792fh                           ; e9 c7 01
+    call 07476h                               ; e8 f3 fc
+    jmp near 0794dh                           ; e9 c7 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 0792fh                           ; e9 bc 01
+    jmp near 0794dh                           ; e9 bc 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 0792fh                           ; e9 b1 01
+    jmp near 0794dh                           ; e9 b1 01
     cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
-    jnc short 077e1h                          ; 73 5d
+    jnc short 077ffh                          ; 73 5d
     mov ax, 000e8h                            ; b8 e8 00
-    call 07424h                               ; e8 9a fc
+    call 07442h                               ; e8 9a fc
     test al, al                               ; 84 c0
-    jne short 077d6h                          ; 75 48
+    jne short 077f4h                          ; 75 48
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 c2 fc
+    call 07476h                               ; e8 c2 fc
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 077ach                           ; 74 10
+    je short 077cah                           ; 74 10
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
     push 00940h                               ; 68 40 09
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 c2 a2
+    call 01a6bh                               ; e8 a4 a2
     add sp, strict byte 00006h                ; 83 c4 06
     movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
-    call 07424h                               ; e8 71 fc
+    call 07442h                               ; e8 71 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 9d fc
+    call 07476h                               ; e8 9d fc
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je near 0792fh                            ; 0f 84 6c 01
+    je near 0794dh                            ; 0f 84 6c 01
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
     push 00940h                               ; 68 40 09
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 9b a2
+    call 01a6bh                               ; e8 7d a2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 0792fh                           ; e9 59 01
+    jmp near 0794dh                           ; e9 59 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 0792fh                           ; e9 4e 01
+    jmp near 0794dh                           ; e9 4e 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 0792fh                           ; e9 43 01
+    jmp near 0794dh                           ; e9 43 01
     mov ax, 000f2h                            ; b8 f2 00
-    call 07424h                               ; e8 32 fc
+    call 07442h                               ; e8 32 fc
     test al, al                               ; 84 c0
-    jne short 07809h                          ; 75 13
+    jne short 07827h                          ; 75 13
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 5a fc
+    call 07476h                               ; e8 5a fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07458h                               ; e8 52 fc
-    jmp near 076e4h                           ; e9 db fe
+    call 07476h                               ; e8 52 fc
+    jmp near 07702h                           ; e9 db fe
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 0792fh                           ; e9 1b 01
+    jmp near 0794dh                           ; e9 1b 01
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     test al, al                               ; 84 c0
-    jbe short 07822h                          ; 76 07
+    jbe short 07840h                          ; 76 07
     cmp AL, strict byte 002h                  ; 3c 02
-    jbe short 0788bh                          ; 76 6c
-    jmp near 078bfh                           ; e9 9d 00
+    jbe short 078a9h                          ; 76 6c
+    jmp near 078ddh                           ; e9 9d 00
     mov ax, 000e9h                            ; b8 e9 00
-    call 07424h                               ; e8 fc fb
+    call 07442h                               ; e8 fc fb
     test al, al                               ; 84 c0
-    jne near 078b5h                           ; 0f 85 87 00
+    jne near 078d3h                           ; 0f 85 87 00
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 22 fc
+    call 07476h                               ; e8 22 fc
     mov cl, al                                ; 88 c1
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 0784eh                           ; 74 10
+    je short 0786ch                           ; 74 10
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     push ax                                   ; 50
     push 00940h                               ; 68 40 09
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 20 a2
+    call 01a6bh                               ; e8 02 a2
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 078b5h                          ; 75 63
+    jne short 078d3h                          ; 75 63
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 fe fb
+    call 07476h                               ; e8 fe fb
     test al, al                               ; 84 c0
-    jne short 078b5h                          ; 75 57
+    jne short 078d3h                          ; 75 57
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 07458h                               ; e8 f2 fb
+    call 07476h                               ; e8 f2 fb
     test al, al                               ; 84 c0
-    jne short 078b5h                          ; 75 4b
+    jne short 078d3h                          ; 75 4b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 07458h                               ; e8 e6 fb
+    call 07476h                               ; e8 e6 fb
     test al, al                               ; 84 c0
-    jne short 078b5h                          ; 75 3f
+    jne short 078d3h                          ; 75 3f
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00ch], al                    ; 88 46 0c
@@ -11029,74 +11055,74 @@
     mov al, byte [bp-004h]                    ; 8a 46 fc
     mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp near 0792fh                           ; e9 a4 00
+    jmp near 0794dh                           ; e9 a4 00
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 07894h                          ; 75 05
+    jne short 078b2h                          ; 75 05
     mov ax, 000e6h                            ; b8 e6 00
-    jmp short 07897h                          ; eb 03
+    jmp short 078b5h                          ; eb 03
     mov ax, 000e7h                            ; b8 e7 00
-    call 07424h                               ; e8 8a fb
+    call 07442h                               ; e8 8a fb
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    jne short 078afh                          ; 75 0f
+    jne short 078cdh                          ; 75 0f
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 07458h                               ; e8 b0 fb
+    call 07476h                               ; e8 b0 fb
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
     db  00fh, 095h, 0c1h
     ; setne cl                                  ; 0f 95 c1
     test cl, cl                               ; 84 c9
-    je near 0792fh                            ; 0f 84 7a 00
+    je near 0794dh                            ; 0f 84 7a 00
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 0792fh                          ; eb 70
+    jmp short 0794dh                          ; eb 70
     movzx ax, byte [bp+00dh]                  ; 0f b6 46 0d
     push ax                                   ; 50
     push 0096ch                               ; 68 6c 09
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 9f a1
+    call 01a6bh                               ; e8 81 a1
     add sp, strict byte 00006h                ; 83 c4 06
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp short 0792fh                          ; eb 56
+    jmp short 0794dh                          ; eb 56
     mov si, word [bp+00ch]                    ; 8b 76 0c
     mov bx, si                                ; 89 f3
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, cx                                ; 89 c8
-    call 01773h                               ; e8 8d 9e
+    call 01773h                               ; e8 6f 9e
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, strict word 00024h                ; ba 24 00
     mov ax, cx                                ; 89 c8
-    call 01773h                               ; e8 82 9e
+    call 01773h                               ; e8 64 9e
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01749h                               ; e8 50 9e
+    call 01749h                               ; e8 32 9e
     mov ah, al                                ; 88 c4
     test si, si                               ; 85 f6
-    jne short 0790dh                          ; 75 0e
+    jne short 0792bh                          ; 75 0e
     cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
-    jne short 0790dh                          ; 75 08
+    jne short 0792bh                          ; 75 08
     test AL, strict byte 080h                 ; a8 80
-    je short 0790fh                           ; 74 06
+    je short 0792dh                           ; 74 06
     and AL, strict byte 07fh                  ; 24 7f
-    jmp short 0790fh                          ; eb 02
+    jmp short 0792dh                          ; eb 02
     or AL, strict byte 080h                   ; 0c 80
     movzx bx, al                              ; 0f b6 d8
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01757h                               ; e8 3d 9e
-    jmp short 0792fh                          ; eb 13
+    call 01757h                               ; e8 1f 9e
+    jmp short 0794dh                          ; eb 13
     push 00986h                               ; 68 86 09
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 47 a1
+    call 01a6bh                               ; e8 29 a1
     add sp, strict byte 00004h                ; 83 c4 04
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
     mov ax, strict word 00047h                ; b8 47 00
-    call 074b4h                               ; e8 7f fb
+    call 074d2h                               ; e8 7f fb
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-_int17_function:                             ; 0xf793b LB 0xb3
+_int17_function:                             ; 0xf7959 LB 0xb3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11108,22 +11134,22 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 16 9e
+    call 01765h                               ; e8 f8 9d
     mov bx, ax                                ; 89 c3
     mov si, ax                                ; 89 c6
     cmp byte [bp+013h], 003h                  ; 80 7e 13 03
-    jnc near 079e4h                           ; 0f 83 89 00
+    jnc near 07a02h                           ; 0f 83 89 00
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnc near 079e4h                           ; 0f 83 7f 00
+    jnc near 07a02h                           ; 0f 83 7f 00
     test bx, bx                               ; 85 db
-    jbe near 079e4h                           ; 0f 86 79 00
+    jbe near 07a02h                           ; 0f 86 79 00
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00078h                ; 83 c2 78
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 d3 9d
+    call 01749h                               ; e8 b5 9d
     movzx cx, al                              ; 0f b6 c8
     sal cx, 008h                              ; c1 e1 08
     cmp byte [bp+013h], 000h                  ; 80 7e 13 00
-    jne short 079afh                          ; 75 2d
+    jne short 079cdh                          ; 75 2d
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -11145,11 +11171,11 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 040h                 ; a8 40
-    je short 079afh                           ; 74 07
+    je short 079cdh                           ; 74 07
     test cx, cx                               ; 85 c9
-    je short 079afh                           ; 74 03
+    je short 079cdh                           ; 74 03
     dec cx                                    ; 49
-    jmp short 0799eh                          ; eb ef
+    jmp short 079bch                          ; eb ef
     cmp byte [bp+013h], 001h                  ; 80 7e 13 01
-    jne short 079cbh                          ; 75 16
+    jne short 079e9h                          ; 75 16
     lea dx, [si+002h]                         ; 8d 54 02
     in AL, DX                                 ; ec
@@ -11170,8 +11196,8 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cx, cx                               ; 85 c9
-    jne short 079deh                          ; 75 04
+    jne short 079fch                          ; 75 04
     or byte [bp+013h], 001h                   ; 80 4e 13 01
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 079e8h                          ; eb 04
+    jmp short 07a06h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -11179,5 +11205,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-wait_:                                       ; 0xf79ee LB 0xb2
+wait_:                                       ; 0xf7a0c LB 0xb2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11197,5 +11223,5 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 01781h                               ; e8 70 9d
+    call 01781h                               ; e8 52 9d
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov bx, dx                                ; 89 d3
@@ -11203,20 +11229,20 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 01781h                               ; e8 62 9d
+    call 01781h                               ; e8 44 9d
     mov word [bp-012h], ax                    ; 89 46 ee
     mov di, dx                                ; 89 d7
     cmp dx, bx                                ; 39 da
-    jnbe short 07a2fh                         ; 77 07
-    jne short 07a36h                          ; 75 0c
+    jnbe short 07a4dh                         ; 77 07
+    jne short 07a54h                          ; 75 0c
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jbe short 07a36h                          ; 76 07
+    jbe short 07a54h                          ; 76 07
     sub ax, word [bp-00eh]                    ; 2b 46 f2
     sbb dx, bx                                ; 19 da
-    jmp short 07a41h                          ; eb 0b
+    jmp short 07a5fh                          ; eb 0b
     cmp dx, bx                                ; 39 da
-    jc short 07a41h                           ; 72 07
-    jne short 07a45h                          ; 75 09
+    jc short 07a5fh                           ; 72 07
+    jne short 07a63h                          ; 75 09
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jnc short 07a45h                          ; 73 04
+    jnc short 07a63h                          ; 73 04
     sub si, ax                                ; 29 c6
     sbb cx, dx                                ; 19 d1
@@ -11226,11 +11252,11 @@
     mov ax, 00100h                            ; b8 00 01
     int 016h                                  ; cd 16
-    je near 07a5bh                            ; 0f 84 05 00
+    je near 07a79h                            ; 0f 84 05 00
     mov AL, strict byte 001h                  ; b0 01
-    jmp near 07a5dh                           ; e9 02 00
+    jmp near 07a7bh                           ; e9 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     test al, al                               ; 84 c0
-    je short 07a85h                           ; 74 24
+    je short 07aa3h                           ; 74 24
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -11243,15 +11269,15 @@
     push 009a8h                               ; 68 a8 09
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 f3 9f
+    call 01a6bh                               ; e8 d5 9f
     add sp, strict byte 00006h                ; 83 c4 06
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07a85h                           ; 74 04
+    je short 07aa3h                           ; 74 04
     mov al, dl                                ; 88 d0
-    jmp short 07a97h                          ; eb 12
+    jmp short 07ab5h                          ; eb 12
     test cx, cx                               ; 85 c9
-    jnle short 07a16h                         ; 7f 8d
-    jne short 07a8fh                          ; 75 04
+    jnle short 07a34h                         ; 7f 8d
+    jne short 07aadh                          ; 75 04
     test si, si                               ; 85 f6
-    jnbe short 07a16h                         ; 77 87
+    jnbe short 07a34h                         ; 77 87
     mov ax, word [bp-010h]                    ; 8b 46 f0
     push ax                                   ; 50
@@ -11265,5 +11291,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_byte_:                             ; 0xf7aa0 LB 0x16
+read_logo_byte_:                             ; 0xf7abe LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11280,5 +11306,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_word_:                             ; 0xf7ab6 LB 0x14
+read_logo_word_:                             ; 0xf7ad4 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11293,5 +11319,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_detected_harddisks_:                   ; 0xf7aca LB 0x130
+print_detected_harddisks_:                   ; 0xf7ae8 LB 0x130
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11305,5 +11331,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 88 9c
+    call 01765h                               ; e8 6a 9c
     mov si, ax                                ; 89 c6
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
@@ -11311,21 +11337,21 @@
     xor ch, ch                                ; 30 ed
     mov dx, 00304h                            ; ba 04 03
-    call 01749h                               ; e8 5c 9c
+    call 01749h                               ; e8 3e 9c
     mov byte [bp-00eh], al                    ; 88 46 f2
     xor bl, bl                                ; 30 db
     cmp bl, byte [bp-00eh]                    ; 3a 5e f2
-    jnc near 07bcch                           ; 0f 83 d3 00
+    jnc near 07beah                           ; 0f 83 d3 00
     movzx dx, bl                              ; 0f b6 d3
     add dx, 00305h                            ; 81 c2 05 03
     mov ax, si                                ; 89 f0
-    call 01749h                               ; e8 44 9c
+    call 01749h                               ; e8 26 9c
     mov bh, al                                ; 88 c7
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jc short 07b2fh                           ; 72 24
+    jc short 07b4dh                           ; 72 24
     test cl, cl                               ; 84 c9
-    jne short 07b1ch                          ; 75 0d
+    jne short 07b3ah                          ; 75 0d
     push 009b9h                               ; 68 b9 09
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 54 9f
+    call 01a6bh                               ; e8 36 9f
     add sp, strict byte 00004h                ; 83 c4 04
     mov CL, strict byte 001h                  ; b1 01
@@ -11335,34 +11361,34 @@
     push 009ceh                               ; 68 ce 09
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 42 9f
+    call 01a6bh                               ; e8 24 9f
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 07bc7h                           ; e9 98 00
+    jmp near 07be5h                           ; e9 98 00
     cmp AL, strict byte 008h                  ; 3c 08
-    jc short 07b46h                           ; 72 13
+    jc short 07b64h                           ; 72 13
     test ch, ch                               ; 84 ed
-    jne short 07b44h                          ; 75 0d
+    jne short 07b62h                          ; 75 0d
     push 009e1h                               ; 68 e1 09
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 2c 9f
+    call 01a6bh                               ; e8 0e 9f
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
-    jmp short 07b1ch                          ; eb d6
+    jmp short 07b3ah                          ; eb d6
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 07b61h                          ; 73 17
+    jnc short 07b7fh                          ; 73 17
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07b61h                          ; 75 11
+    jne short 07b7fh                          ; 75 11
     push 009f6h                               ; 68 f6 09
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 13 9f
+    call 01a6bh                               ; e8 f5 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07b77h                          ; eb 16
+    jmp short 07b95h                          ; eb 16
     cmp bh, 004h                              ; 80 ff 04
-    jc short 07b77h                           ; 72 11
+    jc short 07b95h                           ; 72 11
     test cl, cl                               ; 84 c9
-    jne short 07b77h                          ; 75 0d
+    jne short 07b95h                          ; 75 0d
     push 00a08h                               ; 68 08 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 f9 9e
+    call 01a6bh                               ; e8 db 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov CL, strict byte 001h                  ; b1 01
@@ -11372,8 +11398,8 @@
     push 00a1ch                               ; 68 1c 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 e7 9e
+    call 01a6bh                               ; e8 c9 9e
     add sp, strict byte 00006h                ; 83 c4 06
     cmp bh, 004h                              ; 80 ff 04
-    jc short 07b8fh                           ; 72 03
+    jc short 07badh                           ; 72 03
     sub bh, 004h                              ; 80 ef 04
     movzx ax, bh                              ; 0f b6 c7
@@ -11383,10 +11409,10 @@
     sar ax, 1                                 ; d1 f8
     test ax, ax                               ; 85 c0
-    je short 07ba0h                           ; 74 05
+    je short 07bbeh                           ; 74 05
     push 00a26h                               ; 68 26 0a
-    jmp short 07ba3h                          ; eb 03
+    jmp short 07bc1h                          ; eb 03
     push 00a31h                               ; 68 31 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 c3 9e
+    call 01a6bh                               ; e8 a5 9e
     add sp, strict byte 00004h                ; 83 c4 04
     movzx ax, bh                              ; 0f b6 c7
@@ -11395,27 +11421,27 @@
     idiv di                                   ; f7 ff
     test dx, dx                               ; 85 d2
-    je short 07bbdh                           ; 74 05
+    je short 07bdbh                           ; 74 05
     push 00a3ah                               ; 68 3a 0a
-    jmp short 07bc0h                          ; eb 03
+    jmp short 07bdeh                          ; eb 03
     push 00a40h                               ; 68 40 0a
     push di                                   ; 57
-    call 01a6bh                               ; e8 a7 9e
+    call 01a6bh                               ; e8 89 9e
     add sp, strict byte 00004h                ; 83 c4 04
     db  0feh, 0c3h
     ; inc bl                                    ; fe c3
-    jmp near 07af2h                           ; e9 26 ff
+    jmp near 07b10h                           ; e9 26 ff
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07be5h                          ; 75 13
+    jne short 07c03h                          ; 75 13
     test cl, cl                               ; 84 c9
-    jne short 07be5h                          ; 75 0f
+    jne short 07c03h                          ; 75 0f
     test ch, ch                               ; 84 ed
-    jne short 07be5h                          ; 75 0b
+    jne short 07c03h                          ; 75 0b
     push 00a47h                               ; 68 47 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 89 9e
+    call 01a6bh                               ; e8 6b 9e
     add sp, strict byte 00004h                ; 83 c4 04
     push 00a5bh                               ; 68 5b 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 7e 9e
+    call 01a6bh                               ; e8 60 9e
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -11427,5 +11453,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_boot_drive_:                             ; 0xf7bfa LB 0x28
+get_boot_drive_:                             ; 0xf7c18 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11435,10 +11461,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 5b 9b
+    call 01765h                               ; e8 3d 9b
     mov dx, 00304h                            ; ba 04 03
-    call 01749h                               ; e8 39 9b
+    call 01749h                               ; e8 1b 9b
     sub bl, 002h                              ; 80 eb 02
     cmp bl, al                                ; 38 c3
-    jc short 07c19h                           ; 72 02
+    jc short 07c37h                           ; 72 02
     mov BL, strict byte 0ffh                  ; b3 ff
     mov al, bl                                ; 88 d8
@@ -11448,5 +11474,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-show_logo_:                                  ; 0xf7c22 LB 0x231
+show_logo_:                                  ; 0xf7c40 LB 0x231
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11459,5 +11485,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 2f 9b
+    call 01765h                               ; e8 11 9b
     mov si, ax                                ; 89 c6
     xor cl, cl                                ; 30 c9
@@ -11470,7 +11496,7 @@
     out strict byte 040h, AL                  ; e6 40
     movzx ax, dl                              ; 0f b6 c2
-    call 07ab6h                               ; e8 68 fe
+    call 07ad4h                               ; e8 68 fe
     cmp ax, 066bbh                            ; 3d bb 66
-    jne near 07d33h                           ; 0f 85 de 00
+    jne near 07d51h                           ; 0f 85 de 00
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -11480,9 +11506,9 @@
     mov word [es:di], bx                      ; 26 89 1d
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    jne near 07d33h                           ; 0f 85 ca 00
+    jne near 07d51h                           ; 0f 85 ca 00
     mov al, dl                                ; 88 d0
     add AL, strict byte 004h                  ; 04 04
     xor ah, ah                                ; 30 e4
-    call 07aa0h                               ; e8 2e fe
+    call 07abeh                               ; e8 2e fe
     mov ch, al                                ; 88 c5
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -11490,5 +11516,5 @@
     add AL, strict byte 005h                  ; 04 05
     xor ah, ah                                ; 30 e4
-    call 07aa0h                               ; e8 20 fe
+    call 07abeh                               ; e8 20 fe
     mov dh, al                                ; 88 c6
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -11496,5 +11522,5 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 07ab6h                               ; e8 28 fe
+    call 07ad4h                               ; e8 28 fe
     mov bx, ax                                ; 89 c3
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -11502,22 +11528,22 @@
     add AL, strict byte 006h                  ; 04 06
     xor ah, ah                                ; 30 e4
-    call 07aa0h                               ; e8 04 fe
+    call 07abeh                               ; e8 04 fe
     mov byte [bp-012h], al                    ; 88 46 ee
     test ch, ch                               ; 84 ed
-    jne short 07cadh                          ; 75 0a
+    jne short 07ccbh                          ; 75 0a
     test dh, dh                               ; 84 f6
-    jne short 07cadh                          ; 75 06
+    jne short 07ccbh                          ; 75 06
     test bx, bx                               ; 85 db
-    je near 07d33h                            ; 0f 84 86 00
+    je near 07d51h                            ; 0f 84 86 00
     mov bx, 00142h                            ; bb 42 01
     mov ax, 04f02h                            ; b8 02 4f
     int 010h                                  ; cd 10
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07cdeh                           ; 74 23
+    je short 07cfch                           ; 74 23
     xor bx, bx                                ; 31 db
-    jmp short 07cc5h                          ; eb 06
+    jmp short 07ce3h                          ; eb 06
     inc bx                                    ; 43
     cmp bx, strict byte 00010h                ; 83 fb 10
-    jnbe short 07ce5h                         ; 77 20
+    jnbe short 07d03h                         ; 77 20
     mov ax, bx                                ; 89 d8
     or ah, 002h                               ; 80 cc 02
@@ -11526,30 +11552,30 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 079eeh                               ; e8 18 fd
+    call 07a0ch                               ; e8 18 fd
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07cbfh                          ; 75 e5
+    jne short 07cddh                          ; 75 e5
     mov CL, strict byte 001h                  ; b1 01
-    jmp short 07ce5h                          ; eb 07
+    jmp short 07d03h                          ; eb 07
     mov ax, 00210h                            ; b8 10 02
     mov dx, 003b8h                            ; ba b8 03
     out DX, ax                                ; ef
     test cl, cl                               ; 84 c9
-    jne short 07cfbh                          ; 75 12
+    jne short 07d19h                          ; 75 12
     mov ax, word [bp-014h]                    ; 8b 46 ec
     shr ax, 004h                              ; c1 e8 04
     mov dx, strict word 00001h                ; ba 01 00
-    call 079eeh                               ; e8 f9 fc
+    call 07a0ch                               ; e8 f9 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07cfbh                          ; 75 02
+    jne short 07d19h                          ; 75 02
     mov CL, strict byte 001h                  ; b1 01
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 07d28h                           ; 74 27
+    je short 07d46h                           ; 74 27
     test cl, cl                               ; 84 c9
-    jne short 07d28h                          ; 75 23
+    jne short 07d46h                          ; 75 23
     mov bx, strict word 00010h                ; bb 10 00
-    jmp short 07d0fh                          ; eb 05
+    jmp short 07d2dh                          ; eb 05
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 07d33h                          ; 76 24
+    jbe short 07d51h                          ; 76 24
     mov ax, bx                                ; 89 d8
     or ah, 002h                               ; 80 cc 02
@@ -11558,11 +11584,11 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 079eeh                               ; e8 ce fc
+    call 07a0ch                               ; e8 ce fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07d0ah                          ; 75 e6
+    jne short 07d28h                          ; 75 e6
     mov CL, strict byte 001h                  ; b1 01
-    jmp short 07d33h                          ; eb 0b
+    jmp short 07d51h                          ; eb 0b
     test cl, cl                               ; 84 c9
-    jne short 07d33h                          ; 75 07
+    jne short 07d51h                          ; 75 07
     mov ax, 00200h                            ; b8 00 02
     mov dx, 003b8h                            ; ba b8 03
@@ -11571,32 +11597,32 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 01757h                               ; e8 1a 9a
+    call 01757h                               ; e8 fc 99
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
     int 010h                                  ; cd 10
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    je near 07e34h                            ; 0f 84 e9 00
+    je near 07e52h                            ; 0f 84 e9 00
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07d81h                          ; 75 30
+    jne short 07d9fh                          ; 75 30
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    jne short 07d81h                          ; 75 2a
+    jne short 07d9fh                          ; 75 2a
     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
-    jne short 07d81h                          ; 75 24
+    jne short 07d9fh                          ; 75 24
     cmp byte [bp-012h], 002h                  ; 80 7e ee 02
-    jne short 07d6eh                          ; 75 0b
+    jne short 07d8ch                          ; 75 0b
     push 00a5dh                               ; 68 5d 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 00 9d
+    call 01a6bh                               ; e8 e2 9c
     add sp, strict byte 00004h                ; 83 c4 04
     test cl, cl                               ; 84 c9
-    jne short 07d81h                          ; 75 0f
+    jne short 07d9fh                          ; 75 0f
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, 000c0h                            ; b8 c0 00
-    call 079eeh                               ; e8 73 fc
+    call 07a0ch                               ; e8 73 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07d81h                          ; 75 02
+    jne short 07d9fh                          ; 75 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je near 07e34h                            ; 0f 84 ad 00
+    je near 07e52h                            ; 0f 84 ad 00
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     mov ax, 00100h                            ; b8 00 01
@@ -11617,52 +11643,52 @@
     push 00a7fh                               ; 68 7f 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 bb 9c
+    call 01a6bh                               ; e8 9d 9c
     add sp, strict byte 00004h                ; 83 c4 04
-    call 07acah                               ; e8 14 fd
+    call 07ae8h                               ; e8 14 fd
     push 00ac3h                               ; 68 c3 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 ad 9c
+    call 01a6bh                               ; e8 8f 9c
     add sp, strict byte 00004h                ; 83 c4 04
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 079eeh                               ; e8 24 fc
+    call 07a0ch                               ; e8 24 fc
     mov bl, al                                ; 88 c3
     test al, al                               ; 84 c0
-    je short 07dc1h                           ; 74 f1
+    je short 07ddfh                           ; 74 f1
     cmp AL, strict byte 030h                  ; 3c 30
-    je short 07e22h                           ; 74 4e
+    je short 07e40h                           ; 74 4e
     cmp bl, 002h                              ; 80 fb 02
-    jc short 07dfbh                           ; 72 22
+    jc short 07e19h                           ; 72 22
     cmp bl, 009h                              ; 80 fb 09
-    jnbe short 07dfbh                         ; 77 1d
+    jnbe short 07e19h                         ; 77 1d
     movzx ax, bl                              ; 0f b6 c3
-    call 07bfah                               ; e8 16 fe
+    call 07c18h                               ; e8 16 fe
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 07deah                          ; 75 02
-    jmp short 07dc1h                          ; eb d7
+    jne short 07e08h                          ; 75 02
+    jmp short 07ddfh                          ; eb d7
     movzx bx, al                              ; 0f b6 d8
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, si                                ; 89 f0
-    call 01757h                               ; e8 62 99
+    call 01757h                               ; e8 44 99
     mov byte [bp-00eh], 002h                  ; c6 46 f2 02
-    jmp short 07e22h                          ; eb 27
+    jmp short 07e40h                          ; eb 27
     cmp bl, 02eh                              ; 80 fb 2e
-    je short 07e10h                           ; 74 10
+    je short 07e2eh                           ; 74 10
     cmp bl, 026h                              ; 80 fb 26
-    je short 07e16h                           ; 74 11
+    je short 07e34h                           ; 74 11
     cmp bl, 021h                              ; 80 fb 21
-    jne short 07e1ch                          ; 75 12
+    jne short 07e3ah                          ; 75 12
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07e22h                          ; eb 12
+    jmp short 07e40h                          ; eb 12
     mov byte [bp-00eh], 003h                  ; c6 46 f2 03
-    jmp short 07e22h                          ; eb 0c
+    jmp short 07e40h                          ; eb 0c
     mov byte [bp-00eh], 004h                  ; c6 46 f2 04
-    jmp short 07e22h                          ; eb 06
+    jmp short 07e40h                          ; eb 06
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07dc1h                           ; 74 9f
+    je short 07ddfh                           ; 74 9f
     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 01757h                               ; e8 29 99
+    call 01757h                               ; e8 0b 99
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
@@ -11677,5 +11703,5 @@
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 79 6f
+    call 0edbfh                               ; e8 5b 6f
     pop DS                                    ; 1f
     popad                                     ; 66 61
@@ -11688,5 +11714,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-delay_boot_:                                 ; 0xf7e53 LB 0x67
+delay_boot_:                                 ; 0xf7e71 LB 0x67
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11695,5 +11721,5 @@
     mov dx, ax                                ; 89 c2
     test ax, ax                               ; 85 c0
-    je short 07eb3h                           ; 74 55
+    je short 07ed1h                           ; 74 55
     mov AL, strict byte 034h                  ; b0 34
     out strict byte 043h, AL                  ; e6 43
@@ -11705,22 +11731,22 @@
     push 00b0dh                               ; 68 0d 0b
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 f8 9b
+    call 01a6bh                               ; e8 da 9b
     add sp, strict byte 00006h                ; 83 c4 06
     mov bx, dx                                ; 89 d3
     test bx, bx                               ; 85 db
-    jbe short 07e93h                          ; 76 17
+    jbe short 07eb1h                          ; 76 17
     push bx                                   ; 53
     push 00b2bh                               ; 68 2b 0b
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 e6 9b
+    call 01a6bh                               ; e8 c8 9b
     add sp, strict byte 00006h                ; 83 c4 06
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 079eeh                               ; e8 5e fb
+    call 07a0ch                               ; e8 5e fb
     dec bx                                    ; 4b
-    jmp short 07e78h                          ; eb e5
+    jmp short 07e96h                          ; eb e5
     push 00a5bh                               ; 68 5b 0a
     push strict byte 00002h                   ; 6a 02
-    call 01a6bh                               ; e8 d0 9b
+    call 01a6bh                               ; e8 b2 9b
     add sp, strict byte 00004h                ; 83 c4 04
     mov AL, strict byte 034h                  ; b0 34
@@ -11733,5 +11759,5 @@
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0edbfh                               ; e8 0f 6f
+    call 0edbfh                               ; e8 f1 6e
     pop DS                                    ; 1f
     popad                                     ; 66 61
@@ -11741,5 +11767,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_cmd_data_in_:                           ; 0xf7eba LB 0xd5
+scsi_cmd_data_in_:                           ; 0xf7ed8 LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11757,9 +11783,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07ed0h                          ; 75 f7
+    jne short 07eeeh                          ; 75 f7
     cmp byte [bp+004h], 010h                  ; 80 7e 04 10
-    jne short 07ee3h                          ; 75 04
+    jne short 07f01h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07ee7h                          ; eb 04
+    jmp short 07f05h                          ; eb 04
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     mov di, ax                                ; 89 c7
@@ -11769,5 +11795,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07ef1h                               ; e2 fa
+    loop 07f0fh                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -11787,5 +11813,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07f16h                               ; e2 fa
+    loop 07f34h                               ; e2 fa
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
@@ -11793,5 +11819,5 @@
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     cmp cx, ax                                ; 39 c1
-    jnc short 07f37h                          ; 73 0e
+    jnc short 07f55h                          ; 73 0e
     les di, [bp-00ah]                         ; c4 7e f6
     add di, cx                                ; 01 cf
@@ -11800,5 +11826,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07f21h                          ; eb ea
+    jmp short 07f3fh                          ; eb ea
     mov dx, si                                ; 89 f2
     in AL, DX                                 ; ec
@@ -11806,7 +11832,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07f37h                          ; 75 f7
+    jne short 07f55h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 07f52h                           ; 74 0e
+    je short 07f70h                           ; 74 0e
     lea dx, [si+003h]                         ; 8d 54 03
     xor al, al                                ; 30 c0
@@ -11816,10 +11842,10 @@
     ; sub ah, ah                                ; 2a e4
     mov di, strict word 00004h                ; bf 04 00
-    jmp short 07f84h                          ; eb 32
+    jmp short 07fa2h                          ; eb 32
     lea dx, [si+001h]                         ; 8d 54 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07f61h                          ; 75 06
+    jne short 07f7fh                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07f7bh                          ; 76 1a
+    jbe short 07f99h                          ; 76 1a
     mov cx, 08000h                            ; b9 00 80
     les di, [bp+006h]                         ; c4 7e 06
@@ -11830,5 +11856,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07f52h                          ; eb d7
+    jmp short 07f70h                          ; eb d7
     mov cx, bx                                ; 89 d9
     les di, [bp+006h]                         ; c4 7e 06
@@ -11841,5 +11867,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-scsi_cmd_data_out_:                          ; 0xf7f8f LB 0xd5
+scsi_cmd_data_out_:                          ; 0xf7fad LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11857,9 +11883,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07fa5h                          ; 75 f7
+    jne short 07fc3h                          ; 75 f7
     cmp byte [bp+004h], 010h                  ; 80 7e 04 10
-    jne short 07fb8h                          ; 75 04
+    jne short 07fd6h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07fbch                          ; eb 04
+    jmp short 07fdah                          ; eb 04
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     mov si, ax                                ; 89 c6
@@ -11869,5 +11895,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07fc6h                               ; e2 fa
+    loop 07fe4h                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -11887,5 +11913,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07febh                               ; e2 fa
+    loop 08009h                               ; e2 fa
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -11893,5 +11919,5 @@
     movzx ax, byte [bp+004h]                  ; 0f b6 46 04
     cmp cx, ax                                ; 39 c1
-    jnc short 0800ch                          ; 73 0e
+    jnc short 0802ah                          ; 73 0e
     les si, [bp-00ah]                         ; c4 76 f6
     add si, cx                                ; 01 ce
@@ -11900,10 +11926,10 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07ff6h                          ; eb ea
+    jmp short 08014h                          ; eb ea
     lea dx, [di+001h]                         ; 8d 55 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 0801bh                          ; 75 06
+    jne short 08039h                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 08036h                          ; 76 1b
+    jbe short 08054h                          ; 76 1b
     mov cx, 08000h                            ; b9 00 80
     les si, [bp+006h]                         ; c4 76 06
@@ -11915,5 +11941,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 0800ch                          ; eb d6
+    jmp short 0802ah                          ; eb d6
     mov cx, bx                                ; 89 d9
     les si, [bp+006h]                         ; c4 76 06
@@ -11925,7 +11951,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0803eh                          ; 75 f7
+    jne short 0805ch                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 08059h                           ; 74 0e
+    je short 08077h                           ; 74 0e
     lea dx, [di+003h]                         ; 8d 55 03
     xor al, al                                ; 30 c0
@@ -11935,5 +11961,5 @@
     ; sub ah, ah                                ; 2a e4
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 0805bh                          ; eb 02
+    jmp short 08079h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -11942,5 +11968,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-@scsi_read_sectors:                          ; 0xf8064 LB 0xdb
+@scsi_read_sectors:                          ; 0xf8082 LB 0xdb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11954,5 +11980,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 08092h                          ; 76 13
+    jbe short 080b0h                          ; 76 13
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
@@ -11960,5 +11986,5 @@
     push 00b42h                               ; 68 42 0b
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 dc 99
+    call 01a6bh                               ; e8 be 99
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -11999,5 +12025,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 080fbh                               ; e2 f8
+    loop 08119h                               ; e2 f8
     push dword [bp-00ah]                      ; 66 ff 76 f6
     db  066h, 026h, 0ffh, 074h, 008h
@@ -12007,8 +12033,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07ebah                               ; e8 a2 fd
+    call 07ed8h                               ; e8 a2 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 08133h                          ; 75 15
+    jne short 08151h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12023,5 +12049,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@scsi_write_sectors:                         ; 0xf813f LB 0xdb
+@scsi_write_sectors:                         ; 0xf815d LB 0xdb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12035,5 +12061,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 0816dh                          ; 76 13
+    jbe short 0818bh                          ; 76 13
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
@@ -12041,5 +12067,5 @@
     push 00b42h                               ; 68 42 0b
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 01 99
+    call 01a6bh                               ; e8 e3 98
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12080,5 +12106,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 081d6h                               ; e2 f8
+    loop 081f4h                               ; e2 f8
     push dword [bp-00ah]                      ; 66 ff 76 f6
     db  066h, 026h, 0ffh, 074h, 008h
@@ -12088,8 +12114,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07f8fh                               ; e8 9c fd
+    call 07fadh                               ; e8 9c fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 0820eh                          ; 75 15
+    jne short 0822ch                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12104,5 +12130,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-scsi_cmd_packet_:                            ; 0xf821a LB 0x166
+scsi_cmd_packet_:                            ; 0xf8238 LB 0x166
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12116,20 +12142,20 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 2f 95
+    call 01765h                               ; e8 11 95
     mov si, 00122h                            ; be 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 08261h                          ; 75 1f
-    mov bx, 00db6h                            ; bb b6 0d
+    jne short 0827fh                          ; 75 1f
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 dd 97
+    call 01a2ah                               ; e8 bf 97
     push 00b74h                               ; 68 74 0b
     push 00b84h                               ; 68 84 0b
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 13 98
+    call 01a6bh                               ; e8 f5 97
     add sp, strict byte 00006h                ; 83 c4 06
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 08375h                           ; e9 14 01
+    jmp near 08393h                           ; e9 14 01
     sub di, strict byte 00008h                ; 83 ef 08
     sal di, 002h                              ; c1 e7 02
@@ -12145,5 +12171,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0827dh                          ; 75 f7
+    jne short 0829bh                          ; 75 f7
     xor ax, ax                                ; 31 c0
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -12161,5 +12187,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 082a8h                               ; e2 fa
+    loop 082c6h                               ; e2 fa
     and ax, 000f0h                            ; 25 f0 00
     movzx cx, byte [bp-006h]                  ; 0f b6 4e fa
@@ -12179,5 +12205,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 082cfh                               ; e2 fa
+    loop 082edh                               ; e2 fa
     mov dx, bx                                ; 89 da
     out DX, AL                                ; ee
@@ -12185,5 +12211,5 @@
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     cmp cx, ax                                ; 39 c1
-    jnc short 082f0h                          ; 73 0e
+    jnc short 0830eh                          ; 73 0e
     les di, [bp-00ch]                         ; c4 7e f4
     add di, cx                                ; 01 cf
@@ -12192,5 +12218,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 082dah                          ; eb ea
+    jmp short 082f8h                          ; eb ea
     mov dx, bx                                ; 89 da
     in AL, DX                                 ; ec
@@ -12198,7 +12224,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 082f0h                          ; 75 f7
+    jne short 0830eh                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 0830bh                           ; 74 0e
+    je short 08329h                           ; 74 0e
     lea dx, [bx+003h]                         ; 8d 57 03
     xor al, al                                ; 30 c0
@@ -12208,12 +12234,12 @@
     ; sub ah, ah                                ; 2a e4
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 08375h                          ; eb 6a
+    jmp short 08393h                          ; eb 6a
     mov ax, word [bp+004h]                    ; 8b 46 04
     test ax, ax                               ; 85 c0
-    je short 0831ah                           ; 74 08
+    je short 08338h                           ; 74 08
     lea dx, [bx+001h]                         ; 8d 57 01
     mov cx, ax                                ; 89 c1
     in AL, DX                                 ; ec
-    loop 08317h                               ; e2 fd
+    loop 08335h                               ; e2 fd
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov es, [bp-00eh]                         ; 8e 46 f2
@@ -12223,7 +12249,7 @@
     lea ax, [bx+001h]                         ; 8d 47 01
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 0833bh                          ; 75 07
+    jne short 08359h                          ; 75 07
     cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
-    jbe short 08358h                          ; 76 1d
+    jbe short 08376h                          ; 76 1d
     mov dx, ax                                ; 89 c2
     mov cx, 08000h                            ; b9 00 80
@@ -12235,5 +12261,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 0832bh                          ; eb d3
+    jmp short 08349h                          ; eb d3
     mov dx, ax                                ; 89 c2
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -12242,8 +12268,8 @@
     mov es, [bp-00eh]                         ; 8e 46 f2
     cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
-    je short 08373h                           ; 74 07
+    je short 08391h                           ; 74 07
     mov cx, word [es:si+020h]                 ; 26 8b 4c 20
     in AL, DX                                 ; ec
-    loop 08370h                               ; e2 fd
+    loop 0838eh                               ; e2 fd
     xor dx, dx                                ; 31 d2
     mov ax, dx                                ; 89 d0
@@ -12253,5 +12279,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-scsi_enumerate_attached_devices_:            ; 0xf8380 LB 0x482
+scsi_enumerate_attached_devices_:            ; 0xf839e LB 0x482
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12265,16 +12291,16 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 cf 93
+    call 01765h                               ; e8 b1 93
     mov di, 00122h                            ; bf 22 01
     mov word [bp-02eh], ax                    ; 89 46 d2
     mov word [bp-01eh], strict word 00000h    ; c7 46 e2 00 00
-    jmp near 08784h                           ; e9 e0 03
+    jmp near 087a2h                           ; e9 e0 03
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc near 087f8h                           ; 0f 83 4e 04
+    jnc near 08816h                           ; 0f 83 4e 04
     mov cx, strict word 00010h                ; b9 10 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-046h]                         ; 8d 46 ba
-    call 0a110h                               ; e8 59 1d
+    call 0a130h                               ; e8 5b 1d
     mov byte [bp-046h], 09eh                  ; c6 46 ba 9e
     mov byte [bp-045h], 010h                  ; c6 46 bb 10
@@ -12289,11 +12315,11 @@
     lea bx, [bp-046h]                         ; 8d 5e ba
     mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07ebah                               ; e8 dc fa
+    call 07ed8h                               ; e8 dc fa
     test al, al                               ; 84 c0
-    je short 083f0h                           ; 74 0e
+    je short 0840eh                           ; 74 0e
     push 00ba4h                               ; 68 a4 0b
     push 00bddh                               ; 68 dd 0b
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 7e 96
+    call 01a6bh                               ; e8 60 96
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp-00240h]                  ; 8b 86 c0 fd
@@ -12325,5 +12351,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0843eh                               ; e2 fa
+    loop 0845ch                               ; e2 fa
     or bx, ax                                 ; 09 c3
     or dx, si                                 ; 09 f2
@@ -12332,11 +12358,11 @@
     mov word [bp-024h], bx                    ; 89 5e dc
     test dx, dx                               ; 85 d2
-    jne short 0845ch                          ; 75 06
+    jne short 0847ah                          ; 75 06
     cmp bx, 00200h                            ; 81 fb 00 02
-    je short 0847ch                           ; 74 20
-    mov bx, 00db6h                            ; bb b6 0d
+    je short 0849ah                           ; 74 20
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 c3 95
+    call 01a2ah                               ; e8 a5 95
     push dx                                   ; 52
     push word [bp-024h]                       ; ff 76 dc
@@ -12344,24 +12370,24 @@
     push 00bfch                               ; 68 fc 0b
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 f5 95
+    call 01a6bh                               ; e8 d7 95
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0877bh                           ; e9 ff 02
+    jmp near 08799h                           ; e9 ff 02
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0848fh                           ; 72 0c
-    jbe short 08497h                          ; 76 12
+    jc short 084adh                           ; 72 0c
+    jbe short 084b5h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0849fh                           ; 74 16
+    je short 084bdh                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0849bh                           ; 74 0e
-    jmp short 084e8h                          ; eb 59
+    je short 084b9h                           ; 74 0e
+    jmp short 08506h                          ; eb 59
     test al, al                               ; 84 c0
-    jne short 084e8h                          ; 75 55
+    jne short 08506h                          ; 75 55
     mov BL, strict byte 090h                  ; b3 90
-    jmp short 084a1h                          ; eb 0a
+    jmp short 084bfh                          ; eb 0a
     mov BL, strict byte 098h                  ; b3 98
-    jmp short 084a1h                          ; eb 06
+    jmp short 084bfh                          ; eb 06
     mov BL, strict byte 0a0h                  ; b3 a0
-    jmp short 084a1h                          ; eb 02
+    jmp short 084bfh                          ; eb 02
     mov BL, strict byte 0a8h                  ; b3 a8
     mov al, bl                                ; 88 d8
@@ -12369,16 +12395,16 @@
     movzx cx, al                              ; 0f b6 c8
     mov ax, cx                                ; 89 c8
-    call 017a5h                               ; e8 f8 92
+    call 017a5h                               ; e8 da 92
     test al, al                               ; 84 c0
-    je short 084e8h                           ; 74 37
+    je short 08506h                           ; 74 37
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 eb 92
+    call 017a5h                               ; e8 cd 92
     movzx dx, al                              ; 0f b6 d0
     sal dx, 008h                              ; c1 e2 08
     movzx ax, bl                              ; 0f b6 c3
-    call 017a5h                               ; e8 df 92
+    call 017a5h                               ; e8 c1 92
     xor ah, ah                                ; 30 e4
     add ax, dx                                ; 01 d0
@@ -12388,12 +12414,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 cf 92
+    call 017a5h                               ; e8 b1 92
     xor ah, ah                                ; 30 e4
     mov word [bp-034h], ax                    ; 89 46 cc
     mov ax, cx                                ; 89 c8
-    call 017a5h                               ; e8 c5 92
+    call 017a5h                               ; e8 a7 92
     xor ah, ah                                ; 30 e4
     mov word [bp-032h], ax                    ; 89 46 ce
-    jmp near 085d1h                           ; e9 e9 00
+    jmp near 085efh                           ; e9 e9 00
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov bx, word [bp-030h]                    ; 8b 5e d0
@@ -12401,5 +12427,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a0f0h                               ; e8 f6 1b
+    call 0a110h                               ; e8 f8 1b
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -12408,12 +12434,12 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     test ax, ax                               ; 85 c0
-    jnbe short 08523h                         ; 77 16
-    jne near 08596h                           ; 0f 85 85 00
+    jnbe short 08541h                         ; 77 16
+    jne near 085b4h                           ; 0f 85 85 00
     cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
-    jnbe short 08523h                         ; 77 0c
-    jne near 08596h                           ; 0f 85 7b 00
+    jnbe short 08541h                         ; 77 0c
+    jne near 085b4h                           ; 0f 85 7b 00
     cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
-    jnbe short 08523h                         ; 77 02
-    jne short 08596h                          ; 75 73
+    jnbe short 08541h                         ; 77 02
+    jne short 085b4h                          ; 75 73
     mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00
     mov bx, word [bp-030h]                    ; 8b 5e d0
@@ -12421,5 +12447,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 00006h                ; be 06 00
-    call 0a0f0h                               ; e8 b6 1b
+    call 0a110h                               ; e8 b8 1b
     mov si, word [bp-020h]                    ; 8b 76 e0
     add si, dx                                ; 01 d6
@@ -12439,5 +12465,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a0f0h                               ; e8 86 1b
+    call 0a110h                               ; e8 88 1b
     mov word [bp-022h], bx                    ; 89 5e de
     mov word [bp-02ch], cx                    ; 89 4e d4
@@ -12448,5 +12474,5 @@
     mov dx, word [bp-02ah]                    ; 8b 56 d6
     mov si, strict word 00010h                ; be 10 00
-    call 0a0f0h                               ; e8 6b 1b
+    call 0a110h                               ; e8 6d 1b
     mov si, word [bp-01ah]                    ; 8b 76 e6
     add si, dx                                ; 01 d6
@@ -12455,16 +12481,16 @@
     mov ax, word [bp-022h]                    ; 8b 46 de
     adc ax, bx                                ; 11 d8
-    jmp short 085d1h                          ; eb 3b
+    jmp short 085efh                          ; eb 3b
     test ax, ax                               ; 85 c0
-    jnbe short 085ach                         ; 77 12
-    jne short 085b6h                          ; 75 1a
+    jnbe short 085cah                         ; 77 12
+    jne short 085d4h                          ; 75 1a
     cmp word [bp-030h], strict byte 00000h    ; 83 7e d0 00
-    jnbe short 085ach                         ; 77 0a
-    jne short 085b6h                          ; 75 12
+    jnbe short 085cah                         ; 77 0a
+    jne short 085d4h                          ; 75 12
     cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
-    jnbe short 085ach                         ; 77 02
-    jne short 085b6h                          ; 75 0a
+    jnbe short 085cah                         ; 77 02
+    jne short 085d4h                          ; 75 0a
     mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00
-    jmp short 085cdh                          ; eb 17
+    jmp short 085ebh                          ; eb 17
     mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00
     mov bx, word [bp-030h]                    ; 8b 5e d0
@@ -12472,5 +12498,5 @@
     mov dx, word [bp-016h]                    ; 8b 56 ea
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a0f0h                               ; e8 23 1b
+    call 0a110h                               ; e8 25 1b
     mov si, dx                                ; 89 d6
     mov dx, cx                                ; 89 ca
@@ -12505,16 +12531,16 @@
     mov word [es:bx+034h], ax                 ; 26 89 47 34
     test dx, dx                               ; 85 d2
-    jne short 0863eh                          ; 75 06
+    jne short 0865ch                          ; 75 06
     cmp si, 00400h                            ; 81 fe 00 04
-    jbe short 0864ch                          ; 76 0e
+    jbe short 0866ah                          ; 76 0e
     mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
     mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
-    jmp short 08654h                          ; eb 08
+    jmp short 08672h                          ; eb 08
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00db6h                            ; bb b6 0d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 cb 93
+    call 01a2ah                               ; e8 ad 93
     push word [bp-010h]                       ; ff 76 f0
     push word [bp-030h]                       ; ff 76 d0
@@ -12529,5 +12555,5 @@
     push 00c2ah                               ; 68 2a 0c
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 ea 93
+    call 01a6bh                               ; e8 cc 93
     add sp, strict byte 00018h                ; 83 c4 18
     movzx bx, byte [bp-00eh]                  ; 0f b6 5e f2
@@ -12554,5 +12580,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 78 90
+    call 01749h                               ; e8 5a 90
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
@@ -12560,11 +12586,11 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 78 90
+    call 01757h                               ; e8 5a 90
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 08770h                           ; e9 8b 00
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp near 0878eh                           ; e9 8b 00
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 3a 93
+    call 01a2ah                               ; e8 1c 93
     push word [bp-01eh]                       ; ff 76 e2
     movzx ax, byte [bp-00ch]                  ; 0f b6 46 f4
@@ -12572,5 +12598,5 @@
     push 00c58h                               ; 68 58 0c
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 6b 93
+    call 01a6bh                               ; e8 4d 93
     add sp, strict byte 00008h                ; 83 c4 08
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -12613,5 +12639,5 @@
     inc word [bp-01eh]                        ; ff 46 e2
     cmp word [bp-01eh], strict byte 00010h    ; 83 7e e2 10
-    jnl short 087f8h                          ; 7d 74
+    jnl short 08816h                          ; 7d 74
     mov byte [bp-046h], 012h                  ; c6 46 ba 12
     xor al, al                                ; 30 c0
@@ -12630,11 +12656,11 @@
     lea bx, [bp-046h]                         ; 8d 5e ba
     mov ax, word [bp-00248h]                  ; 8b 86 b8 fd
-    call 07ebah                               ; e8 05 f7
+    call 07ed8h                               ; e8 05 f7
     test al, al                               ; 84 c0
-    je short 087c7h                           ; 74 0e
+    je short 087e5h                           ; 74 0e
     push 00ba4h                               ; 68 a4 0b
     push 00bc4h                               ; 68 c4 0b
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 a7 92
+    call 01a6bh                               ; e8 89 92
     add sp, strict byte 00006h                ; 83 c4 06
     mov es, [bp-02eh]                         ; 8e 46 d2
@@ -12642,14 +12668,14 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 087e2h                          ; 75 09
+    jne short 08800h                          ; 75 09
     test byte [bp-00246h], 01fh               ; f6 86 ba fd 1f
-    je near 083a4h                            ; 0f 84 c2 fb
+    je near 083c2h                            ; 0f 84 c2 fb
     test byte [bp-00246h], 0e0h               ; f6 86 ba fd e0
-    jne short 08770h                          ; 75 87
+    jne short 0878eh                          ; 75 87
     mov al, byte [bp-00246h]                  ; 8a 86 ba fd
     and AL, strict byte 01fh                  ; 24 1f
     cmp AL, strict byte 005h                  ; 3c 05
-    je near 086e5h                            ; 0f 84 f0 fe
-    jmp near 08770h                           ; e9 78 ff
+    je near 08703h                            ; 0f 84 f0 fe
+    jmp near 0878eh                           ; e9 78 ff
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -12660,5 +12686,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_pci_init_:                              ; 0xf8802 LB 0x2d
+scsi_pci_init_:                              ; 0xf8820 LB 0x2d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12666,8 +12692,8 @@
     push cx                                   ; 51
     push si                                   ; 56
-    call 09ed3h                               ; e8 c8 16
+    call 09ef1h                               ; e8 c8 16
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 08827h                           ; 74 15
+    je short 08845h                           ; 74 15
     movzx si, dl                              ; 0f b6 f2
     mov ax, dx                                ; 89 d0
@@ -12677,5 +12703,5 @@
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, si                                ; 89 f2
-    call 09f65h                               ; e8 3e 17
+    call 09f83h                               ; e8 3e 17
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
@@ -12684,10 +12710,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf882f LB 0x81
+_scsi_init:                                  ; 0xf884d 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 2a 8f
+    call 01765h                               ; e8 0c 8f
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -12700,13 +12726,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 08868h                          ; 75 15
+    jne short 08886h                          ; 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 21 fb
+    call 0839eh                               ; e8 21 fb
     mov dx, 01040h                            ; ba 40 10
     mov ax, 0104bh                            ; b8 4b 10
-    call 08802h                               ; e8 9a ff
+    call 08820h                               ; e8 9a ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -12716,13 +12742,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 0888ah                          ; 75 15
+    jne short 088a8h                          ; 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 ff fa
+    call 0839eh                               ; e8 ff fa
     mov dx, strict word 00030h                ; ba 30 00
     mov ax, 01000h                            ; b8 00 10
-    call 08802h                               ; e8 78 ff
+    call 08820h                               ; e8 78 ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -12732,17 +12758,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088ach                          ; 75 15
+    jne short 088cah                          ; 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 dd fa
+    call 0839eh                               ; e8 dd fa
     mov dx, strict word 00054h                ; ba 54 00
     mov ax, 01000h                            ; b8 00 10
-    call 08802h                               ; e8 56 ff
+    call 08820h                               ; e8 56 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf88b0 LB 0x1b
+ahci_ctrl_extract_bits_:                     ; 0xf88ce LB 0x1b
     push si                                   ; 56
     push bp                                   ; 55
@@ -12752,12 +12778,12 @@
     and dx, cx                                ; 21 ca
     movzx cx, byte [bp+006h]                  ; 0f b6 4e 06
-    jcxz 088c6h                               ; e3 06
+    jcxz 088e4h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 088c0h                               ; e2 fa
+    loop 088deh                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf88cb LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf88e9 LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -12770,5 +12796,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 088d9h                               ; e2 fa
+    loop 088f7h                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -12778,5 +12804,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf88e9 LB 0x14b
+ahci_port_cmd_sync_:                         ; 0xf8907 LB 0x14b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12793,5 +12819,5 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp ah, 0ffh                              ; 80 fc ff
-    je near 08a2ch                            ; 0f 84 20 01
+    je near 08a4ah                            ; 0f 84 20 01
     movzx dx, byte [es:si+00263h]             ; 26 0f b6 94 63 02
     xor di, di                                ; 31 ff
@@ -12805,5 +12831,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 088cbh                               ; e8 96 ff
+    call 088e9h                               ; e8 96 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -12868,12 +12894,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 089c2h                          ; 75 04
+    jne short 089e0h                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 089c6h                           ; 74 04
+    je short 089e4h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 089c8h                          ; eb 02
+    jmp short 089e6h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 08996h                           ; 74 ca
+    je short 089b4h                           ; 74 ca
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     sal di, 007h                              ; c1 e7 07
@@ -12929,5 +12955,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8a34 LB 0x262
+ahci_cmd_data_:                              ; 0xf8a52 LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12954,5 +12980,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a110h                               ; e8 9e 16
+    call 0a130h                               ; e8 a0 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -12972,5 +12998,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a0f0h                               ; e8 3a 16
+    call 0a110h                               ; e8 3c 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -12983,5 +13009,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a0f0h                               ; e8 14 16
+    call 0a110h                               ; e8 16 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -12995,5 +13021,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a0f0h                               ; e8 e8 15
+    call 0a110h                               ; e8 ea 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13006,5 +13032,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a0f0h                               ; e8 c2 15
+    call 0a110h                               ; e8 c4 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13017,5 +13043,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a0f0h                               ; e8 9c 15
+    call 0a110h                               ; e8 9e 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13031,5 +13057,5 @@
     mov bx, word [bp-010h]                    ; 8b 5e f0
     xor cx, cx                                ; 31 c9
-    call 0a070h                               ; e8 e7 14
+    call 0a090h                               ; e8 e9 14
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13041,5 +13067,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 09fbch                               ; e8 17 14
+    call 09fdah                               ; e8 17 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+0027eh]               ; 26 8b 85 7e 02
@@ -13062,5 +13088,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08c33h                           ; 74 39
+    je short 08c51h                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13078,13 +13104,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08c40h                          ; 75 06
+    jne short 08c5eh                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08c57h                          ; eb 17
+    jmp short 08c75h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08c53h                          ; 75 0f
+    jne short 08c71h                          ; 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 08c57h                          ; eb 04
+    jmp short 08c75h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13092,5 +13118,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 088e9h                               ; e8 81 fc
+    call 08907h                               ; e8 81 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13099,11 +13125,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a035h                               ; e8 b8 13
+    call 0a053h                               ; e8 b8 13
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08c8ch                           ; 74 05
+    je short 08caah                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08c8eh                          ; eb 02
+    jmp short 08cach                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13113,5 +13139,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8c96 LB 0x17f
+ahci_port_deinit_current_:                   ; 0xf8cb4 LB 0x17f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13128,5 +13154,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je near 08e0ch                            ; 0f 84 52 01
+    je near 08e2ah                            ; 0f 84 52 01
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13171,25 +13197,25 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08d1ah                           ; 74 04
+    je short 08d38h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08d1ch                          ; eb 02
+    jmp short 08d3ah                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08ceeh                           ; 74 ce
+    je short 08d0ch                           ; 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 0a110h                               ; e8 e3 13
+    call 0a130h                               ; e8 e5 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 0a110h                               ; e8 d4 13
+    call 0a130h                               ; e8 d6 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 0a110h                               ; e8 c5 13
+    call 0a130h                               ; e8 c7 13
     movzx ax, byte [bp-00ah]                  ; 0f b6 46 f6
     sal ax, 007h                              ; c1 e0 07
@@ -13295,5 +13321,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8e15 LB 0x24a
+ahci_port_init_:                             ; 0xf8e33 LB 0x24a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13305,5 +13331,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08c96h                               ; e8 6d fe
+    call 08cb4h                               ; e8 6d fe
     movzx ax, bl                              ; 0f b6 c3
     sal ax, 007h                              ; c1 e0 07
@@ -13352,20 +13378,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08e98h                           ; 74 04
+    je short 08eb6h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08e9ah                          ; eb 02
+    jmp short 08eb8h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08e64h                           ; 74 c6
+    je short 08e82h                           ; 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 0a110h                               ; e8 65 12
+    call 0a130h                               ; e8 67 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 0a110h                               ; e8 56 12
+    call 0a130h                               ; e8 58 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13373,5 +13399,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a110h                               ; e8 45 12
+    call 0a130h                               ; e8 47 12
     movzx bx, byte [bp-008h]                  ; 0f b6 5e f8
     sal bx, 007h                              ; c1 e3 07
@@ -13390,5 +13416,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 088cbh                               ; e8 d3 f9
+    call 088e9h                               ; e8 d3 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13435,5 +13461,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 088cbh                               ; e8 67 f9
+    call 088e9h                               ; e8 67 f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13540,5 +13566,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf905f LB 0xa6
+@ahci_read_sectors:                          ; 0xf907d LB 0xa6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13550,10 +13576,10 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 09084h                          ; 76 0f
+    jbe short 090a2h                          ; 76 0f
     push di                                   ; 57
     push 00c74h                               ; 68 74 0c
     push 00c86h                               ; 68 86 0c
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 ea 89
+    call 01a6bh                               ; e8 cc 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13569,9 +13595,9 @@
     mov dx, word [es:di+00232h]               ; 26 8b 95 32 02
     xor ax, ax                                ; 31 c0
-    call 08e15h                               ; e8 65 fd
+    call 08e33h                               ; 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 08a34h                               ; e8 79 f9
+    call 08a52h                               ; e8 79 f9
     mov word [bp-006h], ax                    ; 89 46 fa
     mov es, [bp+006h]                         ; 8e 46 06
@@ -13602,5 +13628,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf9105 LB 0x84
+@ahci_write_sectors:                         ; 0xf9123 LB 0x84
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13613,10 +13639,10 @@
     sub dx, strict byte 0000ch                ; 83 ea 0c
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jbe short 0912eh                          ; 76 0f
+    jbe short 0914ch                          ; 76 0f
     push dx                                   ; 52
     push 00ca5h                               ; 68 a5 0c
     push 00c86h                               ; 68 86 0c
     push strict byte 00007h                   ; 6a 07
-    call 01a6bh                               ; e8 40 89
+    call 01a6bh                               ; e8 22 89
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -13632,9 +13658,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e15h                               ; e8 bd fc
+    call 08e33h                               ; e8 bd fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08a34h                               ; e8 d2 f8
+    call 08a52h                               ; e8 d2 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -13651,5 +13677,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf9189 LB 0x183
+ahci_cmd_packet_:                            ; 0xf91a7 LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13663,22 +13689,22 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 c1 85
+    call 01765h                               ; e8 a3 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 091cfh                          ; 75 1f
-    mov bx, 00db6h                            ; bb b6 0d
+    jne short 091edh                          ; 75 1f
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 6f 88
+    call 01a2ah                               ; e8 51 88
     push 00cb8h                               ; 68 b8 0c
     push 00cc8h                               ; 68 c8 0c
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 a5 88
+    call 01a6bh                               ; e8 87 88
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 09303h                           ; e9 34 01
+    jmp near 09321h                           ; e9 34 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 091c9h                          ; 75 f4
+    jne short 091e7h                          ; 75 f4
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov dx, word [bp+008h]                    ; 8b 56 08
@@ -13686,5 +13712,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 091deh                               ; e2 fa
+    loop 091fch                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], ax                      ; 26 89 04
@@ -13700,5 +13726,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a0b0h                               ; e8 9c 0e
+    call 0a0d0h                               ; e8 9e 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -13717,5 +13743,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e15h                               ; e8 c5 fb
+    call 08e33h                               ; e8 c5 fb
     movzx ax, byte [bp-006h]                  ; 0f b6 46 fa
     push ax                                   ; 50
@@ -13724,5 +13750,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a120h                               ; e8 bc 0e
+    call 0a140h                               ; e8 be 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -13731,5 +13757,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 092a2h                           ; 74 27
+    je short 092c0h                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13744,5 +13770,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08a34h                               ; e8 87 f7
+    call 08a52h                               ; e8 87 f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov ax, word [es:bx+004h]                 ; 26 8b 47 04
@@ -13771,7 +13797,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 09301h                          ; 75 05
+    jne short 0931fh                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 09303h                          ; eb 02
+    jmp short 09321h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -13780,10 +13806,10 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-wait_ticks_device_init_:                     ; 0xf930c LB 0x5
+wait_ticks_device_init_:                     ; 0xf932a LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_detect_device_:                    ; 0xf9311 LB 0x4b8
+ahci_port_detect_device_:                    ; 0xf932f LB 0x4b8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13798,8 +13824,8 @@
     movzx di, bl                              ; 0f b6 fb
     mov bx, di                                ; 89 fb
-    call 08e15h                               ; e8 e5 fa
+    call 08e33h                               ; e8 e5 fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 2c 84
+    call 01765h                               ; e8 0e 84
     mov word [bp-012h], 00122h                ; c7 46 ee 22 01
     mov word [bp-010h], ax                    ; 89 46 f0
@@ -13860,11 +13886,11 @@
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, word [bp-01ch]                    ; 3b 46 e4
-    jc short 093e2h                           ; 72 11
+    jc short 09400h                           ; 72 11
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, word [bp-01ch]                    ; 3b 46 e4
-    jne short 0942dh                          ; 75 53
+    jne short 0944bh                          ; 75 53
     mov ax, word [es:di]                      ; 26 8b 05
     cmp ax, word [bp-024h]                    ; 3b 46 dc
-    jnc short 0942dh                          ; 73 4b
+    jnc short 0944bh                          ; 73 4b
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     sal ax, 007h                              ; c1 e0 07
@@ -13893,10 +13919,10 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 088b0h                               ; e8 8a f4
+    call 088ceh                               ; e8 8a f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 093c5h                          ; 75 9a
-    jmp short 09435h                          ; eb 08
+    jne short 093e3h                          ; 75 9a
+    jmp short 09453h                          ; eb 08
     cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
-    je near 097c1h                            ; 0f 84 8c 03
+    je near 097dfh                            ; 0f 84 8c 03
     push strict byte 00000h                   ; 6a 00
     mov bx, strict word 0000fh                ; bb 0f 00
@@ -13904,7 +13930,7 @@
     mov ax, word [bp-028h]                    ; 8b 46 d8
     mov dx, word [bp-022h]                    ; 8b 56 de
-    call 088b0h                               ; e8 6b f4
+    call 088ceh                               ; e8 6b f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne near 097c1h                           ; 0f 85 75 03
+    jne near 097dfh                           ; 0f 85 75 03
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
     sal di, 007h                              ; c1 e7 07
@@ -13934,5 +13960,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc near 097c1h                           ; 0f 83 2a 03
+    jnc near 097dfh                           ; 0f 83 2a 03
     lea ax, [di+00118h]                       ; 8d 85 18 01
     mov es, [bp-02ah]                         ; 8e 46 d6
@@ -13985,7 +14011,7 @@
     mov byte [bp-00eh], dl                    ; 88 56 f2
     test ax, ax                               ; 85 c0
-    jne near 09713h                           ; 0f 85 05 02
+    jne near 09731h                           ; 0f 85 05 02
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne near 09713h                           ; 0f 85 fd 01
+    jne near 09731h                           ; 0f 85 fd 01
     les bx, [bp-012h]                         ; c4 5e ee
     db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
@@ -14001,5 +14027,5 @@
     mov ax, word [bp-012h]                    ; 8b 46 ee
     mov dx, es                                ; 8c c2
-    call 08a34h                               ; e8 ea f4
+    call 08a52h                               ; e8 ea f4
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp-00ch], al                    ; 88 46 f4
@@ -14018,7 +14044,7 @@
     mov dword [bp-018h], strict dword 000000000h ; 66 c7 46 e8 00 00 00 00
     cmp si, 00fffh                            ; 81 fe ff 0f
-    jne short 095a0h                          ; 75 1b
+    jne short 095beh                          ; 75 1b
     cmp di, strict byte 0ffffh                ; 83 ff ff
-    jne short 095a0h                          ; 75 16
+    jne short 095beh                          ; 75 16
     mov dx, word [bp-00164h]                  ; 8b 96 9c fe
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -14055,19 +14081,19 @@
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 09616h                           ; 72 0c
-    jbe short 0961eh                          ; 76 12
+    jc short 09634h                           ; 72 0c
+    jbe short 0963ch                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 09626h                           ; 74 16
+    je short 09644h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 09622h                           ; 74 0e
-    jmp short 09673h                          ; eb 5d
+    je short 09640h                           ; 74 0e
+    jmp short 09691h                          ; eb 5d
     test al, al                               ; 84 c0
-    jne short 09673h                          ; 75 59
+    jne short 09691h                          ; 75 59
     mov BL, strict byte 040h                  ; b3 40
-    jmp short 09628h                          ; eb 0a
+    jmp short 09646h                          ; eb 0a
     mov BL, strict byte 048h                  ; b3 48
-    jmp short 09628h                          ; eb 06
+    jmp short 09646h                          ; eb 06
     mov BL, strict byte 050h                  ; b3 50
-    jmp short 09628h                          ; eb 02
+    jmp short 09646h                          ; eb 02
     mov BL, strict byte 058h                  ; b3 58
     mov al, bl                                ; 88 d8
@@ -14075,17 +14101,17 @@
     movzx dx, al                              ; 0f b6 d0
     mov ax, dx                                ; 89 d0
-    call 017a5h                               ; e8 71 81
+    call 017a5h                               ; e8 53 81
     test al, al                               ; 84 c0
-    je short 09673h                           ; 74 3b
+    je short 09691h                           ; 74 3b
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 64 81
+    call 017a5h                               ; e8 46 81
     xor ah, ah                                ; 30 e4
     sal ax, 008h                              ; c1 e0 08
     mov word [bp-02ch], ax                    ; 89 46 d4
     movzx ax, bl                              ; 0f b6 c3
-    call 017a5h                               ; e8 56 81
+    call 017a5h                               ; e8 38 81
     xor ah, ah                                ; 30 e4
     mov cx, word [bp-02ch]                    ; 8b 4e d4
@@ -14095,12 +14121,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 017a5h                               ; e8 43 81
+    call 017a5h                               ; e8 25 81
     xor ah, ah                                ; 30 e4
     mov word [bp-032h], ax                    ; 89 46 ce
     mov ax, dx                                ; 89 d0
-    call 017a5h                               ; e8 39 81
+    call 017a5h                               ; e8 1b 81
     xor ah, ah                                ; 30 e4
     mov word [bp-02eh], ax                    ; 89 46 d2
-    jmp short 09681h                          ; eb 0e
+    jmp short 0969fh                          ; eb 0e
     push dword [bp-018h]                      ; 66 ff 76 e8
     push si                                   ; 56
@@ -14108,9 +14134,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-032h]                         ; 8d 46 ce
-    call 05ad0h                               ; e8 4f c4
-    mov bx, 00db6h                            ; bb b6 0d
+    call 05aeeh                               ; e8 4f c4
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 9e 83
+    call 01a2ah                               ; e8 80 83
     push dword [bp-018h]                      ; 66 ff 76 e8
     push si                                   ; 56
@@ -14131,5 +14157,5 @@
     push 00ce8h                               ; 68 e8 0c
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 b2 83
+    call 01a6bh                               ; e8 94 83
     add sp, strict byte 0001ch                ; 83 c4 1c
     movzx di, byte [bp-00ch]                  ; 0f b6 7e f4
@@ -14159,5 +14185,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01749h                               ; e8 47 80
+    call 01749h                               ; e8 29 80
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
@@ -14165,10 +14191,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01757h                               ; e8 47 80
-    jmp near 097b3h                           ; e9 a0 00
+    call 01757h                               ; e8 29 80
+    jmp near 097d1h                           ; e9 a0 00
     cmp ax, 0eb14h                            ; 3d 14 eb
-    jne near 097b3h                           ; 0f 85 99 00
+    jne near 097d1h                           ; 0f 85 99 00
     cmp bx, 00101h                            ; 81 fb 01 01
-    jne near 097b3h                           ; 0f 85 91 00
+    jne near 097d1h                           ; 0f 85 91 00
     les bx, [bp-012h]                         ; c4 5e ee
     db  066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h
@@ -14184,5 +14210,5 @@
     mov ax, word [bp-012h]                    ; 8b 46 ee
     mov dx, es                                ; 8c c2
-    call 08a34h                               ; e8 de f2
+    call 08a52h                               ; e8 de f2
     test byte [bp-00232h], 080h               ; f6 86 ce fd 80
     db  00fh, 095h, 0c0h
@@ -14223,5 +14249,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf97c9 LB 0x43
+ahci_mem_alloc_:                             ; 0xf97e7 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14233,7 +14259,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 01765h                               ; e8 8c 7f
+    call 01765h                               ; e8 6e 7f
     test ax, ax                               ; 85 c0
-    je short 09802h                           ; 74 25
+    je short 09820h                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14242,5 +14268,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 097e5h                               ; e2 fa
+    loop 09803h                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14248,8 +14274,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 097f2h                               ; e2 fa
+    loop 09810h                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 01773h                               ; e8 73 7f
+    call 01773h                               ; e8 55 7f
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14261,5 +14287,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf980c LB 0x166
+ahci_hba_init_:                              ; 0xf982a LB 0x166
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14273,5 +14299,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01765h                               ; e8 43 7f
+    call 01765h                               ; e8 25 7f
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14290,8 +14316,8 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 097c9h                               ; e8 83 ff
+    call 097e7h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    je near 09951h                            ; 0f 84 02 01
+    je near 0996fh                            ; 0f 84 02 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14343,5 +14369,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 098a5h                          ; 75 de
+    jne short 098c3h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14361,29 +14387,29 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 088b0h                               ; e8 c5 ef
+    call 088ceh                               ; e8 c5 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 09916h                          ; eb 20
+    jmp short 09934h                          ; eb 20
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0990dh                           ; 74 11
+    je short 0992bh                           ; 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 09311h                               ; e8 09 fa
+    call 0932fh                               ; e8 09 fa
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 0994fh                           ; 74 42
+    je short 0996dh                           ; 74 42
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 0994fh                          ; 73 39
+    jnc short 0996dh                          ; 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 09927h                               ; e3 06
+    jcxz 09945h                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09921h                               ; e2 fa
+    loop 0993fh                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14401,9 +14427,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 0994bh                          ; 75 04
+    jne short 09969h                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 098f6h                           ; 74 ab
+    je short 09914h                           ; 74 ab
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 098f8h                          ; eb a9
+    jmp short 09916h                          ; eb a9
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14415,7 +14441,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 042h, 09ah, 020h, 09ah, 026h, 09ah, 02ch, 09ah, 032h
-    db  09ah, 038h, 09ah, 03eh, 09ah, 042h, 09ah
-_ahci_init:                                  ; 0xf9972 LB 0x116
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 060h, 09ah, 03eh, 09ah, 044h, 09ah, 04ah, 09ah, 050h
+    db  09ah, 056h, 09ah, 05ch, 09ah, 060h, 09ah
+_ahci_init:                                  ; 0xf9990 LB 0x116
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14425,8 +14451,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09ea8h                               ; e8 25 05
+    call 09ec6h                               ; e8 25 05
     mov bx, ax                                ; 89 c3
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je near 09a81h                            ; 0f 84 f5 00
+    je near 09a9fh                            ; 0f 84 f5 00
     xor al, al                                ; 30 c0
     shr ax, 008h                              ; c1 e8 08
@@ -14436,8 +14462,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09ef8h                               ; e8 56 05
+    call 09f16h                               ; e8 56 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 099cbh                           ; 74 23
+    je short 099e9h                           ; 74 23
     movzx bx, cl                              ; 0f b6 d9
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
@@ -14445,7 +14471,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09ef8h                               ; e8 3e 05
+    call 09f16h                               ; e8 3e 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 099cbh                           ; 74 0d
+    je short 099e9h                           ; 74 0d
     mov al, cl                                ; 88 c8
     db  0feh, 0c0h
@@ -14454,7 +14480,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    jmp short 0999fh                          ; eb d4
+    jmp short 099bdh                          ; eb d4
     test cl, cl                               ; 84 c9
-    je near 09a81h                            ; 0f 84 b0 00
+    je near 09a9fh                            ; 0f 84 b0 00
     add cl, 002h                              ; 80 c1 02
     movzx bx, cl                              ; 0f b6 d9
@@ -14463,7 +14489,7 @@
     mov dx, si                                ; 89 f2
     mov ax, di                                ; 89 f8
-    call 09ef8h                               ; e8 12 05
+    call 09f16h                               ; e8 12 05
     cmp AL, strict byte 010h                  ; 3c 10
-    jne near 09a81h                           ; 0f 85 95 00
+    jne near 09a9fh                           ; 0f 85 95 00
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov al, cl                                ; 88 c8
@@ -14472,29 +14498,29 @@
     mov dx, si                                ; 89 f2
     mov ax, di                                ; 89 f8
-    call 09f1ch                               ; e8 1e 05
+    call 09f3ah                               ; 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 09a42h                         ; 77 37
+    jnbe short 09a60h                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 0995bh                            ; bf 5b 99
+    mov di, 09979h                            ; bf 79 99
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-0669eh]               ; 2e 8b 85 62 99
+    mov ax, word [cs:di-06680h]               ; 2e 8b 85 80 99
     jmp ax                                    ; ff e0
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 09a42h                          ; eb 1c
+    jmp short 09a60h                          ; eb 1c
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 09a42h                          ; eb 16
+    jmp short 09a60h                          ; eb 16
     mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 09a42h                          ; eb 10
+    jmp short 09a60h                          ; eb 10
     mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 09a42h                          ; eb 0a
+    jmp short 09a60h                          ; eb 0a
     mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 09a42h                          ; eb 04
+    jmp short 09a60h                          ; eb 04
     mov byte [bp-006h], 024h                  ; c6 46 fa 24
     mov cx, dx                                ; 89 d1
@@ -14503,5 +14529,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test al, al                               ; 84 c0
-    je short 09a81h                           ; 74 30
+    je short 09a9fh                           ; 74 30
     movzx bx, al                              ; 0f b6 d8
     movzx di, byte [bp-008h]                  ; 0f b6 7e f8
@@ -14509,7 +14535,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09f3eh                               ; e8 db 04
+    call 09f5ch                               ; e8 db 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09a81h                           ; 74 1a
+    je short 09a9fh                           ; 74 1a
     and AL, strict byte 0f0h                  ; 24 f0
     add ax, cx                                ; 01 c8
@@ -14519,7 +14545,7 @@
     mov dx, di                                ; 89 fa
     mov ax, si                                ; 89 f0
-    call 09f65h                               ; e8 ea 04
+    call 09f83h                               ; e8 ea 04
     mov ax, word [bp-00ch]                    ; 8b 46 f4
-    call 0980ch                               ; e8 8b fd
+    call 0982ah                               ; e8 8b fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -14527,5 +14553,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9a88 LB 0x39
+apm_out_str_:                                ; 0xf9aa6 LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14533,5 +14559,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09a9dh                           ; 74 0a
+    je short 09abbh                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -14540,22 +14566,30 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09a95h                          ; 75 f8
+    jne short 09ab3h                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    in AL, strict byte 09ah                   ; e4 9a
-    mov AL, strict byte 09bh                  ; b0 9b
-    neg byte [bp+si-064efh]                   ; f6 9a 11 9b
-    mov AL, strict byte 09bh                  ; b0 9b
-    cmp AL, strict byte 09bh                  ; 3c 9b
-    mov AL, strict byte 09bh                  ; b0 9b
-    inc cx                                    ; 41
+    add bl, byte [bp+di-06432h]               ; 02 9b ce 9b
+    adc AL, strict byte 09bh                  ; 14 9b
+    das                                       ; 2f
     wait                                      ; 9b
-    test word [bp+di-0647bh], bx              ; 85 9b 85 9b
-    test word [bp+di-06480h], bx              ; 85 9b 80 9b
-    test word [bp+di-0647bh], bx              ; 85 9b 85 9b
-    jns short 09a5ch                          ; 79 9b
-_apm_function:                               ; 0xf9ac1 LB 0xf5
+    into                                      ; ce
+    wait                                      ; 9b
+    pop dx                                    ; 5a
+    wait                                      ; 9b
+    into                                      ; ce
+    wait                                      ; 9b
+    pop di                                    ; 5f
+    wait                                      ; 9b
+    mov word [0a39bh], ax                     ; a3 9b a3
+    wait                                      ; 9b
+    mov word [09e9bh], ax                     ; a3 9b 9e
+    wait                                      ; 9b
+    mov word [0a39bh], ax                     ; a3 9b a3
+    wait                                      ; 9b
+    xchg di, ax                               ; 97
+    wait                                      ; 9b
+_apm_function:                               ; 0xf9adf LB 0xf5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14565,21 +14599,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe near 09b85h                          ; 0f 87 b0 00
+    jnbe near 09ba3h                          ; 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-0655dh]                   ; 2e ff a7 a3 9a
+    jmp word [cs:bx-0653fh]                   ; 2e ff a7 c1 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 09bb0h                           ; e9 ba 00
+    jmp near 09bceh                           ; e9 ba 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a194h                ; c7 46 0c 94 a1
+    mov word [bp+00ch], 0a1b4h                ; c7 46 0c b4 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 09bb0h                           ; e9 9f 00
+    jmp near 09bceh                           ; e9 9f 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -14594,41 +14628,41 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09bb0h                           ; e9 74 00
+    jmp near 09bceh                           ; e9 74 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09bb0h                           ; e9 6f 00
+    jmp near 09bceh                           ; e9 6f 00
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09b66h                           ; 74 1f
+    je short 09b84h                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09b5eh                           ; 74 11
+    je short 09b7ch                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09b6eh                          ; 75 1b
+    jne short 09b8ch                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d22h                            ; b8 22 0d
-    call 09a88h                               ; e8 2c ff
-    jmp short 09bb0h                          ; eb 52
+    call 09aa6h                               ; e8 2c ff
+    jmp short 09bceh                          ; eb 52
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d2ah                            ; b8 2a 0d
-    jmp short 09b59h                          ; eb f3
+    jmp short 09b77h                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d32h                            ; b8 32 0d
-    jmp short 09b59h                          ; eb eb
+    jmp short 09b77h                          ; 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 09bb0h                          ; eb 37
+    jmp short 09bceh                          ; eb 37
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09bb0h                          ; eb 30
+    jmp short 09bceh                          ; eb 30
     or ah, 080h                               ; 80 cc 80
-    jmp short 09b71h                          ; eb ec
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp short 09b8fh                          ; eb ec
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 9a 7e
+    call 01a2ah                               ; e8 7c 7e
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
     push 00d3bh                               ; 68 3b 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 cd 7e
+    call 01a6bh                               ; e8 af 7e
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -14641,5 +14675,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_select_reg_:                           ; 0xf9bb6 LB 0x24
+pci16_select_reg_:                           ; 0xf9bd4 LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14658,5 +14692,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9bda LB 0xf7
+pci16_find_device_:                          ; 0xf9bf8 LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14672,8 +14706,8 @@
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09c22h                          ; 75 2d
+    jne short 09c40h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09bb6h                               ; e8 b9 ff
+    call 09bd4h                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14682,23 +14716,23 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09c10h                          ; 75 06
+    jne short 09c2eh                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09ca3h                           ; e9 93 00
+    jmp near 09cc1h                           ; e9 93 00
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 09c1dh                           ; 74 07
+    je short 09c3bh                           ; 74 07
     mov word [bp-00ah], strict word 00001h    ; c7 46 f6 01 00
-    jmp short 09c22h                          ; eb 05
+    jmp short 09c40h                          ; 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 09c4ah                          ; 75 1f
+    jne short 09c68h                          ; 75 1f
     mov ax, bx                                ; 89 d8
     shr ax, 008h                              ; c1 e8 08
     test ax, ax                               ; 85 c0
-    jne short 09c4ah                          ; 75 16
+    jne short 09c68h                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09bb6h                               ; e8 7a ff
+    call 09bd4h                               ; e8 7a ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -14706,13 +14740,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-008h]                    ; 3a 46 f8
-    jbe short 09c4ah                          ; 76 03
+    jbe short 09c68h                          ; 76 03
     mov byte [bp-008h], al                    ; 88 46 f8
     test di, di                               ; 85 ff
-    je short 09c53h                           ; 74 05
+    je short 09c71h                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09c55h                          ; eb 02
+    jmp short 09c73h                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09bb6h                               ; e8 5c ff
+    call 09bd4h                               ; e8 5c ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14725,22 +14759,22 @@
     mov word [bp-010h], strict word 00000h    ; c7 46 f0 00 00
     test di, di                               ; 85 ff
-    je short 09c84h                           ; 74 0f
+    je short 09ca2h                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09c78h                               ; e2 fa
+    loop 09c96h                               ; 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 09c94h                          ; 75 08
+    jne short 09cb2h                          ; 75 08
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09c9ah                           ; 74 06
+    je short 09cb8h                           ; 74 06
     cmp word [bp-010h], strict byte 00000h    ; 83 7e f0 00
-    je short 09ca0h                           ; 74 06
+    je short 09cbeh                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09cb2h                           ; 74 12
+    je short 09cd0h                           ; 74 12
     add bx, word [bp-00ah]                    ; 03 5e f6
     mov dx, bx                                ; 89 da
@@ -14748,9 +14782,9 @@
     movzx ax, byte [bp-008h]                  ; 0f b6 46 f8
     cmp dx, ax                                ; 39 c2
-    jbe near 09bf0h                           ; 0f 86 3e ff
+    jbe near 09c0eh                           ; 0f 86 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09cbbh                          ; 75 04
+    jne short 09cd9h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09cbeh                          ; eb 03
+    jmp short 09cdch                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14759,11 +14793,11 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov BL, strict byte 09dh                  ; b3 9d
-    int 09dh                                  ; cd 9d
-    loopne 09c68h                             ; e0 9d
-    cmc                                       ; f5
+    rcr word [di-06215h], 1                   ; d1 9d eb 9d
+    db  0feh
     popfw                                     ; 9d
-    or byte [bp-061e5h], bl                   ; 08 9e 1b 9e
-_pci16_function:                             ; 0xf9cd1 LB 0x1d7
+    adc bx, word [bp-061dah]                  ; 13 9e 26 9e
+    db  039h
+    sahf                                      ; 9e
+_pci16_function:                             ; 0xf9cef LB 0x1d7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14779,17 +14813,17 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09d0ah                           ; 72 1a
-    jbe short 09d62h                          ; 76 70
+    jc short 09d28h                           ; 72 1a
+    jbe short 09d80h                          ; 76 70
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je near 09e2fh                            ; 0f 84 36 01
+    je near 09e4dh                            ; 0f 84 36 01
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc near 09e74h                            ; 0f 82 74 01
+    jc near 09e92h                            ; 0f 82 74 01
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe near 09d87h                           ; 0f 86 80 00
-    jmp near 09e74h                           ; e9 6a 01
+    jbe near 09da5h                           ; 0f 86 80 00
+    jmp near 09e92h                           ; e9 6a 01
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09d32h                           ; 74 23
+    je short 09d50h                           ; 74 23
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jne near 09e74h                           ; 0f 85 5e 01
+    jne near 09e92h                           ; 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
@@ -14797,49 +14831,49 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09ea1h                           ; e9 6f 01
+    jmp near 09ebfh                           ; e9 6f 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09d3eh                          ; 75 06
+    jne short 09d5ch                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09e9ah                           ; e9 5c 01
+    jmp near 09eb8h                           ; 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 09bdah                               ; e8 8e fe
+    call 09bf8h                               ; e8 8e fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d5ch                          ; 75 0b
+    jne short 09d7ah                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e9ah                           ; e9 3e 01
+    jmp near 09eb8h                           ; e9 3e 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ea1h                           ; e9 3f 01
+    jmp near 09ebfh                           ; 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 09bdah                               ; e8 69 fe
+    call 09bf8h                               ; e8 69 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09d81h                          ; 75 0b
+    jne short 09d9fh                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09e9ah                           ; e9 19 01
+    jmp near 09eb8h                           ; e9 19 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09ea1h                           ; e9 1a 01
+    jmp near 09ebfh                           ; e9 1a 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09d94h                           ; 72 06
+    jc short 09db2h                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09e9ah                           ; e9 06 01
+    jmp near 09eb8h                           ; e9 06 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09bb6h                               ; e8 19 fe
+    call 09bd4h                               ; 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 09ea1h                          ; 0f 87 f5 00
+    jnbe near 09ebfh                          ; 0f 87 f5 00
     add bx, bx                                ; 01 db
-    jmp word [cs:bx-0633bh]                   ; 2e ff a7 c5 9c
+    jmp word [cs:bx-0631dh]                   ; 2e ff a7 e3 9c
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -14852,5 +14886,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp near 09ea1h                           ; e9 d4 00
+    jmp near 09ebfh                           ; e9 d4 00
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -14859,5 +14893,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp near 09ea1h                           ; e9 c1 00
+    jmp near 09ebfh                           ; e9 c1 00
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -14868,5 +14902,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp near 09ea1h                           ; e9 ac 00
+    jmp near 09ebfh                           ; e9 ac 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -14875,5 +14909,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp near 09ea1h                           ; e9 99 00
+    jmp near 09ebfh                           ; e9 99 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -14882,5 +14916,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09ea1h                           ; e9 86 00
+    jmp near 09ebfh                           ; e9 86 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -14891,5 +14925,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09ea1h                          ; eb 72
+    jmp short 09ebfh                          ; eb 72
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -14898,5 +14932,5 @@
     mov cx, word [0f370h]                     ; 8b 0e 70 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09e55h                          ; 76 11
+    jbe short 09e73h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -14904,5 +14938,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09e69h                          ; eb 14
+    jmp short 09e87h                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f190h                            ; be 90 f1
@@ -14916,9 +14950,9 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09ea1h                          ; eb 2d
-    mov bx, 00db6h                            ; bb b6 0d
+    jmp short 09ebfh                          ; eb 2d
+    mov bx, 00db2h                            ; bb b2 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01a2ah                               ; e8 ab 7b
+    call 01a2ah                               ; e8 8d 7b
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
@@ -14927,5 +14961,5 @@
     push 00d6eh                               ; 68 6e 0d
     push strict byte 00004h                   ; 6a 04
-    call 01a6bh                               ; e8 dc 7b
+    call 01a6bh                               ; e8 be 7b
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -14939,5 +14973,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9ea8 LB 0x2b
+pci_find_classcode_:                         ; 0xf9ec6 LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14954,5 +14988,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je near 09ec9h                            ; 0f 84 03 00
+    je near 09ee7h                            ; 0f 84 03 00
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -14963,5 +14997,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_device_:                            ; 0xf9ed3 LB 0x25
+pci_find_device_:                            ; 0xf9ef1 LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14975,5 +15009,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je near 09eeeh                            ; 0f 84 03 00
+    je near 09f0ch                            ; 0f 84 03 00
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -14984,5 +15018,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9ef8 LB 0x24
+pci_read_config_byte_:                       ; 0xf9f16 LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15003,5 +15037,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9f1c LB 0x22
+pci_read_config_word_:                       ; 0xf9f3a LB 0x22
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15022,5 +15056,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9f3e LB 0x27
+pci_read_config_dword_:                      ; 0xf9f5c LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15043,5 +15077,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xf9f65 LB 0x1c
+pci_write_config_word_:                      ; 0xf9f83 LB 0x1c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15058,5 +15092,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xf9f81 LB 0x1d
+vds_is_present_:                             ; 0xf9f9f LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15066,5 +15100,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 09f99h                           ; 74 06
+    je short 09fb7h                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15075,5 +15109,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xf9f9e LB 0x1e
+vds_real_to_lin_:                            ; 0xf9fbc LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15086,5 +15120,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 09fach                               ; e2 fa
+    loop 09fcah                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15094,5 +15128,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xf9fbc LB 0x79
+vds_build_sg_list_:                          ; 0xf9fda LB 0x79
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15108,21 +15142,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 09f9eh                               ; e8 c3 ff
+    call 09fbch                               ; 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 09f81h                               ; e8 93 ff
+    call 09f9fh                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a005h                           ; 74 13
+    je short 0a023h                           ; 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 0a002h                            ; 0f 82 02 00
+    jc near 0a020h                            ; 0f 82 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a02ch                          ; eb 27
+    jmp short 0a04ah                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15141,5 +15175,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa035 LB 0x3b
+vds_free_sg_list_:                           ; 0xfa053 LB 0x3d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15147,7 +15181,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 09f81h                               ; e8 42 ff
+    call 09f9fh                               ; e8 42 ff
     test ax, ax                               ; 85 c0
-    je short 0a056h                           ; 74 13
+    je short 0a074h                           ; 74 13
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15155,5 +15189,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc near 0a055h                            ; 0f 82 02 00
+    jc near 0a073h                            ; 0f 82 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15166,6 +15200,6 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    times 0xb db 0
-__U4M:                                       ; 0xfa070 LB 0x40
+    times 0xd db 0
+__U4M:                                       ; 0xfa090 LB 0x40
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15193,5 +15227,5 @@
     retn                                      ; c3
     times 0xf db 0
-__U4D:                                       ; 0xfa0b0 LB 0x40
+__U4D:                                       ; 0xfa0d0 LB 0x40
     pushfw                                    ; 9c
     push eax                                  ; 66 50
@@ -15224,7 +15258,7 @@
     retn                                      ; c3
     times 0x7 db 0
-__U8RS:                                      ; 0xfa0f0 LB 0x10
+__U8RS:                                      ; 0xfa110 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a0ffh                           ; 74 0b
+    je short 0a11fh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15232,9 +15266,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a0f4h                          ; 75 f5
+    jne short 0a114h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa100 LB 0x10
+__U8LS:                                      ; 0xfa120 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a10fh                           ; 74 0b
+    je short 0a12fh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15242,7 +15276,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a104h                          ; 75 f5
+    jne short 0a124h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa110 LB 0x10
+_fmemset_:                                   ; 0xfa130 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15255,5 +15289,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa120 LB 0x3a
+_fmemcpy_:                                   ; 0xfa140 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15280,17 +15314,17 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    jo short 0a0e3h                           ; 70 a1
-    jc short 0a0e5h                           ; 72 a1
-    jbe short 0a0e7h                          ; 76 a1
-    jbe short 0a0e9h                          ; 76 a1
-    jbe short 0a0ebh                          ; 76 a1
-    js short 0a0edh                           ; 78 a1
-    js short 0a0efh                           ; 78 a1
-    jp short 0a0f1h                           ; 7a a1
-    jle short 0a0f3h                          ; 7e a1
-    jle short 0a0f5h                          ; 7e a1
-    and byte [bx+di-05e7bh], 087h             ; 80 a1 85 a1 87
-    db  0a1h
-apm_worker:                                  ; 0xfa15a LB 0x3a
+    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
     sti                                       ; fb
     push ax                                   ; 50
@@ -15304,21 +15338,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a190h                          ; 73 25
-    jmp word [cs:bp-05ec0h]                   ; 2e ff a6 40 a1
-    jmp short 0a18eh                          ; eb 1c
+    jnc short 0a1b0h                          ; 73 25
+    jmp word [cs:bp-05ea0h]                   ; 2e ff a6 60 a1
+    jmp short 0a1aeh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a18eh                          ; eb 18
-    jmp short 0a18eh                          ; eb 16
-    jmp short 0a190h                          ; eb 16
+    jmp short 0a1aeh                          ; eb 18
+    jmp short 0a1aeh                          ; eb 16
+    jmp short 0a1b0h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a192h                          ; eb 14
-    jmp short 0a190h                          ; eb 10
+    jmp short 0a1b2h                          ; eb 14
+    jmp short 0a1b0h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a18eh                          ; eb 09
-    jmp short 0a18eh                          ; eb 07
+    jmp short 0a1aeh                          ; eb 09
+    jmp short 0a1aeh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a18eh                          ; eb 00
+    jmp short 0a1aeh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15326,5 +15360,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa194 LB 0x11
+apm_pm16_entry:                              ; 0xfa1b4 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15334,11 +15368,11 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a15ah                               ; e8 b8 ff
+    call 0a17ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
 
-  ; Padding 0x385b bytes at 0xfa1a5
-  times 14427 db 0
+  ; Padding 0x383b bytes at 0xfa1c5
+  times 14395 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -15387,5 +15421,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a196h                            ; bd 96 a1
+    mov bp, 0a1b6h                            ; bd b6 a1
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -15855,5 +15889,5 @@
     cmp AL, strict byte 009h                  ; 3c 09
     jne short 0e0bch                          ; 75 03
-    jmp near 0e37bh                           ; e9 bf 02
+    jmp near 0e363h                           ; e9 a7 02
     cmp AL, strict byte 005h                  ; 3c 05
     je short 0e044h                           ; 74 84
@@ -16001,5 +16035,5 @@
     mov dx, 0c800h                            ; ba 00 c8
     call 01600h                               ; e8 e1 33
-    call 04fdah                               ; e8 b8 6d
+    call 04ff8h                               ; e8 d6 6d
     pop DS                                    ; 1f
     mov ax, 0ff53h                            ; b8 53 ff
@@ -16061,5 +16095,5 @@
     mov word [001c2h], ax                     ; a3 c2 01
     call 0edbfh                               ; e8 05 0b
-    jmp short 0e31bh                          ; eb 5f
+    jmp short 0e303h                          ; eb 47
 biosorg_check_before_or_at_0E2C1h:           ; 0xfe2bc LB 0x7
     add byte [bx+si], al                      ; 00 00
@@ -16077,5 +16111,5 @@
     int 002h                                  ; cd 02
     iret                                      ; cf
-hard_drive_post:                             ; 0xfe2d2 LB 0xd2
+hard_drive_post:                             ; 0xfe2d2 LB 0xba
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16096,12 +16130,4 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001dah], ax                     ; a3 da 01
-    mov ax, strict word 0003dh                ; b8 3d 00
-    mov word [00104h], ax                     ; a3 04 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [00106h], ax                     ; a3 06 01
-    mov ax, strict word 0004dh                ; b8 4d 00
-    mov word [00118h], ax                     ; a3 18 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [0011ah], ax                     ; a3 1a 01
     retn                                      ; c3
     mov ax, 0f8c1h                            ; b8 c1 f8
@@ -16113,19 +16139,19 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001d6h], ax                     ; a3 d6 01
-    call 0e753h                               ; e8 1d 04
+    call 0e753h                               ; e8 35 04
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
     pushad                                    ; 66 60
-    call 01692h                               ; e8 54 33
+    call 01692h                               ; e8 6c 33
     popad                                     ; 66 61
-    call 01da8h                               ; e8 65 3a
-    call 02235h                               ; e8 ef 3e
+    call 01da8h                               ; e8 7d 3a
+    call 02235h                               ; e8 07 3f
     sti                                       ; fb
-    call 09972h                               ; e8 28 b6
+    call 09990h                               ; e8 5e b6
     cli                                       ; fa
-    call 0882fh                               ; e8 e1 a4
-    call 0ed2fh                               ; e8 de 09
-    call 0e2d2h                               ; e8 7e ff
+    call 0884dh                               ; e8 17 a5
+    call 0ed2fh                               ; e8 f6 09
+    call 0e2d2h                               ; e8 96 ff
     push CS                                   ; 0e
     pop DS                                    ; 1f
@@ -16133,5 +16159,5 @@
     mov ax, 0c800h                            ; b8 00 c8
     mov dx, 0f000h                            ; ba 00 f0
-    call 01600h                               ; e8 a0 32
+    call 01600h                               ; e8 b8 32
     db  066h, 033h, 0c0h
     ; xor eax, eax                              ; 66 33 c0
@@ -16142,11 +16168,11 @@
     db  066h, 033h, 0d2h
     ; xor edx, edx                              ; 66 33 d2
-    call 01890h                               ; e8 21 35
-    call 03cbdh                               ; e8 4b 59
+    call 01890h                               ; e8 39 35
+    call 03cdbh                               ; e8 81 59
     sti                                       ; fb
     int 019h                                  ; cd 19
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0e376h                          ; eb fd
+    jmp short 0e35eh                          ; eb fd
     cli                                       ; fa
     hlt                                       ; f4
@@ -16170,6 +16196,6 @@
     sti                                       ; fb
     retf 00002h                               ; ca 02 00
-biosorg_check_before_or_at_0E3FCh:           ; 0xfe3a4 LB 0x5a
-    times 0x58 db 0
+biosorg_check_before_or_at_0E3FCh:           ; 0xfe38c LB 0x72
+    times 0x70 db 0
     db  'XM'
 int13_handler:                               ; 0xfe3fe LB 0x3
@@ -16245,5 +16271,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 064f7h                               ; e8 b5 7d
+    call 06515h                               ; e8 d3 7d
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -16326,5 +16352,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 057e5h                               ; e8 a2 6f
+    call 05803h                               ; e8 c0 6f
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -16344,5 +16370,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 057e5h                               ; e8 81 6f
+    call 05803h                               ; e8 9f 6f
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -16439,5 +16465,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 052ddh                               ; e8 1e 69
+    call 052fbh                               ; e8 3c 69
     pop ES                                    ; 07
     popaw                                     ; 61
@@ -16455,5 +16481,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06fc0h                               ; e8 eb 85
+    call 06fdeh                               ; e8 09 86
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -16477,5 +16503,5 @@
     cld                                       ; fc
     push 0ece9h                               ; 68 e9 ec
-    jmp near 03d01h                           ; e9 90 50
+    jmp near 03d1fh                           ; e9 ae 50
     push ES                                   ; 06
     push ax                                   ; 50
@@ -16483,8 +16509,8 @@
     push cx                                   ; 51
     push dx                                   ; 52
-    call 03cd5h                               ; e8 5c 50
+    call 03cf3h                               ; e8 7a 50
     cmp AL, strict byte 000h                  ; 3c 00
     je short 0ecabh                           ; 74 2e
-    call 03cebh                               ; e8 6b 50
+    call 03d09h                               ; e8 89 50
     pop dx                                    ; 5a
     push dx                                   ; 52
@@ -16504,5 +16530,5 @@
     cld                                       ; fc
     push 0ece9h                               ; 68 e9 ec
-    jmp near 042d6h                           ; e9 3f 56
+    jmp near 042f4h                           ; e9 5d 56
     and dl, 0e0h                              ; 80 e2 e0
     db  03ah, 0c2h
@@ -16544,5 +16570,5 @@
     jne short 0ecc8h                          ; 75 06
     push 0ece9h                               ; 68 e9 ec
-    jmp near 03303h                           ; e9 3b 46
+    jmp near 03321h                           ; e9 59 46
 int13_notfloppy:                             ; 0xfecc8 LB 0x14
     cmp dl, 0e0h                              ; 80 fa e0
@@ -16550,5 +16576,5 @@
     shr ebx, 010h                             ; 66 c1 eb 10
     push bx                                   ; 53
-    call 0470ah                               ; e8 35 5a
+    call 04728h                               ; e8 53 5a
     pop bx                                    ; 5b
     sal ebx, 010h                             ; 66 c1 e3 10
@@ -16557,7 +16583,7 @@
     cmp ah, 040h                              ; 80 fc 40
     jnbe short 0ece6h                         ; 77 05
-    call 05bb5h                               ; e8 d1 6e
+    call 05bd3h                               ; e8 ef 6e
     jmp short 0ece9h                          ; eb 03
-    call 06003h                               ; e8 1a 73
+    call 06021h                               ; e8 38 73
 int13_out:                                   ; 0xfece9 LB 0x4
     pop DS                                    ; 1f
@@ -16775,5 +16801,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0793bh                               ; e8 5e 89
+    call 07959h                               ; e8 7c 89
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -16826,5 +16852,5 @@
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
-    call 04d71h                               ; e8 a1 5c
+    call 04d8fh                               ; e8 bf 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -16833,5 +16859,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 04d71h                               ; e8 94 5c
+    call 04d8fh                               ; e8 b2 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -16840,5 +16866,5 @@
     mov ax, strict word 00003h                ; b8 03 00
     push ax                                   ; 50
-    call 04d71h                               ; e8 87 5c
+    call 04d8fh                               ; e8 a5 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -16847,5 +16873,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 04d71h                               ; e8 7a 5c
+    call 04d8fh                               ; e8 98 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -16989,5 +17015,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06e15h                               ; e8 ae 75
+    call 06e33h                               ; e8 cc 75
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -17011,5 +17037,5 @@
     cmp ah, 0c2h                              ; 80 fc c2
     je short 0f899h                           ; 74 0e
-    call 06749h                               ; e8 bb 6e
+    call 06767h                               ; e8 d9 6e
     popaw                                     ; 61
     pop ES                                    ; 07
@@ -17017,12 +17043,12 @@
     popfw                                     ; 9d
     jmp short 0f8a7h                          ; eb 13
-    call 09ac1h                               ; e8 2a a2
+    call 09adfh                               ; e8 48 a2
     jmp short 0f88eh                          ; eb f5
 int15_handler_mouse:                         ; 0xff899 LB 0x5
-    call 075b0h                               ; e8 14 7d
+    call 075ceh                               ; e8 32 7d
     jmp short 0f88eh                          ; eb f0
 int15_handler32:                             ; 0xff89e LB 0x9
     pushad                                    ; 66 60
-    call 06a7fh                               ; e8 dc 71
+    call 06a9dh                               ; e8 fa 71
     popad                                     ; 66 61
     jmp short 0f88fh                          ; eb e8
@@ -17057,5 +17083,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 074e6h                               ; e8 14 7c
+    call 07504h                               ; e8 32 7c
     pop cx                                    ; 59
     jcxz 0f8e1h                               ; e3 0c
@@ -17089,5 +17115,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0719eh                               ; e8 97 78
+    call 071bch                               ; e8 b5 78
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -17171,5 +17197,5 @@
     cld                                       ; fc
     pushad                                    ; 66 60
-    call 09cd1h                               ; e8 54 9e
+    call 09cefh                               ; e8 72 9e
     popad                                     ; 66 61
     pop DS                                    ; 1f
@@ -17182,5 +17208,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 0725ch                               ; e8 d1 73
+    call 0727ah                               ; e8 ef 73
     popaw                                     ; 61
     pop DS                                    ; 1f
@@ -17285,3 +17311,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, 097h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 010h
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 69111)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum	(revision 69128)
@@ -1,1 +1,1 @@
-6036b256cf58d884819ecdbbb6307d91 *VBoxPcBios386.rom
+5c1e6f4b33cd5a3287fb46724322322f *VBoxPcBios386.rom
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 69111)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm	(revision 69128)
@@ -988,10 +988,10 @@
     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, 0ech, 091h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 0c1h, 02bh, 02bh, 082h, 00ch, 092h
 _softrst:                                    ; 0xf0076 LB 0xc
-    db  000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02eh, 03ch, 02eh, 03ch
+    db  000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 04eh, 03ch, 04eh, 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, 0bah, 090h, 064h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0a5h, 02ah, 066h, 02bh, 000h, 000h, 000h, 000h
+    db  059h, 080h, 042h, 081h, 0dah, 090h, 084h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h
     db  032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h
 
@@ -1114,18 +1114,18 @@
     db   'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h
 
-section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fe class=DATA group=DGROUP
-_bios_cvs_version_string:                    ; 0xf0d8e LB 0x16
-    db  'VirtualBox 5.2.0_RC1', 000h, 000h
-_bios_prefix_string:                         ; 0xf0da4 LB 0x8
+section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
+_bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
+    db  'VirtualBox 5.2.0', 000h, 000h
+_bios_prefix_string:                         ; 0xf0da0 LB 0x8
     db  'BIOS: ', 000h, 000h
-_isotag:                                     ; 0xf0dac LB 0x6
+_isotag:                                     ; 0xf0da8 LB 0x6
     db  'CD001', 000h
-_eltorito:                                   ; 0xf0db2 LB 0x18
+_eltorito:                                   ; 0xf0dae LB 0x18
     db  'EL TORITO SPECIFICATION', 000h
-_drivetypes:                                 ; 0xf0dca LB 0x28
+_drivetypes:                                 ; 0xf0dc6 LB 0x28
     db  046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h
     db  069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h
     db  04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-_scan_to_scanascii:                          ; 0xf0df2 LB 0x37a
+_scan_to_scanascii:                          ; 0xf0dee LB 0x37a
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h
     db  000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h
@@ -1184,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:                 ; 0xf116c LB 0x20
+_panic_msg_keyb_buffer_full:                 ; 0xf1168 LB 0x20
     db  '%s: keyboard input buffer full', 00ah, 000h
 
-  ; Padding 0x474 bytes at 0xf118c
-  times 1140 db 0
+  ; Padding 0x478 bytes at 0xf1188
+  times 1144 db 0
 
-section _TEXT progbits vstart=0x1600 align=1 ; size=0x8eb8 class=CODE group=AUTO
+section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ed8 class=CODE group=AUTO
 rom_scan_:                                   ; 0xf1600 LB 0x52
     push bp                                   ; 55
@@ -1418,5 +1418,5 @@
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -1450,5 +1450,5 @@
     int 010h                                  ; cd 10
     jmp short 017c3h                          ; eb 03
-    call 07bceh                               ; e8 0b 64
+    call 07beeh                               ; e8 2b 64
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -1596,5 +1596,5 @@
     mov bx, strict word 0000ah                ; bb 0a 00
     xor cx, cx                                ; 31 c9
-    call 0a150h                               ; e8 73 88
+    call 0a170h                               ; e8 93 88
     mov word [bp-008h], ax                    ; 89 46 f8
     mov cx, dx                                ; 89 d1
@@ -1833,5 +1833,5 @@
     mov dx, word [bp-026h]                    ; 8b 56 da
     mov si, word [bp-01eh]                    ; 8b 76 e2
-    call 0a180h                               ; e8 68 86
+    call 0a1a0h                               ; e8 88 86
     mov ax, dx                                ; 89 d0
     xor ah, dh                                ; 30 f4
@@ -2294,5 +2294,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a180h                               ; e8 ee 81
+    call 0a1a0h                               ; e8 0e 82
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -2304,5 +2304,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a180h                               ; e8 ce 81
+    call 0a1a0h                               ; e8 ee 81
     mov bx, dx                                ; 89 d3
     mov word [bp-010h], dx                    ; 89 56 f0
@@ -2336,5 +2336,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a180h                               ; e8 7b 81
+    call 0a1a0h                               ; e8 9b 81
     mov word [bp-010h], dx                    ; 89 56 f0
     mov bx, word [bp-016h]                    ; 8b 5e ea
@@ -2345,5 +2345,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a180h                               ; e8 5d 81
+    call 0a1a0h                               ; e8 7d 81
     mov bl, dl                                ; 88 d3
     and bl, 00fh                              ; 80 e3 0f
@@ -2476,5 +2476,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_ata_detect:                                 ; 0xf2154 LB 0x6a3
+_ata_detect:                                 ; 0xf2154 LB 0x6c3
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -2485,9 +2485,9 @@
     mov ax, strict word 00040h                ; b8 40 00
     call 0166eh                               ; e8 08 f5
-    mov word [bp-024h], ax                    ; 89 46 dc
+    mov word [bp-028h], ax                    ; 89 46 d8
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
-    mov word [bp-01eh], bx                    ; 89 5e e2
-    mov word [bp-022h], ax                    ; 89 46 de
+    mov word [bp-02eh], bx                    ; 89 5e d2
+    mov word [bp-02ah], ax                    ; 89 46 d6
     mov byte [es:bx+00204h], 000h             ; 26 c6 87 04 02 00
     mov word [es:bx+00206h], 001f0h           ; 26 c7 87 06 02 f0 01
@@ -2499,8 +2499,8 @@
     mov byte [es:bx+0020bh], 00fh             ; 26 c6 87 0b 02 0f
     xor al, al                                ; 30 c0
-    mov byte [bp-00ch], al                    ; 88 46 f4
-    mov byte [bp-008h], al                    ; 88 46 f8
-    mov byte [bp-010h], al                    ; 88 46 f0
-    jmp near 02775h                           ; e9 bf 05
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov byte [bp-014h], al                    ; 88 46 ec
+    jmp near 02795h                           ; e9 df 05
     mov ax, 000a0h                            ; b8 a0 00
     lea dx, [bx+006h]                         ; 8d 57 06
@@ -2537,16 +2537,16 @@
     cmp AL, strict byte 0aah                  ; 3c aa
     jne short 0223ah                          ; 75 48
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov si, word [bp-01eh]                    ; 8b 76 e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov si, word [bp-02eh]                    ; 8b 76 d2
     add si, ax                                ; 01 c6
     mov byte [es:si+022h], 001h               ; 26 c6 44 22 01
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     call 01db8h                               ; e8 a7 fb
-    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
+    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
     je short 0221ch                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
@@ -2579,7 +2579,7 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    mov word [bp-032h], ax                    ; 89 46 ce
-    mov al, byte [bp-032h]                    ; 8a 46 ce
-    mov byte [bp-00ah], al                    ; 88 46 f6
+    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov al, byte [bp-02ch]                    ; 8a 46 d4
+    mov byte [bp-006h], al                    ; 88 46 fa
     lea dx, [bx+007h]                         ; 8d 57 07
     in AL, DX                                 ; ec
@@ -2588,12 +2588,12 @@
     cmp cl, 014h                              ; 80 f9 14
     jne short 0227fh                          ; 75 1f
-    cmp byte [bp-032h], 0ebh                  ; 80 7e ce eb
+    cmp byte [bp-02ch], 0ebh                  ; 80 7e d4 eb
     jne short 0227fh                          ; 75 19
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 003h               ; 26 c6 47 22 03
@@ -2601,14 +2601,14 @@
     test ch, ch                               ; 84 ed
     jne short 022a6h                          ; 75 23
-    cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
+    cmp byte [bp-006h], 000h                  ; 80 7e fa 00
     jne short 022a6h                          ; 75 1d
     test al, al                               ; 84 c0
     je short 022a6h                           ; 74 19
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 002h               ; 26 c6 47 22 02
@@ -2616,27 +2616,27 @@
     cmp ch, 0ffh                              ; 80 fd ff
     jne short 022c7h                          ; 75 1c
-    cmp ch, byte [bp-00ah]                    ; 3a 6e f6
+    cmp ch, byte [bp-006h]                    ; 3a 6e fa
     jne short 022c7h                          ; 75 17
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+022h], 000h               ; 26 c6 47 22 00
-    mov dx, word [bp-028h]                    ; 8b 56 d8
+    mov dx, word [bp-032h]                    ; 8b 56 ce
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
     mov al, byte [es:bx+022h]                 ; 26 8a 47 22
-    mov byte [bp-012h], al                    ; 88 46 ee
+    mov byte [bp-018h], al                    ; 88 46 e8
     cmp AL, strict byte 002h                  ; 3c 02
     jne short 02339h                          ; 75 4c
@@ -2644,12 +2644,12 @@
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     lea dx, [bp-00268h]                       ; 8d 96 98 fd
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     mov byte [es:bx+00ch], al                 ; 26 88 47 0c
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000ech                            ; bb ec 00
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov ax, word [bp-02eh]                    ; 8b 46 d2
     mov dx, es                                ; 8c c2
     call 01e9dh                               ; e8 82 fb
@@ -2666,33 +2666,33 @@
     mov ax, strict word 00001h                ; b8 01 00
     jmp short 0233eh                          ; eb 05
-    jmp near 02520h                           ; e9 e4 01
+    jmp near 02540h                           ; e9 04 02
     xor ax, ax                                ; 31 c0
-    mov byte [bp-01ah], al                    ; 88 46 e6
-    mov byte [bp-006h], 000h                  ; c6 46 fa 00
-    mov word [bp-036h], 00200h                ; c7 46 ca 00 02
+    mov byte [bp-008h], al                    ; 88 46 f8
+    mov byte [bp-00eh], 000h                  ; c6 46 f2 00
+    mov word [bp-038h], 00200h                ; c7 46 c8 00 02
     mov ax, word [bp-00266h]                  ; 8b 86 9a fd
-    mov word [bp-02ch], ax                    ; 89 46 d4
+    mov word [bp-026h], ax                    ; 89 46 da
     mov ax, word [bp-00262h]                  ; 8b 86 9e fd
-    mov word [bp-034h], ax                    ; 89 46 cc
+    mov word [bp-01eh], ax                    ; 89 46 e2
     mov ax, word [bp-0025ch]                  ; 8b 86 a4 fd
+    mov word [bp-020h], ax                    ; 89 46 e0
+    mov ax, word [bp-001f0h]                  ; 8b 86 10 fe
+    mov word [bp-030h], ax                    ; 89 46 d0
+    mov si, word [bp-001eeh]                  ; 8b b6 12 fe
+    xor ax, ax                                ; 31 c0
     mov word [bp-01ch], ax                    ; 89 46 e4
-    mov si, word [bp-001f0h]                  ; 8b b6 10 fe
-    mov ax, word [bp-001eeh]                  ; 8b 86 12 fe
-    mov word [bp-030h], ax                    ; 89 46 d0
-    xor ax, ax                                ; 31 c0
-    mov word [bp-02eh], ax                    ; 89 46 d2
-    mov word [bp-020h], ax                    ; 89 46 e0
-    cmp word [bp-030h], 00fffh                ; 81 7e d0 ff 0f
-    jne short 02397h                          ; 75 1e
-    cmp si, strict byte 0ffffh                ; 83 fe ff
+    mov word [bp-024h], ax                    ; 89 46 dc
+    cmp si, 00fffh                            ; 81 fe ff 0f
+    jne short 02397h                          ; 75 1f
+    cmp word [bp-030h], strict byte 0ffffh    ; 83 7e d0 ff
     jne short 02397h                          ; 75 19
     mov ax, word [bp-0019ah]                  ; 8b 86 66 fe
-    mov word [bp-020h], ax                    ; 89 46 e0
+    mov word [bp-024h], ax                    ; 89 46 dc
     mov ax, word [bp-0019ch]                  ; 8b 86 64 fe
-    mov word [bp-02eh], ax                    ; 89 46 d2
-    mov ax, word [bp-0019eh]                  ; 8b 86 62 fe
+    mov word [bp-01ch], ax                    ; 89 46 e4
+    mov si, word [bp-0019eh]                  ; 8b b6 62 fe
+    mov ax, word [bp-001a0h]                  ; 8b 86 60 fe
     mov word [bp-030h], ax                    ; 89 46 d0
-    mov si, word [bp-001a0h]                  ; 8b b6 60 fe
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     cmp AL, strict byte 001h                  ; 3c 01
     jc short 023aah                           ; 72 0c
@@ -2735,12 +2735,12 @@
     mov word [bp-03ah], ax                    ; 89 46 c6
     jmp short 02401h                          ; eb 12
-    push word [bp-020h]                       ; ff 76 e0
-    push word [bp-02eh]                       ; ff 76 d2
+    push word [bp-024h]                       ; ff 76 dc
+    push word [bp-01ch]                       ; ff 76 e4
+    push si                                   ; 56
     push word [bp-030h]                       ; ff 76 d0
-    push si                                   ; 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-03eh]                         ; 8d 46 c2
-    call 05b7fh                               ; e8 7e 37
-    mov bx, 00da4h                            ; bb a4 0d
+    call 05b9fh                               ; e8 9e 37
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
@@ -2752,11 +2752,11 @@
     mov ax, word [bp-03ch]                    ; 8b 46 c4
     push ax                                   ; 50
-    push word [bp-01ch]                       ; ff 76 e4
-    push word [bp-034h]                       ; ff 76 cc
-    push word [bp-02ch]                       ; ff 76 d4
-    mov al, byte [bp-014h]                    ; 8a 46 ec
-    xor ah, ah                                ; 30 e4
-    push ax                                   ; 50
-    mov al, byte [bp-018h]                    ; 8a 46 e8
+    push word [bp-020h]                       ; ff 76 e0
+    push word [bp-01eh]                       ; ff 76 e2
+    push word [bp-026h]                       ; ff 76 da
+    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    xor ah, ah                                ; 30 e4
+    push ax                                   ; 50
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     push ax                                   ; 50
     mov ax, 0014dh                            ; b8 4d 01
@@ -2766,31 +2766,31 @@
     call 01976h                               ; e8 40 f5
     add sp, strict byte 00014h                ; 83 c4 14
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov di, word [bp-01eh]                    ; 8b 7e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov di, word [bp-02eh]                    ; 8b 7e d2
     add di, ax                                ; 01 c7
     mov byte [es:di+023h], 0ffh               ; 26 c6 45 23 ff
-    mov al, byte [bp-01ah]                    ; 8a 46 e6
+    mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [es:di+024h], al                 ; 26 88 45 24
-    mov al, byte [bp-006h]                    ; 8a 46 fa
+    mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [es:di+026h], al                 ; 26 88 45 26
-    mov ax, word [bp-036h]                    ; 8b 46 ca
+    mov ax, word [bp-038h]                    ; 8b 46 c8
     mov word [es:di+028h], ax                 ; 26 89 45 28
-    mov ax, word [bp-034h]                    ; 8b 46 cc
+    mov ax, word [bp-01eh]                    ; 8b 46 e2
     mov word [es:di+030h], ax                 ; 26 89 45 30
-    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov ax, word [bp-026h]                    ; 8b 46 da
     mov word [es:di+032h], ax                 ; 26 89 45 32
+    mov ax, word [bp-020h]                    ; 8b 46 e0
+    mov word [es:di+034h], ax                 ; 26 89 45 34
+    mov ax, word [bp-024h]                    ; 8b 46 dc
+    mov word [es:di+03ch], ax                 ; 26 89 45 3c
     mov ax, word [bp-01ch]                    ; 8b 46 e4
-    mov word [es:di+034h], ax                 ; 26 89 45 34
-    mov ax, word [bp-020h]                    ; 8b 46 e0
-    mov word [es:di+03ch], ax                 ; 26 89 45 3c
-    mov ax, word [bp-02eh]                    ; 8b 46 d2
     mov word [es:di+03ah], ax                 ; 26 89 45 3a
+    mov word [es:di+038h], si                 ; 26 89 75 38
     mov ax, word [bp-030h]                    ; 8b 46 d0
-    mov word [es:di+038h], ax                 ; 26 89 45 38
-    mov word [es:di+036h], si                 ; 26 89 75 36
+    mov word [es:di+036h], ax                 ; 26 89 45 36
     lea di, [di+02ah]                         ; 8d 7d 2a
     push DS                                   ; 1e
@@ -2802,7 +2802,7 @@
     movsw                                     ; a5
     pop DS                                    ; 1f
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     cmp AL, strict byte 002h                  ; 3c 02
-    jnc short 0250ah                          ; 73 63
+    jnc short 0250bh                          ; 73 64
     test al, al                               ; 84 c0
     jne short 024b0h                          ; 75 05
@@ -2810,111 +2810,124 @@
     jmp short 024b3h                          ; eb 03
     mov di, strict word 0004dh                ; bf 4d 00
-    mov dx, word [bp-024h]                    ; 8b 56 dc
+    mov cx, word [bp-028h]                    ; 8b 4e d8
+    mov al, byte [bp-014h]                    ; 8a 46 ec
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 00005h                ; ba 05 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    sal bx, 1                                 ; d1 e3
+    sal bx, 1                                 ; d1 e3
+    add bx, 00104h                            ; 81 c3 04 01
+    xor ax, ax                                ; 31 c0
+    mov es, ax                                ; 8e c0
+    mov word [es:bx], di                      ; 26 89 3f
+    mov word [es:bx+002h], cx                 ; 26 89 4f 02
     mov bx, word [bp-03ch]                    ; 8b 5e c4
-    mov es, dx                                ; 8e c2
+    mov es, cx                                ; 8e c1
     mov word [es:di], bx                      ; 26 89 1d
     mov bl, byte [bp-03eh]                    ; 8a 5e c2
     mov byte [es:di+002h], bl                 ; 26 88 5d 02
     mov byte [es:di+003h], 0a0h               ; 26 c6 45 03 a0
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
+    mov al, byte [bp-020h]                    ; 8a 46 e0
     mov byte [es:di+004h], al                 ; 26 88 45 04
-    mov ax, word [bp-02ch]                    ; 8b 46 d4
+    mov ax, word [bp-026h]                    ; 8b 46 da
     mov word [es:di+009h], ax                 ; 26 89 45 09
-    mov al, byte [bp-034h]                    ; 8a 46 cc
+    mov al, byte [bp-01eh]                    ; 8a 46 e2
     mov byte [es:di+00bh], al                 ; 26 88 45 0b
-    mov al, byte [bp-01ch]                    ; 8a 46 e4
-    mov byte [es:di+00eh], al                 ; 26 88 45 0e
+    mov bl, byte [bp-03ah]                    ; 8a 5e c6
+    mov byte [es:di+00eh], bl                 ; 26 88 5d 0e
     xor bl, bl                                ; 30 db
+    xor al, al                                ; 30 c0
+    jmp short 02511h                          ; eb 06
+    jmp short 0252ah                          ; eb 1d
+    cmp AL, strict byte 00fh                  ; 3c 0f
+    jnc short 02522h                          ; 73 11
+    mov dl, al                                ; 88 c2
+    xor dh, dh                                ; 30 f6
+    mov es, cx                                ; 8e c1
+    mov si, di                                ; 89 fe
+    add si, dx                                ; 01 d6
+    add bl, byte [es:si]                      ; 26 02 1c
+    db  0feh, 0c0h
+    ; inc al                                    ; fe c0
+    jmp short 0250dh                          ; eb eb
+    neg bl                                    ; f6 db
+    mov es, cx                                ; 8e c1
+    mov byte [es:di+00fh], bl                 ; 26 88 5d 0f
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
-    jmp short 024f1h                          ; eb 05
-    cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 02502h                          ; 73 11
-    mov al, bh                                ; 88 f8
-    xor ah, ah                                ; 30 e4
-    mov es, dx                                ; 8e c2
-    mov si, di                                ; 89 fe
-    add si, ax                                ; 01 c6
-    add bl, byte [es:si]                      ; 26 02 1c
-    db  0feh, 0c7h
-    ; inc bh                                    ; fe c7
-    jmp short 024ech                          ; eb ea
-    neg bl                                    ; f6 db
-    mov es, dx                                ; 8e c2
-    mov byte [es:di+00fh], bl                 ; 26 88 5d 0f
-    mov bl, byte [bp-008h]                    ; 8a 5e f8
-    xor bh, bh                                ; 30 ff
-    mov es, [bp-022h]                         ; 8e 46 de
-    add bx, word [bp-01eh]                    ; 03 5e e2
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    add bx, word [bp-02eh]                    ; 03 5e d2
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     mov byte [es:bx+001e3h], al               ; 26 88 87 e3 01
-    inc byte [bp-008h]                        ; fe 46 f8
-    cmp byte [bp-012h], 003h                  ; 80 7e ee 03
-    jne short 0258dh                          ; 75 67
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    inc byte [bp-00ah]                        ; fe 46 f6
+    cmp byte [bp-018h], 003h                  ; 80 7e e8 03
+    jne short 025adh                          ; 75 67
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
     mov byte [es:bx+023h], 005h               ; 26 c6 47 23 05
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     lea dx, [bp-00268h]                       ; 8d 96 98 fd
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     mov word [es:bx+008h], dx                 ; 26 89 57 08
     mov [es:bx+00ah], ss                      ; 26 8c 57 0a
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     mov byte [es:bx+00ch], al                 ; 26 88 47 0c
     mov cx, strict word 00001h                ; b9 01 00
     mov bx, 000a1h                            ; bb a1 00
-    mov ax, word [bp-01eh]                    ; 8b 46 e2
+    mov ax, word [bp-02eh]                    ; 8b 46 d2
     mov dx, es                                ; 8c c2
-    call 01e9dh                               ; e8 37 f9
+    call 01e9dh                               ; e8 17 f9
     test ax, ax                               ; 85 c0
-    je short 02578h                           ; 74 0e
+    je short 02598h                           ; 74 0e
     mov ax, 00174h                            ; b8 74 01
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 01 f4
+    call 01976h                               ; e8 e1 f3
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, byte [bp-00267h]                  ; 8a 86 99 fd
     and AL, strict byte 01fh                  ; 24 1f
-    mov byte [bp-016h], al                    ; 88 46 ea
+    mov byte [bp-010h], al                    ; 88 46 f0
     test byte [bp-00268h], 080h               ; f6 86 98 fd 80
-    je short 0258fh                           ; 74 07
+    je short 025afh                           ; 74 07
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 02591h                          ; eb 04
-    jmp short 025cch                          ; eb 3d
+    jmp short 025b1h                          ; eb 04
+    jmp short 025ech                          ; eb 3d
     xor cx, cx                                ; 31 c9
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
-    mov al, byte [bp-016h]                    ; 8a 46 ea
+    mov al, byte [bp-010h]                    ; 8a 46 f0
     mov byte [es:bx+023h], al                 ; 26 88 47 23
     mov byte [es:bx+024h], cl                 ; 26 88 4f 24
     mov byte [es:bx+026h], 000h               ; 26 c6 47 26 00
     mov word [es:bx+028h], 00800h             ; 26 c7 47 28 00 08
-    mov bl, byte [bp-00ch]                    ; 8a 5e f4
+    mov bl, byte [bp-012h]                    ; 8a 5e ee
     xor bh, bh                                ; 30 ff
-    add bx, word [bp-01eh]                    ; 03 5e e2
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    add bx, word [bp-02eh]                    ; 03 5e d2
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     mov byte [es:bx+001f4h], al               ; 26 88 87 f4 01
-    inc byte [bp-00ch]                        ; fe 46 f4
-    mov al, byte [bp-012h]                    ; 8a 46 ee
+    inc byte [bp-012h]                        ; fe 46 ee
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 02605h                           ; 74 32
+    je short 02625h                           ; 74 32
     cmp AL, strict byte 002h                  ; 3c 02
-    jne short 0262ch                          ; 75 55
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    jne short 0264ch                          ; 75 55
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     xor ah, ah                                ; 30 e4
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov di, word [bp-01eh]                    ; 8b 7e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov di, word [bp-02eh]                    ; 8b 7e d2
     add di, ax                                ; 01 c7
     mov ax, word [es:di+03ch]                 ; 26 8b 45 3c
@@ -2923,24 +2936,24 @@
     mov dx, word [es:di+036h]                 ; 26 8b 55 36
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a180h                               ; e8 81 7b
-    mov word [bp-02ah], dx                    ; 89 56 d6
-    mov word [bp-026h], cx                    ; 89 4e da
+    call 0a1a0h                               ; e8 81 7b
+    mov word [bp-022h], dx                    ; 89 56 de
+    mov word [bp-036h], cx                    ; 89 4e ca
     mov dh, byte [bp-001c7h]                  ; 8a b6 39 fe
     mov dl, byte [bp-001c8h]                  ; 8a 96 38 fe
-    mov byte [bp-00eh], 00fh                  ; c6 46 f2 0f
-    jmp short 0261ch                          ; eb 09
-    dec byte [bp-00eh]                        ; fe 4e f2
-    cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jbe short 02628h                          ; 76 0c
-    mov cl, byte [bp-00eh]                    ; 8a 4e f2
+    mov byte [bp-016h], 00fh                  ; c6 46 ea 0f
+    jmp short 0263ch                          ; eb 09
+    dec byte [bp-016h]                        ; fe 4e ea
+    cmp byte [bp-016h], 000h                  ; 80 7e ea 00
+    jbe short 02648h                          ; 76 0c
+    mov cl, byte [bp-016h]                    ; 8a 4e ea
     mov ax, strict word 00001h                ; b8 01 00
     sal ax, CL                                ; d3 e0
     test dx, ax                               ; 85 c2
-    je short 02613h                           ; 74 eb
+    je short 02633h                           ; 74 eb
     xor di, di                                ; 31 ff
-    jmp short 02633h                          ; eb 07
-    jmp short 02662h                          ; eb 34
+    jmp short 02653h                          ; eb 07
+    jmp short 02682h                          ; eb 34
     cmp di, strict byte 00014h                ; 83 ff 14
-    jnl short 02648h                          ; 7d 15
+    jnl short 02668h                          ; 7d 15
     mov si, di                                ; 89 fe
     sal si, 1                                 ; d1 e6
@@ -2950,30 +2963,30 @@
     mov byte [bp+si-067h], al                 ; 88 42 99
     inc di                                    ; 47
-    jmp short 0262eh                          ; eb e6
+    jmp short 0264eh                          ; eb e6
     mov byte [bp-040h], 000h                  ; c6 46 c0 00
     mov di, strict word 00027h                ; bf 27 00
-    jmp short 02656h                          ; eb 05
+    jmp short 02676h                          ; eb 05
     dec di                                    ; 4f
     test di, di                               ; 85 ff
-    jle short 02662h                          ; 7e 0c
+    jle short 02682h                          ; 7e 0c
     cmp byte [bp+di-068h], 020h               ; 80 7b 98 20
-    jne short 02662h                          ; 75 06
+    jne short 02682h                          ; 75 06
     mov byte [bp+di-068h], 000h               ; c6 43 98 00
-    jmp short 02651h                          ; eb ef
-    mov al, byte [bp-012h]                    ; 8a 46 ee
+    jmp short 02671h                          ; eb ef
+    mov al, byte [bp-018h]                    ; 8a 46 e8
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 026cfh                           ; 74 66
+    je short 026efh                           ; 74 66
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 02674h                           ; 74 07
+    je short 02694h                           ; 74 07
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 026dah                           ; 74 69
-    jmp near 0276ch                           ; e9 f8 00
-    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    je short 0267fh                           ; 74 05
+    je short 026fah                           ; 74 69
+    jmp near 0278ch                           ; e9 f8 00
+    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
+    je short 0269fh                           ; 74 05
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02682h                          ; eb 03
+    jmp short 026a2h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -2982,5 +2995,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 e2 f2
+    call 01976h                               ; e8 c2 f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -2989,5 +3002,5 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 026b4h                           ; 74 11
+    je short 026d4h                           ; 74 11
     push ax                                   ; 50
     mov ax, 001b8h                            ; b8 b8 01
@@ -2995,10 +3008,10 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c7 f2
+    call 01976h                               ; e8 a7 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 02699h                          ; eb e5
-    push word [bp-026h]                       ; ff 76 da
-    push word [bp-02ah]                       ; ff 76 d6
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jmp short 026b9h                          ; eb e5
+    push word [bp-036h]                       ; ff 76 ca
+    push word [bp-022h]                       ; ff 76 de
+    mov al, byte [bp-016h]                    ; 8a 46 ea
     push ax                                   ; 50
     mov ax, 001bbh                            ; b8 bb 01
@@ -3006,15 +3019,15 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ad f2
+    call 01976h                               ; e8 8d f2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 0276ch                           ; e9 9d 00
-    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    je short 026dch                           ; 74 07
+    jmp near 0278ch                           ; e9 9d 00
+    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
+    je short 026fch                           ; 74 07
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 026dfh                          ; eb 05
-    jmp short 02749h                          ; eb 6d
+    jmp short 026ffh                          ; eb 05
+    jmp short 02769h                          ; eb 6d
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -3023,5 +3036,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 85 f2
+    call 01976h                               ; e8 65 f2
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -3030,5 +3043,5 @@
     inc di                                    ; 47
     test ax, ax                               ; 85 c0
-    je short 02711h                           ; 74 11
+    je short 02731h                           ; 74 11
     push ax                                   ; 50
     mov ax, 001b8h                            ; b8 b8 01
@@ -3036,21 +3049,21 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6a f2
+    call 01976h                               ; e8 4a f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 026f6h                          ; eb e5
-    mov al, byte [bp-010h]                    ; 8a 46 f0
+    jmp short 02716h                          ; eb e5
+    mov al, byte [bp-014h]                    ; 8a 46 ec
     mov dx, strict word 0001ch                ; ba 1c 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     add bx, ax                                ; 01 c3
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 02733h                          ; 75 0b
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jne short 02753h                          ; 75 0b
+    mov al, byte [bp-016h]                    ; 8a 46 ea
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
     mov ax, 001dbh                            ; b8 db 01
-    jmp short 0273ch                          ; eb 09
-    mov al, byte [bp-00eh]                    ; 8a 46 f2
+    jmp short 0275ch                          ; eb 09
+    mov al, byte [bp-016h]                    ; 8a 46 ea
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -3059,14 +3072,14 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 32 f2
+    call 01976h                               ; e8 12 f2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0276ch                          ; eb 23
-    cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    je short 02754h                           ; 74 05
+    jmp short 0278ch                          ; eb 23
+    cmp byte [bp-01ah], 000h                  ; 80 7e e6 00
+    je short 02774h                           ; 74 05
     mov ax, 0019fh                            ; b8 9f 01
-    jmp short 02757h                          ; eb 03
+    jmp short 02777h                          ; eb 03
     mov ax, 001a6h                            ; b8 a6 01
     push ax                                   ; 50
-    mov al, byte [bp-018h]                    ; 8a 46 e8
+    mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -3075,10 +3088,10 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 0d f2
+    call 01976h                               ; e8 ed f1
     add sp, strict byte 00008h                ; 83 c4 08
-    inc byte [bp-010h]                        ; fe 46 f0
-    cmp byte [bp-010h], 008h                  ; 80 7e f0 08
-    jnc short 027cch                          ; 73 57
-    mov bl, byte [bp-010h]                    ; 8a 5e f0
+    inc byte [bp-014h]                        ; fe 46 ec
+    cmp byte [bp-014h], 008h                  ; 80 7e ec 08
+    jnc short 027ech                          ; 73 57
+    mov bl, byte [bp-014h]                    ; 8a 5e ec
     xor bh, bh                                ; 30 ff
     mov ax, bx                                ; 89 d8
@@ -3088,42 +3101,42 @@
     sar ax, 1                                 ; d1 f8
     mov cx, ax                                ; 89 c1
-    mov byte [bp-018h], al                    ; 88 46 e8
+    mov byte [bp-00ch], al                    ; 88 46 f4
     mov ax, bx                                ; 89 d8
     cwd                                       ; 99
     mov bx, strict word 00002h                ; bb 02 00
     idiv bx                                   ; f7 fb
-    mov word [bp-038h], dx                    ; 89 56 c8
-    mov al, byte [bp-038h]                    ; 8a 46 c8
-    mov byte [bp-014h], al                    ; 88 46 ec
+    mov word [bp-034h], dx                    ; 89 56 cc
+    mov al, byte [bp-034h]                    ; 8a 46 cc
+    mov byte [bp-01ah], al                    ; 88 46 e6
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
     mov dx, strict word 00006h                ; ba 06 00
     imul dx                                   ; f7 ea
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov si, word [bp-01eh]                    ; 8b 76 e2
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov si, word [bp-02eh]                    ; 8b 76 d2
     add si, ax                                ; 01 c6
     mov bx, word [es:si+00206h]               ; 26 8b 9c 06 02
     mov ax, word [es:si+00208h]               ; 26 8b 84 08 02
-    mov word [bp-028h], ax                    ; 89 46 d8
+    mov word [bp-032h], ax                    ; 89 46 ce
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 00ah                  ; b0 0a
     out DX, AL                                ; ee
-    cmp byte [bp-038h], 000h                  ; 80 7e c8 00
-    jne short 027c6h                          ; 75 03
-    jmp near 021b6h                           ; e9 f0 f9
+    cmp byte [bp-034h], 000h                  ; 80 7e cc 00
+    jne short 027e6h                          ; 75 03
+    jmp near 021b6h                           ; e9 d0 f9
     mov ax, 000b0h                            ; b8 b0 00
-    jmp near 021b9h                           ; e9 ed f9
-    mov al, byte [bp-008h]                    ; 8a 46 f8
-    mov es, [bp-022h]                         ; 8e 46 de
-    mov bx, word [bp-01eh]                    ; 8b 5e e2
+    jmp near 021b9h                           ; e9 cd f9
+    mov al, byte [bp-00ah]                    ; 8a 46 f6
+    mov es, [bp-02ah]                         ; 8e 46 d6
+    mov bx, word [bp-02eh]                    ; 8b 5e d2
     mov byte [es:bx+001e2h], al               ; 26 88 87 e2 01
-    mov al, byte [bp-00ch]                    ; 8a 46 f4
+    mov al, byte [bp-012h]                    ; 8a 46 ee
     mov byte [es:bx+001f3h], al               ; 26 88 87 f3 01
-    mov bl, byte [bp-008h]                    ; 8a 5e f8
+    mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 70 ee
+    call 01660h                               ; e8 50 ee
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3131,5 +3144,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ata_cmd_data_out_:                           ; 0xf27f7 LB 0x28e
+ata_cmd_data_out_:                           ; 0xf2817 LB 0x28e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3164,5 +3177,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02858h                           ; 74 0f
+    je short 02878h                           ; 74 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3170,5 +3183,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02a7eh                           ; e9 26 02
+    jmp near 02a9eh                           ; e9 26 02
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov ax, word [es:di+006h]                 ; 26 8b 45 06
@@ -3192,6 +3205,6 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     test ax, ax                               ; 85 c0
-    je short 028a3h                           ; 74 03
-    jmp near 0296ah                           ; e9 c7 00
+    je short 028c3h                           ; 74 03
+    jmp near 0298ah                           ; e9 c7 00
     xor bx, bx                                ; 31 db
     xor dx, dx                                ; 31 d2
@@ -3202,12 +3215,12 @@
     adc ax, word [bp-00ch]                    ; 13 46 f4
     test ax, ax                               ; 85 c0
-    jnbe short 028cah                         ; 77 10
-    jne short 0292dh                          ; 75 71
+    jnbe short 028eah                         ; 77 10
+    jne short 0294dh                          ; 75 71
     test dx, dx                               ; 85 d2
-    jnbe short 028cah                         ; 77 0a
-    jne short 0292dh                          ; 75 6b
+    jnbe short 028eah                         ; 77 0a
+    jne short 0294dh                          ; 75 6b
     cmp bx, 01000h                            ; 81 fb 00 10
-    jnbe short 028cah                         ; 77 02
-    jne short 0292dh                          ; 75 63
+    jnbe short 028eah                         ; 77 02
+    jne short 0294dh                          ; 75 63
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     mov bx, word [bp-020h]                    ; 8b 5e e0
@@ -3215,5 +3228,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00018h                ; be 18 00
-    call 0a180h                               ; e8 a4 78
+    call 0a1a0h                               ; e8 a4 78
     xor dh, dh                                ; 30 f6
     mov word [bp-014h], dx                    ; 89 56 ec
@@ -3223,5 +3236,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00020h                ; be 20 00
-    call 0a180h                               ; e8 8d 78
+    call 0a1a0h                               ; e8 8d 78
     mov bx, dx                                ; 89 d3
     mov word [bp-024h], dx                    ; 89 56 dc
@@ -3257,5 +3270,5 @@
     mov dx, word [bp-022h]                    ; 8b 56 de
     mov si, strict word 00008h                ; be 08 00
-    call 0a180h                               ; e8 39 78
+    call 0a1a0h                               ; e8 39 78
     mov word [bp-00ch], ax                    ; 89 46 f4
     mov word [bp-020h], bx                    ; 89 5e e0
@@ -3264,5 +3277,5 @@
     mov word [bp-024h], dx                    ; 89 56 dc
     mov si, strict word 00010h                ; be 10 00
-    call 0a180h                               ; e8 24 78
+    call 0a1a0h                               ; e8 24 78
     mov word [bp-022h], dx                    ; 89 56 de
     mov ax, dx                                ; 89 d0
@@ -3297,7 +3310,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 029ach                           ; 74 05
+    je short 029cch                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 029afh                          ; eb 03
+    jmp short 029cfh                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dl, byte [bp-018h]                    ; 8a 56 e8
@@ -3318,7 +3331,7 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 029c7h                          ; 75 f1
+    jne short 029e7h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 029e9h                           ; 74 0f
+    je short 02a09h                           ; 74 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3326,7 +3339,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02a7eh                           ; e9 95 00
+    jmp near 02a9eh                           ; e9 95 00
     test bl, 008h                             ; f6 c3 08
-    jne short 029fdh                          ; 75 0f
+    jne short 02a1dh                          ; 75 0f
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3334,9 +3347,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02a7eh                           ; e9 81 00
+    jmp near 02a9eh                           ; e9 81 00
     sti                                       ; fb
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, 0f800h                            ; 3d 00 f8
-    jc short 02a18h                           ; 72 12
+    jc short 02a38h                           ; 72 12
     mov dx, ax                                ; 89 c2
     sub dx, 00800h                            ; 81 ea 00 08
@@ -3362,10 +3375,10 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02a34h                          ; 75 f1
+    jne short 02a54h                          ; 75 f1
     cmp word [bp-01ah], strict byte 00000h    ; 83 7e e6 00
-    jne short 02a5dh                          ; 75 14
+    jne short 02a7dh                          ; 75 14
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02a73h                           ; 74 24
+    je short 02a93h                           ; 74 24
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3373,9 +3386,9 @@
     out DX, AL                                ; ee
     mov ax, strict word 00006h                ; b8 06 00
-    jmp short 02a7eh                          ; eb 21
+    jmp short 02a9eh                          ; eb 21
     mov al, bl                                ; 88 d8
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 029feh                           ; 74 99
+    je short 02a1eh                           ; 74 99
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3383,5 +3396,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00007h                ; b8 07 00
-    jmp short 02a7eh                          ; eb 0b
+    jmp short 02a9eh                          ; eb 0b
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3394,5 +3407,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ata_read_sectors:                           ; 0xf2a85 LB 0xc1
+@ata_read_sectors:                           ; 0xf2aa5 LB 0xc1
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3409,5 +3422,5 @@
     mov cx, dx                                ; 89 d1
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02acdh                           ; 74 23
+    je short 02aedh                           ; 74 23
     xor ah, ah                                ; 30 e4
     mov di, strict word 0001ch                ; bf 1c 00
@@ -3421,7 +3434,7 @@
     mov bx, 000c4h                            ; bb c4 00
     mov ax, si                                ; 89 f0
-    call 01e9dh                               ; e8 d5 f3
+    call 01e9dh                               ; e8 b5 f3
     mov es, [bp-00ah]                         ; 8e 46 f6
-    jmp short 02b37h                          ; eb 6a
+    jmp short 02b57h                          ; eb 6a
     xor di, di                                ; 31 ff
     mov word [bp-008h], di                    ; 89 7e f8
@@ -3437,18 +3450,18 @@
     adc dx, word [bp-00ah]                    ; 13 56 f6
     test dx, dx                               ; 85 d2
-    jnbe short 02b08h                         ; 77 12
-    jne short 02b16h                          ; 75 1e
+    jnbe short 02b28h                         ; 77 12
+    jne short 02b36h                          ; 75 1e
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    jnbe short 02b08h                         ; 77 0a
-    jne short 02b16h                          ; 75 16
+    jnbe short 02b28h                         ; 77 0a
+    jne short 02b36h                          ; 75 16
     cmp di, 01000h                            ; 81 ff 00 10
-    jnbe short 02b08h                         ; 77 02
-    jne short 02b16h                          ; 75 0e
+    jnbe short 02b28h                         ; 77 02
+    jne short 02b36h                          ; 75 0e
     mov cx, bx                                ; 89 d9
     mov bx, strict word 00024h                ; bb 24 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 01e9dh                               ; e8 89 f3
-    jmp short 02b3dh                          ; eb 27
+    call 01e9dh                               ; e8 69 f3
+    jmp short 02b5dh                          ; eb 27
     xor ah, ah                                ; 30 e4
     mov di, strict word 0001ch                ; bf 1c 00
@@ -3462,5 +3475,5 @@
     mov bx, 000c4h                            ; bb c4 00
     mov ax, si                                ; 89 f0
-    call 01e9dh                               ; e8 69 f3
+    call 01e9dh                               ; e8 49 f3
     mov es, [bp-006h]                         ; 8e 46 fa
     mov word [es:di+028h], 00200h             ; 26 c7 45 28 00 02
@@ -3470,5 +3483,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ata_write_sectors:                          ; 0xf2b46 LB 0x5b
+@ata_write_sectors:                          ; 0xf2b66 LB 0x5b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3479,10 +3492,10 @@
     mov cx, word [es:si+00eh]                 ; 26 8b 4c 0e
     cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00
-    je short 02b66h                           ; 74 0c
+    je short 02b86h                           ; 74 0c
     mov bx, strict word 00030h                ; bb 30 00
     mov ax, si                                ; 89 f0
     mov dx, es                                ; 8c c2
-    call 027f7h                               ; e8 93 fc
-    jmp short 02b98h                          ; eb 32
+    call 02817h                               ; e8 93 fc
+    jmp short 02bb8h                          ; eb 32
     xor ax, ax                                ; 31 c0
     xor bx, bx                                ; 31 db
@@ -3495,14 +3508,14 @@
     adc dx, word [es:si+006h]                 ; 26 13 54 06
     test dx, dx                               ; 85 d2
-    jnbe short 02b93h                         ; 77 0f
-    jne short 02b5ah                          ; 75 d4
+    jnbe short 02bb3h                         ; 77 0f
+    jne short 02b7ah                          ; 75 d4
     test bx, bx                               ; 85 db
-    jnbe short 02b93h                         ; 77 09
-    jne short 02b5ah                          ; 75 ce
+    jnbe short 02bb3h                         ; 77 09
+    jne short 02b7ah                          ; 75 ce
     cmp ax, 01000h                            ; 3d 00 10
-    jnbe short 02b93h                         ; 77 02
-    jne short 02b5ah                          ; 75 c7
+    jnbe short 02bb3h                         ; 77 02
+    jne short 02b7ah                          ; 75 c7
     mov bx, strict word 00034h                ; bb 34 00
-    jmp short 02b5dh                          ; eb c5
+    jmp short 02b7dh                          ; eb c5
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -3510,5 +3523,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ata_cmd_packet_:                             ; 0xf2ba1 LB 0x28b
+ata_cmd_packet_:                             ; 0xf2bc1 LB 0x28b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3522,5 +3535,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 b4 ea
+    call 0166eh                               ; e8 94 ea
     mov word [bp-010h], 00122h                ; c7 46 f0 22 01
     mov word [bp-00eh], ax                    ; 89 46 f2
@@ -3530,9 +3543,9 @@
     and cl, 001h                              ; 80 e1 01
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 02bf6h                          ; 75 23
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 02c16h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 55 ed
+    call 01933h                               ; e8 35 ed
     mov ax, 00221h                            ; b8 21 02
     push ax                                   ; 50
@@ -3541,10 +3554,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 89 ed
+    call 01976h                               ; e8 69 ed
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 02e23h                           ; e9 2d 02
+    jmp near 02e43h                           ; e9 2d 02
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 02bf0h                          ; 75 f4
+    jne short 02c10h                          ; 75 f4
     xor ah, ah                                ; 30 e4
     mov dx, strict word 00006h                ; ba 06 00
@@ -3561,8 +3574,8 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jnc short 02c2dh                          ; 73 06
+    jnc short 02c4dh                          ; 73 06
     mov byte [bp-006h], 00ch                  ; c6 46 fa 0c
-    jmp short 02c33h                          ; eb 06
-    jbe short 02c33h                          ; 76 04
+    jmp short 02c53h                          ; eb 06
+    jbe short 02c53h                          ; 76 04
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
     shr byte [bp-006h], 1                     ; d0 6e fa
@@ -3577,7 +3590,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    je short 02c5eh                           ; 74 06
+    je short 02c7eh                           ; 74 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 02e23h                           ; e9 c5 01
+    jmp near 02e43h                           ; e9 c5 01
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3593,7 +3606,7 @@
     out DX, AL                                ; ee
     test cl, cl                               ; 84 c9
-    je short 02c82h                           ; 74 05
+    je short 02ca2h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02c85h                          ; eb 03
+    jmp short 02ca5h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, word [bp-012h]                    ; 8b 56 ee
@@ -3611,7 +3624,7 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02c95h                          ; 75 f1
+    jne short 02cb5h                          ; 75 f1
     test AL, strict byte 001h                 ; a8 01
-    je short 02cb7h                           ; 74 0f
+    je short 02cd7h                           ; 74 0f
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3619,7 +3632,7 @@
     out DX, AL                                ; ee
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 02e23h                           ; e9 6c 01
+    jmp near 02e43h                           ; e9 6c 01
     test bl, 008h                             ; f6 c3 08
-    jne short 02ccbh                          ; 75 0f
+    jne short 02cebh                          ; 75 0f
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3627,5 +3640,5 @@
     out DX, AL                                ; ee
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 02e23h                           ; e9 58 01
+    jmp near 02e43h                           ; e9 58 01
     sti                                       ; fb
     mov CL, strict byte 004h                  ; b1 04
@@ -3641,5 +3654,5 @@
     ; rep es outsw                              ; f3 26 6f
     cmp byte [bp+00ah], 000h                  ; 80 7e 0a 00
-    jne short 02cf5h                          ; 75 0b
+    jne short 02d15h                          ; 75 0b
     add dx, strict byte 00007h                ; 83 c2 07
     in AL, DX                                 ; ec
@@ -3647,5 +3660,5 @@
     ; sub ah, ah                                ; 2a e4
     mov bl, al                                ; 88 c3
-    jmp near 02e04h                           ; e9 0f 01
+    jmp near 02e24h                           ; e9 0f 01
     mov dx, word [bp-012h]                    ; 8b 56 ee
     add dx, strict byte 00007h                ; 83 c2 07
@@ -3655,23 +3668,23 @@
     mov bl, al                                ; 88 c3
     test AL, strict byte 080h                 ; a8 80
-    jne short 02cf5h                          ; 75 f1
+    jne short 02d15h                          ; 75 f1
     test AL, strict byte 088h                 ; a8 88
-    je short 02d6ah                           ; 74 62
+    je short 02d8ah                           ; 74 62
     test AL, strict byte 001h                 ; a8 01
-    je short 02d17h                           ; 74 0b
+    je short 02d37h                           ; 74 0b
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02cb1h                          ; eb 9a
+    jmp short 02cd1h                          ; eb 9a
     mov al, bl                                ; 88 d8
     and AL, strict byte 0c9h                  ; 24 c9
     cmp AL, strict byte 048h                  ; 3c 48
-    je short 02d2ah                           ; 74 0b
+    je short 02d4ah                           ; 74 0b
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp short 02cc5h                          ; eb 9b
+    jmp short 02ce5h                          ; eb 9b
     mov CL, strict byte 004h                  ; b1 04
     mov ax, word [bp+00ch]                    ; 8b 46 0c
@@ -3698,10 +3711,10 @@
     mov ax, word [bp+004h]                    ; 8b 46 04
     cmp bx, ax                                ; 39 c3
-    jnc short 02d6dh                          ; 73 0c
+    jnc short 02d8dh                          ; 73 0c
     mov cx, bx                                ; 89 d9
     sub word [bp+004h], bx                    ; 29 5e 04
     xor bx, bx                                ; 31 db
-    jmp short 02d76h                          ; eb 0c
-    jmp near 02e04h                           ; e9 97 00
+    jmp short 02d96h                          ; eb 0c
+    jmp near 02e24h                           ; e9 97 00
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -3709,7 +3722,7 @@
     xor ax, ax                                ; 31 c0
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 02d94h                          ; 75 16
+    jne short 02db4h                          ; 75 16
     cmp bx, word [bp+006h]                    ; 3b 5e 06
-    jbe short 02d94h                          ; 76 11
+    jbe short 02db4h                          ; 76 11
     sub bx, word [bp+006h]                    ; 2b 5e 06
     mov word [bp-014h], bx                    ; 89 5e ec
@@ -3717,5 +3730,5 @@
     mov word [bp+006h], ax                    ; 89 46 06
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 02d9dh                          ; eb 09
+    jmp short 02dbdh                          ; eb 09
     mov word [bp-014h], ax                    ; 89 46 ec
     sub word [bp+006h], bx                    ; 29 5e 06
@@ -3726,10 +3739,10 @@
     test byte [bp-014h], 003h                 ; f6 46 ec 03
     test bl, 001h                             ; f6 c3 01
-    je short 02dbeh                           ; 74 10
+    je short 02ddeh                           ; 74 10
     inc bx                                    ; 43
     cmp word [bp-014h], strict byte 00000h    ; 83 7e ec 00
-    jbe short 02dbeh                          ; 76 09
+    jbe short 02ddeh                          ; 76 09
     test byte [bp-014h], 001h                 ; f6 46 ec 01
-    je short 02dbeh                           ; 74 03
+    je short 02ddeh                           ; 74 03
     dec word [bp-014h]                        ; ff 4e ec
     shr bx, 1                                 ; d1 eb
@@ -3737,8 +3750,8 @@
     shr word [bp-014h], 1                     ; d1 6e ec
     test cx, cx                               ; 85 c9
-    je short 02dcfh                           ; 74 06
+    je short 02defh                           ; 74 06
     mov dx, word [bp-012h]                    ; 8b 56 ee
     in ax, DX                                 ; ed
-    loop 02dcch                               ; e2 fd
+    loop 02dech                               ; e2 fd
     mov dx, word [bp-012h]                    ; 8b 56 ee
     mov cx, bx                                ; 89 d9
@@ -3747,8 +3760,8 @@
     mov ax, word [bp-014h]                    ; 8b 46 ec
     test ax, ax                               ; 85 c0
-    je short 02de5h                           ; 74 05
+    je short 02e05h                           ; 74 05
     mov cx, ax                                ; 89 c1
     in ax, DX                                 ; ed
-    loop 02de2h                               ; e2 fd
+    loop 02e02h                               ; e2 fd
     add word [bp+00ch], si                    ; 01 76 0c
     xor ax, ax                                ; 31 c0
@@ -3760,14 +3773,14 @@
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     mov word [es:bx+01ch], ax                 ; 26 89 47 1c
-    jmp near 02cf5h                           ; e9 f1 fe
+    jmp near 02d15h                           ; e9 f1 fe
     mov al, bl                                ; 88 d8
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02e18h                           ; 74 0c
+    je short 02e38h                           ; 74 0c
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
-    jmp near 02cc5h                           ; e9 ad fe
+    jmp near 02ce5h                           ; e9 ad fe
     mov dx, word [bp-008h]                    ; 8b 56 f8
     add dx, strict byte 00006h                ; 83 c2 06
@@ -3780,5 +3793,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-ata_soft_reset_:                             ; 0xf2e2c LB 0x84
+ata_soft_reset_:                             ; 0xf2e4c LB 0x84
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3790,5 +3803,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 30 e8
+    call 0166eh                               ; e8 10 e8
     mov es, ax                                ; 8e c0
     mov ax, bx                                ; 89 d8
@@ -3807,7 +3820,7 @@
     out DX, AL                                ; ee
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 02e72h                           ; 74 05
+    je short 02e92h                           ; 74 05
     mov ax, 000b0h                            ; b8 b0 00
-    jmp short 02e75h                          ; eb 03
+    jmp short 02e95h                          ; eb 03
     mov ax, 000a0h                            ; b8 a0 00
     mov dx, cx                                ; 89 ca
@@ -3824,13 +3837,13 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 080h                 ; a8 80
-    jne short 02e83h                          ; 75 f4
+    jne short 02ea3h                          ; 75 f4
     and AL, strict byte 0e9h                  ; 24 e9
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 02ea0h                           ; 74 0b
+    je short 02ec0h                           ; 74 0b
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
     out DX, AL                                ; ee
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 02ea8h                          ; eb 08
+    jmp short 02ec8h                          ; eb 08
     lea dx, [bx+006h]                         ; 8d 57 06
     mov AL, strict byte 008h                  ; b0 08
@@ -3843,5 +3856,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_diskette_current_cyl_:                   ; 0xf2eb0 LB 0x2c
+set_diskette_current_cyl_:                   ; 0xf2ed0 LB 0x2c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3849,10 +3862,10 @@
     mov bl, al                                ; 88 c3
     cmp AL, strict byte 001h                  ; 3c 01
-    jbe short 02ec8h                          ; 76 0e
+    jbe short 02ee8h                          ; 76 0e
     mov ax, 00250h                            ; b8 50 02
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 b1 ea
+    call 01976h                               ; e8 91 ea
     add sp, strict byte 00004h                ; 83 c4 04
     xor bh, bh                                ; 30 ff
@@ -3865,5 +3878,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_:                  ; 0xf2edc LB 0x23
+floppy_wait_for_interrupt_:                  ; 0xf2efc LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3875,16 +3888,16 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 080h                 ; a8 80
-    je short 02ef4h                           ; 74 04
+    je short 02f14h                           ; 74 04
     and AL, strict byte 080h                  ; 24 80
-    jmp short 02ef9h                          ; eb 05
+    jmp short 02f19h                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02ee1h                          ; eb e8
+    jmp short 02f01h                          ; eb e8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_wait_for_interrupt_or_timeout_:       ; 0xf2eff LB 0x38
+floppy_wait_for_interrupt_or_timeout_:       ; 0xf2f1f LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3895,7 +3908,7 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test al, al                               ; 84 c0
-    jne short 02f13h                          ; 75 03
+    jne short 02f33h                          ; 75 03
     sti                                       ; fb
-    jmp short 02f31h                          ; eb 1e
+    jmp short 02f51h                          ; eb 1e
     mov bx, strict word 0003eh                ; bb 3e 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -3903,18 +3916,18 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 080h                 ; a8 80
-    je short 02f2ch                           ; 74 0a
+    je short 02f4ch                           ; 74 0a
     mov ah, al                                ; 88 c4
     and ah, 07fh                              ; 80 e4 7f
     mov byte [es:bx], ah                      ; 26 88 27
-    jmp short 02f31h                          ; eb 05
+    jmp short 02f51h                          ; eb 05
     sti                                       ; fb
     hlt                                       ; f4
     cli                                       ; fa
-    jmp short 02f04h                          ; eb d3
+    jmp short 02f24h                          ; eb d3
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_reset_controller_:                    ; 0xf2f37 LB 0x3f
+floppy_reset_controller_:                    ; 0xf2f57 LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3939,5 +3952,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02f4fh                          ; 75 f4
+    jne short 02f6fh                          ; 75 f4
     mov bx, cx                                ; 89 cb
     add bx, 00090h                            ; 81 c3 90 00
@@ -3953,5 +3966,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_prepare_controller_:                  ; 0xf2f76 LB 0x75
+floppy_prepare_controller_:                  ; 0xf2f96 LB 0x75
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -3974,7 +3987,7 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     test cx, cx                               ; 85 c9
-    je short 02fa2h                           ; 74 04
+    je short 02fc2h                           ; 74 04
     mov AL, strict byte 020h                  ; b0 20
-    jmp short 02fa4h                          ; eb 02
+    jmp short 02fc4h                          ; eb 02
     mov AL, strict byte 010h                  ; b0 10
     or AL, strict byte 00ch                   ; 0c 0c
@@ -3997,8 +4010,8 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    jne short 02fc3h                          ; 75 f4
+    jne short 02fe3h                          ; 75 f4
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 02fe3h                          ; 75 0e
-    call 02edch                               ; e8 04 ff
+    jne short 03003h                          ; 75 0e
+    call 02efch                               ; e8 04 ff
     mov bx, strict word 0003eh                ; bb 3e 00
     mov dx, strict word 00040h                ; ba 40 00
@@ -4011,5 +4024,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_known_:                         ; 0xf2feb LB 0x4c
+floppy_media_known_:                         ; 0xf300b LB 0x4c
     push bx                                   ; 53
     push cx                                   ; 51
@@ -4023,13 +4036,13 @@
     mov bl, bh                                ; 88 fb
     test ax, ax                               ; 85 c0
-    je short 03004h                           ; 74 02
+    je short 03024h                           ; 74 02
     shr bl, 1                                 ; d0 eb
     and bl, 001h                              ; 80 e3 01
-    jne short 0300dh                          ; 75 04
+    jne short 0302dh                          ; 75 04
     xor bh, bh                                ; 30 ff
-    jmp short 03030h                          ; eb 23
+    jmp short 03050h                          ; eb 23
     mov bx, 00090h                            ; bb 90 00
     test ax, ax                               ; 85 c0
-    je short 03017h                           ; 74 03
+    je short 03037h                           ; 74 03
     mov bx, 00091h                            ; bb 91 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4040,7 +4053,7 @@
     sar ax, CL                                ; d3 f8
     and AL, strict byte 001h                  ; 24 01
-    jne short 0302dh                          ; 75 04
+    jne short 0304dh                          ; 75 04
     xor bx, bx                                ; 31 db
-    jmp short 03030h                          ; eb 03
+    jmp short 03050h                          ; eb 03
     mov bx, strict word 00001h                ; bb 01 00
     mov ax, bx                                ; 89 d8
@@ -4050,5 +4063,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-floppy_read_id_:                             ; 0xf3037 LB 0x52
+floppy_read_id_:                             ; 0xf3057 LB 0x52
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4057,5 +4070,5 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 02f76h                               ; e8 34 ff
+    call 02f96h                               ; e8 34 ff
     mov AL, strict byte 04ah                  ; b0 4a
     mov dx, 003f5h                            ; ba f5 03
@@ -4063,9 +4076,9 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02edch                               ; e8 8e fe
+    call 02efch                               ; e8 8e fe
     xor bx, bx                                ; 31 db
-    jmp short 03057h                          ; eb 05
+    jmp short 03077h                          ; eb 05
     cmp bx, strict byte 00007h                ; 83 fb 07
-    jnl short 0306bh                          ; 7d 14
+    jnl short 0308bh                          ; 7d 14
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4077,5 +4090,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc bx                                    ; 43
-    jmp short 03052h                          ; eb e7
+    jmp short 03072h                          ; eb e7
     mov bx, strict word 00042h                ; bb 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4083,7 +4096,7 @@
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 0307eh                           ; 74 04
+    je short 0309eh                           ; 74 04
     xor ax, ax                                ; 31 c0
-    jmp short 03081h                          ; eb 03
+    jmp short 030a1h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -4093,5 +4106,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_recal_:                         ; 0xf3089 LB 0x41
+floppy_drive_recal_:                         ; 0xf30a9 LB 0x41
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4100,5 +4113,5 @@
     push si                                   ; 56
     mov bx, ax                                ; 89 c3
-    call 02f76h                               ; e8 e2 fe
+    call 02f96h                               ; e8 e2 fe
     mov AL, strict byte 007h                  ; b0 07
     mov dx, 003f5h                            ; ba f5 03
@@ -4106,10 +4119,10 @@
     mov al, bl                                ; 88 d8
     out DX, AL                                ; ee
-    call 02edch                               ; e8 3c fe
+    call 02efch                               ; e8 3c fe
     test bx, bx                               ; 85 db
-    je short 030abh                           ; 74 07
+    je short 030cbh                           ; 74 07
     or AL, strict byte 002h                   ; 0c 02
     mov bx, 00095h                            ; bb 95 00
-    jmp short 030b0h                          ; eb 05
+    jmp short 030d0h                          ; eb 05
     or AL, strict byte 001h                   ; 0c 01
     mov bx, 00094h                            ; bb 94 00
@@ -4126,5 +4139,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_media_sense_:                         ; 0xf30ca LB 0xe7
+floppy_media_sense_:                         ; 0xf30ea LB 0xe7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4135,50 +4148,50 @@
     push di                                   ; 57
     mov si, ax                                ; 89 c6
-    call 03089h                               ; e8 b2 ff
+    call 030a9h                               ; e8 b2 ff
     test ax, ax                               ; 85 c0
-    jne short 030e0h                          ; 75 05
+    jne short 03100h                          ; 75 05
     xor dx, dx                                ; 31 d2
-    jmp near 031a5h                           ; e9 c5 00
+    jmp near 031c5h                           ; e9 c5 00
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 c8 e5
+    call 016aeh                               ; e8 a8 e5
     test si, si                               ; 85 f6
-    jne short 030f2h                          ; 75 08
+    jne short 03112h                          ; 75 08
     mov CL, strict byte 004h                  ; b1 04
     mov dl, al                                ; 88 c2
     shr dl, CL                                ; d2 ea
-    jmp short 030f7h                          ; eb 05
+    jmp short 03117h                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     cmp dl, 001h                              ; 80 fa 01
-    jne short 03105h                          ; 75 09
+    jne short 03125h                          ; 75 09
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 015h                  ; b6 15
     mov bx, strict word 00001h                ; bb 01 00
-    jmp short 03143h                          ; eb 3e
+    jmp short 03163h                          ; eb 3e
     cmp dl, 002h                              ; 80 fa 02
-    jne short 03110h                          ; 75 06
+    jne short 03130h                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 035h                  ; b6 35
-    jmp short 03100h                          ; eb f0
+    jmp short 03120h                          ; eb f0
     cmp dl, 003h                              ; 80 fa 03
-    jne short 0311bh                          ; 75 06
+    jne short 0313bh                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 017h                  ; b6 17
-    jmp short 03100h                          ; eb e5
+    jmp short 03120h                          ; eb e5
     cmp dl, 004h                              ; 80 fa 04
-    jne short 03126h                          ; 75 06
+    jne short 03146h                          ; 75 06
     xor dl, dl                                ; 30 d2
     mov DH, strict byte 017h                  ; b6 17
-    jmp short 03100h                          ; eb da
+    jmp short 03120h                          ; eb da
     cmp dl, 005h                              ; 80 fa 05
-    jne short 03131h                          ; 75 06
+    jne short 03151h                          ; 75 06
     mov DL, strict byte 0cch                  ; b2 cc
     mov DH, strict byte 0d7h                  ; b6 d7
-    jmp short 03100h                          ; eb cf
+    jmp short 03120h                          ; eb cf
     cmp dl, 00eh                              ; 80 fa 0e
-    je short 0313bh                           ; 74 05
+    je short 0315bh                           ; 74 05
     cmp dl, 00fh                              ; 80 fa 0f
-    jne short 0313dh                          ; 75 02
-    jmp short 0312bh                          ; eb ee
+    jne short 0315dh                          ; 75 02
+    jmp short 0314bh                          ; eb ee
     xor dl, dl                                ; 30 d2
     xor dh, dh                                ; 30 f6
@@ -4189,34 +4202,34 @@
     mov byte [es:di], dl                      ; 26 88 15
     mov ax, si                                ; 89 f0
-    call 03037h                               ; e8 e4 fe
+    call 03057h                               ; e8 e4 fe
     test ax, ax                               ; 85 c0
-    jne short 03189h                          ; 75 32
+    jne short 031a9h                          ; 75 32
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 080h                  ; 3c 80
-    je short 03189h                           ; 74 2a
+    je short 031a9h                           ; 74 2a
     mov al, dl                                ; 88 d0
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03176h                           ; 74 0f
+    je short 03196h                           ; 74 0f
     mov ah, dl                                ; 88 d4
     and ah, 03fh                              ; 80 e4 3f
     cmp AL, strict byte 040h                  ; 3c 40
-    je short 03182h                           ; 74 12
+    je short 031a2h                           ; 74 12
     test al, al                               ; 84 c0
-    je short 0317bh                           ; 74 07
-    jmp short 03143h                          ; eb cd
+    je short 0319bh                           ; 74 07
+    jmp short 03163h                          ; eb cd
     and dl, 03fh                              ; 80 e2 3f
-    jmp short 03143h                          ; eb c8
+    jmp short 03163h                          ; eb c8
     mov dl, ah                                ; 88 e2
     or dl, 040h                               ; 80 ca 40
-    jmp short 03143h                          ; eb c1
+    jmp short 03163h                          ; eb c1
     mov dl, ah                                ; 88 e2
     or dl, 080h                               ; 80 ca 80
-    jmp short 03143h                          ; eb ba
+    jmp short 03163h                          ; eb ba
     test si, si                               ; 85 f6
-    jne short 03192h                          ; 75 05
+    jne short 031b2h                          ; 75 05
     mov si, 00090h                            ; be 90 00
-    jmp short 03195h                          ; eb 03
+    jmp short 031b5h                          ; eb 03
     mov si, 00091h                            ; be 91 00
     mov di, 0008bh                            ; bf 8b 00
@@ -4235,5 +4248,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-floppy_drive_exists_:                        ; 0xf31b1 LB 0x4e
+floppy_drive_exists_:                        ; 0xf31d1 LB 0x4e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4242,15 +4255,15 @@
     mov dx, ax                                ; 89 c2
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 f0 e4
+    call 016aeh                               ; e8 d0 e4
     test dx, dx                               ; 85 d2
-    jne short 031c8h                          ; 75 06
+    jne short 031e8h                          ; 75 06
     mov CL, strict byte 004h                  ; b1 04
     shr al, CL                                ; d2 e8
-    jmp short 031cah                          ; eb 02
+    jmp short 031eah                          ; eb 02
     and AL, strict byte 00fh                  ; 24 0f
     test al, al                               ; 84 c0
-    je short 031d3h                           ; 74 05
+    je short 031f3h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 031d5h                          ; eb 02
+    jmp short 031f5h                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -4264,17 +4277,17 @@
     add AL, strict byte 003h                  ; 04 03
     add al, byte [bx+di]                      ; 02 01
-    add dh, dl                                ; 00 d6
-    cmp di, word [di]                         ; 3b 3d
-    xor bh, byte [bx-026ceh]                  ; 32 bf 32 d9
-    db  032h, 0d9h
-    ; xor bl, cl                                ; 32 d9
-    db  032h, 0d9h
-    ; xor bl, cl                                ; 32 d9
-    xor cl, byte [bp+si+06e36h]               ; 32 8a 36 6e
-    cmp byte [bx+di+039h], ch                 ; 38 69 39
-    lodsb                                     ; ac
-    cmp ax, sp                                ; 39 e0
-    cmp word [si+03ah], dx                    ; 39 54 3a
-_int13_diskette_function:                    ; 0xf31ff LB 0x9fd
+    add dh, dh                                ; 00 f6
+    cmp bx, word [di+032h]                    ; 3b 5d 32
+    fbstp [bp+si]                             ; df 32
+    stc                                       ; f9
+    db  032h, 0f9h
+    ; xor bh, cl                                ; 32 f9
+    db  032h, 0f9h
+    ; xor bh, cl                                ; 32 f9
+    xor ch, byte [bp+si-071cah]               ; 32 aa 36 8e
+    cmp byte [bx+di-033c7h], cl               ; 38 89 39 cc
+    cmp word [bx+si], ax                      ; 39 00
+    cmp dh, byte [si+03ah]                    ; 3a 74 3a
+_int13_diskette_function:                    ; 0xf321f LB 0x9fd
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -4285,13 +4298,13 @@
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00018h                ; 3d 18 00
-    jnbe short 03271h                         ; 77 5c
+    jnbe short 03291h                         ; 77 5c
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 031dch                            ; bf dc 31
+    mov di, 031fch                            ; bf fc 31
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov di, word [cs:di+031e7h]               ; 2e 8b bd e7 31
+    mov di, word [cs:di+03207h]               ; 2e 8b bd 07 32
     mov cx, word [bp+016h]                    ; 8b 4e 16
     xor ch, ch                                ; 30 ed
@@ -4304,5 +4317,5 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jbe short 0325fh                          ; 76 1a
+    jbe short 0327fh                          ; 76 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4313,18 +4326,18 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 001h                    ; 26 c6 07 01
-    jmp near 03ac1h                           ; e9 62 08
+    jmp near 03ae1h                           ; e9 62 08
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 49 e4
+    call 016aeh                               ; e8 29 e4
     test bl, bl                               ; 84 db
-    jne short 03274h                          ; 75 0b
+    jne short 03294h                          ; 75 0b
     mov CL, strict byte 004h                  ; b1 04
     mov dl, al                                ; 88 c2
     shr dl, CL                                ; d2 ea
-    jmp short 03279h                          ; eb 08
-    jmp near 03bd6h                           ; e9 62 09
+    jmp short 03299h                          ; eb 08
+    jmp near 03bf6h                           ; e9 62 09
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     test dl, dl                               ; 84 d2
-    jne short 03297h                          ; 75 1a
+    jne short 032b7h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4335,5 +4348,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 03ac1h                           ; e9 2a 08
+    jmp near 03ae1h                           ; e9 2a 08
     mov si, strict word 0003eh                ; be 3e 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4348,5 +4361,5 @@
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02eb0h                               ; e8 f5 fb
+    call 02ed0h                               ; e8 f5 fb
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
@@ -4360,6 +4373,6 @@
     mov word [bp+016h], cx                    ; 89 4e 16
     test dl, dl                               ; 84 d2
-    je short 032bbh                           ; 74 e5
-    jmp near 03ac1h                           ; e9 e8 07
+    je short 032dbh                           ; 74 e5
+    jmp near 03ae1h                           ; e9 e8 07
     mov bh, byte [bp+016h]                    ; 8a 7e 16
     mov al, byte [bp+015h]                    ; 8a 46 15
@@ -4372,15 +4385,15 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 03305h                         ; 77 0d
+    jnbe short 03325h                         ; 77 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 03305h                         ; 77 09
+    jnbe short 03325h                         ; 77 09
     test bh, bh                               ; 84 ff
-    je short 03305h                           ; 74 05
+    je short 03325h                           ; 74 05
     cmp bh, 048h                              ; 80 ff 48
-    jbe short 0333ch                          ; 76 37
-    mov bx, 00da4h                            ; bb a4 0d
+    jbe short 0335ch                          ; 76 37
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 23 e6
+    call 01933h                               ; e8 03 e6
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4389,5 +4402,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 57 e6
+    call 01976h                               ; e8 37 e6
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -4399,10 +4412,10 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 001h                    ; 26 c6 07 01
-    jmp near 033e6h                           ; e9 aa 00
+    jmp near 03406h                           ; e9 aa 00
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 031b1h                               ; e8 6e fe
+    call 031d1h                               ; e8 6e fe
     test ax, ax                               ; 85 c0
-    jne short 03361h                          ; 75 1a
+    jne short 03381h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4413,15 +4426,15 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 033e6h                           ; e9 85 00
+    jmp near 03406h                           ; e9 85 00
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02febh                               ; e8 81 fc
+    call 0300bh                               ; e8 81 fc
     test ax, ax                               ; 85 c0
-    jne short 03394h                          ; 75 26
+    jne short 033b4h                          ; 75 26
     mov ax, cx                                ; 89 c8
-    call 030cah                               ; e8 57 fd
+    call 030eah                               ; e8 57 fd
     test ax, ax                               ; 85 c0
-    jne short 03394h                          ; 75 1d
+    jne short 033b4h                          ; 75 1d
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4433,9 +4446,9 @@
     mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     mov byte [bp+016h], ch                    ; 88 6e 16
-    jmp near 03ac1h                           ; e9 2d 07
+    jmp near 03ae1h                           ; e9 2d 07
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00002h                ; 3d 02 00
-    jne short 033edh                          ; 75 4f
+    jne short 0340dh                          ; 75 4f
     mov CL, strict byte 00ch                  ; b1 0c
     mov ax, word [bp+006h]                    ; 8b 46 06
@@ -4449,5 +4462,5 @@
     mov word [bp-00ch], si                    ; 89 76 f4
     cmp dx, si                                ; 39 f2
-    jbe short 033bch                          ; 76 02
+    jbe short 033dch                          ; 76 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
@@ -4461,5 +4474,5 @@
     add ax, word [bp-00eh]                    ; 03 46 f2
     cmp ax, word [bp-00ch]                    ; 3b 46 f4
-    jnc short 033f0h                          ; 73 1d
+    jnc short 03410h                          ; 73 1d
     mov ax, word [bp+016h]                    ; 8b 46 16
     mov ah, cl                                ; 88 cc
@@ -4470,6 +4483,6 @@
     mov byte [es:bx], cl                      ; 26 88 0f
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 03ac1h                           ; e9 d4 06
-    jmp near 0353ah                           ; e9 4a 01
+    jmp near 03ae1h                           ; e9 d4 06
+    jmp near 0355ah                           ; e9 4a 01
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4503,5 +4516,5 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02f76h                               ; e8 43 fb
+    call 02f96h                               ; e8 43 fb
     mov AL, strict byte 0e6h                  ; b0 e6
     mov dx, 003f5h                            ; ba f5 03
@@ -4536,9 +4549,9 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02effh                               ; e8 8b fa
+    call 02f1fh                               ; e8 8b fa
     test al, al                               ; 84 c0
-    jne short 03497h                          ; 75 1f
+    jne short 034b7h                          ; 75 1f
     mov ax, cx                                ; 89 c8
-    call 02f37h                               ; e8 ba fa
+    call 02f57h                               ; e8 ba fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4549,5 +4562,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 0338eh                           ; e9 f7 fe
+    jmp near 033aeh                           ; e9 f7 fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4556,5 +4569,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 034b5h                           ; 74 12
+    je short 034d5h                           ; 74 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4563,10 +4576,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c4 e4
+    call 01976h                               ; e8 a4 e4
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 034beh                          ; eb 05
+    jmp short 034deh                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 034d4h                          ; 7d 16
+    jnl short 034f4h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4579,5 +4592,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 034b9h                          ; eb e5
+    jmp short 034d9h                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4585,8 +4598,8 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 03504h                           ; 74 21
+    je short 03524h                           ; 74 21
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 02f37h                               ; e8 4d fa
+    call 02f57h                               ; e8 4d fa
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4597,5 +4610,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 020h                    ; 26 c6 07 20
-    jmp near 033e6h                           ; e9 e2 fe
+    jmp near 03406h                           ; e9 e2 fe
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -4619,13 +4632,13 @@
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 02eb0h                               ; e8 81 f9
+    call 02ed0h                               ; e8 81 f9
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp near 032bbh                           ; e9 81 fd
+    jmp near 032dbh                           ; e9 81 fd
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 03547h                           ; 74 03
-    jmp near 03673h                           ; e9 2c 01
+    je short 03567h                           ; 74 03
+    jmp near 03693h                           ; e9 2c 01
     mov CL, strict byte 00ch                  ; b1 0c
     mov dx, word [bp+006h]                    ; 8b 56 06
@@ -4639,5 +4652,5 @@
     mov word [bp-00ch], si                    ; 89 76 f4
     cmp ax, si                                ; 39 f0
-    jbe short 03565h                          ; 76 02
+    jbe short 03585h                          ; 76 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
@@ -4651,6 +4664,6 @@
     add ax, word [bp-00eh]                    ; 03 46 f2
     cmp ax, word [bp-00ch]                    ; 3b 46 f4
-    jnc short 0357fh                          ; 73 03
-    jmp near 033d3h                           ; e9 54 fe
+    jnc short 0359fh                          ; 73 03
+    jmp near 033f3h                           ; e9 54 fe
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4684,5 +4697,5 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02f76h                               ; e8 b4 f9
+    call 02f96h                               ; e8 b4 f9
     mov AL, strict byte 0c5h                  ; b0 c5
     mov dx, 003f5h                            ; ba f5 03
@@ -4717,8 +4730,8 @@
     mov AL, strict byte 0ffh                  ; b0 ff
     out DX, AL                                ; ee
-    call 02effh                               ; e8 fc f8
+    call 02f1fh                               ; e8 fc f8
     test al, al                               ; 84 c0
-    jne short 0360ah                          ; 75 03
-    jmp near 03478h                           ; e9 6e fe
+    jne short 0362ah                          ; 75 03
+    jmp near 03498h                           ; e9 6e fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4727,5 +4740,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03628h                           ; 74 12
+    je short 03648h                           ; 74 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4734,10 +4747,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 51 e3
+    call 01976h                               ; e8 31 e3
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 03631h                          ; eb 05
+    jmp short 03651h                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 03647h                          ; 7d 16
+    jnl short 03667h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4750,5 +4763,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 0362ch                          ; eb e5
+    jmp short 0364ch                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4756,22 +4769,22 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    jne short 03659h                          ; 75 03
-    jmp near 03523h                           ; e9 ca fe
+    jne short 03679h                          ; 75 03
+    jmp near 03543h                           ; e9 ca fe
     mov bx, strict word 00043h                ; bb 43 00
     mov al, byte [es:bx]                      ; 26 8a 07
     test AL, strict byte 002h                 ; a8 02
-    je short 0366bh                           ; 74 08
+    je short 0368bh                           ; 74 08
     mov word [bp+016h], 00300h                ; c7 46 16 00 03
-    jmp near 03ac1h                           ; e9 56 04
+    jmp near 03ae1h                           ; e9 56 04
     mov word [bp+016h], 00100h                ; c7 46 16 00 01
-    jmp near 03ac1h                           ; e9 4e 04
+    jmp near 03ae1h                           ; e9 4e 04
     mov dl, byte [bp-004h]                    ; 8a 56 fc
     xor dh, dh                                ; 30 f6
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 02eb0h                               ; e8 31 f8
+    call 02ed0h                               ; e8 31 f8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov byte [bp+017h], 000h                  ; c6 46 17 00
-    jmp near 032bbh                           ; e9 31 fc
+    jmp near 032dbh                           ; e9 31 fc
     mov bh, byte [bp+016h]                    ; 8a 7e 16
     mov dl, byte [bp+015h]                    ; 8a 56 15
@@ -4783,13 +4796,13 @@
     mov bl, byte [bp+00eh]                    ; 8a 5e 0e
     cmp bl, 001h                              ; 80 fb 01
-    jnbe short 036b7h                         ; 77 12
+    jnbe short 036d7h                         ; 77 12
     cmp AL, strict byte 001h                  ; 3c 01
-    jnbe short 036b7h                         ; 77 0e
+    jnbe short 036d7h                         ; 77 0e
     cmp dl, 04fh                              ; 80 fa 4f
-    jnbe short 036b7h                         ; 77 09
+    jnbe short 036d7h                         ; 77 09
     test bh, bh                               ; 84 ff
-    je short 036b7h                           ; 74 05
+    je short 036d7h                           ; 74 05
     cmp bh, 012h                              ; 80 ff 12
-    jbe short 036d2h                          ; 76 1b
+    jbe short 036f2h                          ; 76 1b
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4803,7 +4816,7 @@
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 031b1h                               ; e8 d8 fa
+    call 031d1h                               ; e8 d8 fa
     test ax, ax                               ; 85 c0
-    jne short 036f7h                          ; 75 1a
+    jne short 03717h                          ; 75 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4814,16 +4827,16 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 080h                    ; 26 c6 07 80
-    jmp near 03ac1h                           ; e9 ca 03
+    jmp near 03ae1h                           ; e9 ca 03
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02febh                               ; e8 eb f8
+    call 0300bh                               ; e8 eb f8
     test ax, ax                               ; 85 c0
-    jne short 03710h                          ; 75 0c
+    jne short 03730h                          ; 75 0c
     mov ax, cx                                ; 89 c8
-    call 030cah                               ; e8 c1 f9
+    call 030eah                               ; e8 c1 f9
     test ax, ax                               ; 85 c0
-    jne short 03710h                          ; 75 03
-    jmp near 03377h                           ; e9 67 fc
+    jne short 03730h                          ; 75 03
+    jmp near 03397h                           ; e9 67 fc
     mov CL, strict byte 00ch                  ; b1 0c
     mov ax, word [bp+006h]                    ; 8b 46 06
@@ -4837,5 +4850,5 @@
     mov word [bp-00ch], si                    ; 89 76 f4
     cmp dx, si                                ; 39 f2
-    jbe short 0372eh                          ; 76 02
+    jbe short 0374eh                          ; 76 02
     db  0feh, 0c5h
     ; inc ch                                    ; fe c5
@@ -4849,5 +4862,5 @@
     add ax, word [bp-00eh]                    ; 03 46 f2
     cmp ax, word [bp-00ch]                    ; 3b 46 f4
-    jnc short 0375fh                          ; 73 1a
+    jnc short 0377fh                          ; 73 1a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -4858,5 +4871,5 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 009h                    ; 26 c6 07 09
-    jmp near 033e6h                           ; e9 87 fc
+    jmp near 03406h                           ; e9 87 fc
     mov AL, strict byte 006h                  ; b0 06
     mov dx, strict word 0000ah                ; ba 0a 00
@@ -4890,5 +4903,5 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02f76h                               ; e8 d4 f7
+    call 02f96h                               ; e8 d4 f7
     mov AL, strict byte 00fh                  ; b0 0f
     mov dx, 003f5h                            ; ba f5 03
@@ -4919,10 +4932,10 @@
     mov AL, strict byte 0f6h                  ; b0 f6
     out DX, AL                                ; ee
-    call 02effh                               ; e8 24 f7
+    call 02f1fh                               ; e8 24 f7
     test al, al                               ; 84 c0
-    jne short 037e7h                          ; 75 08
+    jne short 03807h                          ; 75 08
     mov ax, cx                                ; 89 c8
-    call 02f37h                               ; e8 53 f7
-    jmp near 036ddh                           ; e9 f6 fe
+    call 02f57h                               ; e8 53 f7
+    jmp near 036fdh                           ; e9 f6 fe
     mov dx, 003f4h                            ; ba f4 03
     in AL, DX                                 ; ec
@@ -4931,5 +4944,5 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 0c0h                  ; 3c c0
-    je short 03805h                           ; 74 12
+    je short 03825h                           ; 74 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4938,10 +4951,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 74 e1
+    call 01976h                               ; e8 54 e1
     add sp, strict byte 00006h                ; 83 c4 06
     xor cx, cx                                ; 31 c9
-    jmp short 0380eh                          ; eb 05
+    jmp short 0382eh                          ; eb 05
     cmp cx, strict byte 00007h                ; 83 f9 07
-    jnl short 03824h                          ; 7d 16
+    jnl short 03844h                          ; 7d 16
     mov dx, 003f5h                            ; ba f5 03
     in AL, DX                                 ; ec
@@ -4954,5 +4967,5 @@
     mov byte [es:si], al                      ; 26 88 04
     inc cx                                    ; 41
-    jmp short 03809h                          ; eb e5
+    jmp short 03829h                          ; eb e5
     mov si, strict word 00042h                ; be 42 00
     mov ax, strict word 00040h                ; b8 40 00
@@ -4960,10 +4973,10 @@
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 0c0h                 ; a8 c0
-    je short 03852h                           ; 74 1f
+    je short 03872h                           ; 74 1f
     mov si, strict word 00043h                ; be 43 00
     mov al, byte [es:si]                      ; 26 8a 04
     test AL, strict byte 002h                 ; a8 02
-    je short 03840h                           ; 74 03
-    jmp near 03663h                           ; e9 23 fe
+    je short 03860h                           ; 74 03
+    jmp near 03683h                           ; e9 23 fe
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -4972,5 +4985,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 27 e1
+    call 01976h                               ; e8 07 e1
     add sp, strict byte 00006h                ; 83 c4 06
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -4982,9 +4995,9 @@
     xor ah, ah                                ; 30 e4
     xor dx, dx                                ; 31 d2
-    call 02eb0h                               ; e8 45 f6
-    jmp near 03533h                           ; e9 c5 fc
+    call 02ed0h                               ; e8 45 f6
+    jmp near 03553h                           ; e9 c5 fc
     mov bl, dl                                ; 88 d3
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 0389bh                          ; 76 26
+    jbe short 038bbh                          ; 76 26
     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
     mov word [bp+010h], strict word 00000h    ; c7 46 10 00 00
@@ -4995,21 +5008,21 @@
     mov dl, bh                                ; 88 fa
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp near 039c0h                           ; e9 25 01
+    jmp near 039e0h                           ; e9 25 01
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 0d de
+    call 016aeh                               ; e8 ed dd
     mov dl, al                                ; 88 c2
     xor bh, bh                                ; 30 ff
     test AL, strict byte 0f0h                 ; a8 f0
-    je short 038abh                           ; 74 02
+    je short 038cbh                           ; 74 02
     mov BH, strict byte 001h                  ; b7 01
     test dl, 00fh                             ; f6 c2 0f
-    je short 038b2h                           ; 74 02
+    je short 038d2h                           ; 74 02
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
     test bl, bl                               ; 84 db
-    jne short 038bch                          ; 75 06
+    jne short 038dch                          ; 75 06
     mov CL, strict byte 004h                  ; b1 04
     shr dl, CL                                ; d2 ea
-    jmp short 038bfh                          ; eb 03
+    jmp short 038dfh                          ; eb 03
     and dl, 00fh                              ; 80 e2 0f
     mov byte [bp+011h], 000h                  ; c6 46 11 00
@@ -5027,37 +5040,37 @@
     mov word [bp+012h], ax                    ; 89 46 12
     cmp dl, 003h                              ; 80 fa 03
-    jc short 038fbh                           ; 72 15
-    jbe short 03922h                          ; 76 3a
+    jc short 0391bh                           ; 72 15
+    jbe short 03942h                          ; 76 3a
     cmp dl, 005h                              ; 80 fa 05
-    jc short 03929h                           ; 72 3c
-    jbe short 03930h                          ; 76 41
+    jc short 03949h                           ; 72 3c
+    jbe short 03950h                          ; 76 41
     cmp dl, 00fh                              ; 80 fa 0f
-    je short 0393eh                           ; 74 4a
+    je short 0395eh                           ; 74 4a
     cmp dl, 00eh                              ; 80 fa 0e
-    je short 03937h                           ; 74 3e
-    jmp short 03945h                          ; eb 4a
+    je short 03957h                           ; 74 3e
+    jmp short 03965h                          ; eb 4a
     cmp dl, 002h                              ; 80 fa 02
-    je short 0391bh                           ; 74 1b
+    je short 0393bh                           ; 74 1b
     cmp dl, 001h                              ; 80 fa 01
-    je short 03914h                           ; 74 0f
+    je short 03934h                           ; 74 0f
     test dl, dl                               ; 84 d2
-    jne short 03945h                          ; 75 3c
+    jne short 03965h                          ; 75 3c
     mov word [bp+014h], strict word 00000h    ; c7 46 14 00 00
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 03957h                          ; eb 43
+    jmp short 03977h                          ; eb 43
     mov word [bp+014h], 02709h                ; c7 46 14 09 27
-    jmp short 03957h                          ; eb 3c
+    jmp short 03977h                          ; eb 3c
     mov word [bp+014h], 04f0fh                ; c7 46 14 0f 4f
-    jmp short 03957h                          ; eb 35
+    jmp short 03977h                          ; eb 35
     mov word [bp+014h], 04f09h                ; c7 46 14 09 4f
-    jmp short 03957h                          ; eb 2e
+    jmp short 03977h                          ; eb 2e
     mov word [bp+014h], 04f12h                ; c7 46 14 12 4f
-    jmp short 03957h                          ; eb 27
+    jmp short 03977h                          ; eb 27
     mov word [bp+014h], 04f24h                ; c7 46 14 24 4f
-    jmp short 03957h                          ; eb 20
+    jmp short 03977h                          ; eb 20
     mov word [bp+014h], 0fe3fh                ; c7 46 14 3f fe
-    jmp short 03957h                          ; eb 19
+    jmp short 03977h                          ; eb 19
     mov word [bp+014h], 0feffh                ; c7 46 14 ff fe
-    jmp short 03957h                          ; eb 12
+    jmp short 03977h                          ; eb 12
     mov ax, 00275h                            ; b8 75 02
     push ax                                   ; 50
@@ -5066,25 +5079,25 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 22 e0
+    call 01976h                               ; e8 02 e0
     add sp, strict byte 00006h                ; 83 c4 06
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 03bfch                               ; e8 99 02
+    call 03c1ch                               ; e8 99 02
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp near 03533h                           ; e9 ca fb
+    jmp near 03553h                           ; e9 ca fb
     mov bl, dl                                ; 88 d3
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 03975h                          ; 76 05
+    jbe short 03995h                          ; 76 05
     mov word [bp+016h], cx                    ; 89 4e 16
-    jmp short 039c0h                          ; eb 4b
+    jmp short 039e0h                          ; eb 4b
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 33 dd
+    call 016aeh                               ; e8 13 dd
     test bl, bl                               ; 84 db
-    jne short 03987h                          ; 75 08
+    jne short 039a7h                          ; 75 08
     mov CL, strict byte 004h                  ; b1 04
     mov dl, al                                ; 88 c2
     shr dl, CL                                ; d2 ea
-    jmp short 0398ch                          ; eb 05
+    jmp short 039ach                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
@@ -5093,14 +5106,14 @@
     xor ah, ah                                ; 30 e4
     test dl, dl                               ; 84 d2
-    je short 039a6h                           ; 74 0d
+    je short 039c6h                           ; 74 0d
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 039a3h                          ; 76 05
+    jbe short 039c3h                          ; 76 05
     or ah, 002h                               ; 80 cc 02
-    jmp short 039a6h                          ; eb 03
+    jmp short 039c6h                          ; eb 03
     or ah, 001h                               ; 80 cc 01
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 032bbh                           ; e9 0f f9
+    jmp near 032dbh                           ; e9 0f f9
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 039c6h                          ; 76 15
+    jbe short 039e6h                          ; 76 15
     mov word [bp+016h], si                    ; 89 76 16
     mov bx, strict word 00041h                ; bb 41 00
@@ -5109,5 +5122,5 @@
     mov byte [es:bx], 001h                    ; 26 c6 07 01
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp near 032bbh                           ; e9 f5 f8
+    jmp near 032dbh                           ; e9 f5 f8
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5118,19 +5131,19 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 006h                    ; 26 c6 07 06
-    jmp near 03ac1h                           ; e9 e1 00
+    jmp near 03ae1h                           ; e9 e1 00
     mov bl, dl                                ; 88 d3
     mov cl, byte [bp+016h]                    ; 8a 4e 16
     cmp dl, 001h                              ; 80 fa 01
-    jnbe short 039b1h                         ; 77 c7
+    jnbe short 039d1h                         ; 77 c7
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 031b1h                               ; e8 c0 f7
+    call 031d1h                               ; e8 c0 f7
     test ax, ax                               ; 85 c0
-    jne short 039f8h                          ; 75 03
-    jmp near 036ddh                           ; e9 e5 fc
+    jne short 03a18h                          ; 75 03
+    jmp near 036fdh                           ; e9 e5 fc
     test bl, bl                               ; 84 db
-    je short 03a01h                           ; 74 05
+    je short 03a21h                           ; 74 05
     mov bx, 00091h                            ; bb 91 00
-    jmp short 03a04h                          ; eb 03
+    jmp short 03a24h                          ; eb 03
     mov bx, 00090h                            ; bb 90 00
     mov word [bp-00ch], bx                    ; 89 5e f4
@@ -5140,18 +5153,18 @@
     and bl, 00fh                              ; 80 e3 0f
     cmp cl, 002h                              ; 80 f9 02
-    jc short 03a26h                           ; 72 0f
-    jbe short 03a33h                          ; 76 1a
+    jc short 03a46h                           ; 72 0f
+    jbe short 03a53h                          ; 76 1a
     cmp cl, 004h                              ; 80 f9 04
-    je short 03a2eh                           ; 74 10
+    je short 03a4eh                           ; 74 10
     cmp cl, 003h                              ; 80 f9 03
-    je short 03a38h                           ; 74 15
-    jmp near 03245h                           ; e9 1f f8
+    je short 03a58h                           ; 74 15
+    jmp near 03265h                           ; e9 1f f8
     cmp cl, 001h                              ; 80 f9 01
-    je short 03a2eh                           ; 74 03
-    jmp near 03245h                           ; e9 17 f8
+    je short 03a4eh                           ; 74 03
+    jmp near 03265h                           ; e9 17 f8
     or bl, 090h                               ; 80 cb 90
-    jmp short 03a3bh                          ; eb 08
+    jmp short 03a5bh                          ; eb 08
     or bl, 070h                               ; 80 cb 70
-    jmp short 03a3bh                          ; eb 03
+    jmp short 03a5bh                          ; eb 03
     or bl, 010h                               ; 80 cb 10
     mov ax, strict word 00040h                ; b8 40 00
@@ -5163,5 +5176,5 @@
     mov bx, strict word 00041h                ; bb 41 00
     mov byte [es:bx], al                      ; 26 88 07
-    jmp near 03533h                           ; e9 df fa
+    jmp near 03553h                           ; e9 df fa
     mov bl, dl                                ; 88 d3
     mov cl, byte [bp+014h]                    ; 8a 4e 14
@@ -5181,22 +5194,22 @@
     mov byte [bp-004h], cl                    ; 88 4e fc
     cmp dl, 001h                              ; 80 fa 01
-    jbe short 03a86h                          ; 76 03
-    jmp near 039b1h                           ; e9 2b ff
+    jbe short 03aa6h                          ; 76 03
+    jmp near 039d1h                           ; e9 2b ff
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 031b1h                               ; e8 24 f7
+    call 031d1h                               ; e8 24 f7
     test ax, ax                               ; 85 c0
-    jne short 03a94h                          ; 75 03
-    jmp near 036ddh                           ; e9 49 fc
+    jne short 03ab4h                          ; 75 03
+    jmp near 036fdh                           ; e9 49 fc
     mov cl, bl                                ; 88 d9
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 02febh                               ; e8 4e f5
+    call 0300bh                               ; e8 4e f5
     test ax, ax                               ; 85 c0
-    jne short 03ac8h                          ; 75 27
+    jne short 03ae8h                          ; 75 27
     mov ax, cx                                ; 89 c8
-    call 030cah                               ; e8 24 f6
+    call 030eah                               ; e8 24 f6
     test ax, ax                               ; 85 c0
-    jne short 03ac8h                          ; 75 1e
+    jne short 03ae8h                          ; 75 1e
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5208,19 +5221,19 @@
     mov byte [es:bx], 00ch                    ; 26 c6 07 0c
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 032bbh                           ; e9 f3 f7
+    jmp near 032dbh                           ; e9 f3 f7
     mov ax, strict word 00010h                ; b8 10 00
-    call 016aeh                               ; e8 e0 db
+    call 016aeh                               ; e8 c0 db
     test bl, bl                               ; 84 db
-    jne short 03adah                          ; 75 08
+    jne short 03afah                          ; 75 08
     mov CL, strict byte 004h                  ; b1 04
     mov dl, al                                ; 88 c2
     shr dl, CL                                ; d2 ea
-    jmp short 03adfh                          ; eb 05
+    jmp short 03affh                          ; eb 05
     mov dl, al                                ; 88 c2
     and dl, 00fh                              ; 80 e2 0f
     test bl, bl                               ; 84 db
-    je short 03ae8h                           ; 74 05
+    je short 03b08h                           ; 74 05
     mov si, 00091h                            ; be 91 00
-    jmp short 03aebh                          ; eb 03
+    jmp short 03b0bh                          ; eb 03
     mov si, 00090h                            ; be 90 00
     mov word [bp-00ch], si                    ; 89 76 f4
@@ -5230,66 +5243,66 @@
     and bl, 00fh                              ; 80 e3 0f
     cmp dl, 003h                              ; 80 fa 03
-    jc short 03b19h                           ; 72 1b
+    jc short 03b39h                           ; 72 1b
     mov al, bl                                ; 88 d8
     or AL, strict byte 090h                   ; 0c 90
     cmp dl, 003h                              ; 80 fa 03
-    jbe short 03b55h                          ; 76 4e
+    jbe short 03b75h                          ; 76 4e
     mov ah, bl                                ; 88 dc
     or ah, 010h                               ; 80 cc 10
     cmp dl, 005h                              ; 80 fa 05
-    je short 03b53h                           ; 74 42
+    je short 03b73h                           ; 74 42
     cmp dl, 004h                              ; 80 fa 04
-    je short 03b62h                           ; 74 4c
-    jmp near 03b9ah                           ; e9 81 00
+    je short 03b82h                           ; 74 4c
+    jmp near 03bbah                           ; e9 81 00
     cmp dl, 002h                              ; 80 fa 02
-    je short 03b33h                           ; 74 15
+    je short 03b53h                           ; 74 15
     cmp dl, 001h                              ; 80 fa 01
-    jne short 03b66h                          ; 75 43
+    jne short 03b86h                          ; 75 43
     cmp byte [bp-004h], 027h                  ; 80 7e fc 27
-    jne short 03b66h                          ; 75 3d
+    jne short 03b86h                          ; 75 3d
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03b7ch                          ; 75 4e
+    jne short 03b9ch                          ; 75 4e
     or bl, 090h                               ; 80 cb 90
-    jmp short 03b7ch                          ; eb 49
+    jmp short 03b9ch                          ; eb 49
     cmp byte [bp-004h], 027h                  ; 80 7e fc 27
-    jne short 03b43h                          ; 75 0a
+    jne short 03b63h                          ; 75 0a
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03b43h                          ; 75 05
+    jne short 03b63h                          ; 75 05
     or bl, 070h                               ; 80 cb 70
-    jmp short 03b7ch                          ; eb 39
+    jmp short 03b9ch                          ; eb 39
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03b9ah                          ; 75 51
+    jne short 03bbah                          ; 75 51
     cmp bh, 00fh                              ; 80 ff 0f
-    jne short 03b9ah                          ; 75 4c
+    jne short 03bbah                          ; 75 4c
     or bl, 010h                               ; 80 cb 10
-    jmp short 03b9ah                          ; eb 47
-    jmp short 03b7eh                          ; eb 29
+    jmp short 03bbah                          ; eb 47
+    jmp short 03b9eh                          ; eb 29
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03b9ah                          ; 75 3f
+    jne short 03bbah                          ; 75 3f
     cmp bh, 009h                              ; 80 ff 09
-    je short 03b64h                           ; 74 04
-    jmp short 03b9ah                          ; eb 38
-    jmp short 03b68h                          ; eb 04
+    je short 03b84h                           ; 74 04
+    jmp short 03bbah                          ; eb 38
+    jmp short 03b88h                          ; eb 04
     mov bl, al                                ; 88 c3
-    jmp short 03b9ah                          ; eb 32
+    jmp short 03bbah                          ; eb 32
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03b9ah                          ; 75 2c
+    jne short 03bbah                          ; 75 2c
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03b75h                          ; 75 02
-    jmp short 03b64h                          ; eb ef
+    jne short 03b95h                          ; 75 02
+    jmp short 03b84h                          ; eb ef
     cmp bh, 012h                              ; 80 ff 12
-    jne short 03b9ah                          ; 75 20
+    jne short 03bbah                          ; 75 20
     mov bl, ah                                ; 88 e3
-    jmp short 03b9ah                          ; eb 1c
+    jmp short 03bbah                          ; eb 1c
     cmp byte [bp-004h], 04fh                  ; 80 7e fc 4f
-    jne short 03b9ah                          ; 75 16
+    jne short 03bbah                          ; 75 16
     cmp bh, 009h                              ; 80 ff 09
-    jne short 03b8bh                          ; 75 02
-    jmp short 03b64h                          ; eb d9
+    jne short 03babh                          ; 75 02
+    jmp short 03b84h                          ; eb d9
     cmp bh, 012h                              ; 80 ff 12
-    jne short 03b92h                          ; 75 02
-    jmp short 03b7ah                          ; eb e8
+    jne short 03bb2h                          ; 75 02
+    jmp short 03b9ah                          ; eb e8
     cmp bh, 024h                              ; 80 ff 24
-    jne short 03b9ah                          ; 75 03
+    jne short 03bbah                          ; 75 03
     or bl, 0d0h                               ; 80 cb d0
     mov al, bl                                ; 88 d8
@@ -5298,6 +5311,6 @@
     sar ax, CL                                ; d3 f8
     test AL, strict byte 001h                 ; a8 01
-    jne short 03ba9h                          ; 75 03
-    jmp near 03aaah                           ; e9 01 ff
+    jne short 03bc9h                          ; 75 03
+    jmp near 03acah                           ; e9 01 ff
     mov ax, strict word 00040h                ; b8 40 00
     mov es, ax                                ; 8e c0
@@ -5307,5 +5320,5 @@
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
-    call 03bfch                               ; e8 3c 00
+    call 03c1ch                               ; e8 3c 00
     mov word [bp+008h], ax                    ; 89 46 08
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -5314,9 +5327,9 @@
     mov es, ax                                ; 8e c0
     mov byte [es:bx], 000h                    ; 26 c6 07 00
-    jmp near 03533h                           ; e9 5d f9
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 03553h                           ; e9 5d f9
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 52 dd
+    call 01933h                               ; e8 32 dd
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -5328,8 +5341,8 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 80 dd
+    call 01976h                               ; e8 60 dd
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03245h                           ; e9 49 f6
-get_floppy_dpt_:                             ; 0xf3bfc LB 0x32
+    jmp near 03265h                           ; e9 49 f6
+get_floppy_dpt_:                             ; 0xf3c1c LB 0x32
     push bx                                   ; 53
     push dx                                   ; 52
@@ -5338,12 +5351,12 @@
     mov dl, al                                ; 88 c2
     xor ax, ax                                ; 31 c0
-    jmp short 03c0dh                          ; eb 06
+    jmp short 03c2dh                          ; eb 06
     inc ax                                    ; 40
     cmp ax, strict word 00007h                ; 3d 07 00
-    jnc short 03c27h                          ; 73 1a
+    jnc short 03c47h                          ; 73 1a
     mov bx, ax                                ; 89 c3
     sal bx, 1                                 ; d1 e3
     cmp dl, byte [word bx+0005bh]             ; 3a 97 5b 00
-    jne short 03c07h                          ; 75 f0
+    jne short 03c27h                          ; 75 f0
     mov al, byte [word bx+0005ch]             ; 8a 87 5c 00
     xor ah, ah                                ; 30 e4
@@ -5351,5 +5364,5 @@
     imul bx                                   ; f7 eb
     add ax, strict word 00000h                ; 05 00 00
-    jmp short 03c2ah                          ; eb 03
+    jmp short 03c4ah                          ; eb 03
     mov ax, strict word 00041h                ; b8 41 00
     pop bp                                    ; 5d
@@ -5357,5 +5370,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-dummy_soft_reset_:                           ; 0xf3c2e LB 0x7
+dummy_soft_reset_:                           ; 0xf3c4e LB 0x7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5363,39 +5376,39 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_init:                                 ; 0xf3c35 LB 0x18
+_cdemu_init:                                 ; 0xf3c55 LB 0x18
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 2d da
+    call 0166eh                               ; e8 0d da
     xor bx, bx                                ; 31 db
     mov dx, 00366h                            ; ba 66 03
-    call 01660h                               ; e8 17 da
+    call 01660h                               ; e8 f7 d9
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_isactive:                             ; 0xf3c4d LB 0x16
+_cdemu_isactive:                             ; 0xf3c6d LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 15 da
+    call 0166eh                               ; e8 f5 d9
     mov dx, 00366h                            ; ba 66 03
-    call 01652h                               ; e8 f3 d9
+    call 01652h                               ; e8 d3 d9
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_cdemu_emulated_drive:                       ; 0xf3c63 LB 0x16
+_cdemu_emulated_drive:                       ; 0xf3c83 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 ff d9
+    call 0166eh                               ; e8 df d9
     mov dx, 00368h                            ; ba 68 03
-    call 01652h                               ; e8 dd d9
+    call 01652h                               ; e8 bd d9
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_int13_eltorito:                             ; 0xf3c79 LB 0x191
+_int13_eltorito:                             ; 0xf3c99 LB 0x191
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5404,5 +5417,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 e7 d9
+    call 0166eh                               ; e8 c7 d9
     mov si, 00366h                            ; be 66 03
     mov di, ax                                ; 89 c7
@@ -5410,15 +5423,15 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0004bh                ; 3d 4b 00
-    jc short 03ca0h                           ; 72 0a
-    jbe short 03ccbh                          ; 76 33
+    jc short 03cc0h                           ; 72 0a
+    jbe short 03cebh                          ; 76 33
     cmp ax, strict word 0004dh                ; 3d 4d 00
-    jbe short 03ca5h                          ; 76 08
-    jmp near 03dd0h                           ; e9 30 01
+    jbe short 03cc5h                          ; 76 08
+    jmp near 03df0h                           ; e9 30 01
     cmp ax, strict word 0004ah                ; 3d 4a 00
-    jne short 03cc8h                          ; 75 23
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 03ce8h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 83 dc
+    call 01933h                               ; e8 63 dc
     push word [bp+016h]                       ; ff 76 16
     mov ax, 002fch                            ; b8 fc 02
@@ -5428,12 +5441,12 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 b4 dc
+    call 01976h                               ; e8 94 dc
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 03debh                           ; e9 23 01
-    jmp near 03dd0h                           ; e9 05 01
+    jmp near 03e0bh                           ; e9 23 01
+    jmp near 03df0h                           ; e9 05 01
     mov dx, word [bp+00ah]                    ; 8b 56 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
     mov bx, strict word 00013h                ; bb 13 00
-    call 01660h                               ; e8 89 d9
+    call 01660h                               ; e8 69 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+001h]                 ; 26 8a 5c 01
@@ -5442,5 +5455,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 77 d9
+    call 01660h                               ; e8 57 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+002h]                 ; 26 8a 5c 02
@@ -5450,5 +5463,5 @@
     inc dx                                    ; 42
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 64 d9
+    call 01660h                               ; e8 44 d9
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+003h]                 ; 26 8a 5c 03
@@ -5457,5 +5470,5 @@
     add dx, strict byte 00003h                ; 83 c2 03
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 50 d9
+    call 01660h                               ; e8 30 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+008h]                 ; 26 8b 5c 08
@@ -5464,5 +5477,5 @@
     add dx, strict byte 00004h                ; 83 c2 04
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0169ch                               ; e8 76 d9
+    call 0169ch                               ; e8 56 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+004h]                 ; 26 8b 5c 04
@@ -5470,5 +5483,5 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 44 d9
+    call 0167ch                               ; e8 24 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+006h]                 ; 26 8b 5c 06
@@ -5476,5 +5489,5 @@
     add dx, strict byte 0000ah                ; 83 c2 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 32 d9
+    call 0167ch                               ; e8 12 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00ch]                 ; 26 8b 5c 0c
@@ -5482,5 +5495,5 @@
     add dx, strict byte 0000ch                ; 83 c2 0c
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 20 d9
+    call 0167ch                               ; e8 00 d9
     mov es, di                                ; 8e c7
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
@@ -5488,5 +5501,5 @@
     add dx, strict byte 0000eh                ; 83 c2 0e
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 0167ch                               ; e8 0e d9
+    call 0167ch                               ; e8 ee d8
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+012h]                 ; 26 8a 5c 12
@@ -5495,5 +5508,5 @@
     add dx, strict byte 00010h                ; 83 c2 10
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 de d8
+    call 01660h                               ; e8 be d8
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+014h]                 ; 26 8a 5c 14
@@ -5502,5 +5515,5 @@
     add dx, strict byte 00011h                ; 83 c2 11
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 ca d8
+    call 01660h                               ; e8 aa d8
     mov es, di                                ; 8e c7
     mov bl, byte [es:si+010h]                 ; 26 8a 5c 10
@@ -5509,7 +5522,7 @@
     add dx, strict byte 00012h                ; 83 c2 12
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01660h                               ; e8 b6 d8
+    call 01660h                               ; e8 96 d8
     test byte [bp+016h], 0ffh                 ; f6 46 16 ff
-    jne short 03db6h                          ; 75 06
+    jne short 03dd6h                          ; 75 06
     mov es, di                                ; 8e c7
     mov byte [es:si], 000h                    ; 26 c6 04 00
@@ -5518,5 +5531,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 9b d8
+    call 01660h                               ; e8 7b d8
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -5525,8 +5538,8 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 58 db
+    call 01933h                               ; e8 38 db
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -5535,5 +5548,5 @@
     push ax                                   ; 50
     mov ax, 00333h                            ; b8 33 03
-    jmp near 03cbah                           ; e9 cf fe
+    jmp near 03cdah                           ; e9 cf fe
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -5544,8 +5557,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 5c d8
+    call 01660h                               ; e8 3c d8
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 03dc9h                          ; eb bf
-device_is_cdrom_:                            ; 0xf3e0a LB 0x3f
+    jmp short 03de9h                          ; eb bf
+device_is_cdrom_:                            ; 0xf3e2a LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5556,10 +5569,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 53 d8
+    call 0166eh                               ; e8 33 d8
     mov cx, ax                                ; 89 c1
     cmp bl, 010h                              ; 80 fb 10
-    jc short 03e26h                           ; 72 04
+    jc short 03e46h                           ; 72 04
     xor ax, ax                                ; 31 c0
-    jmp short 03e41h                          ; eb 1b
+    jmp short 03e61h                          ; eb 1b
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -5570,5 +5583,5 @@
     add bx, 00122h                            ; 81 c3 22 01
     cmp byte [es:bx+023h], 005h               ; 26 80 7f 23 05
-    jne short 03e22h                          ; 75 e4
+    jne short 03e42h                          ; 75 e4
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -5578,5 +5591,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-cdrom_boot_:                                 ; 0xf3e49 LB 0x43e
+cdrom_boot_:                                 ; 0xf3e69 LB 0x43e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5589,5 +5602,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 10 d8
+    call 0166eh                               ; e8 f0 d7
     mov word [bp-018h], ax                    ; 89 46 e8
     mov si, 00366h                            ; be 66 03
@@ -5596,22 +5609,22 @@
     mov word [bp-010h], ax                    ; 89 46 f0
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
-    jmp short 03e7eh                          ; eb 09
+    jmp short 03e9eh                          ; eb 09
     inc byte [bp-00eh]                        ; fe 46 f2
     cmp byte [bp-00eh], 010h                  ; 80 7e f2 10
-    jnc short 03e8ah                          ; 73 0c
+    jnc short 03eaah                          ; 73 0c
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
-    call 03e0ah                               ; e8 84 ff
+    call 03e2ah                               ; e8 84 ff
     test ax, ax                               ; 85 c0
-    je short 03e75h                           ; 74 eb
+    je short 03e95h                           ; 74 eb
     cmp byte [bp-00eh], 010h                  ; 80 7e f2 10
-    jc short 03e96h                           ; 72 06
+    jc short 03eb6h                           ; 72 06
     mov ax, strict word 00002h                ; b8 02 00
-    jmp near 04224h                           ; e9 8e 03
+    jmp near 04244h                           ; e9 8e 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-026h]                         ; 8d 46 da
-    call 0a1a0h                               ; e8 fd 62
+    call 0a1c0h                               ; e8 fd 62
     mov word [bp-026h], strict word 00028h    ; c7 46 da 28 00
     mov ax, strict word 00011h                ; b8 11 00
@@ -5629,8 +5642,8 @@
     mov word [es:bx+010h], 00800h             ; 26 c7 47 10 00 08
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
-    jmp short 03edeh                          ; eb 09
+    jmp short 03efeh                          ; eb 09
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 004h                  ; 80 7e f4 04
-    jnbe short 03f20h                         ; 77 42
+    jnbe short 03f40h                         ; 77 42
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     xor ah, ah                                ; 30 e4
@@ -5661,33 +5674,33 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    jne short 03ed5h                          ; 75 b5
+    jne short 03ef5h                          ; 75 b5
     test ax, ax                               ; 85 c0
-    je short 03f2ah                           ; 74 06
+    je short 03f4ah                           ; 74 06
     mov ax, strict word 00003h                ; b8 03 00
-    jmp near 04224h                           ; e9 fa 02
+    jmp near 04244h                           ; e9 fa 02
     cmp byte [bp-00826h], 000h                ; 80 be da f7 00
-    je short 03f37h                           ; 74 06
+    je short 03f57h                           ; 74 06
     mov ax, strict word 00004h                ; b8 04 00
-    jmp near 04224h                           ; e9 ed 02
+    jmp near 04244h                           ; e9 ed 02
     xor di, di                                ; 31 ff
-    jmp short 03f41h                          ; eb 06
+    jmp short 03f61h                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00005h                ; 83 ff 05
-    jnc short 03f51h                          ; 73 10
+    jnc short 03f71h                          ; 73 10
     mov al, byte [bp+di-00825h]               ; 8a 83 db f7
-    cmp al, byte [di+00dach]                  ; 3a 85 ac 0d
-    je short 03f3bh                           ; 74 f0
+    cmp al, byte [di+00da8h]                  ; 3a 85 a8 0d
+    je short 03f5bh                           ; 74 f0
     mov ax, strict word 00005h                ; b8 05 00
-    jmp near 04224h                           ; e9 d3 02
+    jmp near 04244h                           ; e9 d3 02
     xor di, di                                ; 31 ff
-    jmp short 03f5bh                          ; eb 06
+    jmp short 03f7bh                          ; eb 06
     inc di                                    ; 47
     cmp di, strict byte 00017h                ; 83 ff 17
-    jnc short 03f6bh                          ; 73 10
+    jnc short 03f8bh                          ; 73 10
     mov al, byte [bp+di-0081fh]               ; 8a 83 e1 f7
-    cmp al, byte [di+00db2h]                  ; 3a 85 b2 0d
-    je short 03f55h                           ; 74 f0
+    cmp al, byte [di+00daeh]                  ; 3a 85 ae 0d
+    je short 03f75h                           ; 74 f0
     mov ax, strict word 00006h                ; b8 06 00
-    jmp near 04224h                           ; e9 b9 02
+    jmp near 04244h                           ; e9 b9 02
     mov ax, word [bp-007dfh]                  ; 8b 86 21 f8
     mov dx, word [bp-007ddh]                  ; 8b 96 23 f8
@@ -5729,36 +5742,36 @@
     call word [word di+0006ah]                ; ff 95 6a 00
     test ax, ax                               ; 85 c0
-    je short 03fd3h                           ; 74 06
+    je short 03ff3h                           ; 74 06
     mov ax, strict word 00007h                ; b8 07 00
-    jmp near 04224h                           ; e9 51 02
+    jmp near 04244h                           ; e9 51 02
     cmp byte [bp-00826h], 001h                ; 80 be da f7 01
-    je short 03fe0h                           ; 74 06
+    je short 04000h                           ; 74 06
     mov ax, strict word 00008h                ; b8 08 00
-    jmp near 04224h                           ; e9 44 02
+    jmp near 04244h                           ; e9 44 02
     cmp byte [bp-00825h], 000h                ; 80 be db f7 00
-    je short 03fedh                           ; 74 06
+    je short 0400dh                           ; 74 06
     mov ax, strict word 00009h                ; b8 09 00
-    jmp near 04224h                           ; e9 37 02
+    jmp near 04244h                           ; e9 37 02
     cmp byte [bp-00808h], 055h                ; 80 be f8 f7 55
-    je short 03ffah                           ; 74 06
+    je short 0401ah                           ; 74 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    jmp near 04224h                           ; e9 2a 02
+    jmp near 04244h                           ; e9 2a 02
     cmp byte [bp-00807h], 0aah                ; 80 be f9 f7 aa
-    jne short 03ff4h                          ; 75 f3
+    jne short 04014h                          ; 75 f3
     cmp byte [bp-00806h], 088h                ; 80 be fa f7 88
-    je short 0400eh                           ; 74 06
+    je short 0402eh                           ; 74 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    jmp near 04224h                           ; e9 16 02
+    jmp near 04244h                           ; e9 16 02
     mov al, byte [bp-00805h]                  ; 8a 86 fb f7
     mov es, [bp-016h]                         ; 8e 46 ea
     mov byte [es:si+001h], al                 ; 26 88 44 01
     cmp byte [bp-00805h], 000h                ; 80 be fb f7 00
-    jne short 04027h                          ; 75 07
+    jne short 04047h                          ; 75 07
     mov byte [es:si+002h], 0e0h               ; 26 c6 44 02 e0
-    jmp short 0403ah                          ; eb 13
+    jmp short 0405ah                          ; eb 13
     cmp byte [bp-00805h], 004h                ; 80 be fb f7 04
-    jnc short 04035h                          ; 73 07
+    jnc short 04055h                          ; 73 07
     mov byte [es:si+002h], 000h               ; 26 c6 44 02 00
-    jmp short 0403ah                          ; eb 05
+    jmp short 0405ah                          ; eb 05
     mov byte [es:si+002h], 080h               ; 26 c6 44 02 80
     mov bl, byte [bp-00eh]                    ; 8a 5e f2
@@ -5779,5 +5792,5 @@
     mov word [bp-014h], ax                    ; 89 46 ec
     test ax, ax                               ; 85 c0
-    jne short 04069h                          ; 75 05
+    jne short 04089h                          ; 75 05
     mov word [bp-014h], 007c0h                ; c7 46 ec c0 07
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -5788,9 +5801,9 @@
     mov word [es:si+00eh], bx                 ; 26 89 5c 0e
     test bx, bx                               ; 85 db
-    je short 0408bh                           ; 74 06
+    je short 040abh                           ; 74 06
     cmp bx, 00400h                            ; 81 fb 00 04
-    jbe short 04091h                          ; 76 06
+    jbe short 040b1h                          ; 76 06
     mov ax, strict word 0000ch                ; b8 0c 00
-    jmp near 04224h                           ; e9 93 01
+    jmp near 04244h                           ; e9 93 01
     mov ax, word [bp-007feh]                  ; 8b 86 02 f8
     mov dx, word [bp-007fch]                  ; 8b 96 04 f8
@@ -5840,5 +5853,5 @@
     sal ax, 1                                 ; d1 e0
     rcl di, 1                                 ; d1 d7
-    loop 04109h                               ; e2 fa
+    loop 04129h                               ; e2 fa
     push di                                   ; 57
     push ax                                   ; 50
@@ -5855,31 +5868,31 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test ax, ax                               ; 85 c0
-    je short 0413bh                           ; 74 06
+    je short 0415bh                           ; 74 06
     mov ax, strict word 0000dh                ; b8 0d 00
-    jmp near 04224h                           ; e9 e9 00
+    jmp near 04244h                           ; e9 e9 00
     mov es, [bp-016h]                         ; 8e 46 ea
     mov al, byte [es:si+001h]                 ; 26 8a 44 01
     cmp AL, strict byte 002h                  ; 3c 02
-    jc short 04153h                           ; 72 0d
-    jbe short 0416eh                          ; 76 26
+    jc short 04173h                           ; 72 0d
+    jbe short 0418eh                          ; 76 26
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 0417eh                           ; 74 32
+    je short 0419eh                           ; 74 32
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 04176h                           ; 74 26
-    jmp near 041cch                           ; e9 79 00
+    je short 04196h                           ; 74 26
+    jmp near 041ech                           ; e9 79 00
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 041cch                          ; 75 75
+    jne short 041ech                          ; 75 75
     mov es, [bp-016h]                         ; 8e 46 ea
     mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00
     mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00
     mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00
-    jmp short 041cch                          ; eb 5e
+    jmp short 041ech                          ; eb 5e
     mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00
-    jmp short 04160h                          ; eb ea
+    jmp short 04180h                          ; eb ea
     mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00
-    jmp short 04160h                          ; eb e2
+    jmp short 04180h                          ; eb e2
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01652h                               ; e8 cb d4
+    call 01652h                               ; e8 ab d4
     and AL, strict byte 03fh                  ; 24 3f
     xor ah, ah                                ; 30 e4
@@ -5888,5 +5901,5 @@
     mov dx, 001c4h                            ; ba c4 01
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01652h                               ; e8 b7 d4
+    call 01652h                               ; e8 97 d4
     and ax, 000c0h                            ; 25 c0 00
     mov bx, ax                                ; 89 c3
@@ -5895,5 +5908,5 @@
     mov dx, 001c5h                            ; ba c5 01
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01652h                               ; e8 a5 d4
+    call 01652h                               ; e8 85 d4
     xor ah, ah                                ; 30 e4
     add ax, bx                                ; 01 d8
@@ -5903,5 +5916,5 @@
     mov dx, 001c3h                            ; ba c3 01
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 01652h                               ; e8 90 d4
+    call 01652h                               ; e8 70 d4
     xor ah, ah                                ; 30 e4
     inc ax                                    ; 40
@@ -5910,10 +5923,10 @@
     mov es, [bp-016h]                         ; 8e 46 ea
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 0420dh                           ; 74 37
+    je short 0422dh                           ; 74 37
     cmp byte [es:si+002h], 000h               ; 26 80 7c 02 00
-    jne short 041f5h                          ; 75 18
+    jne short 04215h                          ; 75 18
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 6c d4
+    call 01652h                               ; e8 4c d4
     mov bl, al                                ; 88 c3
     or bl, 041h                               ; 80 cb 41
@@ -5921,8 +5934,8 @@
     mov dx, strict word 00010h                ; ba 10 00
     mov ax, strict word 00040h                ; b8 40 00
-    jmp short 0420ah                          ; eb 15
+    jmp short 0422ah                          ; eb 15
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01652h                               ; e8 54 d4
+    call 01652h                               ; e8 34 d4
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -5931,8 +5944,8 @@
     mov dx, 00304h                            ; ba 04 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01660h                               ; e8 53 d4
+    call 01660h                               ; e8 33 d4
     mov es, [bp-016h]                         ; 8e 46 ea
     cmp byte [es:si+001h], 000h               ; 26 80 7c 01 00
-    je short 0421bh                           ; 74 04
+    je short 0423bh                           ; 74 04
     mov byte [es:si], 001h                    ; 26 c6 04 01
     mov es, [bp-016h]                         ; 8e 46 ea
@@ -5948,10 +5961,10 @@
     retn                                      ; c3
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03eh, 046h, 02eh
-    db  043h, 063h, 043h, 088h, 043h, 058h, 043h, 088h, 043h, 058h, 043h, 087h, 045h, 06dh, 045h, 03eh
-    db  046h, 03eh, 046h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 035h, 046h, 06dh
-    db  045h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh
-    db  046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h
-_int13_cdemu:                                ; 0xf4287 LB 0x453
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 05eh, 046h, 04eh
+    db  043h, 083h, 043h, 0a8h, 043h, 078h, 043h, 0a8h, 043h, 078h, 043h, 0a7h, 045h, 08dh, 045h, 05eh
+    db  046h, 05eh, 046h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 055h, 046h, 08dh
+    db  045h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh
+    db  046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h
+_int13_cdemu:                                ; 0xf42a7 LB 0x453
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -5961,5 +5974,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 d6 d3
+    call 0166eh                               ; e8 b6 d3
     mov di, 00366h                            ; bf 66 03
     mov cx, ax                                ; 89 c1
@@ -5977,8 +5990,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 99 d3
+    call 01660h                               ; e8 79 d3
     mov es, cx                                ; 8e c1
     cmp byte [es:di], 000h                    ; 26 80 3d 00
-    je short 042deh                           ; 74 0f
+    je short 042feh                           ; 74 0f
     mov al, byte [es:di+002h]                 ; 26 8a 45 02
     xor ah, ah                                ; 30 e4
@@ -5986,9 +5999,9 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    je short 04308h                           ; 74 2a
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04328h                           ; 74 2a
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 4a d6
+    call 01933h                               ; e8 2a d6
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -6002,20 +6015,20 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 74 d6
+    call 01976h                               ; e8 54 d6
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04661h                           ; e9 59 03
+    jmp near 04681h                           ; e9 59 03
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 04385h                         ; 77 71
+    jnbe short 043a5h                         ; 77 71
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 0422eh                            ; bf 2e 42
+    mov di, 0424eh                            ; bf 4e 42
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0424bh]               ; 2e 8b 85 4b 42
+    mov ax, word [cs:di+0426bh]               ; 2e 8b 85 6b 42
     mov bx, word [bp+016h]                    ; 8b 5e 16
     xor bh, bh                                ; 30 ff
@@ -6031,16 +6044,16 @@
     sal bx, 1                                 ; d1 e3
     cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00
-    je short 04355h                           ; 74 09
+    je short 04375h                           ; 74 09
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
     call word [word bx+00076h]                ; ff 97 76 00
-    jmp near 0456dh                           ; e9 15 02
+    jmp near 0458dh                           ; e9 15 02
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04669h                           ; e9 06 03
+    jmp near 04689h                           ; e9 06 03
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 e6 d2
+    call 01652h                               ; e8 c6 d2
     mov cl, al                                ; 88 c1
     mov bh, al                                ; 88 c7
@@ -6049,9 +6062,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 e2 d2
+    call 01660h                               ; e8 c2 d2
     test cl, cl                               ; 84 c9
-    je short 043e7h                           ; 74 65
-    jmp near 0467ah                           ; e9 f5 02
-    jmp near 0463eh                           ; e9 b6 02
+    je short 04407h                           ; 74 65
+    jmp near 0469ah                           ; e9 f5 02
+    jmp near 0465eh                           ; e9 b6 02
     mov es, [bp-012h]                         ; 8e 46 ee
     mov di, word [es:si+014h]                 ; 26 8b 7c 14
@@ -6079,18 +6092,18 @@
     mov word [bp-014h], cx                    ; 89 4e ec
     test cx, cx                               ; 85 c9
-    je short 043f4h                           ; 74 1d
+    je short 04414h                           ; 74 1d
     cmp di, word [bp-00ah]                    ; 3b 7e f6
-    jc short 043e4h                           ; 72 08
+    jc short 04404h                           ; 72 08
     cmp ax, dx                                ; 39 d0
-    jnc short 043e4h                          ; 73 04
+    jnc short 04404h                          ; 73 04
     cmp bx, si                                ; 39 f3
-    jnbe short 043eah                         ; 77 06
-    jmp near 04661h                           ; e9 7a 02
-    jmp near 04571h                           ; e9 87 01
+    jnbe short 0440ah                         ; 77 06
+    jmp near 04681h                           ; e9 7a 02
+    jmp near 04591h                           ; e9 87 01
     mov dl, byte [bp+017h]                    ; 8a 56 17
     xor dh, dh                                ; 30 f6
     cmp dx, strict byte 00004h                ; 83 fa 04
-    jne short 043f7h                          ; 75 03
-    jmp near 0456dh                           ; e9 76 01
+    jne short 04417h                          ; 75 03
+    jmp near 0458dh                           ; e9 76 01
     mov CL, strict byte 004h                  ; b1 04
     mov dx, word [bp+010h]                    ; 8b 56 10
@@ -6105,5 +6118,5 @@
     xor dl, dl                                ; 30 d2
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 18 5d
+    call 0a150h                               ; e8 18 5d
     xor bx, bx                                ; 31 db
     add ax, si                                ; 01 f0
@@ -6111,5 +6124,5 @@
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 0b 5d
+    call 0a150h                               ; e8 0b 5d
     mov bx, ax                                ; 89 c3
     mov ax, word [bp-00ah]                    ; 8b 46 f6
@@ -6146,5 +6159,5 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-030h]                         ; 8d 46 d0
-    call 0a1a0h                               ; e8 24 5d
+    call 0a1c0h                               ; e8 24 5d
     mov word [bp-030h], strict word 00028h    ; c7 46 d0 28 00
     mov ax, word [bp-00eh]                    ; 8b 46 f2
@@ -6199,5 +6212,5 @@
     sal si, 1                                 ; d1 e6
     rcl di, 1                                 ; d1 d7
-    loop 04501h                               ; e2 fa
+    loop 04521h                               ; e2 fa
     push di                                   ; 57
     push si                                   ; 56
@@ -6215,9 +6228,9 @@
     mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00
     test al, al                               ; 84 c0
-    je short 0456dh                           ; 74 38
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 0458dh                           ; 74 38
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f3 d3
+    call 01933h                               ; e8 d3 d3
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -6231,5 +6244,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 1e d4
+    call 01976h                               ; e8 fe d3
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6238,10 +6251,10 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov byte [bp+016h], 000h                  ; c6 46 16 00
-    jmp near 0466ch                           ; e9 ff 00
+    jmp near 0468ch                           ; e9 ff 00
     mov byte [bp+017h], 000h                  ; c6 46 17 00
     xor bx, bx                                ; 31 db
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 e4 d0
+    call 01660h                               ; e8 c4 d0
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6293,33 +6306,33 @@
     mov word [bp+010h], cx                    ; 89 4e 10
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 04617h                           ; 74 1c
+    je short 04637h                           ; 74 1c
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0460fh                           ; 74 10
+    je short 0462fh                           ; 74 10
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 0461ch                          ; 75 19
+    jne short 0463ch                          ; 75 19
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor al, al                                ; 30 c0
     or AL, strict byte 002h                   ; 0c 02
     mov word [bp+010h], ax                    ; 89 46 10
-    jmp short 0461ch                          ; eb 0d
+    jmp short 0463ch                          ; eb 0d
     or cl, 004h                               ; 80 c9 04
     mov word [bp+010h], cx                    ; 89 4e 10
-    jmp short 0461ch                          ; eb 05
+    jmp short 0463ch                          ; eb 05
     or cl, 005h                               ; 80 c9 05
-    jmp short 04612h                          ; eb f6
+    jmp short 04632h                          ; eb f6
     mov es, [bp-012h]                         ; 8e 46 ee
     cmp byte [es:si+001h], 004h               ; 26 80 7c 01 04
-    jc short 04629h                           ; 72 03
-    jmp near 0456dh                           ; e9 44 ff
+    jc short 04649h                           ; 72 03
+    jmp near 0458dh                           ; e9 44 ff
     mov word [bp+008h], 0efc7h                ; c7 46 08 c7 ef
     mov word [bp+006h], 0f000h                ; c7 46 06 00 f0
-    jmp short 04626h                          ; eb f1
+    jmp short 04646h                          ; eb f1
     or bh, 003h                               ; 80 cf 03
     mov word [bp+016h], bx                    ; 89 5e 16
-    jmp near 04571h                           ; e9 33 ff
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 04591h                           ; e9 33 ff
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 ea d2
+    call 01933h                               ; e8 ca d2
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -6331,5 +6344,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 18 d3
+    call 01976h                               ; e8 f8 d2
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -6341,14 +6354,14 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 e6 cf
+    call 01660h                               ; e8 c6 cf
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 04580h                           ; e9 ff fe
+    jmp near 045a0h                           ; e9 ff fe
     db  050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h
-    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0c3h, 047h, 008h
-    db  04ch, 085h, 047h, 0c3h, 047h, 07ah, 047h, 0c3h, 047h, 07ah, 047h, 0c3h, 047h, 008h, 04ch, 0c3h
-    db  047h, 0c3h, 047h, 008h, 04ch, 008h, 04ch, 008h, 04ch, 008h, 04ch, 008h, 04ch, 0a7h, 047h, 008h
-    db  04ch, 0c3h, 047h, 0b0h, 047h, 0e1h, 047h, 07ah, 047h, 0e1h, 047h, 02ah, 049h, 0cah, 049h, 0e1h
-    db  047h, 0f4h, 049h, 022h, 04ch, 02ah, 04ch, 0c3h, 047h
-_int13_cdrom:                                ; 0xf46da LB 0x585
+    db  010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e3h, 047h, 028h
+    db  04ch, 0a5h, 047h, 0e3h, 047h, 09ah, 047h, 0e3h, 047h, 09ah, 047h, 0e3h, 047h, 028h, 04ch, 0e3h
+    db  047h, 0e3h, 047h, 028h, 04ch, 028h, 04ch, 028h, 04ch, 028h, 04ch, 028h, 04ch, 0c7h, 047h, 028h
+    db  04ch, 0e3h, 047h, 0d0h, 047h, 001h, 048h, 09ah, 047h, 001h, 048h, 04ah, 049h, 0eah, 049h, 001h
+    db  048h, 014h, 04ah, 042h, 04ch, 04ah, 04ch, 0e3h, 047h
+_int13_cdrom:                                ; 0xf46fa LB 0x585
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6358,5 +6371,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 83 cf
+    call 0166eh                               ; e8 63 cf
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-00eh], 00122h                ; c7 46 f2 22 01
@@ -6365,11 +6378,11 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 5f cf
+    call 01660h                               ; e8 3f cf
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
     cmp ax, 000e0h                            ; 3d e0 00
-    jc short 04710h                           ; 72 05
+    jc short 04730h                           ; 72 05
     cmp ax, 000f0h                            ; 3d f0 00
-    jc short 0472fh                           ; 72 1f
+    jc short 0474fh                           ; 72 1f
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6383,7 +6396,7 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4d d2
+    call 01976h                               ; e8 2d d2
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 04c40h                           ; e9 11 05
+    jmp near 04c60h                           ; e9 11 05
     mov ax, word [bp+010h]                    ; 8b 46 10
     xor ah, ah                                ; 30 e4
@@ -6393,5 +6406,5 @@
     mov byte [bp-008h], dl                    ; 88 56 f8
     cmp dl, 010h                              ; 80 fa 10
-    jc short 04754h                           ; 72 0e
+    jc short 04774h                           ; 72 0e
     push ax                                   ; 50
     mov al, byte [bp+019h]                    ; 8a 46 19
@@ -6400,18 +6413,18 @@
     push ax                                   ; 50
     mov ax, 00416h                            ; b8 16 04
-    jmp short 04721h                          ; eb cd
+    jmp short 04741h                          ; eb cd
     mov al, byte [bp+019h]                    ; 8a 46 19
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00050h                ; 3d 50 00
-    jnbe short 047c3h                         ; 77 63
+    jnbe short 047e3h                         ; 77 63
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0001eh                ; b9 1e 00
-    mov di, 04681h                            ; bf 81 46
+    mov di, 046a1h                            ; bf a1 46
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0469eh]               ; 2e 8b 85 9e 46
+    mov ax, word [cs:di+046beh]               ; 2e 8b 85 be 46
     mov bx, word [bp+018h]                    ; 8b 5e 18
     xor bh, bh                                ; 30 ff
@@ -6420,8 +6433,8 @@
     xor ah, ah                                ; 30 e4
     or ah, 003h                               ; 80 cc 03
-    jmp near 04c48h                           ; e9 c3 04
+    jmp near 04c68h                           ; e9 c3 04
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 c4 ce
+    call 01652h                               ; e8 a4 ce
     mov cl, al                                ; 88 c1
     mov bh, al                                ; 88 c7
@@ -6430,20 +6443,20 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 c0 ce
+    call 01660h                               ; e8 a0 ce
     test cl, cl                               ; 84 c9
-    je short 047c0h                           ; 74 1c
-    jmp near 04c59h                           ; e9 b2 04
+    je short 047e0h                           ; 74 1c
+    jmp near 04c79h                           ; e9 b2 04
     or bh, 002h                               ; 80 cf 02
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp near 04c4bh                           ; e9 9b 04
+    jmp near 04c6bh                           ; e9 9b 04
     mov word [bp+012h], 0aa55h                ; c7 46 12 55 aa
     or bh, 030h                               ; 80 cf 30
     mov word [bp+018h], bx                    ; 89 5e 18
     mov word [bp+016h], strict word 00007h    ; c7 46 16 07 00
-    jmp near 04c0ch                           ; e9 49 04
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 04c2ch                           ; e9 49 04
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 65 d1
+    call 01933h                               ; e8 45 d1
     mov al, byte [bp+019h]                    ; 8a 46 19
     xor ah, ah                                ; 30 e4
@@ -6454,5 +6467,5 @@
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 04822h                          ; eb 41
+    jmp short 04842h                          ; eb 41
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov es, [bp+006h]                         ; 8e 46 06
@@ -6469,5 +6482,5 @@
     mov word [bp-012h], ax                    ; 89 46 ee
     or ax, word [bp-014h]                     ; 0b 46 ec
-    je short 0482ch                           ; 74 1b
+    je short 0484ch                           ; 74 1b
     mov al, byte [bp+019h]                    ; 8a 46 19
     xor ah, ah                                ; 30 e4
@@ -6479,7 +6492,7 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 50 d1
+    call 01976h                               ; e8 30 d1
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 04c40h                           ; e9 14 04
+    jmp near 04c60h                           ; e9 14 04
     mov es, [bp-020h]                         ; 8e 46 e0
     mov ax, word [es:di+008h]                 ; 26 8b 45 08
@@ -6492,13 +6505,13 @@
     mov ax, word [bp-010h]                    ; 8b 46 f0
     cmp ax, strict word 00044h                ; 3d 44 00
-    je short 04854h                           ; 74 05
+    je short 04874h                           ; 74 05
     cmp ax, strict word 00047h                ; 3d 47 00
-    jne short 04857h                          ; 75 03
-    jmp near 04c08h                           ; e9 b1 03
+    jne short 04877h                          ; 75 03
+    jmp near 04c28h                           ; e9 b1 03
     mov cx, strict word 0000ch                ; b9 0c 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-02eh]                         ; 8d 46 d2
-    call 0a1a0h                               ; e8 3c 59
+    call 0a1c0h                               ; e8 3c 59
     mov word [bp-02eh], strict word 00028h    ; c7 46 d2 28 00
     mov ax, word [bp-014h]                    ; 8b 46 ec
@@ -6533,5 +6546,5 @@
     sal bx, 1                                 ; d1 e3
     rcl si, 1                                 ; d1 d6
-    loop 048b6h                               ; e2 fa
+    loop 048d6h                               ; e2 fa
     push si                                   ; 56
     push bx                                   ; 53
@@ -6552,13 +6565,13 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 048e6h                               ; e2 fa
+    loop 04906h                               ; e2 fa
     mov es, [bp-020h]                         ; 8e 46 e0
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp byte [bp-016h], 000h                  ; 80 7e ea 00
-    je short 04950h                           ; 74 57
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04970h                           ; 74 57
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 2f d0
+    call 01933h                               ; e8 0f d0
     mov al, byte [bp-016h]                    ; 8a 46 ea
     xor ah, ah                                ; 30 e4
@@ -6571,12 +6584,12 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 5a d0
+    call 01976h                               ; e8 3a d0
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 04c48h                           ; e9 1e 03
+    jmp near 04c68h                           ; e9 1e 03
     cmp bx, strict byte 00002h                ; 83 fb 02
-    jnbe short 0499bh                         ; 77 6c
+    jnbe short 049bbh                         ; 77 6c
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -6587,12 +6600,12 @@
     mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 049b3h                           ; 74 6c
+    je short 049d3h                           ; 74 6c
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 0498bh                           ; 74 3f
+    je short 049abh                           ; 74 3f
     test bx, bx                               ; 85 db
-    je short 04953h                           ; 74 03
-    jmp near 04c08h                           ; e9 b5 02
+    je short 04973h                           ; 74 03
+    jmp near 04c28h                           ; e9 b5 02
     cmp cl, 0ffh                              ; 80 f9 ff
-    jne short 0496ah                          ; 75 12
+    jne short 0498ah                          ; 75 12
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6601,5 +6614,5 @@
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 04c48h                           ; e9 de 02
+    jmp near 04c68h                           ; e9 de 02
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -6615,12 +6628,12 @@
     or AL, strict byte 001h                   ; 0c 01
     mov word [bp+018h], ax                    ; 89 46 18
-    jmp short 04950h                          ; eb c5
+    jmp short 04970h                          ; eb c5
     test cl, cl                               ; 84 c9
-    jne short 0499eh                          ; 75 0f
+    jne short 049beh                          ; 75 0f
     or bh, 0b0h                               ; 80 cf b0
     mov word [bp+018h], bx                    ; 89 5e 18
     mov byte [bp+018h], cl                    ; 88 4e 18
-    jmp near 04c4bh                           ; e9 b0 02
-    jmp near 04c40h                           ; e9 a2 02
+    jmp near 04c6bh                           ; e9 b0 02
+    jmp near 04c60h                           ; e9 a2 02
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -6633,5 +6646,5 @@
     mov byte [es:bx+025h], cl                 ; 26 88 4f 25
     test cl, cl                               ; 84 c9
-    jne short 049c5h                          ; 75 0e
+    jne short 049e5h                          ; 75 0e
     xor ax, ax                                ; 31 c0
     mov dx, word [bp+018h]                    ; 8b 56 18
@@ -6639,7 +6652,7 @@
     or dx, ax                                 ; 09 c2
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 04950h                          ; eb 8b
+    jmp short 04970h                          ; eb 8b
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 049b9h                          ; eb ef
+    jmp short 049d9h                          ; eb ef
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -6650,12 +6663,12 @@
     mov cl, byte [es:si+025h]                 ; 26 8a 4c 25
     test cl, cl                               ; 84 c9
-    je short 049e7h                           ; 74 06
+    je short 04a07h                           ; 74 06
     or bh, 0b1h                               ; 80 cf b1
-    jmp near 047aah                           ; e9 c3 fd
-    je short 04a0eh                           ; 74 25
+    jmp near 047cah                           ; e9 c3 fd
+    je short 04a2eh                           ; 74 25
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
     or ah, 0b1h                               ; 80 cc b1
-    jmp near 04c48h                           ; e9 54 02
+    jmp near 04c68h                           ; e9 54 02
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -6666,8 +6679,8 @@
     mov word [bp-01eh], ax                    ; 89 46 e2
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 04a11h                          ; 73 05
-    jmp short 0499bh                          ; eb 8d
-    jmp near 04c08h                           ; e9 f7 01
-    jc short 04a73h                           ; 72 60
+    jnc short 04a31h                          ; 73 05
+    jmp short 049bbh                          ; eb 8d
+    jmp near 04c28h                           ; e9 f7 01
+    jc short 04a93h                           ; 72 60
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -6692,6 +6705,6 @@
     mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff
     cmp word [bp-01eh], strict byte 0001eh    ; 83 7e e2 1e
-    jnc short 04a7ch                          ; 73 03
-    jmp near 04b3ch                           ; e9 c0 00
+    jnc short 04a9ch                          ; 73 03
+    jmp near 04b5ch                           ; e9 c0 00
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:si], strict word 0001eh      ; 26 c7 04 1e 00
@@ -6738,7 +6751,7 @@
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 04b1ch                          ; eb 05
+    jmp short 04b3ch                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 04b32h                          ; 73 16
+    jnc short 04b52h                          ; 73 16
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -6746,15 +6759,15 @@
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01652h                               ; e8 26 cb
+    call 01652h                               ; e8 06 cb
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 04b17h                          ; eb e5
+    jmp short 04b37h                          ; eb e5
     neg bl                                    ; f6 db
     les di, [bp-00eh]                         ; c4 7e f2
     mov byte [es:di+00243h], bl               ; 26 88 9d 43 02
     cmp word [bp-01eh], strict byte 00042h    ; 83 7e e2 42
-    jnc short 04b45h                          ; 73 03
-    jmp near 04c08h                           ; e9 c3 00
+    jnc short 04b65h                          ; 73 03
+    jmp near 04c28h                           ; e9 c3 00
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -6776,5 +6789,5 @@
     mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00
     test al, al                               ; 84 c0
-    jne short 04b8fh                          ; 75 0c
+    jne short 04bafh                          ; 75 0c
     mov word [es:si+024h], 05349h             ; 26 c7 44 24 49 53
     mov word [es:si+026h], 02041h             ; 26 c7 44 26 41 20
@@ -6785,5 +6798,5 @@
     mov word [es:si+02eh], 02020h             ; 26 c7 44 2e 20 20
     test al, al                               ; 84 c0
-    jne short 04bc4h                          ; 75 16
+    jne short 04be4h                          ; 75 16
     mov word [es:si+030h], dx                 ; 26 89 54 30
     mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00
@@ -6800,7 +6813,7 @@
     xor al, al                                ; 30 c0
     mov AH, strict byte 01eh                  ; b4 1e
-    jmp short 04befh                          ; eb 05
+    jmp short 04c0fh                          ; eb 05
     cmp ah, 040h                              ; 80 fc 40
-    jnc short 04bffh                          ; 73 10
+    jnc short 04c1fh                          ; 73 10
     mov bl, ah                                ; 88 e3
     xor bh, bh                                ; 30 ff
@@ -6810,5 +6823,5 @@
     db  0feh, 0c4h
     ; inc ah                                    ; fe c4
-    jmp short 04beah                          ; eb eb
+    jmp short 04c0ah                          ; eb eb
     neg al                                    ; f6 d8
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -6818,5 +6831,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 49 ca
+    call 01660h                               ; e8 29 ca
     and byte [bp+01eh], 0feh                  ; 80 66 1e fe
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -6827,14 +6840,14 @@
     or bh, 006h                               ; 80 cf 06
     mov word [bp+018h], bx                    ; 89 5e 18
-    jmp short 04c59h                          ; eb 2f
+    jmp short 04c79h                          ; eb 2f
     cmp bx, strict byte 00006h                ; 83 fb 06
-    je short 04c08h                           ; 74 d9
+    je short 04c28h                           ; 74 d9
     cmp bx, strict byte 00001h                ; 83 fb 01
-    jc short 04c40h                           ; 72 0c
-    jbe short 04c08h                          ; 76 d2
+    jc short 04c60h                           ; 72 0c
+    jbe short 04c28h                          ; 76 d2
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 04c40h                           ; 72 05
+    jc short 04c60h                           ; 72 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 04c08h                          ; 76 c8
+    jbe short 04c28h                          ; 76 c8
     mov ax, word [bp+018h]                    ; 8b 46 18
     xor ah, ah                                ; 30 e4
@@ -6845,34 +6858,34 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 07 ca
+    call 01660h                               ; e8 e7 c9
     or byte [bp+01eh], 001h                   ; 80 4e 1e 01
-    jmp short 04c1bh                          ; eb bc
-print_boot_device_:                          ; 0xf4c5f LB 0x51
+    jmp short 04c3bh                          ; eb bc
+print_boot_device_:                          ; 0xf4c7f LB 0x51
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     push cx                                   ; 51
     test al, al                               ; 84 c0
-    je short 04c6ch                           ; 74 05
+    je short 04c8ch                           ; 74 05
     mov dx, strict word 00002h                ; ba 02 00
-    jmp short 04c86h                          ; eb 1a
+    jmp short 04ca6h                          ; eb 1a
     test dl, dl                               ; 84 d2
-    je short 04c75h                           ; 74 05
+    je short 04c95h                           ; 74 05
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 04c86h                          ; eb 11
+    jmp short 04ca6h                          ; eb 11
     test bl, 080h                             ; f6 c3 80
-    jne short 04c7eh                          ; 75 04
+    jne short 04c9eh                          ; 75 04
     xor dh, dh                                ; 30 f6
-    jmp short 04c86h                          ; eb 08
+    jmp short 04ca6h                          ; eb 08
     test bl, 080h                             ; f6 c3 80
-    je short 04caah                           ; 74 27
+    je short 04ccah                           ; 74 27
     mov dx, strict word 00001h                ; ba 01 00
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 a2 cc
+    call 01933h                               ; e8 82 cc
     mov ax, dx                                ; 89 d0
     mov dx, strict word 0000ah                ; ba 0a 00
     imul dx                                   ; f7 ea
-    add ax, 00dcah                            ; 05 ca 0d
+    add ax, 00dc6h                            ; 05 c6 0d
     push ax                                   ; 50
     mov ax, 00494h                            ; b8 94 04
@@ -6880,5 +6893,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 cf cc
+    call 01976h                               ; e8 af cc
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6886,5 +6899,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_boot_failure_:                         ; 0xf4cb0 LB 0x9f
+print_boot_failure_:                         ; 0xf4cd0 LB 0x9f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6896,10 +6909,10 @@
     mov si, cx                                ; 89 ce
     test al, al                               ; 84 c0
-    je short 04ce2h                           ; 74 1f
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04d02h                           ; 74 1f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 65 cc
-    mov cx, 00ddeh                            ; b9 de 0d
+    call 01933h                               ; e8 45 cc
+    mov cx, 00ddah                            ; b9 da 0d
     push cx                                   ; 51
     mov cx, 004a8h                            ; b9 a8 04
@@ -6907,30 +6920,30 @@
     mov cx, strict word 00004h                ; b9 04 00
     push cx                                   ; 51
-    call 01976h                               ; e8 99 cc
+    call 01976h                               ; e8 79 cc
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 04d2ah                          ; eb 48
+    jmp short 04d4ah                          ; eb 48
     test dl, dl                               ; 84 d2
-    je short 04cf6h                           ; 74 10
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04d16h                           ; 74 10
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 42 cc
-    mov cx, 00de8h                            ; b9 e8 0d
-    jmp short 04cd1h                          ; eb db
+    call 01933h                               ; e8 22 cc
+    mov cx, 00de4h                            ; b9 e4 0d
+    jmp short 04cf1h                          ; eb db
     test bl, 080h                             ; f6 c3 80
-    je short 04d0ch                           ; 74 11
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 04d2ch                           ; 74 11
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 2d cc
+    call 01933h                               ; e8 0d cc
     push si                                   ; 56
-    mov cx, 00dd4h                            ; b9 d4 0d
-    jmp short 04d1bh                          ; eb 0f
-    mov bx, 00da4h                            ; bb a4 0d
+    mov cx, 00dd0h                            ; b9 d0 0d
+    jmp short 04d3bh                          ; eb 0f
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 1c cc
+    call 01933h                               ; e8 fc cb
     push si                                   ; 56
-    mov cx, 00dcah                            ; b9 ca 0d
+    mov cx, 00dc6h                            ; b9 c6 0d
     push cx                                   ; 51
     mov cx, 004bdh                            ; b9 bd 04
@@ -6938,17 +6951,17 @@
     mov cx, strict word 00004h                ; b9 04 00
     push cx                                   ; 51
-    call 01976h                               ; e8 4f cc
+    call 01976h                               ; e8 2f cc
     add sp, strict byte 00008h                ; 83 c4 08
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04d47h                          ; 75 17
+    jne short 04d67h                          ; 75 17
     test dh, dh                               ; 84 f6
-    jne short 04d39h                          ; 75 05
+    jne short 04d59h                          ; 75 05
     mov dx, 004d5h                            ; ba d5 04
-    jmp short 04d3ch                          ; eb 03
+    jmp short 04d5ch                          ; eb 03
     mov dx, 004ffh                            ; ba ff 04
     push dx                                   ; 52
     mov dx, strict word 00007h                ; ba 07 00
     push dx                                   ; 52
-    call 01976h                               ; e8 32 cc
+    call 01976h                               ; e8 12 cc
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -6956,5 +6969,5 @@
     pop bp                                    ; 5d
     retn 00002h                               ; c2 02 00
-print_cdromboot_failure_:                    ; 0xf4d4f LB 0x2a
+print_cdromboot_failure_:                    ; 0xf4d6f LB 0x2a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6963,8 +6976,8 @@
     push dx                                   ; 52
     mov dx, ax                                ; 89 c2
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 d1 cb
+    call 01933h                               ; e8 b1 cb
     push dx                                   ; 52
     mov dx, 00534h                            ; ba 34 05
@@ -6972,5 +6985,5 @@
     mov dx, strict word 00004h                ; ba 04 00
     push dx                                   ; 52
-    call 01976h                               ; e8 08 cc
+    call 01976h                               ; e8 e8 cb
     add sp, strict byte 00006h                ; 83 c4 06
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -6980,5 +6993,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int19_function:                             ; 0xf4d79 LB 0x28d
+_int19_function:                             ; 0xf4d99 LB 0x28d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -6988,15 +7001,15 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 e4 c8
+    call 0166eh                               ; e8 c4 c8
     mov bx, ax                                ; 89 c3
     mov di, ax                                ; 89 c7
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
     mov ax, strict word 0003dh                ; b8 3d 00
-    call 016aeh                               ; e8 16 c9
+    call 016aeh                               ; e8 f6 c8
     mov dl, al                                ; 88 c2
     xor dh, dh                                ; 30 f6
     mov word [bp-00eh], dx                    ; 89 56 f2
     mov ax, strict word 00038h                ; b8 38 00
-    call 016aeh                               ; e8 09 c9
+    call 016aeh                               ; e8 e9 c8
     and AL, strict byte 0f0h                  ; 24 f0
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7008,5 +7021,5 @@
     mov word [bp-00eh], dx                    ; 89 56 f2
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016aeh                               ; e8 ef c8
+    call 016aeh                               ; e8 cf c8
     and AL, strict byte 00fh                  ; 24 0f
     xor ah, ah                                ; 30 e4
@@ -7016,36 +7029,36 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01652h                               ; e8 80 c8
+    call 01652h                               ; e8 60 c8
     test al, al                               ; 84 c0
-    je short 04de3h                           ; 74 0d
+    je short 04e03h                           ; 74 0d
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, bx                                ; 89 d8
-    call 01652h                               ; e8 74 c8
+    call 01652h                               ; e8 54 c8
     xor ah, ah                                ; 30 e4
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp byte [bp+004h], 001h                  ; 80 7e 04 01
-    jne short 04dfah                          ; 75 11
+    jne short 04e1ah                          ; 75 11
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 016aeh                               ; e8 bf c8
+    call 016aeh                               ; e8 9f c8
     and AL, strict byte 0f0h                  ; 24 f0
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 004h                  ; b1 04
     sar ax, CL                                ; d3 f8
-    call 07e1dh                               ; e8 23 30
+    call 07e3dh                               ; e8 23 30
     cmp byte [bp+004h], 002h                  ; 80 7e 04 02
-    jne short 04e05h                          ; 75 05
+    jne short 04e25h                          ; 75 05
     mov CL, strict byte 004h                  ; b1 04
     shr word [bp-00eh], CL                    ; d3 6e f2
     cmp byte [bp+004h], 003h                  ; 80 7e 04 03
-    jne short 04e13h                          ; 75 08
+    jne short 04e33h                          ; 75 08
     mov al, byte [bp-00dh]                    ; 8a 46 f3
     xor ah, ah                                ; 30 e4
     mov word [bp-00eh], ax                    ; 89 46 f2
     cmp byte [bp+004h], 004h                  ; 80 7e 04 04
-    jne short 04e1eh                          ; 75 05
+    jne short 04e3eh                          ; 75 05
     mov CL, strict byte 00ch                  ; b1 0c
     shr word [bp-00eh], CL                    ; d3 6e f2
     cmp word [bp-00eh], strict byte 00010h    ; 83 7e f2 10
-    jnc short 04e28h                          ; 73 04
+    jnc short 04e48h                          ; 73 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     xor al, al                                ; 30 c0
@@ -7053,8 +7066,8 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     mov byte [bp-00ah], al                    ; 88 46 f6
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f5 ca
+    call 01933h                               ; e8 d5 ca
     push word [bp-00eh]                       ; ff 76 f2
     mov al, byte [bp+004h]                    ; 8a 46 04
@@ -7065,40 +7078,40 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 24 cb
+    call 01976h                               ; e8 04 cb
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     and ax, strict word 0000fh                ; 25 0f 00
     cmp ax, strict word 00002h                ; 3d 02 00
-    jc short 04e6eh                           ; 72 0e
-    jbe short 04e7dh                          ; 76 1b
+    jc short 04e8eh                           ; 72 0e
+    jbe short 04e9dh                          ; 76 1b
     cmp ax, strict word 00004h                ; 3d 04 00
-    je short 04e9ah                           ; 74 33
+    je short 04ebah                           ; 74 33
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 04e90h                           ; 74 24
-    jmp short 04ec9h                          ; eb 5b
+    je short 04eb0h                           ; 74 24
+    jmp short 04ee9h                          ; eb 5b
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 04ec9h                          ; 75 56
+    jne short 04ee9h                          ; 75 56
     xor al, al                                ; 30 c0
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], al                    ; 88 46 f8
-    jmp short 04eddh                          ; eb 60
+    jmp short 04efdh                          ; eb 60
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, di                                ; 89 f8
-    call 01652h                               ; e8 cd c7
+    call 01652h                               ; e8 ad c7
     add AL, strict byte 080h                  ; 04 80
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
-    jmp short 04eddh                          ; eb 4d
+    jmp short 04efdh                          ; eb 4d
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov byte [bp-008h], 001h                  ; c6 46 f8 01
-    jmp short 04ea4h                          ; eb 0a
+    jmp short 04ec4h                          ; eb 0a
     mov byte [bp-00ah], 001h                  ; c6 46 f6 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04eddh                           ; 74 39
-    call 03e49h                               ; e8 a2 ef
+    je short 04efdh                           ; 74 39
+    call 03e69h                               ; e8 a2 ef
     mov bx, ax                                ; 89 c3
     test AL, strict byte 0ffh                 ; a8 ff
-    je short 04ed0h                           ; 74 23
-    call 04d4fh                               ; e8 9f fe
+    je short 04ef0h                           ; 74 23
+    call 04d6fh                               ; e8 9f fe
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -7110,33 +7123,33 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov cx, strict word 00001h                ; b9 01 00
-    call 04cb0h                               ; e8 e7 fd
+    call 04cd0h                               ; e8 e7 fd
     xor ax, ax                                ; 31 c0
     xor dx, dx                                ; 31 d2
-    jmp near 04fffh                           ; e9 2f 01
+    jmp near 0501fh                           ; e9 2f 01
     mov dx, 00372h                            ; ba 72 03
     mov ax, di                                ; 89 f8
-    call 0166eh                               ; e8 96 c7
+    call 0166eh                               ; e8 76 c7
     mov si, ax                                ; 89 c6
     mov byte [bp-006h], bh                    ; 88 7e fa
     cmp byte [bp-00ah], 001h                  ; 80 7e f6 01
-    jne short 04f38h                          ; 75 55
+    jne short 04f58h                          ; 75 55
     xor si, si                                ; 31 f6
     mov ax, 0e200h                            ; b8 00 e2
     mov es, ax                                ; 8e c0
     cmp word [es:si], 0aa55h                  ; 26 81 3c 55 aa
-    jne short 04eb0h                          ; 75 bf
+    jne short 04ed0h                          ; 75 bf
     mov cx, ax                                ; 89 c1
     mov si, word [es:si+01ah]                 ; 26 8b 74 1a
     cmp word [es:si+002h], 0506eh             ; 26 81 7c 02 6e 50
-    jne short 04eb0h                          ; 75 b1
+    jne short 04ed0h                          ; 75 b1
     cmp word [es:si], 05024h                  ; 26 81 3c 24 50
-    jne short 04eb0h                          ; 75 aa
+    jne short 04ed0h                          ; 75 aa
     mov bx, word [es:si+00eh]                 ; 26 8b 5c 0e
     mov dx, word [es:bx]                      ; 26 8b 17
     mov ax, word [es:bx+002h]                 ; 26 8b 47 02
     cmp ax, 06568h                            ; 3d 68 65
-    jne short 04f3ah                          ; 75 24
+    jne short 04f5ah                          ; 75 24
     cmp dx, 07445h                            ; 81 fa 45 74
-    jne short 04f3ah                          ; 75 1e
+    jne short 04f5ah                          ; 75 1e
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7145,9 +7158,9 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04c5fh                               ; e8 31 fd
+    call 04c7fh                               ; e8 31 fd
     mov word [bp-014h], strict word 00006h    ; c7 46 ec 06 00
     mov word [bp-012h], cx                    ; 89 4e ee
-    jmp short 04f59h                          ; eb 21
-    jmp short 04f5fh                          ; eb 25
+    jmp short 04f79h                          ; eb 21
+    jmp short 04f7fh                          ; eb 25
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7156,5 +7169,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04c5fh                               ; e8 13 fd
+    call 04c7fh                               ; e8 13 fd
     sti                                       ; fb
     mov word [bp-012h], cx                    ; 89 4e ee
@@ -7163,9 +7176,9 @@
     mov word [bp-014h], ax                    ; 89 46 ec
     call far [bp-014h]                        ; ff 5e ec
-    jmp near 04eb0h                           ; e9 51 ff
+    jmp near 04ed0h                           ; e9 51 ff
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    jne short 04f8ch                          ; 75 27
+    jne short 04fach                          ; 75 27
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    jne short 04f8ch                          ; 75 21
+    jne short 04fach                          ; 75 21
     mov si, 007c0h                            ; be c0 07
     mov es, si                                ; 8e c6
@@ -7180,30 +7193,30 @@
     sbb ax, strict byte 00000h                ; 83 d8 00
     test ax, ax                               ; 85 c0
-    je short 04f8ch                           ; 74 03
-    jmp near 04eb0h                           ; e9 24 ff
+    je short 04fach                           ; 74 03
+    jmp near 04ed0h                           ; e9 24 ff
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 04f96h                           ; 74 04
+    je short 04fb6h                           ; 74 04
     xor bl, bl                                ; 30 db
-    jmp short 04f98h                          ; eb 02
+    jmp short 04fb8h                          ; eb 02
     mov BL, strict byte 001h                  ; b3 01
     cmp byte [bp-008h], 000h                  ; 80 7e f8 00
-    je short 04fa0h                           ; 74 02
+    je short 04fc0h                           ; 74 02
     mov BL, strict byte 001h                  ; b3 01
     xor dx, dx                                ; 31 d2
     mov ax, si                                ; 89 f0
-    call 0166eh                               ; e8 c7 c6
+    call 0166eh                               ; e8 a7 c6
     mov di, ax                                ; 89 c7
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, si                                ; 89 f0
-    call 0166eh                               ; e8 bd c6
+    call 0166eh                               ; e8 9d c6
     cmp di, ax                                ; 39 c7
-    je short 04fc6h                           ; 74 11
+    je short 04fe6h                           ; 74 11
     test bl, bl                               ; 84 db
-    jne short 04fdeh                          ; 75 25
+    jne short 04ffeh                          ; 75 25
     mov dx, 001feh                            ; ba fe 01
     mov ax, si                                ; 89 f0
-    call 0166eh                               ; e8 ad c6
+    call 0166eh                               ; e8 8d c6
     cmp ax, 0aa55h                            ; 3d 55 aa
-    je short 04fdeh                           ; 74 18
+    je short 04ffeh                           ; 74 18
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor ah, ah                                ; 30 e4
@@ -7215,5 +7228,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor cx, cx                                ; 31 c9
-    jmp near 04ec6h                           ; e9 e8 fe
+    jmp near 04ee6h                           ; e9 e8 fe
     mov bl, byte [bp-006h]                    ; 8a 5e fa
     xor bh, bh                                ; 30 ff
@@ -7222,5 +7235,5 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
-    call 04c5fh                               ; e8 6f fc
+    call 04c7fh                               ; e8 6f fc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -7235,5 +7248,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-keyboard_panic_:                             ; 0xf5006 LB 0x16
+keyboard_panic_:                             ; 0xf5026 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7243,10 +7256,10 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 61 c9
+    call 01976h                               ; e8 41 c9
     add sp, strict byte 00006h                ; 83 c4 06
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-_keyboard_init:                              ; 0xf501c LB 0x26a
+_keyboard_init:                              ; 0xf503c LB 0x26a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7260,16 +7273,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0503fh                           ; 74 0d
+    je short 0505fh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0503fh                          ; 76 08
+    jbe short 0505fh                          ; 76 08
     xor al, al                                ; 30 c0
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05028h                          ; eb e9
+    jmp short 05048h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05048h                          ; 75 05
+    jne short 05068h                          ; 75 05
     xor ax, ax                                ; 31 c0
-    call 05006h                               ; e8 be ff
+    call 05026h                               ; e8 be ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7278,16 +7291,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05062h                          ; 75 0d
+    jne short 05082h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05062h                          ; 76 08
+    jbe short 05082h                          ; 76 08
     mov AL, strict byte 001h                  ; b0 01
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0504bh                          ; eb e9
+    jmp short 0506bh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0506ch                          ; 75 06
+    jne short 0508ch                          ; 75 06
     mov ax, strict word 00001h                ; b8 01 00
-    call 05006h                               ; e8 9a ff
+    call 05026h                               ; e8 9a ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7295,7 +7308,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, strict word 00055h                ; 3d 55 00
-    je short 0507dh                           ; 74 06
+    je short 0509dh                           ; 74 06
     mov ax, 003dfh                            ; b8 df 03
-    call 05006h                               ; e8 89 ff
+    call 05026h                               ; e8 89 ff
     mov AL, strict byte 0abh                  ; b0 ab
     mov dx, strict word 00064h                ; ba 64 00
@@ -7307,16 +7320,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0509dh                           ; 74 0d
+    je short 050bdh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0509dh                          ; 76 08
+    jbe short 050bdh                          ; 76 08
     mov AL, strict byte 010h                  ; b0 10
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05086h                          ; eb e9
+    jmp short 050a6h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050a7h                          ; 75 06
+    jne short 050c7h                          ; 75 06
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 05006h                               ; e8 5f ff
+    call 05026h                               ; e8 5f ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7325,16 +7338,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 050c1h                          ; 75 0d
+    jne short 050e1h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050c1h                          ; 76 08
+    jbe short 050e1h                          ; 76 08
     mov AL, strict byte 011h                  ; b0 11
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050aah                          ; eb e9
+    jmp short 050cah                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 050cbh                          ; 75 06
+    jne short 050ebh                          ; 75 06
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 05006h                               ; e8 3b ff
+    call 05026h                               ; e8 3b ff
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7342,7 +7355,7 @@
     ; sub ah, ah                                ; 2a e4
     test ax, ax                               ; 85 c0
-    je short 050dbh                           ; 74 06
+    je short 050fbh                           ; 74 06
     mov ax, 003e0h                            ; b8 e0 03
-    call 05006h                               ; e8 2b ff
+    call 05026h                               ; e8 2b ff
     mov AL, strict byte 0ffh                  ; b0 ff
     mov dx, strict word 00060h                ; ba 60 00
@@ -7354,16 +7367,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 050fbh                           ; 74 0d
+    je short 0511bh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 050fbh                          ; 76 08
+    jbe short 0511bh                          ; 76 08
     mov AL, strict byte 020h                  ; b0 20
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 050e4h                          ; eb e9
+    jmp short 05104h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05105h                          ; 75 06
+    jne short 05125h                          ; 75 06
     mov ax, strict word 00014h                ; b8 14 00
-    call 05006h                               ; e8 01 ff
+    call 05026h                               ; e8 01 ff
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7372,16 +7385,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0511fh                          ; 75 0d
+    jne short 0513fh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0511fh                          ; 76 08
+    jbe short 0513fh                          ; 76 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05108h                          ; eb e9
+    jmp short 05128h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05129h                          ; 75 06
+    jne short 05149h                          ; 75 06
     mov ax, strict word 00015h                ; b8 15 00
-    call 05006h                               ; e8 dd fe
+    call 05026h                               ; e8 dd fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7389,7 +7402,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 0513ah                           ; 74 06
+    je short 0515ah                           ; 74 06
     mov ax, 003e1h                            ; b8 e1 03
-    call 05006h                               ; e8 cc fe
+    call 05026h                               ; e8 cc fe
     mov dx, strict word 00064h                ; ba 64 00
     in AL, DX                                 ; ec
@@ -7397,9 +7410,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0514ch                          ; 75 08
+    jne short 0516ch                          ; 75 08
     mov AL, strict byte 031h                  ; b0 31
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0513ah                          ; eb ee
+    jmp short 0515ah                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7407,12 +7420,12 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 05165h                           ; 74 0e
+    je short 05185h                           ; 74 0e
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000aah                            ; 3d aa 00
-    je short 05165h                           ; 74 06
+    je short 05185h                           ; 74 06
     mov ax, 003e2h                            ; b8 e2 03
-    call 05006h                               ; e8 a1 fe
+    call 05026h                               ; e8 a1 fe
     mov AL, strict byte 0f5h                  ; b0 f5
     mov dx, strict word 00060h                ; ba 60 00
@@ -7424,16 +7437,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 05185h                           ; 74 0d
+    je short 051a5h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05185h                          ; 76 08
+    jbe short 051a5h                          ; 76 08
     mov AL, strict byte 040h                  ; b0 40
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 0516eh                          ; eb e9
+    jmp short 0518eh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 0518fh                          ; 75 06
+    jne short 051afh                          ; 75 06
     mov ax, strict word 00028h                ; b8 28 00
-    call 05006h                               ; e8 77 fe
+    call 05026h                               ; e8 77 fe
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7442,16 +7455,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 051a9h                          ; 75 0d
+    jne short 051c9h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051a9h                          ; 76 08
+    jbe short 051c9h                          ; 76 08
     mov AL, strict byte 041h                  ; b0 41
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05192h                          ; eb e9
+    jmp short 051b2h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 051b3h                          ; 75 06
+    jne short 051d3h                          ; 75 06
     mov ax, strict word 00029h                ; b8 29 00
-    call 05006h                               ; e8 53 fe
+    call 05026h                               ; e8 53 fe
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7459,7 +7472,7 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 051c4h                           ; 74 06
+    je short 051e4h                           ; 74 06
     mov ax, 003e3h                            ; b8 e3 03
-    call 05006h                               ; e8 42 fe
+    call 05026h                               ; e8 42 fe
     mov AL, strict byte 060h                  ; b0 60
     mov dx, strict word 00064h                ; ba 64 00
@@ -7471,16 +7484,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 051e4h                           ; 74 0d
+    je short 05204h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 051e4h                          ; 76 08
+    jbe short 05204h                          ; 76 08
     mov AL, strict byte 050h                  ; b0 50
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051cdh                          ; eb e9
+    jmp short 051edh                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 051eeh                          ; 75 06
+    jne short 0520eh                          ; 75 06
     mov ax, strict word 00032h                ; b8 32 00
-    call 05006h                               ; e8 18 fe
+    call 05026h                               ; e8 18 fe
     mov AL, strict byte 065h                  ; b0 65
     mov dx, strict word 00060h                ; ba 60 00
@@ -7492,16 +7505,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0520eh                           ; 74 0d
+    je short 0522eh                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0520eh                          ; 76 08
+    jbe short 0522eh                          ; 76 08
     mov AL, strict byte 060h                  ; b0 60
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 051f7h                          ; eb e9
+    jmp short 05217h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05218h                          ; 75 06
+    jne short 05238h                          ; 75 06
     mov ax, strict word 0003ch                ; b8 3c 00
-    call 05006h                               ; e8 ee fd
+    call 05026h                               ; e8 ee fd
     mov AL, strict byte 0f4h                  ; b0 f4
     mov dx, strict word 00060h                ; ba 60 00
@@ -7513,16 +7526,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 05238h                           ; 74 0d
+    je short 05258h                           ; 74 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05238h                          ; 76 08
+    jbe short 05258h                          ; 76 08
     mov AL, strict byte 070h                  ; b0 70
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05221h                          ; eb e9
+    jmp short 05241h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05242h                          ; 75 06
+    jne short 05262h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 05006h                               ; e8 c4 fd
+    call 05026h                               ; e8 c4 fd
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -7531,16 +7544,16 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 0525ch                          ; 75 0d
+    jne short 0527ch                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 0525ch                          ; 76 08
+    jbe short 0527ch                          ; 76 08
     mov AL, strict byte 071h                  ; b0 71
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05245h                          ; eb e9
+    jmp short 05265h                          ; eb e9
     test bx, bx                               ; 85 db
-    jne short 05266h                          ; 75 06
+    jne short 05286h                          ; 75 06
     mov ax, strict word 00046h                ; b8 46 00
-    call 05006h                               ; e8 a0 fd
+    call 05026h                               ; e8 a0 fd
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -7548,16 +7561,16 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    je short 05277h                           ; 74 06
+    je short 05297h                           ; 74 06
     mov ax, 003e4h                            ; b8 e4 03
-    call 05006h                               ; e8 8f fd
+    call 05026h                               ; e8 8f fd
     mov AL, strict byte 0a8h                  ; b0 a8
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
     xor ax, ax                                ; 31 c0
-    call 0677eh                               ; e8 fc 14
+    call 0679eh                               ; e8 fc 14
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-enqueue_key_:                                ; 0xf5286 LB 0x9e
+enqueue_key_:                                ; 0xf52a6 LB 0x9e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7571,18 +7584,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 d2 c3
+    call 0166eh                               ; e8 b2 c3
     mov di, ax                                ; 89 c7
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 c7 c3
+    call 0166eh                               ; e8 a7 c3
     mov si, ax                                ; 89 c6
     lea cx, [si+002h]                         ; 8d 4c 02
     cmp cx, strict byte 0003eh                ; 83 f9 3e
-    jc short 052b4h                           ; 72 03
+    jc short 052d4h                           ; 72 03
     mov cx, strict word 0001eh                ; b9 1e 00
     cmp cx, di                                ; 39 f9
-    jne short 052bch                          ; 75 04
+    jne short 052dch                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 052e6h                          ; eb 2a
+    jmp short 05306h                          ; eb 2a
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -7590,14 +7603,14 @@
     mov dx, si                                ; 89 f2
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 96 c3
+    call 01660h                               ; e8 76 c3
     mov bl, byte [bp-00ah]                    ; 8a 5e f6
     xor bh, bh                                ; 30 ff
     lea dx, [si+001h]                         ; 8d 54 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 88 c3
+    call 01660h                               ; e8 68 c3
     mov bx, cx                                ; 89 cb
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 99 c3
+    call 0167ch                               ; e8 79 c3
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -7609,8 +7622,8 @@
     retn                                      ; c3
     db  0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah
-    db  01dh, 06ah, 056h, 025h, 054h, 0c5h, 053h, 0c5h, 053h, 0b4h, 054h, 096h, 053h, 038h, 055h, 0a9h
-    db  055h, 050h, 056h, 02eh, 056h, 06ch, 054h, 0c5h, 053h, 0c5h, 053h, 0f6h, 054h, 0b6h, 053h, 089h
-    db  055h, 00eh, 056h, 049h, 056h
-_int09_function:                             ; 0xf5324 LB 0x4cd
+    db  01dh, 08ah, 056h, 045h, 054h, 0e5h, 053h, 0e5h, 053h, 0d4h, 054h, 0b6h, 053h, 058h, 055h, 0c9h
+    db  055h, 070h, 056h, 04eh, 056h, 08ch, 054h, 0e5h, 053h, 0e5h, 053h, 016h, 055h, 0d6h, 053h, 0a9h
+    db  055h, 02eh, 056h, 069h, 056h
+_int09_function:                             ; 0xf5344 LB 0x4cd
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -7620,29 +7633,29 @@
     mov byte [bp-004h], al                    ; 88 46 fc
     test al, al                               ; 84 c0
-    jne short 05351h                          ; 75 1c
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 05371h                          ; 75 1c
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f3 c5
+    call 01933h                               ; e8 d3 c5
     mov ax, 00587h                            ; b8 87 05
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 2b c6
+    call 01976h                               ; e8 0b c6
     add sp, strict byte 00004h                ; 83 c4 04
-    jmp near 0541fh                           ; e9 ce 00
+    jmp near 0543fh                           ; e9 ce 00
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 f8 c2
+    call 01652h                               ; e8 d8 c2
     mov byte [bp-006h], al                    ; 88 46 fa
     mov byte [bp-008h], al                    ; 88 46 f8
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 e9 c2
+    call 01652h                               ; e8 c9 c2
     mov byte [bp-00ah], al                    ; 88 46 f6
     mov byte [bp-010h], al                    ; 88 46 f0
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 da c2
+    call 01652h                               ; e8 ba c2
     mov byte [bp-00ch], al                    ; 88 46 f4
     mov byte [bp-00eh], al                    ; 88 46 f2
@@ -7651,9 +7664,9 @@
     pop ES                                    ; 07
     mov cx, strict word 00012h                ; b9 12 00
-    mov di, 052efh                            ; bf ef 52
+    mov di, 0530fh                            ; bf 0f 53
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+05300h]               ; 2e 8b 85 00 53
+    mov ax, word [cs:di+05320h]               ; 2e 8b 85 20 53
     jmp ax                                    ; ff e0
     xor byte [bp-00eh], 040h                  ; 80 76 f2 40
@@ -7662,10 +7675,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 b8 c2
+    call 01660h                               ; e8 98 c2
     or byte [bp-008h], 040h                   ; 80 4e f8 40
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
     mov bx, ax                                ; 89 c3
-    jmp near 0563eh                           ; e9 88 02
+    jmp near 0565eh                           ; e9 88 02
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0bfh                  ; 24 bf
@@ -7673,20 +7686,20 @@
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
-    jmp near 0563eh                           ; e9 79 02
+    jmp near 0565eh                           ; e9 79 02
     test byte [bp-010h], 002h                 ; f6 46 f0 02
-    jne short 053feh                          ; 75 33
+    jne short 0541eh                          ; 75 33
     mov al, byte [bp-004h]                    ; 8a 46 fc
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 02ah                  ; 3c 2a
-    jne short 053d9h                          ; 75 05
+    jne short 053f9h                          ; 75 05
     mov bx, strict word 00002h                ; bb 02 00
-    jmp short 053dch                          ; eb 03
+    jmp short 053fch                          ; eb 03
     mov bx, strict word 00001h                ; bb 01 00
     test byte [bp-004h], 080h                 ; f6 46 fc 80
-    je short 053ebh                           ; 74 09
+    je short 0540bh                           ; 74 09
     mov al, bl                                ; 88 d8
     not al                                    ; f6 d0
     and byte [bp-00eh], al                    ; 20 46 f2
-    jmp short 053eeh                          ; eb 03
+    jmp short 0540eh                          ; eb 03
     or byte [bp-00eh], bl                     ; 08 5e f2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -7695,9 +7708,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 62 c2
+    call 01660h                               ; e8 42 c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     and AL, strict byte 07fh                  ; 24 7f
     cmp AL, strict byte 01dh                  ; 3c 1d
-    je short 0540bh                           ; 74 04
+    je short 0542bh                           ; 74 04
     and byte [bp-010h], 0feh                  ; 80 66 f0 fe
     and byte [bp-010h], 0fdh                  ; 80 66 f0 fd
@@ -7707,5 +7720,5 @@
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 41 c2
+    call 01660h                               ; e8 21 c2
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop di                                    ; 5f
@@ -7713,5 +7726,5 @@
     retn                                      ; c3
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    jne short 053feh                          ; 75 d3
+    jne short 0541eh                          ; 75 d3
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     or AL, strict byte 004h                   ; 0c 04
@@ -7721,8 +7734,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 20 c2
+    call 01660h                               ; e8 00 c2
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 05455h                           ; 74 0e
+    je short 05475h                           ; 74 0e
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7730,5 +7743,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 05464h                          ; eb 0f
+    jmp short 05484h                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 001h                   ; 0c 01
@@ -7738,8 +7751,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 f6 c1
-    jmp short 053feh                          ; eb 92
+    call 01660h                               ; e8 d6 c1
+    jmp short 0541eh                          ; eb 92
     test byte [bp-00ah], 001h                 ; f6 46 f6 01
-    jne short 053feh                          ; 75 8c
+    jne short 0541eh                          ; 75 8c
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 0fbh                  ; 24 fb
@@ -7749,8 +7762,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 d9 c1
+    call 01660h                               ; e8 b9 c1
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 0549ch                           ; 74 0e
+    je short 054bch                           ; 74 0e
     and AL, strict byte 0fbh                  ; 24 fb
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7758,5 +7771,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 054abh                          ; eb 0f
+    jmp short 054cbh                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0feh                  ; 24 fe
@@ -7766,6 +7779,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 af c1
-    jmp near 053feh                           ; e9 4a ff
+    call 01660h                               ; e8 8f c1
+    jmp near 0541eh                           ; e9 4a ff
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     or AL, strict byte 008h                   ; 0c 08
@@ -7775,8 +7788,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 97 c1
+    call 01660h                               ; e8 77 c1
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 054deh                           ; 74 0e
+    je short 054feh                           ; 74 0e
     or AL, strict byte 008h                   ; 0c 08
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7784,5 +7797,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 054edh                          ; eb 0f
+    jmp short 0550dh                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 002h                   ; 0c 02
@@ -7792,6 +7805,6 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 6d c1
-    jmp near 053feh                           ; e9 08 ff
+    call 01660h                               ; e8 4d c1
+    jmp near 0541eh                           ; e9 08 ff
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 0f7h                  ; 24 f7
@@ -7801,8 +7814,8 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 55 c1
+    call 01660h                               ; e8 35 c1
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     test AL, strict byte 002h                 ; a8 02
-    je short 05520h                           ; 74 0e
+    je short 05540h                           ; 74 0e
     and AL, strict byte 0f7h                  ; 24 f7
     mov byte [bp-010h], al                    ; 88 46 f0
@@ -7810,5 +7823,5 @@
     mov bx, ax                                ; 89 c3
     mov dx, 00096h                            ; ba 96 00
-    jmp short 0552fh                          ; eb 0f
+    jmp short 0554fh                          ; eb 0f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fdh                  ; 24 fd
@@ -7818,8 +7831,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 2b c1
-    jmp near 053feh                           ; e9 c6 fe
+    call 01660h                               ; e8 0b c1
+    jmp near 0541eh                           ; e9 c6 fe
     test byte [bp-00ah], 003h                 ; f6 46 f6 03
-    jne short 0555bh                          ; 75 1d
+    jne short 0557bh                          ; 75 1d
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 020h                   ; 0c 20
@@ -7829,8 +7842,8 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 0d c1
+    call 01660h                               ; e8 ed c0
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor AL, strict byte 020h                  ; 34 20
-    jmp near 055fch                           ; e9 a1 00
+    jmp near 0561ch                           ; e9 a1 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 008h                   ; 0c 08
@@ -7840,18 +7853,18 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 f0 c0
+    call 01660h                               ; e8 d0 c0
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
     out DX, AL                                ; ee
-    call 0e034h                               ; e8 bb 8a
+    call 0e034h                               ; e8 9b 8a
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 d0 c0
+    call 01652h                               ; e8 b0 c0
     test AL, strict byte 008h                 ; a8 08
-    jne short 05579h                          ; 75 f3
-    jmp near 053feh                           ; e9 75 fe
+    jne short 05599h                          ; 75 f3
+    jmp near 0541eh                           ; e9 75 fe
     test byte [bp-00ah], 003h                 ; f6 46 f6 03
-    je short 05592h                           ; 74 03
-    jmp near 053feh                           ; e9 6c fe
+    je short 055b2h                           ; 74 03
+    jmp near 0541eh                           ; e9 6c fe
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0dfh                  ; 24 df
@@ -7861,19 +7874,19 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 b9 c0
-    jmp short 0558fh                          ; eb e6
+    call 01660h                               ; e8 99 c0
+    jmp short 055afh                          ; eb e6
     test byte [bp-00ah], 002h                 ; f6 46 f6 02
-    je short 055e2h                           ; 74 33
+    je short 05602h                           ; 74 33
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 b6 c0
+    call 0166eh                               ; e8 96 c0
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 b9 c0
+    call 0167ch                               ; e8 99 c0
     mov bx, 00080h                            ; bb 80 00
     mov dx, strict word 00071h                ; ba 71 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 91 c0
+    call 01660h                               ; e8 71 c0
     mov AL, strict byte 0aeh                  ; b0 ae
     mov dx, strict word 00064h                ; ba 64 00
@@ -7884,6 +7897,6 @@
     xor dx, dx                                ; 31 d2
     xor ax, ax                                ; 31 c0
-    call 05286h                               ; e8 a6 fc
-    jmp short 0558fh                          ; eb ad
+    call 052a6h                               ; e8 a6 fc
+    jmp short 055afh                          ; eb ad
     mov al, byte [bp-006h]                    ; 8a 46 fa
     or AL, strict byte 010h                   ; 0c 10
@@ -7893,5 +7906,5 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 69 c0
+    call 01660h                               ; e8 49 c0
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     xor AL, strict byte 010h                  ; 34 10
@@ -7901,9 +7914,9 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 54 c0
-    jmp short 0558fh                          ; eb 81
+    call 01660h                               ; e8 34 c0
+    jmp short 055afh                          ; eb 81
     test byte [bp-00ah], 002h                 ; f6 46 f6 02
-    je short 05617h                           ; 74 03
-    jmp near 053feh                           ; e9 e7 fd
+    je short 05637h                           ; 74 03
+    jmp near 0541eh                           ; e9 e7 fd
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0efh                  ; 24 ef
@@ -7913,9 +7926,9 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 34 c0
-    jmp short 05614h                          ; eb e6
+    call 01660h                               ; e8 14 c0
+    jmp short 05634h                          ; eb e6
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test AL, strict byte 004h                 ; a8 04
-    jne short 05614h                          ; 75 df
+    jne short 05634h                          ; 75 df
     or AL, strict byte 004h                   ; 0c 04
     mov byte [bp-008h], al                    ; 88 46 f8
@@ -7924,20 +7937,20 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 19 c0
-    jmp short 05614h                          ; eb cb
+    call 01660h                               ; e8 f9 bf
+    jmp short 05634h                          ; eb cb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 0fbh                  ; 24 fb
-    jmp short 05637h                          ; eb e7
+    jmp short 05657h                          ; eb e7
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     and AL, strict byte 00ch                  ; 24 0c
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jne short 0566ah                          ; 75 11
+    jne short 0568ah                          ; 75 11
     mov bx, 01234h                            ; bb 34 12
     mov dx, strict word 00072h                ; ba 72 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 17 c0
+    call 0167ch                               ; e8 f7 bf
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
     test byte [bp-008h], 008h                 ; f6 46 f8 08
-    je short 05681h                           ; 74 11
+    je short 056a1h                           ; 74 11
     and byte [bp-008h], 0f7h                  ; 80 66 f8 f7
     mov al, byte [bp-008h]                    ; 8a 46 f8
@@ -7945,23 +7958,23 @@
     mov bx, ax                                ; 89 c3
     mov dx, strict word 00018h                ; ba 18 00
-    jmp near 05419h                           ; e9 98 fd
+    jmp near 05439h                           ; e9 98 fd
     mov al, byte [bp-004h]                    ; 8a 46 fc
     test AL, strict byte 080h                 ; a8 80
-    je short 056bfh                           ; 74 37
+    je short 056dfh                           ; 74 37
     cmp AL, strict byte 0fah                  ; 3c fa
-    jne short 0569eh                          ; 75 12
+    jne short 056beh                          ; 75 12
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 bd bf
+    call 01652h                               ; e8 9d bf
     mov bl, al                                ; 88 c3
     or bl, 010h                               ; 80 cb 10
     xor bh, bh                                ; 30 ff
-    jmp short 056b4h                          ; eb 16
+    jmp short 056d4h                          ; eb 16
     cmp AL, strict byte 0feh                  ; 3c fe
-    je short 056a5h                           ; 74 03
-    jmp near 053feh                           ; e9 59 fd
+    je short 056c5h                           ; 74 03
+    jmp near 0541eh                           ; e9 59 fd
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 a4 bf
+    call 01652h                               ; e8 84 bf
     or AL, strict byte 020h                   ; 0c 20
     xor ah, ah                                ; 30 e4
@@ -7969,12 +7982,12 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 a3 bf
-    jmp short 056a2h                          ; eb e3
+    call 01660h                               ; e8 83 bf
+    jmp short 056c2h                          ; eb e3
     cmp byte [bp-004h], 058h                  ; 80 7e fc 58
-    jbe short 056e7h                          ; 76 22
-    mov bx, 00da4h                            ; bb a4 0d
+    jbe short 05707h                          ; 76 22
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 63 c2
+    call 01933h                               ; e8 43 c2
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7984,10 +7997,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 95 c2
+    call 01976h                               ; e8 75 c2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 0541fh                           ; e9 38 fd
+    jmp near 0543fh                           ; e9 38 fd
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test AL, strict byte 008h                 ; a8 08
-    je short 05708h                           ; 74 1a
+    je short 05728h                           ; 74 1a
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -7995,10 +8008,36 @@
     imul bx                                   ; f7 eb
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00df8h]                  ; 8a 87 f8 0d
+    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df9h]                  ; 8a 87 f9 0d
-    jmp near 057bah                           ; e9 b2 00
+    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
+    jmp near 057dah                           ; e9 b2 00
     test AL, strict byte 004h                 ; a8 04
-    je short 05726h                           ; 74 1a
+    je short 05746h                           ; 74 1a
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0000ah                ; ba 0a 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
+    mov byte [bp-012h], al                    ; 88 46 ee
+    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
+    jmp near 057dah                           ; e9 94 00
+    mov al, byte [bp-010h]                    ; 8a 46 f0
+    and AL, strict byte 002h                  ; 24 02
+    test al, al                               ; 84 c0
+    jbe short 05769h                          ; 76 1a
+    mov al, byte [bp-004h]                    ; 8a 46 fc
+    cmp AL, strict byte 047h                  ; 3c 47
+    jc short 05769h                           ; 72 13
+    cmp AL, strict byte 053h                  ; 3c 53
+    jnbe short 05769h                         ; 77 0f
+    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
+    xor ah, ah                                ; 30 e4
+    mov dx, strict word 0000ah                ; ba 0a 00
+    imul dx                                   ; f7 ea
+    mov bx, ax                                ; 89 c3
+    jmp short 057d6h                          ; eb 6d
+    test byte [bp-00eh], 003h                 ; f6 46 f2 03
+    je short 057a7h                           ; 74 38
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -8007,44 +8046,18 @@
     mov bx, ax                                ; 89 c3
     mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
-    mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df7h]                  ; 8a 87 f7 0d
-    jmp near 057bah                           ; e9 94 00
-    mov al, byte [bp-010h]                    ; 8a 46 f0
-    and AL, strict byte 002h                  ; 24 02
-    test al, al                               ; 84 c0
-    jbe short 05749h                          ; 76 1a
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    cmp AL, strict byte 047h                  ; 3c 47
-    jc short 05749h                           ; 72 13
-    cmp AL, strict byte 053h                  ; 3c 53
-    jnbe short 05749h                         ; 77 0f
-    mov byte [bp-012h], 0e0h                  ; c6 46 ee e0
-    xor ah, ah                                ; 30 e4
-    mov dx, strict word 0000ah                ; ba 0a 00
-    imul dx                                   ; f7 ea
-    mov bx, ax                                ; 89 c3
-    jmp short 057b6h                          ; eb 6d
-    test byte [bp-00eh], 003h                 ; f6 46 f2 03
-    je short 05787h                           ; 74 38
-    mov al, byte [bp-004h]                    ; 8a 46 fc
-    xor ah, ah                                ; 30 e4
-    mov dx, strict word 0000ah                ; ba 0a 00
-    imul dx                                   ; f7 ea
-    mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 05777h                           ; 74 0d
-    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
+    je short 05797h                           ; 74 0d
+    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
-    jmp short 05782h                          ; eb 0b
-    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
+    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
+    jmp short 057a2h                          ; eb 0b
+    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
+    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
     mov byte [bp-004h], al                    ; 88 46 fc
-    jmp short 057bdh                          ; eb 36
+    jmp short 057ddh                          ; eb 36
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -8052,31 +8065,31 @@
     imul bx                                   ; f7 eb
     mov bx, ax                                ; 89 c3
-    mov al, byte [bx+00dfah]                  ; 8a 87 fa 0d
+    mov al, byte [bx+00df6h]                  ; 8a 87 f6 0d
     xor ah, ah                                ; 30 e4
     mov dx, ax                                ; 89 c2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     test ax, dx                               ; 85 d0
-    je short 057afh                           ; 74 0d
-    mov al, byte [bx+00df4h]                  ; 8a 87 f4 0d
+    je short 057cfh                           ; 74 0d
+    mov al, byte [bx+00df0h]                  ; 8a 87 f0 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df5h]                  ; 8a 87 f5 0d
-    jmp short 057bah                          ; eb 0b
-    mov al, byte [bx+00df2h]                  ; 8a 87 f2 0d
+    mov al, byte [bx+00df1h]                  ; 8a 87 f1 0d
+    jmp short 057dah                          ; eb 0b
+    mov al, byte [bx+00deeh]                  ; 8a 87 ee 0d
     mov byte [bp-012h], al                    ; 88 46 ee
-    mov al, byte [bx+00df3h]                  ; 8a 87 f3 0d
+    mov al, byte [bx+00defh]                  ; 8a 87 ef 0d
     mov byte [bp-004h], al                    ; 88 46 fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 057e2h                          ; 75 1f
+    jne short 05802h                          ; 75 1f
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    jne short 057e2h                          ; 75 19
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 05802h                          ; 75 19
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 5f c1
+    call 01933h                               ; e8 3f c1
     mov ax, 005d8h                            ; b8 d8 05
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 97 c1
+    call 01976h                               ; e8 77 c1
     add sp, strict byte 00004h                ; 83 c4 04
     mov bl, byte [bp-012h]                    ; 8a 5e ee
@@ -8085,6 +8098,6 @@
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
-    jmp near 055ddh                           ; e9 ec fd
-dequeue_key_:                                ; 0xf57f1 LB 0x94
+    jmp near 055fdh                           ; e9 ec fd
+dequeue_key_:                                ; 0xf5811 LB 0x94
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8099,18 +8112,18 @@
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 63 be
+    call 0166eh                               ; e8 43 be
     mov bx, ax                                ; 89 c3
     mov dx, strict word 0001ch                ; ba 1c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 58 be
+    call 0166eh                               ; e8 38 be
     cmp bx, ax                                ; 39 c3
-    je short 05857h                           ; 74 3d
+    je short 05877h                           ; 74 3d
     mov dx, bx                                ; 89 da
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 30 be
+    call 01652h                               ; e8 10 be
     mov cl, al                                ; 88 c1
     lea dx, [bx+001h]                         ; 8d 57 01
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 25 be
+    call 01652h                               ; e8 05 be
     mov es, [bp-008h]                         ; 8e 46 f8
     mov byte [es:si], cl                      ; 26 88 0c
@@ -8118,15 +8131,15 @@
     mov byte [es:di], al                      ; 26 88 05
     cmp word [bp+004h], strict byte 00000h    ; 83 7e 04 00
-    je short 05852h                           ; 74 13
+    je short 05872h                           ; 74 13
     inc bx                                    ; 43
     inc bx                                    ; 43
     cmp bx, strict byte 0003eh                ; 83 fb 3e
-    jc short 05849h                           ; 72 03
+    jc short 05869h                           ; 72 03
     mov bx, strict word 0001eh                ; bb 1e 00
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 2a be
+    call 0167ch                               ; e8 0a be
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 05859h                          ; eb 02
+    jmp short 05879h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -8139,18 +8152,23 @@
     or cl, byte [bx+di]                       ; 0a 09
     add ax, 00102h                            ; 05 02 01
-    add byte [di+04859h], cl                  ; 00 8d 59 48
+    add byte [di+06859h], ch                  ; 00 ad 59 68
     pop cx                                    ; 59
-    fstp qword [bx+di+022h]                   ; dd 59 22
+    std                                       ; fd
+    pop cx                                    ; 59
+    inc dx                                    ; 42
     pop dx                                    ; 5a
-    xor ax, 05c5ah                            ; 35 5a 5c
+    push bp                                   ; 55
     pop dx                                    ; 5a
-    pop edx                                   ; 66 5a
-    aad 05ah                                  ; d5 5a
-    or AL, strict byte 05bh                   ; 0c 5b
-    cmp ax, 0745bh                            ; 3d 5b 74
+    jl short 058f3h                           ; 7c 5a
+    xchg byte [bp+si-00bh], bl                ; 86 5a f5
+    pop dx                                    ; 5a
+    sub AL, strict byte 05bh                  ; 2c 5b
+    pop bp                                    ; 5d
     pop bx                                    ; 5b
-    xlatb                                     ; d7
+    xchg sp, ax                               ; 94
+    pop bx                                    ; 5b
+    db  0f7h
     pop cx                                    ; 59
-_int16_function:                             ; 0xf5885 LB 0x2fa
+_int16_function:                             ; 0xf58a5 LB 0x2fa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8159,10 +8177,10 @@
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 bd bd
+    call 01652h                               ; e8 9d bd
     mov cl, al                                ; 88 c1
     mov bl, al                                ; 88 c3
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 b0 bd
+    call 01652h                               ; e8 90 bd
     mov bh, al                                ; 88 c7
     mov dl, cl                                ; 88 ca
@@ -8175,5 +8193,5 @@
     xor al, dl                                ; 30 d0
     test ax, ax                               ; 85 c0
-    je short 05927h                           ; 74 6e
+    je short 05947h                           ; 74 6e
     cli                                       ; fa
     mov AL, strict byte 0edh                  ; b0 ed
@@ -8185,9 +8203,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 058d2h                          ; 75 08
+    jne short 058f2h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 058c0h                          ; eb ee
+    jmp short 058e0h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8195,5 +8213,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 05926h                          ; 75 49
+    jne short 05946h                          ; 75 49
     and bh, 0c8h                              ; 80 e7 c8
     mov al, bl                                ; 88 d8
@@ -8218,9 +8236,9 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05913h                          ; 75 08
+    jne short 05933h                          ; 75 08
     mov AL, strict byte 021h                  ; b0 21
     mov dx, 00080h                            ; ba 80 00
     out DX, AL                                ; ee
-    jmp short 05901h                          ; eb ee
+    jmp short 05921h                          ; eb ee
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8231,5 +8249,5 @@
     mov dx, 00097h                            ; ba 97 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 3a bd
+    call 01660h                               ; e8 1a bd
     sti                                       ; fb
     mov CL, strict byte 008h                  ; b1 08
@@ -8237,13 +8255,13 @@
     shr ax, CL                                ; d3 e8
     cmp ax, 000a2h                            ; 3d a2 00
-    jnbe short 0598dh                         ; 77 5a
+    jnbe short 059adh                         ; 77 5a
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 0000ch                ; b9 0c 00
-    mov di, 05862h                            ; bf 62 58
+    mov di, 05882h                            ; bf 82 58
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di+0586dh]               ; 2e 8b 85 6d 58
+    mov ax, word [cs:di+0588dh]               ; 2e 8b 85 8d 58
     jmp ax                                    ; ff e0
     mov ax, strict word 00001h                ; b8 01 00
@@ -8253,28 +8271,28 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 057f1h                               ; e8 98 fe
+    call 05811h                               ; e8 98 fe
     test ax, ax                               ; 85 c0
-    jne short 0596bh                          ; 75 0e
+    jne short 0598bh                          ; 75 0e
     mov ax, 0060fh                            ; b8 0f 06
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 0e c0
+    call 01976h                               ; e8 ee bf
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 05977h                           ; 74 06
+    je short 05997h                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 0597dh                           ; 74 06
+    je short 0599dh                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 05981h                          ; 75 04
+    jne short 059a1h                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov ah, byte [bp-006h]                    ; 8a 66 fa
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 059d7h                           ; e9 4a 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 059f7h                           ; e9 4a 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 9b bf
+    call 01933h                               ; e8 7b bf
     mov CL, strict byte 008h                  ; b1 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -8285,10 +8303,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 cb bf
+    call 01976h                               ; e8 ab bf
     add sp, strict byte 00006h                ; 83 c4 06
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 7a bf
+    call 01933h                               ; e8 5a bf
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     push ax                                   ; 50
@@ -8303,5 +8321,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 a2 bf
+    call 01976h                               ; e8 82 bf
     add sp, strict byte 0000ch                ; 83 c4 0c
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -8317,15 +8335,15 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 057f1h                               ; e8 fe fd
+    call 05811h                               ; e8 fe fd
     test ax, ax                               ; 85 c0
-    jne short 059fdh                          ; 75 06
+    jne short 05a1dh                          ; 75 06
     or word [bp+01eh], strict byte 00040h     ; 83 4e 1e 40
-    jmp short 059d7h                          ; eb da
+    jmp short 059f7h                          ; eb da
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    je short 05a09h                           ; 74 06
+    je short 05a29h                           ; 74 06
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    je short 05a0fh                           ; 74 06
+    je short 05a2fh                           ; 74 06
     cmp byte [bp-008h], 0e0h                  ; 80 7e f8 e0
-    jne short 05a13h                          ; 75 04
+    jne short 05a33h                          ; 75 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     mov dh, byte [bp-006h]                    ; 8a 76 fa
@@ -8333,12 +8351,12 @@
     mov word [bp+012h], dx                    ; 89 56 12
     and word [bp+01eh], strict byte 0ffbfh    ; 83 66 1e bf
-    jmp short 059d7h                          ; eb b5
+    jmp short 059f7h                          ; eb b5
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 27 bc
+    call 01652h                               ; e8 07 bc
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
     mov word [bp+012h], dx                    ; 89 56 12
-    jmp short 059d7h                          ; eb a2
+    jmp short 059f7h                          ; eb a2
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
@@ -8347,17 +8365,17 @@
     shr ax, CL                                ; d3 e8
     xor ah, ah                                ; 30 e4
-    call 05286h                               ; e8 40 f8
+    call 052a6h                               ; e8 40 f8
     test ax, ax                               ; 85 c0
-    jne short 05a54h                          ; 75 0a
+    jne short 05a74h                          ; 75 0a
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 001h                   ; 0c 01
-    jmp near 05987h                           ; e9 33 ff
+    jmp near 059a7h                           ; e9 33 ff
     and word [bp+012h], 0ff00h                ; 81 66 12 00 ff
-    jmp near 059d7h                           ; e9 7b ff
+    jmp near 059f7h                           ; e9 7b ff
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor al, al                                ; 30 c0
     or AL, strict byte 030h                   ; 0c 30
-    jmp near 05987h                           ; e9 21 ff
+    jmp near 059a7h                           ; e9 21 ff
     mov byte [bp-004h], 002h                  ; c6 46 fc 02
     xor cx, cx                                ; 31 c9
@@ -8372,15 +8390,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05a8dh                          ; 75 0d
+    jne short 05aadh                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05a8dh                          ; 76 08
+    jbe short 05aadh                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 05a76h                          ; eb e9
+    jmp short 05a96h                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 05acfh                          ; 76 3e
+    jbe short 05aefh                          ; 76 3e
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -8388,5 +8406,5 @@
     ; sub ah, ah                                ; 2a e4
     cmp ax, 000fah                            ; 3d fa 00
-    jne short 05acfh                          ; 75 33
+    jne short 05aefh                          ; 75 33
     mov bx, strict word 0ffffh                ; bb ff ff
     mov dx, strict word 00064h                ; ba 64 00
@@ -8395,15 +8413,15 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 05ab6h                          ; 75 0d
+    jne short 05ad6h                          ; 75 0d
     dec bx                                    ; 4b
     test bx, bx                               ; 85 db
-    jbe short 05ab6h                          ; 76 08
+    jbe short 05ad6h                          ; 76 08
     mov dx, 00080h                            ; ba 80 00
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 05a9fh                          ; eb e9
+    jmp short 05abfh                          ; eb e9
     test bx, bx                               ; 85 db
-    jbe short 05ac6h                          ; 76 0c
+    jbe short 05ae6h                          ; 76 0c
     mov bl, ch                                ; 88 eb
     mov dx, strict word 00060h                ; ba 60 00
@@ -8415,7 +8433,7 @@
     dec byte [bp-004h]                        ; fe 4e fc
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jnbe short 05a9ch                         ; 77 cd
+    jnbe short 05abch                         ; 77 cd
     mov word [bp+00ch], cx                    ; 89 4e 0c
-    jmp near 059d7h                           ; e9 02 ff
+    jmp near 059f7h                           ; e9 02 ff
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -8424,20 +8442,20 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 057f1h                               ; e8 0b fd
+    call 05811h                               ; e8 0b fd
     test ax, ax                               ; 85 c0
-    jne short 05af8h                          ; 75 0e
+    jne short 05b18h                          ; 75 0e
     mov ax, 0060fh                            ; b8 0f 06
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 81 be
+    call 01976h                               ; e8 61 be
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 05b01h                          ; 75 03
-    jmp near 05981h                           ; e9 80 fe
+    jne short 05b21h                          ; 75 03
+    jmp near 059a1h                           ; e9 80 fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    jne short 05b0ah                          ; 75 03
-    jmp near 0597dh                           ; e9 73 fe
-    jmp short 05afeh                          ; eb f2
+    jne short 05b2ah                          ; 75 03
+    jmp near 0599dh                           ; e9 73 fe
+    jmp short 05b1eh                          ; eb f2
     mov ax, word [bp+018h]                    ; 8b 46 18
     mov word [bp+01eh], ax                    ; 89 46 1e
@@ -8448,18 +8466,18 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 057f1h                               ; e8 cf fc
+    call 05811h                               ; e8 cf fc
     test ax, ax                               ; 85 c0
-    jne short 05b29h                          ; 75 03
-    jmp near 059f7h                           ; e9 ce fe
+    jne short 05b49h                          ; 75 03
+    jmp near 05a17h                           ; e9 ce fe
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jne short 05b32h                          ; 75 03
-    jmp near 05a13h                           ; e9 e1 fe
+    jne short 05b52h                          ; 75 03
+    jmp near 05a33h                           ; e9 e1 fe
     cmp byte [bp-008h], 0f0h                  ; 80 7e f8 f0
-    jne short 05b3bh                          ; 75 03
-    jmp near 05a0fh                           ; e9 d4 fe
-    jmp short 05b2fh                          ; eb f2
+    jne short 05b5bh                          ; 75 03
+    jmp near 05a2fh                           ; e9 d4 fe
+    jmp short 05b4fh                          ; eb f2
     mov dx, strict word 00017h                ; ba 17 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 0c bb
+    call 01652h                               ; e8 ec ba
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dl, al                                ; 88 c2
@@ -8467,10 +8485,10 @@
     mov dx, strict word 00018h                ; ba 18 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 fb ba
+    call 01652h                               ; e8 db ba
     mov bl, al                                ; 88 c3
     and bl, 073h                              ; 80 e3 73
     mov dx, 00096h                            ; ba 96 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 ed ba
+    call 01652h                               ; e8 cd ba
     mov ah, al                                ; 88 c4
     and ah, 00ch                              ; 80 e4 0c
@@ -8478,10 +8496,10 @@
     mov dx, word [bp+012h]                    ; 8b 56 12
     mov dh, ah                                ; 88 e6
-    jmp near 05a30h                           ; e9 bc fe
+    jmp near 05a50h                           ; e9 bc fe
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
     or ah, 080h                               ; 80 cc 80
-    jmp near 05987h                           ; e9 08 fe
-set_geom_lba_:                               ; 0xf5b7f LB 0xeb
+    jmp near 059a7h                           ; e9 08 fe
+set_geom_lba_:                               ; 0xf5b9f LB 0xeb
     push bx                                   ; 53
     push cx                                   ; 51
@@ -8501,30 +8519,30 @@
     mov dx, word [bp+00ch]                    ; 8b 56 0c
     mov si, strict word 00020h                ; be 20 00
-    call 0a180h                               ; e8 d2 45
+    call 0a1a0h                               ; e8 d2 45
     test ax, ax                               ; 85 c0
-    jne short 05bbeh                          ; 75 0c
+    jne short 05bdeh                          ; 75 0c
     test bx, bx                               ; 85 db
-    jne short 05bbeh                          ; 75 08
+    jne short 05bdeh                          ; 75 08
     test cx, cx                               ; 85 c9
-    jne short 05bbeh                          ; 75 04
+    jne short 05bdeh                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 05bc5h                           ; 74 07
+    je short 05be5h                           ; 74 07
     mov bx, strict word 0ffffh                ; bb ff ff
     mov si, bx                                ; 89 de
-    jmp short 05bcbh                          ; eb 06
+    jmp short 05bebh                          ; eb 06
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov si, word [bp+00eh]                    ; 8b 76 0e
     mov word [bp-004h], bx                    ; 89 5e fc
     xor bx, bx                                ; 31 db
-    jmp short 05bd7h                          ; eb 05
+    jmp short 05bf7h                          ; eb 05
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jnl short 05bfah                          ; 7d 23
+    jnl short 05c1ah                          ; 7d 23
     mov ax, word [bp-006h]                    ; 8b 46 fa
     cmp si, ax                                ; 39 c6
-    jc short 05be8h                           ; 72 0a
-    jne short 05bf1h                          ; 75 11
+    jc short 05c08h                           ; 72 0a
+    jne short 05c11h                          ; 75 11
     mov ax, word [bp-004h]                    ; 8b 46 fc
     cmp ax, word [bp-008h]                    ; 3b 46 f8
-    jnbe short 05bf1h                         ; 77 09
+    jnbe short 05c11h                         ; 77 09
     mov ax, word [bp-002h]                    ; 8b 46 fe
     inc ax                                    ; 40
@@ -8534,18 +8552,18 @@
     rcr word [bp-008h], 1                     ; d1 5e f8
     inc bx                                    ; 43
-    jmp short 05bd2h                          ; eb d8
+    jmp short 05bf2h                          ; eb d8
     mov ax, word [bp-002h]                    ; 8b 46 fe
     xor dx, dx                                ; 31 d2
     mov bx, strict word 0003fh                ; bb 3f 00
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 29 45
+    call 0a150h                               ; e8 29 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 0a150h                               ; e8 3d 45
+    call 0a170h                               ; e8 3d 45
     mov word [es:di+002h], ax                 ; 26 89 45 02
     cmp ax, 00400h                            ; 3d 00 04
-    jbe short 05c22h                          ; 76 06
+    jbe short 05c42h                          ; 76 06
     mov word [es:di+002h], 00400h             ; 26 c7 45 02 00 04
     mov ax, word [bp-002h]                    ; 8b 46 fe
@@ -8559,42 +8577,40 @@
     pop bx                                    ; 5b
     retn 00008h                               ; c2 08 00
-    neg byte [si+007h]                        ; f6 5c 07
+    push SS                                   ; 16
     pop bp                                    ; 5d
-    das                                       ; 2f
+    daa                                       ; 27
     pop bp                                    ; 5d
-    das                                       ; 2f
+    dec di                                    ; 4f
     pop bp                                    ; 5d
-    das                                       ; 2f
+    dec di                                    ; 4f
     pop bp                                    ; 5d
-    sbb ax, 0595fh                            ; 1d 5f 59
+    dec di                                    ; 4f
+    pop bp                                    ; 5d
+    cmp ax, 0795fh                            ; 3d 5f 79
     pushaw                                    ; 60
-    pop cx                                    ; 59
+    jns short 05cc8h                          ; 79 60
+    insw                                      ; 6d
+    pop di                                    ; 5f
+    push bx                                   ; 53
     pushaw                                    ; 60
-    dec bp                                    ; 4d
-    pop di                                    ; 5f
-    xor sp, word [bx+si+059h]                 ; 33 60 59
+    jns short 05cceh                          ; 79 60
+    jns short 05cd0h                          ; 79 60
+    push bx                                   ; 53
     pushaw                                    ; 60
-    pop cx                                    ; 59
+    push bx                                   ; 53
     pushaw                                    ; 60
-    xor sp, word [bx+si+033h]                 ; 33 60 33
+    jns short 05cd6h                          ; 79 60
+    jns short 05cd8h                          ; 79 60
+    rcr word [bx+053h], CL                    ; d3 5f 53
     pushaw                                    ; 60
-    pop cx                                    ; 59
+    jns short 05cdeh                          ; 79 60
+    jns short 05ce0h                          ; 79 60
+    push bx                                   ; 53
     pushaw                                    ; 60
-    pop cx                                    ; 59
-    pushaw                                    ; 60
-    mov BL, strict byte 05fh                  ; b3 5f
-    xor sp, word [bx+si+059h]                 ; 33 60 59
-    pushaw                                    ; 60
-    pop cx                                    ; 59
-    pushaw                                    ; 60
-    xor sp, word [bx+si-01ch]                 ; 33 60 e4
-    pop di                                    ; 5f
-    pop cx                                    ; 59
-    pushaw                                    ; 60
-    pop cx                                    ; 59
-    pushaw                                    ; 60
-    pop cx                                    ; 59
-    pushaw                                    ; 60
-_int13_harddisk:                             ; 0xf5c6a LB 0x44a
+    add AL, strict byte 060h                  ; 04 60
+    jns short 05ce6h                          ; 79 60
+    jns short 05ce8h                          ; 79 60
+    jns short 05ceah                          ; 79 60
+_int13_harddisk:                             ; 0xf5c8a LB 0x44a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -8603,5 +8619,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 f1 b9
+    call 0166eh                               ; e8 d1 b9
     mov si, 00122h                            ; be 22 01
     mov word [bp-006h], ax                    ; 89 46 fa
@@ -8609,11 +8625,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 d2 b9
+    call 01660h                               ; e8 b2 b9
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 05c9dh                           ; 72 05
+    jc short 05cbdh                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 05cbch                           ; 72 1f
+    jc short 05cdch                           ; 72 1f
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8627,7 +8643,7 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c0 bc
+    call 01976h                               ; e8 a0 bc
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 06074h                           ; e9 b8 03
+    jmp near 06094h                           ; e9 b8 03
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -8638,5 +8654,5 @@
     mov byte [bp-002h], dl                    ; 88 56 fe
     cmp dl, 010h                              ; 80 fa 10
-    jc short 05ce3h                           ; 72 0e
+    jc short 05d03h                           ; 72 0e
     push ax                                   ; 50
     mov al, byte [bp+017h]                    ; 8a 46 17
@@ -8645,21 +8661,21 @@
     push ax                                   ; 50
     mov ax, 006b8h                            ; b8 b8 06
-    jmp short 05caeh                          ; eb cb
+    jmp short 05cceh                          ; eb cb
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00018h                ; 3d 18 00
-    jnbe short 05d2ch                         ; 77 3f
+    jnbe short 05d4ch                         ; 77 3f
     mov bx, ax                                ; 89 c3
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx+05c38h]                   ; 2e ff a7 38 5c
+    jmp word [cs:bx+05c58h]                   ; 2e ff a7 58 5c
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jnc short 05d04h                          ; 73 08
+    jnc short 05d24h                          ; 73 08
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
-    call 01db8h                               ; e8 b4 c0
-    jmp near 05f36h                           ; e9 2f 02
+    call 01db8h                               ; e8 94 c0
+    jmp near 05f56h                           ; e9 2f 02
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 42 b9
+    call 01652h                               ; e8 22 b9
     mov cl, al                                ; 88 c1
     mov dx, word [bp+016h]                    ; 8b 56 16
@@ -8669,9 +8685,9 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 3b b9
+    call 01660h                               ; e8 1b b9
     test cl, cl                               ; 84 c9
-    je short 05d8bh                           ; 74 62
-    jmp near 0608dh                           ; e9 61 03
-    jmp near 06059h                           ; e9 2a 03
+    je short 05dabh                           ; 74 62
+    jmp near 060adh                           ; e9 61 03
+    jmp near 06079h                           ; e9 2a 03
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -8692,11 +8708,11 @@
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, 00080h                            ; 3d 80 00
-    jnbe short 05d65h                         ; 77 04
+    jnbe short 05d85h                         ; 77 04
     test ax, ax                               ; 85 c0
-    jne short 05d8eh                          ; 75 29
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 05daeh                          ; 75 29
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 c3 bb
+    call 01933h                               ; e8 a3 bb
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8708,8 +8724,8 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f1 bb
+    call 01976h                               ; e8 d1 bb
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 06074h                           ; e9 e9 02
-    jmp near 05f3ah                           ; e9 ac 01
+    jmp near 06094h                           ; e9 e9 02
+    jmp near 05f5ah                           ; e9 ac 01
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8724,13 +8740,13 @@
     mov word [bp-00eh], dx                    ; 89 56 f2
     cmp ax, word [bp-00ch]                    ; 3b 46 f4
-    jbe short 05dbch                          ; 76 09
+    jbe short 05ddch                          ; 76 09
     cmp cx, word [bp-008h]                    ; 3b 4e f8
-    jbe short 05dbch                          ; 76 04
+    jbe short 05ddch                          ; 76 04
     cmp di, dx                                ; 39 d7
-    jbe short 05dedh                          ; 76 31
-    mov bx, 00da4h                            ; bb a4 0d
+    jbe short 05e0dh                          ; 76 31
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 6c bb
+    call 01933h                               ; e8 4c bb
     push di                                   ; 57
     push word [bp-008h]                       ; ff 76 f8
@@ -8747,11 +8763,11 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8f bb
+    call 01976h                               ; e8 6f bb
     add sp, strict byte 00010h                ; 83 c4 10
-    jmp near 06074h                           ; e9 87 02
+    jmp near 06094h                           ; e9 87 02
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00004h                ; 3d 04 00
-    je short 05e17h                           ; 74 20
+    je short 05e37h                           ; 74 20
     mov al, byte [bp-002h]                    ; 8a 46 fe
     mov dx, strict word 0001ch                ; ba 1c 00
@@ -8761,17 +8777,17 @@
     add bx, ax                                ; 01 c3
     cmp cx, word [es:bx+030h]                 ; 26 3b 4f 30
-    jne short 05e20h                          ; 75 14
+    jne short 05e40h                          ; 75 14
     mov ax, word [es:bx+034h]                 ; 26 8b 47 34
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    je short 05e1ah                           ; 74 05
-    jmp short 05e20h                          ; eb 09
-    jmp near 05f36h                           ; e9 1c 01
+    je short 05e3ah                           ; 74 05
+    jmp short 05e40h                          ; eb 09
+    jmp near 05f56h                           ; e9 1c 01
     cmp byte [bp-002h], 008h                  ; 80 7e fe 08
-    jc short 05e4fh                           ; 72 2f
+    jc short 05e6fh                           ; 72 2f
     mov ax, word [bp-00ch]                    ; 8b 46 f4
     xor dx, dx                                ; 31 d2
     mov bx, cx                                ; 89 cb
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 04 43
+    call 0a150h                               ; e8 04 43
     xor bx, bx                                ; 31 db
     add ax, word [bp-008h]                    ; 03 46 f8
@@ -8779,5 +8795,5 @@
     mov bx, word [bp-00eh]                    ; 8b 5e f2
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 f5 42
+    call 0a150h                               ; e8 f5 42
     xor bx, bx                                ; 31 db
     add ax, di                                ; 01 f8
@@ -8836,9 +8852,9 @@
     mov word [bp+016h], bx                    ; 89 5e 16
     test dl, dl                               ; 84 d2
-    je short 05f36h                           ; 74 4a
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 05f56h                           ; 74 4a
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 3c ba
+    call 01933h                               ; e8 1c ba
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -8852,19 +8868,19 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 67 ba
+    call 01976h                               ; e8 47 ba
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 0607ch                           ; e9 5f 01
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 0609ch                           ; e9 5f 01
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 0b ba
+    call 01933h                               ; e8 eb b9
     mov ax, 0077ah                            ; b8 7a 07
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 43 ba
+    call 01976h                               ; e8 23 ba
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp+017h], 000h                  ; c6 46 17 00
@@ -8872,5 +8888,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 1b b7
+    call 01660h                               ; e8 fb b6
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -8915,5 +8931,5 @@
     or ax, dx                                 ; 09 d0
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp short 05f36h                          ; eb 83
+    jmp short 05f56h                          ; eb 83
     mov al, byte [bp-002h]                    ; 8a 46 fe
     cwd                                       ; 99
@@ -8932,10 +8948,10 @@
     and AL, strict byte 0c0h                  ; 24 c0
     cmp AL, strict byte 040h                  ; 3c 40
-    jne short 05fd9h                          ; 75 03
-    jmp near 05f36h                           ; e9 5d ff
+    jne short 05ff9h                          ; 75 03
+    jmp near 05f56h                           ; e9 5d ff
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 0aah                               ; 80 cc aa
-    jmp near 0607ch                           ; e9 98 00
+    jmp near 0609ch                           ; e9 98 00
     mov al, byte [bp-002h]                    ; 8a 46 fe
     xor ah, ah                                ; 30 e4
@@ -8953,8 +8969,8 @@
     mov bx, word [bp-008h]                    ; 8b 5e f8
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 1e 41
+    call 0a150h                               ; e8 1e 41
     mov bx, di                                ; 89 fb
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 17 41
+    call 0a150h                               ; e8 17 41
     mov word [bp-010h], ax                    ; 89 46 f0
     mov word [bp-004h], dx                    ; 89 56 fc
@@ -8965,9 +8981,9 @@
     or ah, 003h                               ; 80 cc 03
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp near 05f3ah                           ; e9 07 ff
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 05f5ah                           ; e9 07 ff
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f5 b8
+    call 01933h                               ; e8 d5 b8
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8979,11 +8995,11 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 23 b9
+    call 01976h                               ; e8 03 b9
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 05f36h                           ; e9 dd fe
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 05f56h                           ; e9 dd fe
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 cf b8
+    call 01933h                               ; e8 af b8
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -8992,5 +9008,5 @@
     push ax                                   ; 50
     mov ax, 007c7h                            ; b8 c7 07
-    jmp near 05d7dh                           ; e9 09 fd
+    jmp near 05d9dh                           ; e9 09 fd
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -9001,25 +9017,23 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 d3 b5
+    call 01660h                               ; e8 b3 b5
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp near 05f49h                           ; e9 b5 fe
-    dec si                                    ; 4e
+    jmp near 05f69h                           ; e9 b5 fe
+    outsb                                     ; 6e
     popaw                                     ; 61
-    and word [bx+di-07fh], 08161h             ; 81 61 81 61 81
+    mov ax, word [0a161h]                     ; a1 61 a1
     popaw                                     ; 61
-    xchg bx, ax                               ; 93
-    mul byte [gs:bp+si-07fh]                  ; 65 f6 62 81
+    mov ax, word [0b361h]                     ; a1 61 b3
+    db  065h, 016h
+    ; gs push SS                                ; 65 16
+    arpl [bx+di+01c61h], sp                   ; 63 a1 61 1c
+    arpl [bp+di-0799bh], si                   ; 63 b3 65 86
     popaw                                     ; 61
-    cld                                       ; fc
-    bound dx, [bp+di+06665h]                  ; 62 93 65 66
+    xchg byte [bx+di-07ah], ah                ; 86 61 86
     popaw                                     ; 61
-    popad                                     ; 66 61
-    popad                                     ; 66 61
-    popad                                     ; 66 61
-    stosb                                     ; aa
-    db  065h, 066h, 061h
-    ; gs popad                                  ; 65 66 61
-    popad                                     ; 66 61
-_int13_harddisk_ext:                         ; 0xf60b4 LB 0x52b
+    xchg byte [bx+di-036h], ah                ; 86 61 ca
+    xchg byte [gs:bx+di-07ah], ah             ; 65 86 61 86
+    popaw                                     ; 61
+_int13_harddisk_ext:                         ; 0xf60d4 LB 0x52b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9027,9 +9041,9 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 ab b5
+    call 0166eh                               ; e8 8b b5
     mov word [bp-018h], ax                    ; 89 46 e8
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 9f b5
+    call 0166eh                               ; e8 7f b5
     mov word [bp-008h], 00122h                ; c7 46 f8 22 01
     mov word [bp-006h], ax                    ; 89 46 fa
@@ -9037,11 +9051,11 @@
     mov dx, 0008eh                            ; ba 8e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 7e b5
+    call 01660h                               ; e8 5e b5
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
     cmp ax, 00080h                            ; 3d 80 00
-    jc short 060f1h                           ; 72 05
+    jc short 06111h                           ; 72 05
     cmp ax, 00090h                            ; 3d 90 00
-    jc short 06110h                           ; 72 1f
+    jc short 06130h                           ; 72 1f
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -9055,7 +9069,7 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6c b8
+    call 01976h                               ; e8 4c b8
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 065c0h                           ; e9 b0 04
+    jmp near 065e0h                           ; e9 b0 04
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     xor ah, ah                                ; 30 e4
@@ -9065,5 +9079,5 @@
     mov byte [bp-004h], dl                    ; 88 56 fc
     cmp dl, 010h                              ; 80 fa 10
-    jc short 06135h                           ; 72 0e
+    jc short 06155h                           ; 72 0e
     push ax                                   ; 50
     mov al, byte [bp+017h]                    ; 8a 46 17
@@ -9072,14 +9086,14 @@
     push ax                                   ; 50
     mov ax, 006b8h                            ; b8 b8 06
-    jmp short 06102h                          ; eb cd
+    jmp short 06122h                          ; eb cd
     mov bl, byte [bp+017h]                    ; 8a 5e 17
     xor bh, bh                                ; 30 ff
     sub bx, strict byte 00041h                ; 83 eb 41
     cmp bx, strict byte 0000fh                ; 83 fb 0f
-    jnbe short 06166h                         ; 77 24
+    jnbe short 06186h                         ; 77 24
     sal bx, 1                                 ; d1 e3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
-    jmp word [cs:bx+06094h]                   ; 2e ff a7 94 60
+    jmp word [cs:bx+060b4h]                   ; 2e ff a7 b4 60
     mov word [bp+010h], 0aa55h                ; c7 46 10 55 aa
     mov ax, word [bp+016h]                    ; 8b 46 16
@@ -9088,9 +9102,9 @@
     mov word [bp+016h], ax                    ; 89 46 16
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06597h                           ; e9 31 04
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 065b7h                           ; e9 31 04
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 c2 b7
+    call 01933h                               ; e8 a2 b7
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -9099,5 +9113,5 @@
     push ax                                   ; 50
     mov ax, 007c7h                            ; b8 c7 07
-    jmp near 0621eh                           ; e9 9d 00
+    jmp near 0623eh                           ; e9 9d 00
     mov di, word [bp+00ah]                    ; 8b 7e 0a
     mov es, [bp+004h]                         ; 8e 46 04
@@ -9115,5 +9129,5 @@
     xor bx, bx                                ; 31 db
     mov si, strict word 00020h                ; be 20 00
-    call 0a190h                               ; e8 dc 3f
+    call 0a1b0h                               ; e8 dc 3f
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov word [bp-010h], bx                    ; 89 5e f0
@@ -9132,21 +9146,21 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     cmp dx, word [es:bx+03ch]                 ; 26 3b 57 3c
-    jnbe short 06206h                         ; 77 22
-    jne short 0622ch                          ; 75 46
+    jnbe short 06226h                         ; 77 22
+    jne short 0624ch                          ; 75 46
     mov dx, word [bp-010h]                    ; 8b 56 f0
     cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
-    jnbe short 06206h                         ; 77 17
+    jnbe short 06226h                         ; 77 17
     mov dx, word [bp-010h]                    ; 8b 56 f0
     cmp dx, word [es:bx+03ah]                 ; 26 3b 57 3a
-    jne short 0622ch                          ; 75 34
+    jne short 0624ch                          ; 75 34
     cmp cx, word [es:bx+038h]                 ; 26 3b 4f 38
-    jnbe short 06206h                         ; 77 08
-    jne short 0622ch                          ; 75 2c
+    jnbe short 06226h                         ; 77 08
+    jne short 0624ch                          ; 75 2c
     cmp si, word [es:bx+036h]                 ; 26 3b 77 36
-    jc short 0622ch                           ; 72 26
-    mov bx, 00da4h                            ; bb a4 0d
+    jc short 0624ch                           ; 72 26
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 22 b7
+    call 01933h                               ; e8 02 b7
     mov al, byte [bp+017h]                    ; 8a 46 17
     xor ah, ah                                ; 30 e4
@@ -9158,15 +9172,15 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 50 b7
+    call 01976h                               ; e8 30 b7
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 065c0h                           ; e9 94 03
+    jmp near 065e0h                           ; e9 94 03
     mov ah, byte [bp+017h]                    ; 8a 66 17
     mov byte [bp-012h], ah                    ; 88 66 ee
     mov byte [bp-011h], 000h                  ; c6 46 ef 00
     cmp word [bp-012h], strict byte 00044h    ; 83 7e ee 44
-    je short 06242h                           ; 74 06
+    je short 06262h                           ; 74 06
     cmp word [bp-012h], strict byte 00047h    ; 83 7e ee 47
-    jne short 06245h                          ; 75 03
-    jmp near 06593h                           ; e9 4e 03
+    jne short 06265h                          ; 75 03
+    jmp near 065b3h                           ; e9 4e 03
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00
@@ -9206,9 +9220,9 @@
     mov word [es:bx+002h], ax                 ; 26 89 47 02
     test dl, dl                               ; 84 d2
-    je short 0631ah                           ; 74 54
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 0633ah                           ; 74 54
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 62 b6
+    call 01933h                               ; e8 42 b6
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -9221,12 +9235,12 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 8e b6
+    call 01976h                               ; e8 6e b6
     add sp, strict byte 0000ah                ; 83 c4 0a
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
     or ah, 00ch                               ; 80 cc 0c
-    jmp near 065c8h                           ; e9 d2 02
+    jmp near 065e8h                           ; e9 d2 02
     or ah, 0b2h                               ; 80 cc b2
-    jmp near 065c8h                           ; e9 cc 02
+    jmp near 065e8h                           ; e9 cc 02
     mov bx, word [bp+00ah]                    ; 8b 5e 0a
     mov ax, word [bp+004h]                    ; 8b 46 04
@@ -9238,9 +9252,9 @@
     mov word [bp-014h], ax                    ; 89 46 ec
     cmp ax, strict word 0001ah                ; 3d 1a 00
-    jnc short 0631dh                          ; 73 06
-    jmp near 065c0h                           ; e9 a6 02
-    jmp near 06593h                           ; e9 76 02
-    jnc short 06322h                          ; 73 03
-    jmp near 063b5h                           ; e9 93 00
+    jnc short 0633dh                          ; 73 06
+    jmp near 065e0h                           ; e9 a6 02
+    jmp near 065b3h                           ; e9 76 02
+    jnc short 06342h                          ; 73 03
+    jmp near 063d5h                           ; e9 93 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9280,10 +9294,10 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00020h                ; be 20 00
-    call 0a180h                               ; e8 d5 3d
+    call 0a1a0h                               ; e8 d5 3d
     mov bx, di                                ; 89 fb
     mov word [es:bx+014h], dx                 ; 26 89 57 14
     mov word [es:bx+016h], cx                 ; 26 89 4f 16
     cmp word [bp-014h], strict byte 0001eh    ; 83 7e ec 1e
-    jc short 06427h                           ; 72 6c
+    jc short 06447h                           ; 72 6c
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di], strict word 0001eh      ; 26 c7 05 1e 00
@@ -9316,20 +9330,20 @@
     mov al, byte [es:bx+027h]                 ; 26 8a 47 27
     test al, al                               ; 84 c0
-    jne short 06418h                          ; 75 04
+    jne short 06438h                          ; 75 04
     xor si, si                                ; 31 f6
-    jmp short 0641bh                          ; eb 03
+    jmp short 0643bh                          ; eb 03
     mov si, strict word 00008h                ; be 08 00
     or si, strict byte 00010h                 ; 83 ce 10
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 0642ah                          ; 75 08
+    jne short 0644ah                          ; 75 08
     mov dx, strict word 00001h                ; ba 01 00
-    jmp short 0642ch                          ; eb 05
-    jmp near 064c2h                           ; e9 98 00
+    jmp short 0644ch                          ; eb 05
+    jmp near 064e2h                           ; e9 98 00
     xor dx, dx                                ; 31 d2
     or si, dx                                 ; 09 d6
     cmp AL, strict byte 003h                  ; 3c 03
-    jne short 06437h                          ; 75 05
+    jne short 06457h                          ; 75 05
     mov ax, strict word 00003h                ; b8 03 00
-    jmp short 06439h                          ; eb 02
+    jmp short 06459h                          ; eb 02
     xor ax, ax                                ; 31 c0
     or si, ax                                 ; 09 c6
@@ -9360,7 +9374,7 @@
     xor bl, bl                                ; 30 db
     xor bh, bh                                ; 30 ff
-    jmp short 064a2h                          ; eb 05
+    jmp short 064c2h                          ; eb 05
     cmp bh, 00fh                              ; 80 ff 0f
-    jnc short 064b8h                          ; 73 16
+    jnc short 064d8h                          ; 73 16
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -9368,15 +9382,15 @@
     add dx, 00356h                            ; 81 c2 56 03
     mov ax, word [bp-018h]                    ; 8b 46 e8
-    call 01652h                               ; e8 a0 b1
+    call 01652h                               ; e8 80 b1
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 0649dh                          ; eb e5
+    jmp short 064bdh                          ; eb e5
     neg bl                                    ; f6 db
     les si, [bp-008h]                         ; c4 76 f8
     mov byte [es:si+00243h], bl               ; 26 88 9c 43 02
     cmp word [bp-014h], strict byte 00042h    ; 83 7e ec 42
-    jnc short 064cbh                          ; 73 03
-    jmp near 06593h                           ; e9 c8 00
+    jnc short 064ebh                          ; 73 03
+    jmp near 065b3h                           ; e9 c8 00
     mov al, byte [bp-004h]                    ; 8a 46 fc
     xor ah, ah                                ; 30 e4
@@ -9398,5 +9412,5 @@
     mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00
     test al, al                               ; 84 c0
-    jne short 06515h                          ; 75 0c
+    jne short 06535h                          ; 75 0c
     mov word [es:di+024h], 05349h             ; 26 c7 45 24 49 53
     mov word [es:di+026h], 02041h             ; 26 c7 45 26 41 20
@@ -9407,5 +9421,5 @@
     mov word [es:di+02eh], 02020h             ; 26 c7 45 2e 20 20
     test al, al                               ; 84 c0
-    jne short 0654ah                          ; 75 16
+    jne short 0656ah                          ; 75 16
     mov word [es:di+030h], dx                 ; 26 89 55 30
     mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00
@@ -9422,7 +9436,7 @@
     xor bl, bl                                ; 30 db
     mov BH, strict byte 01eh                  ; b7 1e
-    jmp short 06575h                          ; eb 05
+    jmp short 06595h                          ; eb 05
     cmp bh, 040h                              ; 80 ff 40
-    jnc short 0658ah                          ; 73 15
+    jnc short 065aah                          ; 73 15
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
@@ -9430,9 +9444,9 @@
     add dx, ax                                ; 01 c2
     mov ax, word [bp+004h]                    ; 8b 46 04
-    call 01652h                               ; e8 ce b0
+    call 01652h                               ; e8 ae b0
     add bl, al                                ; 00 c3
     db  0feh, 0c7h
     ; inc bh                                    ; fe c7
-    jmp short 06570h                          ; eb e6
+    jmp short 06590h                          ; eb e6
     neg bl                                    ; f6 db
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -9442,5 +9456,5 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 be b0
+    call 01660h                               ; e8 9e b0
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
     mov sp, bp                                ; 89 ec
@@ -9448,12 +9462,12 @@
     retn                                      ; c3
     cmp ax, strict word 00006h                ; 3d 06 00
-    je short 06593h                           ; 74 e4
+    je short 065b3h                           ; 74 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 065c0h                           ; 72 0c
-    jbe short 06593h                          ; 76 dd
+    jc short 065e0h                           ; 72 0c
+    jbe short 065b3h                          ; 76 dd
     cmp ax, strict word 00003h                ; 3d 03 00
-    jc short 065c0h                           ; 72 05
+    jc short 065e0h                           ; 72 05
     cmp ax, strict word 00004h                ; 3d 04 00
-    jbe short 06593h                          ; 76 d3
+    jbe short 065b3h                          ; 76 d3
     mov ax, word [bp+016h]                    ; 8b 46 16
     xor ah, ah                                ; 30 e4
@@ -9464,8 +9478,8 @@
     mov dx, strict word 00074h                ; ba 74 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 87 b0
+    call 01660h                               ; e8 67 b0
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 065a6h                          ; eb c7
-_int14_function:                             ; 0xf65df LB 0x15c
+    jmp short 065c6h                          ; eb c7
+_int14_function:                             ; 0xf65ff LB 0x15c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9475,5 +9489,5 @@
     sal dx, 1                                 ; d1 e2
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 7f b0
+    call 0166eh                               ; e8 5f b0
     mov si, ax                                ; 89 c6
     mov bx, ax                                ; 89 c3
@@ -9481,22 +9495,22 @@
     add dx, strict byte 0007ch                ; 83 c2 7c
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 53 b0
+    call 01652h                               ; e8 33 b0
     mov cl, al                                ; 88 c1
     cmp word [bp+00eh], strict byte 00004h    ; 83 7e 0e 04
-    jnc short 0660bh                          ; 73 04
+    jnc short 0662bh                          ; 73 04
     test si, si                               ; 85 f6
-    jnbe short 0660eh                         ; 77 03
-    jmp near 06731h                           ; e9 23 01
+    jnbe short 0662eh                         ; 77 03
+    jmp near 06751h                           ; e9 23 01
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 06622h                           ; 72 0d
-    jbe short 06682h                          ; 76 6b
+    jc short 06642h                           ; 72 0d
+    jbe short 066a2h                          ; 76 6b
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 0667ah                           ; 74 5f
+    je short 0669ah                           ; 74 5f
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 0667dh                           ; 74 5e
-    jmp near 0672bh                           ; e9 09 01
+    je short 0669dh                           ; 74 5e
+    jmp near 0674bh                           ; e9 09 01
     test al, al                               ; 84 c0
-    jne short 0667fh                          ; 75 59
+    jne short 0669fh                          ; 75 59
     lea dx, [bx+003h]                         ; 8d 57 03
     in AL, DX                                 ; ec
@@ -9508,5 +9522,5 @@
     mov al, byte [bp+012h]                    ; 8a 46 12
     test AL, strict byte 0e0h                 ; a8 e0
-    jne short 06645h                          ; 75 0c
+    jne short 06665h                          ; 75 0c
     mov AL, strict byte 017h                  ; b0 17
     mov dx, bx                                ; 89 da
@@ -9515,5 +9529,5 @@
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
-    jmp short 0665ch                          ; eb 17
+    jmp short 0667ch                          ; eb 17
     and AL, strict byte 0e0h                  ; 24 e0
     xor ah, ah                                ; 30 e4
@@ -9542,11 +9556,11 @@
     ; sub ah, ah                                ; 2a e4
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 0670ch                           ; e9 92 00
-    jmp near 0671ah                           ; e9 9d 00
-    jmp short 066d0h                          ; eb 51
-    jmp near 0672bh                           ; e9 a9 00
+    jmp near 0672ch                           ; e9 92 00
+    jmp near 0673ah                           ; e9 9d 00
+    jmp short 066f0h                          ; eb 51
+    jmp near 0674bh                           ; e9 a9 00
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 e3 af
+    call 0166eh                               ; e8 c3 af
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9556,18 +9570,18 @@
     and ax, strict word 00060h                ; 25 60 00
     cmp ax, strict word 00060h                ; 3d 60 00
-    je short 066b2h                           ; 74 17
+    je short 066d2h                           ; 74 17
     test cl, cl                               ; 84 c9
-    je short 066b2h                           ; 74 13
+    je short 066d2h                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 c6 af
+    call 0166eh                               ; e8 a6 af
     cmp ax, si                                ; 39 f0
-    je short 0668dh                           ; 74 e1
+    je short 066adh                           ; 74 e1
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 0668dh                          ; eb db
+    jmp short 066adh                          ; eb db
     test cl, cl                               ; 84 c9
-    je short 066bch                           ; 74 06
+    je short 066dch                           ; 74 06
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -9579,11 +9593,11 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cl, cl                               ; 84 c9
-    jne short 0670ch                          ; 75 43
+    jne short 0672ch                          ; 75 43
     or AL, strict byte 080h                   ; 0c 80
     mov byte [bp+013h], al                    ; 88 46 13
-    jmp short 0670ch                          ; eb 3c
+    jmp short 0672ch                          ; eb 3c
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 95 af
+    call 0166eh                               ; e8 75 af
     mov si, ax                                ; 89 c6
     lea dx, [bx+005h]                         ; 8d 57 05
@@ -9592,18 +9606,18 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 066fch                          ; 75 17
+    jne short 0671ch                          ; 75 17
     test cl, cl                               ; 84 c9
-    je short 066fch                           ; 74 13
+    je short 0671ch                           ; 74 13
     mov dx, strict word 0006ch                ; ba 6c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 7c af
+    call 0166eh                               ; e8 5c af
     cmp ax, si                                ; 39 f0
-    je short 066dbh                           ; 74 e5
+    je short 066fbh                           ; 74 e5
     mov si, ax                                ; 89 c6
     db  0feh, 0c9h
     ; dec cl                                    ; fe c9
-    jmp short 066dbh                          ; eb df
+    jmp short 066fbh                          ; eb df
     test cl, cl                               ; 84 c9
-    je short 06712h                           ; 74 12
+    je short 06732h                           ; 74 12
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov dx, bx                                ; 89 da
@@ -9613,10 +9627,10 @@
     mov byte [bp+012h], al                    ; 88 46 12
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 06735h                          ; eb 23
+    jmp short 06755h                          ; eb 23
     lea dx, [bx+005h]                         ; 8d 57 05
     in AL, DX                                 ; ec
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 066cbh                          ; eb b1
+    jmp short 066ebh                          ; eb b1
     lea dx, [si+005h]                         ; 8d 54 05
     in AL, DX                                 ; ec
@@ -9628,7 +9642,7 @@
     db  02ah, 0e4h
     ; sub ah, ah                                ; 2a e4
-    jmp short 06709h                          ; eb de
+    jmp short 06729h                          ; eb de
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
-    jmp short 06735h                          ; eb 04
+    jmp short 06755h                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -9636,5 +9650,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-timer_wait_:                                 ; 0xf673b LB 0x43
+timer_wait_:                                 ; 0xf675b LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9644,5 +9658,5 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 0a150h                               ; e8 07 3a
+    call 0a170h                               ; e8 07 3a
     mov cx, ax                                ; 89 c1
     mov bx, dx                                ; 89 d3
@@ -9656,7 +9670,7 @@
     adc bx, strict byte 0ffffh                ; 83 d3 ff
     cmp bx, strict byte 0ffffh                ; 83 fb ff
-    jne short 06768h                          ; 75 05
+    jne short 06788h                          ; 75 05
     cmp cx, strict byte 0ffffh                ; 83 f9 ff
-    je short 06777h                           ; 74 0f
+    je short 06797h                           ; 74 0f
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -9665,6 +9679,6 @@
     and AL, strict byte 010h                  ; 24 10
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jne short 06768h                          ; 75 f3
-    jmp short 06758h                          ; eb e1
+    jne short 06788h                          ; 75 f3
+    jmp short 06778h                          ; eb e1
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop cx                                    ; 59
@@ -9672,5 +9686,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_enable_a20_:                             ; 0xf677e LB 0x30
+set_enable_a20_:                             ; 0xf679e LB 0x30
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9685,14 +9699,14 @@
     mov cl, al                                ; 88 c1
     test bx, bx                               ; 85 db
-    je short 06797h                           ; 74 05
+    je short 067b7h                           ; 74 05
     or AL, strict byte 002h                   ; 0c 02
     out DX, AL                                ; ee
-    jmp short 0679ah                          ; eb 03
+    jmp short 067bah                          ; eb 03
     and AL, strict byte 0fdh                  ; 24 fd
     out DX, AL                                ; ee
     test cl, 002h                             ; f6 c1 02
-    je short 067a4h                           ; 74 05
+    je short 067c4h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 067a6h                          ; eb 02
+    jmp short 067c6h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -9702,5 +9716,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_e820_range_:                             ; 0xf67ae LB 0x88
+set_e820_range_:                             ; 0xf67ce LB 0x88
     push si                                   ; 56
     push bp                                   ; 55
@@ -9732,8 +9746,8 @@
     retn 0000ah                               ; c2 0a 00
     db  0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h
-    db  043h, 06bh, 072h, 068h, 086h, 068h, 022h, 069h, 028h, 069h, 02dh, 069h, 032h, 069h, 0dah, 069h
-    db  0feh, 069h, 01bh, 069h, 01bh, 069h, 0c8h, 06ah, 0f3h, 06ah, 006h, 06bh, 015h, 06bh, 022h, 069h
-    db  01eh, 06bh
-_int15_function:                             ; 0xf6836 LB 0x343
+    db  063h, 06bh, 092h, 068h, 0a6h, 068h, 042h, 069h, 048h, 069h, 04dh, 069h, 052h, 069h, 0fah, 069h
+    db  01eh, 06ah, 03bh, 069h, 03bh, 069h, 0e8h, 06ah, 013h, 06bh, 026h, 06bh, 035h, 06bh, 042h, 069h
+    db  03eh, 06bh
+_int15_function:                             ; 0xf6856 LB 0x343
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -9744,13 +9758,13 @@
     mov dx, ax                                ; 89 c2
     cmp ax, 000ech                            ; 3d ec 00
-    jnbe short 0687ch                         ; 77 35
+    jnbe short 0689ch                         ; 77 35
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00011h                ; b9 11 00
-    mov di, 06804h                            ; bf 04 68
+    mov di, 06824h                            ; bf 24 68
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov si, word [cs:di+06814h]               ; 2e 8b b5 14 68
+    mov si, word [cs:di+06834h]               ; 2e 8b b5 34 68
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9765,29 +9779,29 @@
     xor ah, ah                                ; 30 e4
     cmp ax, 000c0h                            ; 3d c0 00
-    je short 0687fh                           ; 74 03
-    jmp near 06b43h                           ; e9 c4 02
+    je short 0689fh                           ; 74 03
+    jmp near 06b63h                           ; e9 c4 02
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 06aeah                           ; e9 64 02
+    jmp near 06b0ah                           ; e9 64 02
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 0689bh                           ; 72 0e
-    jbe short 068afh                          ; 76 20
+    jc short 068bbh                           ; 72 0e
+    jbe short 068cfh                          ; 76 20
     cmp ax, strict word 00003h                ; 3d 03 00
-    je short 068e0h                           ; 74 4c
+    je short 06900h                           ; 74 4c
     cmp ax, strict word 00002h                ; 3d 02 00
-    je short 068bfh                           ; 74 26
-    jmp short 068edh                          ; eb 52
+    je short 068dfh                           ; 74 26
+    jmp short 0690dh                          ; eb 52
     test ax, ax                               ; 85 c0
-    jne short 068edh                          ; 75 4e
+    jne short 0690dh                          ; 75 4e
     xor ax, ax                                ; 31 c0
-    call 0677eh                               ; e8 da fe
+    call 0679eh                               ; e8 da fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp near 0691bh                           ; e9 6c 00
+    jmp near 0693bh                           ; e9 6c 00
     mov ax, strict word 00001h                ; b8 01 00
-    call 0677eh                               ; e8 c9 fe
+    call 0679eh                               ; e8 c9 fe
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], dh                    ; 88 76 13
-    jmp near 0691bh                           ; e9 5c 00
+    jmp near 0693bh                           ; e9 5c 00
     mov dx, 00092h                            ; ba 92 00
     in AL, DX                                 ; ec
@@ -9803,13 +9817,13 @@
     xor al, dl                                ; 30 d0
     mov byte [bp+013h], al                    ; 88 46 13
-    jmp near 0691bh                           ; e9 3b 00
+    jmp near 0693bh                           ; e9 3b 00
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov byte [bp+013h], ah                    ; 88 66 13
     mov word [bp+00ch], ax                    ; 89 46 0c
-    jmp near 0691bh                           ; e9 2e 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 0693bh                           ; e9 2e 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 3b b0
+    call 01933h                               ; e8 1b b0
     mov ax, word [bp+012h]                    ; 8b 46 12
     xor ah, ah                                ; 30 e4
@@ -9819,5 +9833,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 6d b0
+    call 01976h                               ; e8 4d b0
     add sp, strict byte 00006h                ; 83 c4 06
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -9832,36 +9846,36 @@
     retn                                      ; c3
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp near 069d4h                           ; e9 ac 00
+    jmp near 069f4h                           ; e9 ac 00
     mov word [bp+018h], dx                    ; 89 56 18
-    jmp short 0691bh                          ; eb ee
+    jmp short 0693bh                          ; eb ee
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp short 06918h                          ; eb e6
+    jmp short 06938h                          ; eb e6
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 069a7h                          ; 75 6f
+    jne short 069c7h                          ; 75 6f
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 11 ad
+    call 01652h                               ; e8 f1 ac
     test AL, strict byte 001h                 ; a8 01
-    jne short 069a4h                          ; 75 5f
+    jne short 069c4h                          ; 75 5f
     mov bx, strict word 00001h                ; bb 01 00
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 0f ad
+    call 01660h                               ; e8 ef ac
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 1f ad
+    call 0167ch                               ; e8 ff ac
     mov bx, word [bp+00ch]                    ; 8b 5e 0c
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 13 ad
+    call 0167ch                               ; e8 f3 ac
     mov bx, word [bp+00eh]                    ; 8b 5e 0e
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 07 ad
+    call 0167ch                               ; e8 e7 ac
     mov bx, word [bp+010h]                    ; 8b 5e 10
     mov dx, 0009eh                            ; ba 9e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0167ch                               ; e8 fb ac
+    call 0167ch                               ; e8 db ac
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov dx, 000a1h                            ; ba a1 00
@@ -9872,24 +9886,24 @@
     out DX, AL                                ; ee
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 1a ad
+    call 016aeh                               ; e8 fa ac
     mov dl, al                                ; 88 c2
     or dl, 040h                               ; 80 ca 40
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 28 ad
-    jmp near 0691bh                           ; e9 77 ff
-    jmp near 06ae1h                           ; e9 3a 01
+    call 016c9h                               ; e8 08 ad
+    jmp near 0693bh                           ; e9 77 ff
+    jmp near 06b01h                           ; e9 3a 01
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 069c8h                          ; 75 1c
+    jne short 069e8h                          ; 75 1c
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 a9 ac
+    call 01660h                               ; e8 89 ac
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 ed ac
+    call 016aeh                               ; e8 cd ac
     mov dl, al                                ; 88 c2
     and dl, 0bfh                              ; 80 e2 bf
-    jmp short 06999h                          ; eb d1
+    jmp short 069b9h                          ; eb d1
     mov word [bp+018h], dx                    ; 89 56 18
     mov ax, bx                                ; 89 d8
@@ -9899,45 +9913,45 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+012h], bx                    ; 89 5e 12
-    jmp near 0691bh                           ; e9 41 ff
+    jmp near 0693bh                           ; e9 41 ff
     mov ax, strict word 00031h                ; b8 31 00
-    call 016aeh                               ; e8 ce ac
+    call 016aeh                               ; e8 ae ac
     mov dh, al                                ; 88 c6
     mov ax, strict word 00030h                ; b8 30 00
-    call 016aeh                               ; e8 c6 ac
+    call 016aeh                               ; e8 a6 ac
     mov dl, al                                ; 88 c2
     mov word [bp+012h], dx                    ; 89 56 12
     cmp dx, strict byte 0ffc0h                ; 83 fa c0
-    jbe short 069f7h                          ; 76 05
+    jbe short 06a17h                          ; 76 05
     mov word [bp+012h], strict word 0ffc0h    ; c7 46 12 c0 ff
     and byte [bp+018h], 0feh                  ; 80 66 18 fe
-    jmp near 0691bh                           ; e9 1d ff
+    jmp near 0693bh                           ; e9 1d ff
     cli                                       ; fa
     mov ax, strict word 00001h                ; b8 01 00
-    call 0677eh                               ; e8 79 fd
+    call 0679eh                               ; e8 79 fd
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 00038h                ; 83 c2 38
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0ffffh                ; bb ff ff
-    call 0167ch                               ; e8 68 ac
+    call 0167ch                               ; e8 48 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ah                ; 83 c2 3a
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 5a ac
+    call 0167ch                               ; e8 3a ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003ch                ; 83 c2 3c
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, strict word 0000fh                ; bb 0f 00
-    call 01660h                               ; e8 2f ac
+    call 01660h                               ; e8 0f ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003dh                ; 83 c2 3d
     mov ax, word [bp+014h]                    ; 8b 46 14
     mov bx, 0009bh                            ; bb 9b 00
-    call 01660h                               ; e8 20 ac
+    call 01660h                               ; e8 00 ac
     mov dx, word [bp+006h]                    ; 8b 56 06
     add dx, strict byte 0003eh                ; 83 c2 3e
     mov ax, word [bp+014h]                    ; 8b 46 14
     xor bx, bx                                ; 31 db
-    call 0167ch                               ; e8 2e ac
+    call 0167ch                               ; e8 0e ac
     mov AL, strict byte 011h                  ; b0 11
     mov dx, strict word 00020h                ; ba 20 00
@@ -9968,5 +9982,5 @@
     out DX, AL                                ; ee
     mov si, word [bp+006h]                    ; 8b 76 06
-    call 06a8ch                               ; e8 00 00
+    call 06aach                               ; e8 00 00
     pop di                                    ; 5f
     add di, strict byte 00018h                ; 83 c7 18
@@ -9996,14 +10010,14 @@
     push cx                                   ; 51
     retf                                      ; cb
-    jmp near 0691bh                           ; e9 53 fe
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 0693bh                           ; e9 53 fe
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 60 ae
+    call 01933h                               ; e8 40 ae
     mov ax, 0086eh                            ; b8 6e 08
     push ax                                   ; 50
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 98 ae
+    call 01976h                               ; e8 78 ae
     add sp, strict byte 00004h                ; 83 c4 04
     or byte [bp+018h], 001h                   ; 80 4e 18 01
@@ -10012,36 +10026,36 @@
     or ah, 086h                               ; 80 cc 86
     mov word [bp+012h], ax                    ; 89 46 12
-    jmp near 0691bh                           ; e9 28 fe
+    jmp near 0693bh                           ; e9 28 fe
     mov word [bp+018h], cx                    ; 89 4e 18
     mov word [bp+012h], ax                    ; 89 46 12
     mov word [bp+00ch], 0e6f5h                ; c7 46 0c f5 e6
     mov word [bp+014h], 0f000h                ; c7 46 14 00 f0
-    jmp near 0691bh                           ; e9 15 fe
+    jmp near 0693bh                           ; e9 15 fe
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 5f ab
+    call 0166eh                               ; e8 3f ab
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 069f7h                           ; e9 e2 fe
+    jmp near 06a17h                           ; e9 e2 fe
     mov ax, 0089dh                            ; b8 9d 08
     push ax                                   ; 50
     mov ax, strict word 00008h                ; b8 08 00
-    jmp short 06adah                          ; eb bc
+    jmp short 06afah                          ; eb bc
     test byte [bp+012h], 0ffh                 ; f6 46 12 ff
-    jne short 06b43h                          ; 75 1f
+    jne short 06b63h                          ; 75 1f
     mov word [bp+012h], ax                    ; 89 46 12
     mov ax, word [bp+00ch]                    ; 8b 46 0c
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 00001h                ; 3d 01 00
-    jc short 06b3ch                           ; 72 0b
+    jc short 06b5ch                           ; 72 0b
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnbe short 06b3ch                         ; 77 06
+    jnbe short 06b5ch                         ; 77 06
     mov word [bp+018h], cx                    ; 89 4e 18
-    jmp near 0691bh                           ; e9 df fd
+    jmp near 0693bh                           ; e9 df fd
     or byte [bp+018h], 001h                   ; 80 4e 18 01
-    jmp near 0691bh                           ; e9 d8 fd
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 0693bh                           ; e9 d8 fd
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 e5 ad
+    call 01933h                               ; e8 c5 ad
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
@@ -10050,20 +10064,20 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 17 ae
+    call 01976h                               ; e8 f7 ad
     add sp, strict byte 00008h                ; 83 c4 08
-    jmp near 06ae1h                           ; e9 7c ff
-    loop 06bd3h                               ; e2 6c
-    or AL, strict byte 06dh                   ; 0c 6d
-    db  064h, 06dh
-    ; fs insw                                   ; 64 6d
-    mov word [di-057h], bp                    ; 89 6d a9
+    jmp near 06b01h                           ; e9 7c ff
+    add ch, byte [di+02ch]                    ; 02 6d 2c
     insw                                      ; 6d
-    enter 0ee6dh, 06dh                        ; c8 6d ee 6d
-    adc AL, strict byte 06eh                  ; 14 6e
-    push cx                                   ; 51
+    test byte [di-057h], ch                   ; 84 6d a9
+    insw                                      ; 6d
+    leave                                     ; c9
+    insw                                      ; 6d
+    call 079ffh                               ; e8 6d 0e
     outsb                                     ; 6e
-    db  085h
+    xor AL, strict byte 06eh                  ; 34 6e
+    jno short 06c05h                          ; 71 6e
+    movsw                                     ; a5
     outsb                                     ; 6e
-_int15_function32:                           ; 0xf6b79 LB 0x39e
+_int15_function32:                           ; 0xf6b99 LB 0x39e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10077,32 +10091,32 @@
     xor dh, dh                                ; 30 f6
     cmp ax, 000e8h                            ; 3d e8 00
-    je short 06bdfh                           ; 74 4a
+    je short 06bffh                           ; 74 4a
     cmp ax, 000d0h                            ; 3d d0 00
-    je short 06bach                           ; 74 12
+    je short 06bcch                           ; 74 12
     cmp ax, 00086h                            ; 3d 86 00
-    jne short 06bddh                          ; 75 3e
+    jne short 06bfdh                          ; 75 3e
     sti                                       ; fb
     mov dx, word [bp+01ch]                    ; 8b 56 1c
     mov ax, word [bp+018h]                    ; 8b 46 18
-    call 0673bh                               ; e8 92 fb
-    jmp near 06d5eh                           ; e9 b2 01
+    call 0675bh                               ; e8 92 fb
+    jmp near 06d7eh                           ; e9 b2 01
     cmp dx, strict byte 0004fh                ; 83 fa 4f
-    jne short 06bddh                          ; 75 2c
+    jne short 06bfdh                          ; 75 2c
     cmp word [bp+016h], 05052h                ; 81 7e 16 52 50
-    jne short 06c13h                          ; 75 5b
+    jne short 06c33h                          ; 75 5b
     cmp word [bp+014h], 04f43h                ; 81 7e 14 43 4f
-    jne short 06c13h                          ; 75 54
+    jne short 06c33h                          ; 75 54
     cmp word [bp+01eh], 04d4fh                ; 81 7e 1e 4f 4d
-    jne short 06c13h                          ; 75 4d
+    jne short 06c33h                          ; 75 4d
     cmp word [bp+01ch], 04445h                ; 81 7e 1c 45 44
-    jne short 06c13h                          ; 75 46
+    jne short 06c33h                          ; 75 46
     mov ax, word [bp+00ah]                    ; 8b 46 0a
     or ax, word [bp+008h]                     ; 0b 46 08
-    jne short 06c13h                          ; 75 3e
+    jne short 06c33h                          ; 75 3e
     mov ax, word [bp+006h]                    ; 8b 46 06
     or ax, word [bp+004h]                     ; 0b 46 04
-    je short 06be1h                           ; 74 04
-    jmp short 06c13h                          ; eb 34
-    jmp short 06c09h                          ; eb 28
+    je short 06c01h                           ; 74 04
+    jmp short 06c33h                          ; eb 34
+    jmp short 06c29h                          ; eb 28
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, word [bp+014h]                    ; 8b 46 14
@@ -10116,17 +10130,17 @@
     mov word [bp+020h], 03332h                ; c7 46 20 32 33
     mov word [bp+022h], 04941h                ; c7 46 22 41 49
-    jmp near 06d5eh                           ; e9 55 01
+    jmp near 06d7eh                           ; e9 55 01
     cmp dx, strict byte 00020h                ; 83 fa 20
-    je short 06c19h                           ; 74 0b
+    je short 06c39h                           ; 74 0b
     cmp dx, strict byte 00001h                ; 83 fa 01
-    je short 06c16h                           ; 74 03
-    jmp near 06d31h                           ; e9 1b 01
-    jmp near 06ed7h                           ; e9 be 02
+    je short 06c36h                           ; 74 03
+    jmp near 06d51h                           ; e9 1b 01
+    jmp near 06ef7h                           ; e9 be 02
     cmp word [bp+01ah], 0534dh                ; 81 7e 1a 4d 53
-    jne short 06c13h                          ; 75 f3
+    jne short 06c33h                          ; 75 f3
     cmp word [bp+018h], 04150h                ; 81 7e 18 50 41
-    jne short 06c13h                          ; 75 ec
+    jne short 06c33h                          ; 75 ec
     mov ax, strict word 00035h                ; b8 35 00
-    call 016aeh                               ; e8 81 aa
+    call 016aeh                               ; e8 61 aa
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -10135,7 +10149,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06c36h                               ; e2 fa
+    loop 06c56h                               ; e2 fa
     mov ax, strict word 00034h                ; b8 34 00
-    call 016aeh                               ; e8 6c aa
+    call 016aeh                               ; e8 4c aa
     xor ah, ah                                ; 30 e4
     mov dx, bx                                ; 89 da
@@ -10145,10 +10159,10 @@
     adc dx, 00100h                            ; 81 d2 00 01
     cmp dx, 00100h                            ; 81 fa 00 01
-    jc short 06c5ch                           ; 72 06
-    jne short 06c8ah                          ; 75 32
+    jc short 06c7ch                           ; 72 06
+    jne short 06caah                          ; 75 32
     test bx, bx                               ; 85 db
-    jnbe short 06c8ah                         ; 77 2e
+    jnbe short 06caah                         ; 77 2e
     mov ax, strict word 00031h                ; b8 31 00
-    call 016aeh                               ; e8 4c aa
+    call 016aeh                               ; e8 2c aa
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -10157,7 +10171,7 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06c6bh                               ; e2 fa
+    loop 06c8bh                               ; e2 fa
     mov ax, strict word 00030h                ; b8 30 00
-    call 016aeh                               ; e8 37 aa
+    call 016aeh                               ; e8 17 aa
     xor ah, ah                                ; 30 e4
     or bx, ax                                 ; 09 c3
@@ -10165,9 +10179,9 @@
     sal bx, 1                                 ; d1 e3
     rcl dx, 1                                 ; d1 d2
-    loop 06c7eh                               ; e2 fa
+    loop 06c9eh                               ; e2 fa
     add bx, strict byte 00000h                ; 83 c3 00
     adc dx, strict byte 00010h                ; 83 d2 10
     mov ax, strict word 00062h                ; b8 62 00
-    call 016aeh                               ; e8 1e aa
+    call 016aeh                               ; e8 fe a9
     xor ah, ah                                ; 30 e4
     mov word [bp-00ah], ax                    ; 89 46 f6
@@ -10177,7 +10191,7 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 06c9dh                               ; e2 f8
+    loop 06cbdh                               ; e2 f8
     mov ax, strict word 00061h                ; b8 61 00
-    call 016aeh                               ; e8 03 aa
+    call 016aeh                               ; e8 e3 a9
     xor ah, ah                                ; 30 e4
     or word [bp-00ah], ax                     ; 09 46 f6
@@ -10186,10 +10200,10 @@
     mov word [bp-00ah], strict word 00000h    ; c7 46 f6 00 00
     mov ax, strict word 00063h                ; b8 63 00
-    call 016aeh                               ; e8 ed a9
+    call 016aeh                               ; e8 cd a9
     mov byte [bp-004h], al                    ; 88 46 fc
     mov byte [bp-006h], al                    ; 88 46 fa
     mov ax, word [bp+014h]                    ; 8b 46 14
     cmp ax, strict word 00009h                ; 3d 09 00
-    jnbe short 06d31h                         ; 77 62
+    jnbe short 06d51h                         ; 77 62
     mov si, ax                                ; 89 c6
     sal si, 1                                 ; d1 e6
@@ -10198,5 +10212,5 @@
     mov cx, dx                                ; 89 d1
     adc cx, strict byte 0ffffh                ; 83 d1 ff
-    jmp word [cs:si+06b65h]                   ; 2e ff a4 65 6b
+    jmp word [cs:si+06b85h]                   ; 2e ff a4 85 6b
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -10212,8 +10226,8 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 067aeh                               ; e8 af fa
+    call 067ceh                               ; e8 af fa
     mov word [bp+014h], strict word 00001h    ; c7 46 14 01 00
     mov word [bp+016h], strict word 00000h    ; c7 46 16 00 00
-    jmp near 06ebch                           ; e9 b0 01
+    jmp near 06edch                           ; e9 b0 01
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10229,11 +10243,11 @@
     mov bx, 0fc00h                            ; bb 00 fc
     mov cx, strict word 00009h                ; b9 09 00
-    call 067aeh                               ; e8 84 fa
+    call 067ceh                               ; e8 84 fa
     mov word [bp+014h], strict word 00002h    ; c7 46 14 02 00
-    jmp short 06d04h                          ; eb d3
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp short 06d24h                          ; eb d3
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f7 ab
+    call 01933h                               ; e8 d7 ab
     push word [bp+014h]                       ; ff 76 14
     push word [bp+020h]                       ; ff 76 20
@@ -10242,5 +10256,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 29 ac
+    call 01976h                               ; e8 09 ac
     add sp, strict byte 00008h                ; 83 c4 08
     or byte [bp+028h], 001h                   ; 80 4e 28 01
@@ -10266,7 +10280,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0000fh                ; b9 0f 00
-    call 067aeh                               ; e8 2d fa
+    call 067ceh                               ; e8 2d fa
     mov word [bp+014h], strict word 00003h    ; c7 46 14 03 00
-    jmp near 06d04h                           ; e9 7b ff
+    jmp near 06d24h                           ; e9 7b ff
     mov dx, strict word 00001h                ; ba 01 00
     push dx                                   ; 52
@@ -10280,7 +10294,7 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 00010h                ; b9 10 00
-    call 067aeh                               ; e8 0d fa
+    call 067ceh                               ; e8 0d fa
     mov word [bp+014h], strict word 00004h    ; c7 46 14 04 00
-    jmp near 06d04h                           ; e9 5b ff
+    jmp near 06d24h                           ; e9 5b ff
     mov si, strict word 00003h                ; be 03 00
     push si                                   ; 56
@@ -10294,7 +10308,7 @@
     mov bx, ax                                ; 89 c3
     mov ax, si                                ; 89 f0
-    call 067aeh                               ; e8 ee f9
+    call 067ceh                               ; e8 ee f9
     mov word [bp+014h], strict word 00005h    ; c7 46 14 05 00
-    jmp near 06d04h                           ; e9 3c ff
+    jmp near 06d24h                           ; e9 3c ff
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10310,7 +10324,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fec0h                            ; b9 c0 fe
-    call 067aeh                               ; e8 c8 f9
+    call 067ceh                               ; e8 c8 f9
     mov word [bp+014h], strict word 00006h    ; c7 46 14 06 00
-    jmp near 06d04h                           ; e9 16 ff
+    jmp near 06d24h                           ; e9 16 ff
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10326,7 +10340,7 @@
     xor bx, bx                                ; 31 db
     mov cx, 0fee0h                            ; b9 e0 fe
-    call 067aeh                               ; e8 a2 f9
+    call 067ceh                               ; e8 a2 f9
     mov word [bp+014h], strict word 00007h    ; c7 46 14 07 00
-    jmp near 06d04h                           ; e9 f0 fe
+    jmp near 06d24h                           ; e9 f0 fe
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10340,17 +10354,17 @@
     xor bx, bx                                ; 31 db
     mov cx, strict word 0fffch                ; b9 fc ff
-    call 067aeh                               ; e8 82 f9
+    call 067ceh                               ; e8 82 f9
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06e39h                          ; 75 07
+    jne short 06e59h                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06e49h                           ; 74 10
+    je short 06e69h                           ; 74 10
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06d04h                           ; e9 c3 fe
+    jmp near 06d24h                           ; e9 c3 fe
     mov word [bp+014h], strict word 00008h    ; c7 46 14 08 00
-    jmp near 06d04h                           ; e9 bb fe
+    jmp near 06d24h                           ; e9 bb fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06ebch                          ; eb 6b
+    jmp short 06edch                          ; eb 6b
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
@@ -10364,19 +10378,19 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 067aeh                               ; e8 46 f9
+    call 067ceh                               ; e8 46 f9
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06e75h                          ; 75 07
+    jne short 06e95h                          ; 75 07
     mov ax, word [bp-008h]                    ; 8b 46 f8
     test ax, ax                               ; 85 c0
-    je short 06e7dh                           ; 74 08
+    je short 06e9dh                           ; 74 08
     mov word [bp+014h], strict word 00009h    ; c7 46 14 09 00
-    jmp near 06d04h                           ; e9 87 fe
+    jmp near 06d24h                           ; e9 87 fe
     mov word [bp+014h], ax                    ; 89 46 14
     mov word [bp+016h], ax                    ; 89 46 16
-    jmp short 06ebch                          ; eb 37
+    jmp short 06edch                          ; eb 37
     cmp byte [bp-004h], 000h                  ; 80 7e fc 00
-    jne short 06e91h                          ; 75 06
+    jne short 06eb1h                          ; 75 06
     cmp word [bp-008h], strict byte 00000h    ; 83 7e f8 00
-    je short 06ebch                           ; 74 2b
+    je short 06edch                           ; 74 2b
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
@@ -10394,5 +10408,5 @@
     xor bx, bx                                ; 31 db
     xor cx, cx                                ; 31 c9
-    call 067aeh                               ; e8 fa f8
+    call 067ceh                               ; e8 fa f8
     xor ax, ax                                ; 31 c0
     mov word [bp+014h], ax                    ; 89 46 14
@@ -10403,21 +10417,21 @@
     mov word [bp+01eh], strict word 00000h    ; c7 46 1e 00 00
     and byte [bp+028h], 0feh                  ; 80 66 28 fe
-    jmp near 06d5eh                           ; e9 87 fe
+    jmp near 06d7eh                           ; e9 87 fe
     mov word [bp+028h], bx                    ; 89 5e 28
     mov ax, strict word 00031h                ; b8 31 00
-    call 016aeh                               ; e8 ce a7
+    call 016aeh                               ; e8 ae a7
     mov dh, al                                ; 88 c6
     mov ax, strict word 00030h                ; b8 30 00
-    call 016aeh                               ; e8 c6 a7
+    call 016aeh                               ; e8 a6 a7
     mov dl, al                                ; 88 c2
     mov word [bp+01ch], dx                    ; 89 56 1c
     cmp dx, 03c00h                            ; 81 fa 00 3c
-    jbe short 06ef8h                          ; 76 05
+    jbe short 06f18h                          ; 76 05
     mov word [bp+01ch], 03c00h                ; c7 46 1c 00 3c
     mov ax, strict word 00035h                ; b8 35 00
-    call 016aeh                               ; e8 b0 a7
+    call 016aeh                               ; e8 90 a7
     mov dh, al                                ; 88 c6
     mov ax, strict word 00034h                ; b8 34 00
-    call 016aeh                               ; e8 a8 a7
+    call 016aeh                               ; e8 88 a7
     mov dl, al                                ; 88 c2
     mov word [bp+018h], dx                    ; 89 56 18
@@ -10425,6 +10439,6 @@
     mov word [bp+020h], ax                    ; 89 46 20
     mov word [bp+014h], dx                    ; 89 56 14
-    jmp near 06d5eh                           ; e9 47 fe
-_inv_op_handler:                             ; 0xf6f17 LB 0x18f
+    jmp near 06d7eh                           ; e9 47 fe
+_inv_op_handler:                             ; 0xf6f37 LB 0x18f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10435,10 +10449,10 @@
     les bx, [bp+018h]                         ; c4 5e 18
     cmp byte [es:bx], 0f0h                    ; 26 80 3f f0
-    jne short 06f2dh                          ; 75 06
+    jne short 06f4dh                          ; 75 06
     inc word [bp+018h]                        ; ff 46 18
-    jmp near 0709fh                           ; e9 72 01
+    jmp near 070bfh                           ; e9 72 01
     cmp word [es:bx], 0050fh                  ; 26 81 3f 0f 05
-    je short 06f37h                           ; 74 03
-    jmp near 0709bh                           ; e9 64 01
+    je short 06f57h                           ; 74 03
+    jmp near 070bbh                           ; e9 64 01
     mov si, 00800h                            ; be 00 08
     xor ax, ax                                ; 31 c0
@@ -10469,9 +10483,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 06f88h                               ; e2 fa
+    loop 06fa8h                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 06f96h                          ; 75 04
+    jne short 06fb6h                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 06f9bh                           ; 74 05
+    je short 06fbbh                           ; 74 05
     mov word [bp-006h], strict word 00001h    ; c7 46 fa 01 00
     mov es, [bp-008h]                         ; 8e 46 f8
@@ -10484,9 +10498,9 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 06fb1h                               ; e2 fa
+    loop 06fd1h                               ; e2 fa
     cmp bx, dx                                ; 39 d3
-    jne short 06fbfh                          ; 75 04
+    jne short 06fdfh                          ; 75 04
     cmp di, ax                                ; 39 c7
-    je short 06fc3h                           ; 74 04
+    je short 06fe3h                           ; 74 04
     or byte [bp-006h], 002h                   ; 80 4e fa 02
     xor ax, ax                                ; 31 c0
@@ -10538,8 +10552,8 @@
     mov ax, strict word 00008h                ; b8 08 00
     test cx, strict word 00001h               ; f7 c1 01 00
-    je near 07058h                            ; 0f 84 02 00
+    je near 07078h                            ; 0f 84 02 00
     mov es, ax                                ; 8e c0
     test cx, strict word 00002h               ; f7 c1 02 00
-    je near 07080h                            ; 0f 84 20 00
+    je near 070a0h                            ; 0f 84 20 00
     mov bx, word [word ss:00000h]             ; 36 8b 1e 00 00
     mov word [word ss:00008h], bx             ; 36 89 1e 08 00
@@ -10558,8 +10572,8 @@
     mov ss, [word ss:00020h]                  ; 36 8e 16 20 00
     iret                                      ; cf
-    jmp short 0709fh                          ; eb 04
+    jmp short 070bfh                          ; eb 04
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0709ch                          ; eb fd
+    jmp short 070bch                          ; eb fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -10567,5 +10581,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-init_rtc_:                                   ; 0xf70a6 LB 0x28
+init_rtc_:                                   ; 0xf70c6 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10573,17 +10587,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016c9h                               ; e8 16 a6
+    call 016c9h                               ; e8 f6 a5
     mov dx, strict word 00002h                ; ba 02 00
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 0d a6
+    call 016c9h                               ; e8 ed a5
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016aeh                               ; e8 ec a5
+    call 016aeh                               ; e8 cc a5
     mov ax, strict word 0000dh                ; b8 0d 00
-    call 016aeh                               ; e8 e6 a5
+    call 016aeh                               ; e8 c6 a5
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop dx                                    ; 5a
     pop bp                                    ; 5d
     retn                                      ; c3
-rtc_updating_:                               ; 0xf70ce LB 0x21
+rtc_updating_:                               ; 0xf70ee LB 0x21
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10591,11 +10605,11 @@
     mov dx, 061a8h                            ; ba a8 61
     dec dx                                    ; 4a
-    je short 070e6h                           ; 74 0e
+    je short 07106h                           ; 74 0e
     mov ax, strict word 0000ah                ; b8 0a 00
-    call 016aeh                               ; e8 d0 a5
+    call 016aeh                               ; e8 b0 a5
     test AL, strict byte 080h                 ; a8 80
-    jne short 070d5h                          ; 75 f3
+    jne short 070f5h                          ; 75 f3
     xor ax, ax                                ; 31 c0
-    jmp short 070e9h                          ; eb 03
+    jmp short 07109h                          ; eb 03
     mov ax, strict word 00001h                ; b8 01 00
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -10603,5 +10617,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int70_function:                             ; 0xf70ef LB 0xbf
+_int70_function:                             ; 0xf710f LB 0xbf
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10609,52 +10623,52 @@
     push ax                                   ; 50
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 b4 a5
+    call 016aeh                               ; e8 94 a5
     mov bl, al                                ; 88 c3
     mov byte [bp-004h], al                    ; 88 46 fc
     mov ax, strict word 0000ch                ; b8 0c 00
-    call 016aeh                               ; e8 a9 a5
+    call 016aeh                               ; e8 89 a5
     mov dl, al                                ; 88 c2
     test bl, 060h                             ; f6 c3 60
-    jne short 0710fh                          ; 75 03
-    jmp near 07195h                           ; e9 86 00
+    jne short 0712fh                          ; 75 03
+    jmp near 071b5h                           ; e9 86 00
     test AL, strict byte 020h                 ; a8 20
-    je short 07117h                           ; 74 04
+    je short 07137h                           ; 74 04
     sti                                       ; fb
     int 04ah                                  ; cd 4a
     cli                                       ; fa
     test dl, 040h                             ; f6 c2 40
-    je short 0717fh                           ; 74 63
+    je short 0719fh                           ; 74 63
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 2d a5
+    call 01652h                               ; e8 0d a5
     test al, al                               ; 84 c0
-    je short 07195h                           ; 74 6c
+    je short 071b5h                           ; 74 6c
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0168ah                               ; e8 58 a5
+    call 0168ah                               ; e8 38 a5
     test dx, dx                               ; 85 d2
-    jne short 07181h                          ; 75 4b
+    jne short 071a1h                          ; 75 4b
     cmp ax, 003d1h                            ; 3d d1 03
-    jnc short 07181h                          ; 73 46
+    jnc short 071a1h                          ; 73 46
     mov dx, 00098h                            ; ba 98 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 2a a5
+    call 0166eh                               ; e8 0a a5
     mov si, ax                                ; 89 c6
     mov dx, 0009ah                            ; ba 9a 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 1f a5
+    call 0166eh                               ; e8 ff a4
     mov cx, ax                                ; 89 c1
     xor bx, bx                                ; 31 db
     mov dx, 000a0h                            ; ba a0 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 04 a5
+    call 01660h                               ; e8 e4 a4
     mov dl, byte [bp-004h]                    ; 8a 56 fc
     and dl, 037h                              ; 80 e2 37
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 5f a5
+    call 016c9h                               ; e8 3f a5
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01652h                               ; e8 e1 a4
+    call 01652h                               ; e8 c1 a4
     mov bl, al                                ; 88 c3
     or bl, 080h                               ; 80 cb 80
@@ -10662,6 +10676,6 @@
     mov dx, cx                                ; 89 ca
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 e1 a4
-    jmp short 07195h                          ; eb 14
+    call 01660h                               ; e8 c1 a4
+    jmp short 071b5h                          ; eb 14
     mov bx, ax                                ; 89 c3
     add bx, 0fc2fh                            ; 81 c3 2f fc
@@ -10670,19 +10684,19 @@
     mov dx, 0009ch                            ; ba 9c 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0169ch                               ; e8 07 a5
-    call 0e030h                               ; e8 98 6e
+    call 0169ch                               ; e8 e7 a4
+    call 0e030h                               ; e8 78 6e
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-    les si, [bx+di-015h]                      ; c4 71 eb
-    jno short 071b3h                          ; 71 10
-    jc short 071f1h                           ; 72 4c
-    jc short 07145h                           ; 72 9e
-    jc short 0717eh                           ; 72 d5
-    jc short 071c7h                           ; 72 1c
-    jnc short 07224h                          ; 73 77
+    in AL, strict byte 071h                   ; e4 71
+    or si, word [bp+si+030h]                  ; 0b 72 30
+    jc short 07231h                           ; 72 6c
+    jc short 07185h                           ; 72 be
+    jc short 071beh                           ; 72 f5
+    jc short 07207h                           ; 72 3c
+    jnc short 07164h                          ; 73 97
     db  073h
-_int1a_function:                             ; 0xf71ae LB 0x1d9
+_int1a_function:                             ; 0xf71ce LB 0x1d9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10690,9 +10704,9 @@
     mov al, byte [bp+013h]                    ; 8a 46 13
     cmp AL, strict byte 007h                  ; 3c 07
-    jnbe short 07217h                         ; 77 5e
+    jnbe short 07237h                         ; 77 5e
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx+0719eh]                   ; 2e ff a7 9e 71
+    jmp word [cs:bx+071beh]                   ; 2e ff a7 be 71
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10709,5 +10723,5 @@
     mov byte [es:bx], 000h                    ; 26 c6 07 00
     sti                                       ; fb
-    jmp short 07217h                          ; eb 2c
+    jmp short 07237h                          ; eb 2c
     cli                                       ; fa
     mov bx, 0046eh                            ; bb 6e 04
@@ -10723,21 +10737,21 @@
     sti                                       ; fb
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    jmp short 07217h                          ; eb 07
-    call 070ceh                               ; e8 bb fe
+    jmp short 07237h                          ; eb 07
+    call 070eeh                               ; e8 bb fe
     test ax, ax                               ; 85 c0
-    je short 0721ah                           ; 74 03
-    jmp near 07248h                           ; e9 2e 00
+    je short 0723ah                           ; 74 03
+    jmp near 07268h                           ; e9 2e 00
     xor ax, ax                                ; 31 c0
-    call 016aeh                               ; e8 8f a4
+    call 016aeh                               ; e8 6f a4
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00002h                ; b8 02 00
-    call 016aeh                               ; e8 86 a4
+    call 016aeh                               ; e8 66 a4
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00004h                ; b8 04 00
-    call 016aeh                               ; e8 7d a4
+    call 016aeh                               ; e8 5d a4
     mov dl, al                                ; 88 c2
     mov byte [bp+011h], al                    ; 88 46 11
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 72 a4
+    call 016aeh                               ; e8 52 a4
     and AL, strict byte 001h                  ; 24 01
     mov byte [bp+00eh], al                    ; 88 46 0e
@@ -10747,22 +10761,22 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    call 070ceh                               ; e8 7f fe
+    call 070eeh                               ; e8 7f fe
     test ax, ax                               ; 85 c0
-    je short 07256h                           ; 74 03
-    call 070a6h                               ; e8 50 fe
+    je short 07276h                           ; 74 03
+    call 070c6h                               ; e8 50 fe
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     xor ax, ax                                ; 31 c0
-    call 016c9h                               ; e8 69 a4
+    call 016c9h                               ; e8 49 a4
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00002h                ; b8 02 00
-    call 016c9h                               ; e8 5e a4
+    call 016c9h                               ; e8 3e a4
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00004h                ; b8 04 00
-    call 016c9h                               ; e8 53 a4
+    call 016c9h                               ; e8 33 a4
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 32 a4
+    call 016aeh                               ; e8 12 a4
     mov bl, al                                ; 88 c3
     and bl, 060h                              ; 80 e3 60
@@ -10774,76 +10788,76 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 34 a4
+    call 016c9h                               ; e8 14 a4
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov byte [bp+012h], bl                    ; 88 5e 12
-    jmp short 07248h                          ; eb aa
+    jmp short 07268h                          ; eb aa
     mov byte [bp+013h], 000h                  ; c6 46 13 00
-    call 070ceh                               ; e8 29 fe
+    call 070eeh                               ; e8 29 fe
     test ax, ax                               ; 85 c0
-    je short 072abh                           ; 74 02
-    jmp short 07248h                          ; eb 9d
+    je short 072cbh                           ; 74 02
+    jmp short 07268h                          ; eb 9d
     mov ax, strict word 00009h                ; b8 09 00
-    call 016aeh                               ; e8 fd a3
+    call 016aeh                               ; e8 dd a3
     mov byte [bp+010h], al                    ; 88 46 10
     mov ax, strict word 00008h                ; b8 08 00
-    call 016aeh                               ; e8 f4 a3
+    call 016aeh                               ; e8 d4 a3
     mov byte [bp+00fh], al                    ; 88 46 0f
     mov ax, strict word 00007h                ; b8 07 00
-    call 016aeh                               ; e8 eb a3
+    call 016aeh                               ; e8 cb a3
     mov byte [bp+00eh], al                    ; 88 46 0e
     mov ax, strict word 00032h                ; b8 32 00
-    call 016aeh                               ; e8 e2 a3
+    call 016aeh                               ; e8 c2 a3
     mov byte [bp+011h], al                    ; 88 46 11
     mov byte [bp+012h], al                    ; 88 46 12
-    jmp near 07248h                           ; e9 73 ff
-    call 070ceh                               ; e8 f6 fd
+    jmp near 07268h                           ; e9 73 ff
+    call 070eeh                               ; e8 f6 fd
     test ax, ax                               ; 85 c0
-    je short 072e2h                           ; 74 06
-    call 070a6h                               ; e8 c7 fd
-    jmp near 07248h                           ; e9 66 ff
+    je short 07302h                           ; 74 06
+    call 070c6h                               ; e8 c7 fd
+    jmp near 07268h                           ; e9 66 ff
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00009h                ; b8 09 00
-    call 016c9h                               ; e8 dc a3
+    call 016c9h                               ; e8 bc a3
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00008h                ; b8 08 00
-    call 016c9h                               ; e8 d1 a3
+    call 016c9h                               ; e8 b1 a3
     mov dl, byte [bp+00eh]                    ; 8a 56 0e
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00007h                ; b8 07 00
-    call 016c9h                               ; e8 c6 a3
+    call 016c9h                               ; e8 a6 a3
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00032h                ; b8 32 00
-    call 016c9h                               ; e8 bb a3
+    call 016c9h                               ; e8 9b a3
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 9a a3
+    call 016aeh                               ; e8 7a a3
     mov bl, al                                ; 88 c3
     and bl, 07fh                              ; 80 e3 7f
-    jmp near 0728bh                           ; e9 6f ff
+    jmp near 072abh                           ; e9 6f ff
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 8c a3
+    call 016aeh                               ; e8 6c a3
     mov bl, al                                ; 88 c3
     mov word [bp+012h], strict word 00000h    ; c7 46 12 00 00
     test AL, strict byte 020h                 ; a8 20
-    je short 07330h                           ; 74 03
-    jmp near 07248h                           ; e9 18 ff
-    call 070ceh                               ; e8 9b fd
+    je short 07350h                           ; 74 03
+    jmp near 07268h                           ; e9 18 ff
+    call 070eeh                               ; e8 9b fd
     test ax, ax                               ; 85 c0
-    je short 0733ah                           ; 74 03
-    call 070a6h                               ; e8 6c fd
+    je short 0735ah                           ; 74 03
+    call 070c6h                               ; e8 6c fd
     mov dl, byte [bp+00fh]                    ; 8a 56 0f
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00001h                ; b8 01 00
-    call 016c9h                               ; e8 84 a3
+    call 016c9h                               ; e8 64 a3
     mov dl, byte [bp+010h]                    ; 8a 56 10
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00003h                ; b8 03 00
-    call 016c9h                               ; e8 79 a3
+    call 016c9h                               ; e8 59 a3
     mov dl, byte [bp+011h]                    ; 8a 56 11
     xor dh, dh                                ; 30 f6
     mov ax, strict word 00005h                ; b8 05 00
-    call 016c9h                               ; e8 6e a3
+    call 016c9h                               ; e8 4e a3
     mov dx, 000a1h                            ; ba a1 00
     in AL, DX                                 ; ec
@@ -10857,13 +10871,13 @@
     xor dh, dh                                ; 30 f6
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016c9h                               ; e8 55 a3
-    jmp near 07248h                           ; e9 d1 fe
+    call 016c9h                               ; e8 35 a3
+    jmp near 07268h                           ; e9 d1 fe
     mov ax, strict word 0000bh                ; b8 0b 00
-    call 016aeh                               ; e8 31 a3
+    call 016aeh                               ; e8 11 a3
     mov bl, al                                ; 88 c3
     mov dl, al                                ; 88 c2
     and dl, 057h                              ; 80 e2 57
-    jmp near 0728dh                           ; e9 06 ff
-send_to_mouse_ctrl_:                         ; 0xf7387 LB 0x38
+    jmp near 072adh                           ; e9 06 ff
+send_to_mouse_ctrl_:                         ; 0xf73a7 LB 0x38
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10876,12 +10890,12 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 073aah                           ; 74 12
+    je short 073cah                           ; 74 12
     mov ax, 008eeh                            ; b8 ee 08
     push ax                                   ; 50
-    mov ax, 0116ch                            ; b8 6c 11
+    mov ax, 01168h                            ; b8 68 11
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 cf a5
+    call 01976h                               ; e8 af a5
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 0d4h                  ; b0 d4
@@ -10897,5 +10911,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_mouse_data_:                             ; 0xf73bf LB 0x5d
+get_mouse_data_:                             ; 0xf73df LB 0x5d
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10912,7 +10926,7 @@
     and ax, strict word 00021h                ; 25 21 00
     cmp ax, strict word 00021h                ; 3d 21 00
-    je short 07402h                           ; 74 28
+    je short 07422h                           ; 74 28
     test cx, cx                               ; 85 c9
-    je short 07402h                           ; 74 24
+    je short 07422h                           ; 74 24
     mov dx, strict word 00061h                ; ba 61 00
     in AL, DX                                 ; ec
@@ -10931,11 +10945,11 @@
     xor ah, ah                                ; 30 e4
     cmp dx, ax                                ; 39 c2
-    je short 073e9h                           ; 74 ea
+    je short 07409h                           ; 74 ea
     dec cx                                    ; 49
-    jmp short 073cch                          ; eb ca
+    jmp short 073ech                          ; eb ca
     test cx, cx                               ; 85 c9
-    jne short 0740ah                          ; 75 04
+    jne short 0742ah                          ; 75 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 07415h                          ; eb 0b
+    jmp short 07435h                          ; eb 0b
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -10949,5 +10963,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-set_kbd_command_byte_:                       ; 0xf741c LB 0x36
+set_kbd_command_byte_:                       ; 0xf743c LB 0x36
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10960,12 +10974,12 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 002h                 ; a8 02
-    je short 0743fh                           ; 74 12
+    je short 0745fh                           ; 74 12
     mov ax, 008f8h                            ; b8 f8 08
     push ax                                   ; 50
-    mov ax, 0116ch                            ; b8 6c 11
+    mov ax, 01168h                            ; b8 68 11
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 3a a5
+    call 01976h                               ; e8 1a a5
     add sp, strict byte 00006h                ; 83 c4 06
     mov AL, strict byte 060h                  ; b0 60
@@ -10980,5 +10994,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_int74_function:                             ; 0xf7452 LB 0xd2
+_int74_function:                             ; 0xf7472 LB 0xd2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -10986,5 +11000,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 0d a2
+    call 0166eh                               ; e8 ed a1
     mov cx, ax                                ; 89 c1
     mov word [bp+004h], strict word 00000h    ; c7 46 04 00 00
@@ -10995,5 +11009,5 @@
     and AL, strict byte 021h                  ; 24 21
     cmp AL, strict byte 021h                  ; 3c 21
-    jne short 07496h                          ; 75 22
+    jne short 074b6h                          ; 75 22
     mov dx, strict word 00060h                ; ba 60 00
     in AL, DX                                 ; ec
@@ -11003,13 +11017,13 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 ce a1
+    call 01652h                               ; e8 ae a1
     mov byte [bp-002h], al                    ; 88 46 fe
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 c3 a1
+    call 01652h                               ; e8 a3 a1
     mov byte [bp-006h], al                    ; 88 46 fa
     test AL, strict byte 080h                 ; a8 80
-    jne short 07499h                          ; 75 03
-    jmp near 07510h                           ; e9 77 00
+    jne short 074b9h                          ; 75 03
+    jmp near 07530h                           ; e9 77 00
     mov al, byte [bp-006h]                    ; 8a 46 fa
     and AL, strict byte 007h                  ; 24 07
@@ -11025,21 +11039,21 @@
     add dx, strict byte 00028h                ; 83 c2 28
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 a4 a1
+    call 01660h                               ; e8 84 a1
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp al, byte [bp-004h]                    ; 3a 46 fc
-    jc short 07500h                           ; 72 3c
+    jc short 07520h                           ; 72 3c
     mov dx, strict word 00028h                ; ba 28 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 86 a1
+    call 01652h                               ; e8 66 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+00ch], ax                    ; 89 46 0c
     mov dx, strict word 00029h                ; ba 29 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 79 a1
+    call 01652h                               ; e8 59 a1
     xor ah, ah                                ; 30 e4
     mov word [bp+00ah], ax                    ; 89 46 0a
     mov dx, strict word 0002ah                ; ba 2a 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 6c a1
+    call 01652h                               ; e8 4c a1
     xor ah, ah                                ; 30 e4
     mov word [bp+008h], ax                    ; 89 46 08
@@ -11048,7 +11062,7 @@
     mov byte [bp-002h], ah                    ; 88 66 fe
     test byte [bp-006h], 080h                 ; f6 46 fa 80
-    je short 07503h                           ; 74 0a
+    je short 07523h                           ; 74 0a
     mov word [bp+004h], strict word 00001h    ; c7 46 04 01 00
-    jmp short 07503h                          ; eb 03
+    jmp short 07523h                          ; eb 03
     inc byte [bp-002h]                        ; fe 46 fe
     mov bl, byte [bp-002h]                    ; 8a 5e fe
@@ -11056,18 +11070,17 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 50 a1
+    call 01660h                               ; e8 30 a1
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  066h, 075h, 0e2h
-    ; jne short 074f9h                          ; 66 75 e2
-    jne short 0757bh                          ; 75 62
-    jbe short 07512h                          ; 76 f7
-    jbe short 07586h                          ; 76 69
-    jnbe short 074cch                         ; 77 ad
-    jne short 074b2h                          ; 75 91
-    jnbe short 07581h                         ; 77 5e
+    xchg byte [di+002h], dh                   ; 86 75 02
+    jbe short 074bbh                          ; 76 82
+    jbe short 07552h                          ; 76 17
+    jnbe short 074c6h                         ; 77 89
+    jnbe short 0750ch                         ; 77 cd
+    jne short 074f2h                          ; 75 b1
+    jnbe short 075c1h                         ; 77 7e
     db  078h
-_int15_function_mouse:                       ; 0xf7524 LB 0x3a0
+_int15_function_mouse:                       ; 0xf7544 LB 0x3a0
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11076,60 +11089,60 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 3a a1
+    call 0166eh                               ; e8 1a a1
     mov cx, ax                                ; 89 c1
     cmp byte [bp+012h], 007h                  ; 80 7e 12 07
-    jbe short 07547h                          ; 76 0b
+    jbe short 07567h                          ; 76 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp near 078beh                           ; e9 77 03
+    jmp near 078deh                           ; e9 77 03
     mov ax, strict word 00065h                ; b8 65 00
-    call 0741ch                               ; e8 cf fe
+    call 0743ch                               ; e8 cf fe
     and word [bp+018h], strict byte 0fffeh    ; 83 66 18 fe
     mov byte [bp+013h], 000h                  ; c6 46 13 00
     mov bl, byte [bp+012h]                    ; 8a 5e 12
     cmp bl, 007h                              ; 80 fb 07
-    jnbe short 075bbh                         ; 77 5e
+    jnbe short 075dbh                         ; 77 5e
     xor bh, bh                                ; 30 ff
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx+07514h]                   ; 2e ff a7 14 75
+    jmp word [cs:bx+07534h]                   ; 2e ff a7 34 75
     cmp byte [bp+00dh], 001h                  ; 80 7e 0d 01
-    jnbe short 075beh                         ; 77 52
+    jnbe short 075deh                         ; 77 52
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 de a0
+    call 01652h                               ; e8 be a0
     test AL, strict byte 080h                 ; a8 80
-    jne short 07583h                          ; 75 0b
+    jne short 075a3h                          ; 75 0b
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 005h                  ; c6 46 13 05
-    jmp near 078b8h                           ; e9 35 03
+    jmp near 078d8h                           ; e9 35 03
     cmp byte [bp+00dh], 000h                  ; 80 7e 0d 00
-    jne short 0758dh                          ; 75 04
+    jne short 075adh                          ; 75 04
     mov AL, strict byte 0f5h                  ; b0 f5
-    jmp short 0758fh                          ; eb 02
+    jmp short 075afh                          ; eb 02
     mov AL, strict byte 0f4h                  ; b0 f4
     xor ah, ah                                ; 30 e4
-    call 07387h                               ; e8 f3 fd
+    call 073a7h                               ; e8 f3 fd
     test al, al                               ; 84 c0
-    jne short 075c1h                          ; 75 29
+    jne short 075e1h                          ; 75 29
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 1f fe
+    call 073dfh                               ; e8 1f fe
     test al, al                               ; 84 c0
-    je short 075aah                           ; 74 06
+    je short 075cah                           ; 74 06
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    jne short 075c1h                          ; 75 17
-    jmp near 078b8h                           ; e9 0b 03
+    jne short 075e1h                          ; 75 17
+    jmp near 078d8h                           ; e9 0b 03
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 075b8h                           ; 72 04
+    jc short 075d8h                           ; 72 04
     cmp AL, strict byte 008h                  ; 3c 08
-    jbe short 075c4h                          ; 76 0c
-    jmp near 0775fh                           ; e9 a4 01
-    jmp near 078a2h                           ; e9 e4 02
-    jmp near 078b0h                           ; e9 ef 02
-    jmp near 07836h                           ; e9 72 02
+    jbe short 075e4h                          ; 76 0c
+    jmp near 0777fh                           ; e9 a4 01
+    jmp near 078c2h                           ; e9 e4 02
+    jmp near 078d0h                           ; e9 ef 02
+    jmp near 07856h                           ; e9 72 02
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 86 a0
+    call 01652h                               ; e8 66 a0
     mov ah, byte [bp+00dh]                    ; 8a 66 0d
     db  0feh, 0cch
@@ -11141,8 +11154,8 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 7e a0
+    call 01660h                               ; e8 5e a0
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 68 a0
+    call 01652h                               ; e8 48 a0
     mov bl, al                                ; 88 c3
     and bl, 0f8h                              ; 80 e3 f8
@@ -11150,20 +11163,20 @@
     mov dx, strict word 00026h                ; ba 26 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 67 a0
+    call 01660h                               ; e8 47 a0
     mov ax, 000ffh                            ; b8 ff 00
-    call 07387h                               ; e8 88 fd
+    call 073a7h                               ; e8 88 fd
     test al, al                               ; 84 c0
-    jne short 075c1h                          ; 75 be
+    jne short 075e1h                          ; 75 be
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073bfh                               ; e8 b4 fd
+    call 073dfh                               ; e8 b4 fd
     mov cl, al                                ; 88 c1
     cmp byte [bp-008h], 0feh                  ; 80 7e f8 fe
-    jne short 0761dh                          ; 75 0a
+    jne short 0763dh                          ; 75 0a
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 004h                  ; c6 46 13 04
-    jmp short 075aah                          ; eb 8d
+    jmp short 075cah                          ; eb 8d
     cmp byte [bp-008h], 0fah                  ; 80 7e f8 fa
-    je short 07637h                           ; 74 14
+    je short 07657h                           ; 74 14
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -11173,89 +11186,89 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 42 a3
+    call 01976h                               ; e8 22 a3
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 075c1h                          ; 75 86
+    jne short 075e1h                          ; 75 86
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 7c fd
+    call 073dfh                               ; e8 7c fd
     test al, al                               ; 84 c0
-    jne short 0769dh                          ; 75 56
+    jne short 076bdh                          ; 75 56
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073bfh                               ; e8 70 fd
+    call 073dfh                               ; e8 70 fd
     test al, al                               ; 84 c0
-    jne short 0769dh                          ; 75 4a
+    jne short 076bdh                          ; 75 4a
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00ch], al                    ; 88 46 0c
     mov al, byte [bp-004h]                    ; 8a 46 fc
     mov byte [bp+00dh], al                    ; 88 46 0d
-    jmp near 078b8h                           ; e9 56 02
+    jmp near 078d8h                           ; e9 56 02
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     cmp AL, strict byte 003h                  ; 3c 03
-    jc short 07679h                           ; 72 10
-    jbe short 07697h                          ; 76 2c
+    jc short 07699h                           ; 72 10
+    jbe short 076b7h                          ; 76 2c
     cmp AL, strict byte 006h                  ; 3c 06
-    je short 076ach                           ; 74 3d
+    je short 076cch                           ; 74 3d
     cmp AL, strict byte 005h                  ; 3c 05
-    je short 076a6h                           ; 74 33
+    je short 076c6h                           ; 74 33
     cmp AL, strict byte 004h                  ; 3c 04
-    je short 076a0h                           ; 74 29
-    jmp short 076b2h                          ; eb 39
+    je short 076c0h                           ; 74 29
+    jmp short 076d2h                          ; eb 39
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 07691h                           ; 74 14
+    je short 076b1h                           ; 74 14
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 0768bh                           ; 74 0a
+    je short 076abh                           ; 74 0a
     test al, al                               ; 84 c0
-    jne short 076b2h                          ; 75 2d
+    jne short 076d2h                          ; 75 2d
     mov byte [bp-006h], 00ah                  ; c6 46 fa 0a
-    jmp short 076b6h                          ; eb 2b
+    jmp short 076d6h                          ; eb 2b
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 076b6h                          ; eb 25
+    jmp short 076d6h                          ; eb 25
     mov byte [bp-006h], 028h                  ; c6 46 fa 28
-    jmp short 076b6h                          ; eb 1f
+    jmp short 076d6h                          ; eb 1f
     mov byte [bp-006h], 03ch                  ; c6 46 fa 3c
-    jmp short 076b6h                          ; eb 19
-    jmp near 07836h                           ; e9 96 01
+    jmp short 076d6h                          ; eb 19
+    jmp near 07856h                           ; e9 96 01
     mov byte [bp-006h], 050h                  ; c6 46 fa 50
-    jmp short 076b6h                          ; eb 10
+    jmp short 076d6h                          ; eb 10
     mov byte [bp-006h], 064h                  ; c6 46 fa 64
-    jmp short 076b6h                          ; eb 0a
+    jmp short 076d6h                          ; eb 0a
     mov byte [bp-006h], 0c8h                  ; c6 46 fa c8
-    jmp short 076b6h                          ; eb 04
+    jmp short 076d6h                          ; eb 04
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     cmp byte [bp-006h], 000h                  ; 80 7e fa 00
-    jbe short 076ech                          ; 76 30
+    jbe short 0770ch                          ; 76 30
     mov ax, 000f3h                            ; b8 f3 00
-    call 07387h                               ; e8 c5 fc
+    call 073a7h                               ; e8 c5 fc
     test al, al                               ; 84 c0
-    jne short 076e1h                          ; 75 1b
+    jne short 07701h                          ; 75 1b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073bfh                               ; e8 f1 fc
+    call 073dfh                               ; e8 f1 fc
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
-    call 07387h                               ; e8 b1 fc
+    call 073a7h                               ; e8 b1 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073bfh                               ; e8 e1 fc
-    jmp near 078b8h                           ; e9 d7 01
+    call 073dfh                               ; e8 e1 fc
+    jmp near 078d8h                           ; e9 d7 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 078b8h                           ; e9 cc 01
+    jmp near 078d8h                           ; e9 cc 01
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp near 078b8h                           ; e9 c1 01
+    jmp near 078d8h                           ; e9 c1 01
     cmp byte [bp+00dh], 004h                  ; 80 7e 0d 04
-    jnc short 0775fh                          ; 73 62
+    jnc short 0777fh                          ; 73 62
     mov ax, 000e8h                            ; b8 e8 00
-    call 07387h                               ; e8 84 fc
+    call 073a7h                               ; e8 84 fc
     test al, al                               ; 84 c0
-    jne short 07755h                          ; 75 4e
+    jne short 07775h                          ; 75 4e
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 b0 fc
+    call 073dfh                               ; e8 b0 fc
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 07729h                           ; 74 14
+    je short 07749h                           ; 74 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -11265,14 +11278,14 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 50 a2
+    call 01976h                               ; e8 30 a2
     add sp, strict byte 00006h                ; 83 c4 06
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
-    call 07387h                               ; e8 56 fc
+    call 073a7h                               ; e8 56 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 86 fc
+    call 073dfh                               ; e8 86 fc
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 0778eh                           ; 74 4f
+    je short 077aeh                           ; 74 4f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -11282,44 +11295,44 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 26 a2
+    call 01976h                               ; e8 06 a2
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp short 0778eh                          ; eb 39
+    jmp short 077aeh                          ; eb 39
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 0778eh                          ; eb 2f
+    jmp short 077aeh                          ; eb 2f
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 002h                  ; c6 46 13 02
-    jmp short 0778eh                          ; eb 25
+    jmp short 077aeh                          ; eb 25
     mov ax, 000f2h                            ; b8 f2 00
-    call 07387h                               ; e8 18 fc
+    call 073a7h                               ; e8 18 fc
     test al, al                               ; 84 c0
-    jne short 07786h                          ; 75 13
+    jne short 077a6h                          ; 75 13
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 44 fc
+    call 073dfh                               ; e8 44 fc
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073bfh                               ; e8 3c fc
-    jmp near 07659h                           ; e9 d3 fe
+    call 073dfh                               ; e8 3c fc
+    jmp near 07679h                           ; e9 d3 fe
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp near 078b8h                           ; e9 27 01
+    jmp near 078d8h                           ; e9 27 01
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     test al, al                               ; 84 c0
-    jbe short 077a1h                          ; 76 09
+    jbe short 077c1h                          ; 76 09
     cmp AL, strict byte 002h                  ; 3c 02
-    jbe short 0779fh                          ; 76 03
-    jmp near 07840h                           ; e9 a1 00
-    jmp short 0780bh                          ; eb 6a
+    jbe short 077bfh                          ; 76 03
+    jmp near 07860h                           ; e9 a1 00
+    jmp short 0782bh                          ; eb 6a
     mov ax, 000e9h                            ; b8 e9 00
-    call 07387h                               ; e8 e0 fb
+    call 073a7h                               ; e8 e0 fb
     test al, al                               ; 84 c0
-    jne short 07814h                          ; 75 69
+    jne short 07834h                          ; 75 69
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 0c fc
+    call 073dfh                               ; e8 0c fc
     mov cl, al                                ; 88 c1
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 077cfh                           ; 74 14
+    je short 077efh                           ; 74 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -11329,23 +11342,23 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 aa a1
+    call 01976h                               ; e8 8a a1
     add sp, strict byte 00006h                ; 83 c4 06
     test cl, cl                               ; 84 c9
-    jne short 07836h                          ; 75 63
+    jne short 07856h                          ; 75 63
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 e4 fb
+    call 073dfh                               ; e8 e4 fb
     test al, al                               ; 84 c0
-    jne short 07836h                          ; 75 57
+    jne short 07856h                          ; 75 57
     mov dx, ss                                ; 8c d2
     lea ax, [bp-004h]                         ; 8d 46 fc
-    call 073bfh                               ; e8 d8 fb
+    call 073dfh                               ; e8 d8 fb
     test al, al                               ; 84 c0
-    jne short 07836h                          ; 75 4b
+    jne short 07856h                          ; 75 4b
     mov dx, ss                                ; 8c d2
     lea ax, [bp-008h]                         ; 8d 46 f8
-    call 073bfh                               ; e8 cc fb
+    call 073dfh                               ; e8 cc fb
     test al, al                               ; 84 c0
-    jne short 07836h                          ; 75 3f
+    jne short 07856h                          ; 75 3f
     mov al, byte [bp-006h]                    ; 8a 46 fa
     mov byte [bp+00ch], al                    ; 88 46 0c
@@ -11354,26 +11367,26 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     mov byte [bp+00eh], al                    ; 88 46 0e
-    jmp short 0778eh                          ; eb 83
+    jmp short 077aeh                          ; eb 83
     cmp AL, strict byte 001h                  ; 3c 01
-    jne short 07816h                          ; 75 07
+    jne short 07836h                          ; 75 07
     mov ax, 000e6h                            ; b8 e6 00
-    jmp short 07819h                          ; eb 05
-    jmp short 07836h                          ; eb 20
+    jmp short 07839h                          ; eb 05
+    jmp short 07856h                          ; eb 20
     mov ax, 000e7h                            ; b8 e7 00
-    call 07387h                               ; e8 6b fb
+    call 073a7h                               ; e8 6b fb
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    jne short 07832h                          ; 75 10
+    jne short 07852h                          ; 75 10
     mov dx, ss                                ; 8c d2
     lea ax, [bp-006h]                         ; 8d 46 fa
-    call 073bfh                               ; e8 95 fb
+    call 073dfh                               ; e8 95 fb
     cmp byte [bp-006h], 0fah                  ; 80 7e fa fa
-    je short 07832h                           ; 74 02
+    je short 07852h                           ; 74 02
     mov CL, strict byte 001h                  ; b1 01
     test cl, cl                               ; 84 c9
-    je short 078a0h                           ; 74 6a
+    je short 078c0h                           ; 74 6a
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 003h                  ; c6 46 13 03
-    jmp short 078a0h                          ; eb 60
+    jmp short 078c0h                          ; eb 60
     mov al, byte [bp+00dh]                    ; 8a 46 0d
     xor ah, ah                                ; 30 e4
@@ -11383,30 +11396,30 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 25 a1
+    call 01976h                               ; e8 05 a1
     add sp, strict byte 00006h                ; 83 c4 06
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
-    jmp short 078b8h                          ; eb 5a
+    jmp short 078d8h                          ; eb 5a
     mov si, word [bp+00ch]                    ; 8b 76 0c
     mov bx, si                                ; 89 f3
     mov dx, strict word 00022h                ; ba 22 00
     mov ax, cx                                ; 89 c8
-    call 0167ch                               ; e8 11 9e
+    call 0167ch                               ; e8 f1 9d
     mov bx, word [bp+014h]                    ; 8b 5e 14
     mov dx, strict word 00024h                ; ba 24 00
     mov ax, cx                                ; 89 c8
-    call 0167ch                               ; e8 06 9e
+    call 0167ch                               ; e8 e6 9d
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01652h                               ; e8 d4 9d
+    call 01652h                               ; e8 b4 9d
     mov ah, al                                ; 88 c4
     test si, si                               ; 85 f6
-    jne short 07892h                          ; 75 0e
+    jne short 078b2h                          ; 75 0e
     cmp word [bp+014h], strict byte 00000h    ; 83 7e 14 00
-    jne short 07892h                          ; 75 08
+    jne short 078b2h                          ; 75 08
     test AL, strict byte 080h                 ; a8 80
-    je short 07894h                           ; 74 06
+    je short 078b4h                           ; 74 06
     and AL, strict byte 07fh                  ; 24 7f
-    jmp short 07894h                          ; eb 02
+    jmp short 078b4h                          ; eb 02
     or AL, strict byte 080h                   ; 0c 80
     mov bl, al                                ; 88 c3
@@ -11414,21 +11427,21 @@
     mov dx, strict word 00027h                ; ba 27 00
     mov ax, cx                                ; 89 c8
-    call 01660h                               ; e8 c0 9d
-    jmp short 078b8h                          ; eb 16
+    call 01660h                               ; e8 a0 9d
+    jmp short 078d8h                          ; eb 16
     mov ax, 00974h                            ; b8 74 09
     push ax                                   ; 50
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c9 a0
+    call 01976h                               ; e8 a9 a0
     add sp, strict byte 00004h                ; 83 c4 04
     or word [bp+018h], strict byte 00001h     ; 83 4e 18 01
     mov byte [bp+013h], 001h                  ; c6 46 13 01
     mov ax, strict word 00047h                ; b8 47 00
-    call 0741ch                               ; e8 5e fb
+    call 0743ch                               ; e8 5e fb
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop si                                    ; 5e
     pop bp                                    ; 5d
     retn                                      ; c3
-_int17_function:                             ; 0xf78c4 LB 0xac
+_int17_function:                             ; 0xf78e4 LB 0xac
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11440,23 +11453,23 @@
     add dx, strict byte 00008h                ; 83 c2 08
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 96 9d
+    call 0166eh                               ; e8 76 9d
     mov bx, ax                                ; 89 c3
     mov si, ax                                ; 89 c6
     cmp byte [bp+013h], 003h                  ; 80 7e 13 03
-    jnc short 078eeh                          ; 73 0c
+    jnc short 0790eh                          ; 73 0c
     mov ax, word [bp+00eh]                    ; 8b 46 0e
     cmp ax, strict word 00003h                ; 3d 03 00
-    jnc short 078eeh                          ; 73 04
+    jnc short 0790eh                          ; 73 04
     test bx, bx                               ; 85 db
-    jnbe short 078f1h                         ; 77 03
-    jmp near 07966h                           ; e9 75 00
+    jnbe short 07911h                         ; 77 03
+    jmp near 07986h                           ; e9 75 00
     mov dx, ax                                ; 89 c2
     add dx, strict byte 00078h                ; 83 c2 78
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 56 9d
+    call 01652h                               ; e8 36 9d
     mov ch, al                                ; 88 c5
     xor cl, cl                                ; 30 c9
     cmp byte [bp+013h], 000h                  ; 80 7e 13 00
-    jne short 07932h                          ; 75 2c
+    jne short 07952h                          ; 75 2c
     mov al, byte [bp+012h]                    ; 8a 46 12
     mov dx, bx                                ; 89 da
@@ -11478,11 +11491,11 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 040h                 ; a8 40
-    je short 07932h                           ; 74 07
+    je short 07952h                           ; 74 07
     test cx, cx                               ; 85 c9
-    je short 07932h                           ; 74 03
+    je short 07952h                           ; 74 03
     dec cx                                    ; 49
-    jmp short 07921h                          ; eb ef
+    jmp short 07941h                          ; eb ef
     cmp byte [bp+013h], 001h                  ; 80 7e 13 01
-    jne short 0794dh                          ; 75 15
+    jne short 0796dh                          ; 75 15
     lea dx, [si+002h]                         ; 8d 54 02
     in AL, DX                                 ; ec
@@ -11503,8 +11516,8 @@
     mov byte [bp+013h], al                    ; 88 46 13
     test cx, cx                               ; 85 c9
-    jne short 07960h                          ; 75 04
+    jne short 07980h                          ; 75 04
     or byte [bp+013h], 001h                   ; 80 4e 13 01
     and byte [bp+01ch], 0feh                  ; 80 66 1c fe
-    jmp short 0796ah                          ; eb 04
+    jmp short 0798ah                          ; eb 04
     or byte [bp+01ch], 001h                   ; 80 4e 1c 01
     lea sp, [bp-002h]                         ; 8d 66 fe
@@ -11512,5 +11525,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-wait_:                                       ; 0xf7970 LB 0xb2
+wait_:                                       ; 0xf7990 LB 0xb2
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11530,5 +11543,5 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 0168ah                               ; e8 f7 9c
+    call 0168ah                               ; e8 d7 9c
     mov word [bp-00eh], ax                    ; 89 46 f2
     mov bx, dx                                ; 89 d3
@@ -11536,20 +11549,20 @@
     mov dx, 0046ch                            ; ba 6c 04
     xor ax, ax                                ; 31 c0
-    call 0168ah                               ; e8 e9 9c
+    call 0168ah                               ; e8 c9 9c
     mov word [bp-012h], ax                    ; 89 46 ee
     mov di, dx                                ; 89 d7
     cmp dx, bx                                ; 39 da
-    jnbe short 079b1h                         ; 77 07
-    jne short 079b8h                          ; 75 0c
+    jnbe short 079d1h                         ; 77 07
+    jne short 079d8h                          ; 75 0c
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jbe short 079b8h                          ; 76 07
+    jbe short 079d8h                          ; 76 07
     sub ax, word [bp-00eh]                    ; 2b 46 f2
     sbb dx, bx                                ; 19 da
-    jmp short 079c3h                          ; eb 0b
+    jmp short 079e3h                          ; eb 0b
     cmp dx, bx                                ; 39 da
-    jc short 079c3h                           ; 72 07
-    jne short 079c7h                          ; 75 09
+    jc short 079e3h                           ; 72 07
+    jne short 079e7h                          ; 75 09
     cmp ax, word [bp-00eh]                    ; 3b 46 f2
-    jnc short 079c7h                          ; 73 04
+    jnc short 079e7h                          ; 73 04
     sub si, ax                                ; 29 c6
     sbb cx, dx                                ; 19 d1
@@ -11559,11 +11572,11 @@
     mov ax, 00100h                            ; b8 00 01
     int 016h                                  ; cd 16
-    je short 079dbh                           ; 74 05
+    je short 079fbh                           ; 74 05
     mov AL, strict byte 001h                  ; b0 01
-    jmp near 079ddh                           ; e9 02 00
+    jmp near 079fdh                           ; e9 02 00
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     test al, al                               ; 84 c0
-    je short 07a07h                           ; 74 26
+    je short 07a27h                           ; 74 26
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -11578,15 +11591,15 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 7c 9f
+    call 01976h                               ; e8 5c 9f
     add sp, strict byte 00006h                ; 83 c4 06
     cmp byte [bp-00ah], 000h                  ; 80 7e f6 00
-    je short 07a07h                           ; 74 04
+    je short 07a27h                           ; 74 04
     mov al, dl                                ; 88 d0
-    jmp short 07a19h                          ; eb 12
+    jmp short 07a39h                          ; eb 12
     test cx, cx                               ; 85 c9
-    jnle short 07998h                         ; 7f 8d
-    jne short 07a11h                          ; 75 04
+    jnle short 079b8h                         ; 7f 8d
+    jne short 07a31h                          ; 75 04
     test si, si                               ; 85 f6
-    jnbe short 07998h                         ; 77 87
+    jnbe short 079b8h                         ; 77 87
     mov ax, word [bp-010h]                    ; 8b 46 f0
     push ax                                   ; 50
@@ -11600,5 +11613,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_byte_:                             ; 0xf7a22 LB 0x16
+read_logo_byte_:                             ; 0xf7a42 LB 0x16
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11615,5 +11628,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-read_logo_word_:                             ; 0xf7a38 LB 0x14
+read_logo_word_:                             ; 0xf7a58 LB 0x14
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11628,5 +11641,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-print_detected_harddisks_:                   ; 0xf7a4c LB 0x15a
+print_detected_harddisks_:                   ; 0xf7a6c LB 0x15a
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11638,5 +11651,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 0f 9c
+    call 0166eh                               ; e8 ef 9b
     mov si, ax                                ; 89 c6
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
@@ -11644,9 +11657,9 @@
     mov byte [bp-00ch], ch                    ; 88 6e f4
     mov dx, 00304h                            ; ba 04 03
-    call 01652h                               ; e8 e2 9b
+    call 01652h                               ; e8 c2 9b
     mov byte [bp-00ah], al                    ; 88 46 f6
     xor cl, cl                                ; 30 c9
     cmp cl, byte [bp-00ah]                    ; 3a 4e f6
-    jnc short 07ad8h                          ; 73 5e
+    jnc short 07af8h                          ; 73 5e
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
@@ -11654,15 +11667,15 @@
     add dx, 00305h                            ; 81 c2 05 03
     mov ax, si                                ; 89 f0
-    call 01652h                               ; e8 c9 9b
+    call 01652h                               ; e8 a9 9b
     mov bl, al                                ; 88 c3
     cmp AL, strict byte 00ch                  ; 3c 0c
-    jc short 07abah                           ; 72 2b
+    jc short 07adah                           ; 72 2b
     test ch, ch                               ; 84 ed
-    jne short 07aa3h                          ; 75 10
+    jne short 07ac3h                          ; 75 10
     mov ax, 009a7h                            ; b8 a7 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 d8 9e
+    call 01976h                               ; e8 b8 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
@@ -11675,41 +11688,41 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 c2 9e
+    call 01976h                               ; e8 a2 9e
     add sp, strict byte 00006h                ; 83 c4 06
-    jmp near 07b6ch                           ; e9 b2 00
+    jmp near 07b8ch                           ; e9 b2 00
     cmp AL, strict byte 008h                  ; 3c 08
-    jc short 07adbh                           ; 72 1d
+    jc short 07afbh                           ; 72 1d
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07ad6h                          ; 75 12
+    jne short 07af6h                          ; 75 12
     mov ax, 009cfh                            ; b8 cf 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 a7 9e
+    call 01976h                               ; e8 87 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07aa3h                          ; eb cb
-    jmp near 07b71h                           ; e9 96 00
+    jmp short 07ac3h                          ; eb cb
+    jmp near 07b91h                           ; e9 96 00
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 07af9h                          ; 73 1a
+    jnc short 07b19h                          ; 73 1a
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 07af9h                          ; 75 14
+    jne short 07b19h                          ; 75 14
     mov ax, 009e4h                            ; b8 e4 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 86 9e
+    call 01976h                               ; e8 66 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07b12h                          ; eb 19
+    jmp short 07b32h                          ; eb 19
     cmp bl, 004h                              ; 80 fb 04
-    jc short 07b12h                           ; 72 14
+    jc short 07b32h                           ; 72 14
     test ch, ch                               ; 84 ed
-    jne short 07b12h                          ; 75 10
+    jne short 07b32h                          ; 75 10
     mov ax, 009f6h                            ; b8 f6 09
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 69 9e
+    call 01976h                               ; e8 49 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov CH, strict byte 001h                  ; b5 01
@@ -11722,8 +11735,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 53 9e
+    call 01976h                               ; e8 33 9e
     add sp, strict byte 00006h                ; 83 c4 06
     cmp bl, 004h                              ; 80 fb 04
-    jc short 07b2eh                           ; 72 03
+    jc short 07b4eh                           ; 72 03
     sub bl, 004h                              ; 80 eb 04
     mov al, bl                                ; 88 d8
@@ -11734,12 +11747,12 @@
     sar ax, 1                                 ; d1 f8
     test ax, ax                               ; 85 c0
-    je short 07b40h                           ; 74 05
+    je short 07b60h                           ; 74 05
     mov ax, 00a14h                            ; b8 14 0a
-    jmp short 07b43h                          ; eb 03
+    jmp short 07b63h                          ; eb 03
     mov ax, 00a1fh                            ; b8 1f 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 2b 9e
+    call 01976h                               ; e8 0b 9e
     add sp, strict byte 00004h                ; 83 c4 04
     mov al, bl                                ; 88 d8
@@ -11749,26 +11762,26 @@
     idiv bx                                   ; f7 fb
     test dx, dx                               ; 85 d2
-    je short 07b61h                           ; 74 05
+    je short 07b81h                           ; 74 05
     mov ax, 00a28h                            ; b8 28 0a
-    jmp short 07b64h                          ; eb 03
+    jmp short 07b84h                          ; eb 03
     mov ax, 00a2eh                            ; b8 2e 0a
     push ax                                   ; 50
     push bx                                   ; 53
-    call 01976h                               ; e8 0d 9e
+    call 01976h                               ; e8 ed 9d
     add sp, strict byte 00004h                ; 83 c4 04
     db  0feh, 0c1h
     ; inc cl                                    ; fe c1
-    jmp near 07a75h                           ; e9 04 ff
+    jmp near 07a95h                           ; e9 04 ff
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    jne short 07b8fh                          ; 75 18
+    jne short 07bafh                          ; 75 18
     test ch, ch                               ; 84 ed
-    jne short 07b8fh                          ; 75 14
+    jne short 07bafh                          ; 75 14
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07b8fh                          ; 75 0e
+    jne short 07bafh                          ; 75 0e
     mov ax, 00a35h                            ; b8 35 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ea 9d
+    call 01976h                               ; e8 ca 9d
     add sp, strict byte 00004h                ; 83 c4 04
     mov ax, 00a49h                            ; b8 49 0a
@@ -11776,5 +11789,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 dc 9d
+    call 01976h                               ; e8 bc 9d
     add sp, strict byte 00004h                ; 83 c4 04
     lea sp, [bp-008h]                         ; 8d 66 f8
@@ -11785,5 +11798,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-get_boot_drive_:                             ; 0xf7ba6 LB 0x28
+get_boot_drive_:                             ; 0xf7bc6 LB 0x28
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11793,10 +11806,10 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 b8 9a
+    call 0166eh                               ; e8 98 9a
     mov dx, 00304h                            ; ba 04 03
-    call 01652h                               ; e8 96 9a
+    call 01652h                               ; e8 76 9a
     sub bl, 002h                              ; 80 eb 02
     cmp bl, al                                ; 38 c3
-    jc short 07bc5h                           ; 72 02
+    jc short 07be5h                           ; 72 02
     mov BL, strict byte 0ffh                  ; b3 ff
     mov al, bl                                ; 88 d8
@@ -11806,5 +11819,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-show_logo_:                                  ; 0xf7bce LB 0x24f
+show_logo_:                                  ; 0xf7bee LB 0x24f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -11817,5 +11830,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 8c 9a
+    call 0166eh                               ; e8 6c 9a
     mov si, ax                                ; 89 c6
     mov byte [bp-00ch], 000h                  ; c6 46 f4 00
@@ -11829,7 +11842,7 @@
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
-    call 07a38h                               ; e8 3b fe
+    call 07a58h                               ; e8 3b fe
     cmp ax, 066bbh                            ; 3d bb 66
-    jne short 07c14h                          ; 75 12
+    jne short 07c34h                          ; 75 12
     push SS                                   ; 16
     pop ES                                    ; 07
@@ -11839,10 +11852,10 @@
     mov word [es:di], bx                      ; 26 89 1d
     cmp ax, strict word 0004fh                ; 3d 4f 00
-    je short 07c17h                           ; 74 03
-    jmp near 07cech                           ; e9 d5 00
+    je short 07c37h                           ; 74 03
+    jmp near 07d0ch                           ; e9 d5 00
     mov al, cl                                ; 88 c8
     add AL, strict byte 004h                  ; 04 04
     xor ah, ah                                ; 30 e4
-    call 07a22h                               ; e8 02 fe
+    call 07a42h                               ; e8 02 fe
     mov bl, al                                ; 88 c3
     mov byte [bp-014h], al                    ; 88 46 ec
@@ -11850,5 +11863,5 @@
     add AL, strict byte 005h                  ; 04 05
     xor ah, ah                                ; 30 e4
-    call 07a22h                               ; e8 f4 fd
+    call 07a42h                               ; e8 f4 fd
     mov bh, al                                ; 88 c7
     mov byte [bp-012h], al                    ; 88 46 ee
@@ -11856,5 +11869,5 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 07a38h                               ; e8 fc fd
+    call 07a58h                               ; e8 fc fd
     mov dx, ax                                ; 89 c2
     mov word [bp-016h], ax                    ; 89 46 ea
@@ -11862,22 +11875,22 @@
     add AL, strict byte 006h                  ; 04 06
     xor ah, ah                                ; 30 e4
-    call 07a22h                               ; e8 d8 fd
+    call 07a42h                               ; e8 d8 fd
     mov byte [bp-010h], al                    ; 88 46 f0
     test bl, bl                               ; 84 db
-    jne short 07c59h                          ; 75 08
+    jne short 07c79h                          ; 75 08
     test bh, bh                               ; 84 ff
-    jne short 07c59h                          ; 75 04
+    jne short 07c79h                          ; 75 04
     test dx, dx                               ; 85 d2
-    je short 07c14h                           ; 74 bb
+    je short 07c34h                           ; 74 bb
     mov bx, 00142h                            ; bb 42 01
     mov ax, 04f02h                            ; b8 02 4f
     int 010h                                  ; cd 10
     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    je short 07c8ch                           ; 74 25
+    je short 07cach                           ; 74 25
     xor cx, cx                                ; 31 c9
-    jmp short 07c71h                          ; eb 06
+    jmp short 07c91h                          ; eb 06
     inc cx                                    ; 41
     cmp cx, strict byte 00010h                ; 83 f9 10
-    jnbe short 07c93h                         ; 77 22
+    jnbe short 07cb3h                         ; 77 22
     mov ax, cx                                ; 89 c8
     or ah, 002h                               ; 80 cc 02
@@ -11886,31 +11899,31 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 07970h                               ; e8 ee fc
+    call 07990h                               ; e8 ee fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07c6bh                          ; 75 e5
+    jne short 07c8bh                          ; 75 e5
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07c93h                          ; eb 07
+    jmp short 07cb3h                          ; eb 07
     mov ax, 00210h                            ; b8 10 02
     mov dx, 003b8h                            ; ba b8 03
     out DX, ax                                ; ef
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07caeh                          ; 75 15
+    jne short 07cceh                          ; 75 15
     mov CL, strict byte 004h                  ; b1 04
     mov ax, word [bp-016h]                    ; 8b 46 ea
     shr ax, CL                                ; d3 e8
     mov dx, strict word 00001h                ; ba 01 00
-    call 07970h                               ; e8 ca fc
+    call 07990h                               ; e8 ca fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07caeh                          ; 75 04
+    jne short 07cceh                          ; 75 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    je short 07cdfh                           ; 74 2b
+    je short 07cffh                           ; 74 2b
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07cdfh                          ; 75 25
+    jne short 07cffh                          ; 75 25
     mov cx, strict word 00010h                ; b9 10 00
-    jmp short 07cc4h                          ; eb 05
+    jmp short 07ce4h                          ; eb 05
     dec cx                                    ; 49
     test cx, cx                               ; 85 c9
-    jbe short 07cech                          ; 76 28
+    jbe short 07d0ch                          ; 76 28
     mov ax, cx                                ; 89 c8
     or ah, 002h                               ; 80 cc 02
@@ -11919,11 +11932,11 @@
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00001h                ; b8 01 00
-    call 07970h                               ; e8 9b fc
+    call 07990h                               ; e8 9b fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07cbfh                          ; 75 e6
+    jne short 07cdfh                          ; 75 e6
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
-    jmp short 07cech                          ; eb 0d
+    jmp short 07d0ch                          ; eb 0d
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07cech                          ; 75 07
+    jne short 07d0ch                          ; 75 07
     mov ax, 00200h                            ; b8 00 02
     mov dx, 003b8h                            ; ba b8 03
@@ -11932,36 +11945,36 @@
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 6a 99
+    call 01660h                               ; e8 4a 99
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
     int 010h                                  ; cd 10
     cmp byte [bp-010h], 000h                  ; 80 7e f0 00
-    je short 07d16h                           ; 74 14
+    je short 07d36h                           ; 74 14
     cmp byte [bp-014h], 000h                  ; 80 7e ec 00
-    jne short 07d44h                          ; 75 3c
+    jne short 07d64h                          ; 75 3c
     cmp byte [bp-012h], 000h                  ; 80 7e ee 00
-    jne short 07d44h                          ; 75 36
+    jne short 07d64h                          ; 75 36
     cmp word [bp-016h], strict byte 00000h    ; 83 7e ea 00
-    je short 07d19h                           ; 74 05
-    jmp short 07d44h                          ; eb 2e
-    jmp near 07e00h                           ; e9 e7 00
+    je short 07d39h                           ; 74 05
+    jmp short 07d64h                          ; eb 2e
+    jmp near 07e20h                           ; e9 e7 00
     cmp byte [bp-010h], 002h                  ; 80 7e f0 02
-    jne short 07d2dh                          ; 75 0e
+    jne short 07d4dh                          ; 75 0e
     mov ax, 00a4bh                            ; b8 4b 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4c 9c
+    call 01976h                               ; e8 2c 9c
     add sp, strict byte 00004h                ; 83 c4 04
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    jne short 07d44h                          ; 75 11
+    jne short 07d64h                          ; 75 11
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, 000c0h                            ; b8 c0 00
-    call 07970h                               ; e8 34 fc
+    call 07990h                               ; e8 34 fc
     cmp AL, strict byte 086h                  ; 3c 86
-    jne short 07d44h                          ; 75 04
+    jne short 07d64h                          ; 75 04
     mov byte [bp-00ch], 001h                  ; c6 46 f4 01
     cmp byte [bp-00ch], 000h                  ; 80 7e f4 00
-    je short 07d16h                           ; 74 cc
+    je short 07d36h                           ; 74 cc
     mov byte [bp-00eh], 000h                  ; c6 46 f2 00
     mov ax, 00100h                            ; b8 00 01
@@ -11984,57 +11997,57 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 00 9c
+    call 01976h                               ; e8 e0 9b
     add sp, strict byte 00004h                ; 83 c4 04
-    call 07a4ch                               ; e8 d0 fc
+    call 07a6ch                               ; e8 d0 fc
     mov ax, 00ab1h                            ; b8 b1 0a
     push ax                                   ; 50
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 ef 9b
+    call 01976h                               ; e8 cf 9b
     add sp, strict byte 00004h                ; 83 c4 04
     mov dx, strict word 00001h                ; ba 01 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 07970h                               ; e8 dd fb
+    call 07990h                               ; e8 dd fb
     mov cl, al                                ; 88 c1
     test al, al                               ; 84 c0
-    je short 07d8ah                           ; 74 f1
+    je short 07daah                           ; 74 f1
     cmp AL, strict byte 030h                  ; 3c 30
-    je short 07dedh                           ; 74 50
+    je short 07e0dh                           ; 74 50
     cmp cl, 002h                              ; 80 f9 02
-    jc short 07dc6h                           ; 72 24
+    jc short 07de6h                           ; 72 24
     cmp cl, 009h                              ; 80 f9 09
-    jnbe short 07dc6h                         ; 77 1f
+    jnbe short 07de6h                         ; 77 1f
     mov al, cl                                ; 88 c8
     xor ah, ah                                ; 30 e4
-    call 07ba6h                               ; e8 f8 fd
+    call 07bc6h                               ; e8 f8 fd
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 07db4h                          ; 75 02
-    jmp short 07d8ah                          ; eb d6
+    jne short 07dd4h                          ; 75 02
+    jmp short 07daah                          ; eb d6
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
     mov dx, 0037ch                            ; ba 7c 03
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 a0 98
+    call 01660h                               ; e8 80 98
     mov byte [bp-00eh], 002h                  ; c6 46 f2 02
-    jmp short 07dedh                          ; eb 27
+    jmp short 07e0dh                          ; eb 27
     cmp cl, 02eh                              ; 80 f9 2e
-    je short 07ddbh                           ; 74 10
+    je short 07dfbh                           ; 74 10
     cmp cl, 026h                              ; 80 f9 26
-    je short 07de1h                           ; 74 11
+    je short 07e01h                           ; 74 11
     cmp cl, 021h                              ; 80 f9 21
-    jne short 07de7h                          ; 75 12
+    jne short 07e07h                          ; 75 12
     mov byte [bp-00eh], 001h                  ; c6 46 f2 01
-    jmp short 07dedh                          ; eb 12
+    jmp short 07e0dh                          ; eb 12
     mov byte [bp-00eh], 003h                  ; c6 46 f2 03
-    jmp short 07dedh                          ; eb 0c
+    jmp short 07e0dh                          ; eb 0c
     mov byte [bp-00eh], 004h                  ; c6 46 f2 04
-    jmp short 07dedh                          ; eb 06
+    jmp short 07e0dh                          ; eb 06
     cmp byte [bp-00eh], 000h                  ; 80 7e f2 00
-    je short 07d8ah                           ; 74 9d
+    je short 07daah                           ; 74 9d
     mov bl, byte [bp-00eh]                    ; 8a 5e f2
     xor bh, bh                                ; 30 ff
     mov dx, 0037dh                            ; ba 7d 03
     mov ax, si                                ; 89 f0
-    call 01660h                               ; e8 66 98
+    call 01660h                               ; e8 46 98
     mov AL, strict byte 003h                  ; b0 03
     mov AH, strict byte 000h                  ; b4 00
@@ -12049,5 +12062,5 @@
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0ede3h                               ; e8 d2 6f
+    call 0ede3h                               ; e8 b2 6f
     pop DS                                    ; 1f
     pop bp                                    ; 5d
@@ -12060,5 +12073,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-delay_boot_:                                 ; 0xf7e1d LB 0x72
+delay_boot_:                                 ; 0xf7e3d LB 0x72
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12070,5 +12083,5 @@
     mov bx, ax                                ; 89 c3
     test ax, ax                               ; 85 c0
-    je short 07e85h                           ; 74 5a
+    je short 07ea5h                           ; 74 5a
     mov AL, strict byte 034h                  ; b0 34
     out strict byte 043h, AL                  ; e6 43
@@ -12082,8 +12095,8 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 33 9b
+    call 01976h                               ; e8 13 9b
     add sp, strict byte 00006h                ; 83 c4 06
     test bx, bx                               ; 85 db
-    jbe short 07e64h                          ; 76 1a
+    jbe short 07e84h                          ; 76 1a
     push bx                                   ; 53
     mov ax, 00b19h                            ; b8 19 0b
@@ -12091,16 +12104,16 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 01976h                               ; e8 20 9b
+    call 01976h                               ; e8 00 9b
     add sp, strict byte 00006h                ; 83 c4 06
     xor dx, dx                                ; 31 d2
     mov ax, strict word 00040h                ; b8 40 00
-    call 07970h                               ; e8 0f fb
+    call 07990h                               ; e8 0f fb
     dec bx                                    ; 4b
-    jmp short 07e46h                          ; eb e2
+    jmp short 07e66h                          ; eb e2
     mov bx, 00a49h                            ; bb 49 0a
     push bx                                   ; 53
     mov bx, strict word 00002h                ; bb 02 00
     push bx                                   ; 53
-    call 01976h                               ; e8 07 9b
+    call 01976h                               ; e8 e7 9a
     add sp, strict byte 00004h                ; 83 c4 04
     mov AL, strict byte 034h                  ; b0 34
@@ -12113,5 +12126,5 @@
     push DS                                   ; 1e
     mov ds, ax                                ; 8e d8
-    call 0ede3h                               ; e8 60 6f
+    call 0ede3h                               ; e8 40 6f
     pop DS                                    ; 1f
     pop bp                                    ; 5d
@@ -12124,5 +12137,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_cmd_data_in_:                           ; 0xf7e8f LB 0xd5
+scsi_cmd_data_in_:                           ; 0xf7eaf LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12140,10 +12153,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07ea5h                          ; 75 f7
+    jne short 07ec5h                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 07eb9h                          ; 75 04
+    jne short 07ed9h                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07ebbh                          ; eb 02
+    jmp short 07edbh                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov di, ax                                ; 89 c7
@@ -12153,5 +12166,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07ec5h                               ; e2 fa
+    loop 07ee5h                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -12171,5 +12184,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07eeah                               ; e2 fa
+    loop 07f0ah                               ; e2 fa
     mov dx, si                                ; 89 f2
     out DX, AL                                ; ee
@@ -12178,5 +12191,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 07f0ch                          ; 73 0e
+    jnc short 07f2ch                          ; 73 0e
     les di, [bp-00ah]                         ; c4 7e f6
     add di, cx                                ; 01 cf
@@ -12185,5 +12198,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07ef5h                          ; eb e9
+    jmp short 07f15h                          ; eb e9
     mov dx, si                                ; 89 f2
     in AL, DX                                 ; ec
@@ -12191,7 +12204,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07f0ch                          ; 75 f7
+    jne short 07f2ch                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 07f27h                           ; 74 0e
+    je short 07f47h                           ; 74 0e
     lea dx, [si+003h]                         ; 8d 54 03
     xor al, al                                ; 30 c0
@@ -12201,10 +12214,10 @@
     ; sub ah, ah                                ; 2a e4
     mov di, strict word 00004h                ; bf 04 00
-    jmp short 07f59h                          ; eb 32
+    jmp short 07f79h                          ; eb 32
     lea dx, [si+001h]                         ; 8d 54 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07f36h                          ; 75 06
+    jne short 07f56h                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 07f50h                          ; 76 1a
+    jbe short 07f70h                          ; 76 1a
     mov cx, 08000h                            ; b9 00 80
     les di, [bp+006h]                         ; c4 7e 06
@@ -12215,5 +12228,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07f27h                          ; eb d7
+    jmp short 07f47h                          ; eb d7
     mov cx, bx                                ; 89 d9
     les di, [bp+006h]                         ; c4 7e 06
@@ -12226,5 +12239,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-scsi_cmd_data_out_:                          ; 0xf7f64 LB 0xd5
+scsi_cmd_data_out_:                          ; 0xf7f84 LB 0xd5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12242,10 +12255,10 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 07f7ah                          ; 75 f7
+    jne short 07f9ah                          ; 75 f7
     mov al, byte [bp+004h]                    ; 8a 46 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 07f8eh                          ; 75 04
+    jne short 07faeh                          ; 75 04
     xor ax, ax                                ; 31 c0
-    jmp short 07f90h                          ; eb 02
+    jmp short 07fb0h                          ; eb 02
     xor ah, ah                                ; 30 e4
     mov si, ax                                ; 89 c6
@@ -12255,5 +12268,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07f9ah                               ; e2 fa
+    loop 07fbah                               ; e2 fa
     mov cx, ax                                ; 89 c1
     and cx, 000f0h                            ; 81 e1 f0 00
@@ -12273,5 +12286,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 07fbfh                               ; e2 fa
+    loop 07fdfh                               ; e2 fa
     mov dx, di                                ; 89 fa
     out DX, AL                                ; ee
@@ -12280,5 +12293,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 07fe1h                          ; 73 0e
+    jnc short 08001h                          ; 73 0e
     les si, [bp-00ah]                         ; c4 76 f6
     add si, cx                                ; 01 ce
@@ -12287,10 +12300,10 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 07fcah                          ; eb e9
+    jmp short 07feah                          ; eb e9
     lea dx, [di+001h]                         ; 8d 55 01
     cmp word [bp+00ch], strict byte 00000h    ; 83 7e 0c 00
-    jne short 07ff0h                          ; 75 06
+    jne short 08010h                          ; 75 06
     cmp bx, 08000h                            ; 81 fb 00 80
-    jbe short 0800bh                          ; 76 1b
+    jbe short 0802bh                          ; 76 1b
     mov cx, 08000h                            ; b9 00 80
     les si, [bp+006h]                         ; c4 76 06
@@ -12302,5 +12315,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+008h], ax                    ; 89 46 08
-    jmp short 07fe1h                          ; eb d6
+    jmp short 08001h                          ; eb d6
     mov cx, bx                                ; 89 d9
     les si, [bp+006h]                         ; c4 76 06
@@ -12312,7 +12325,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 08013h                          ; 75 f7
+    jne short 08033h                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 0802eh                           ; 74 0e
+    je short 0804eh                           ; 74 0e
     lea dx, [di+003h]                         ; 8d 55 03
     xor al, al                                ; 30 c0
@@ -12322,5 +12335,5 @@
     ; sub ah, ah                                ; 2a e4
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08030h                          ; eb 02
+    jmp short 08050h                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -12329,5 +12342,5 @@
     pop bp                                    ; 5d
     retn 0000ah                               ; c2 0a 00
-@scsi_read_sectors:                          ; 0xf8039 LB 0xe9
+@scsi_read_sectors:                          ; 0xf8059 LB 0xe9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12341,5 +12354,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 08069h                          ; 76 15
+    jbe short 08089h                          ; 76 15
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12350,5 +12363,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 10 99
+    call 01976h                               ; e8 f0 98
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12391,5 +12404,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 080d4h                               ; e2 f8
+    loop 080f4h                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12402,8 +12415,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07e8fh                               ; e8 95 fd
+    call 07eafh                               ; e8 95 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 08115h                          ; 75 15
+    jne short 08135h                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12419,5 +12432,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@scsi_write_sectors:                         ; 0xf8122 LB 0xe9
+@scsi_write_sectors:                         ; 0xf8142 LB 0xe9
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12431,5 +12444,5 @@
     mov byte [bp-006h], al                    ; 88 46 fa
     cmp AL, strict byte 004h                  ; 3c 04
-    jbe short 08152h                          ; 76 15
+    jbe short 08172h                          ; 76 15
     xor ah, ah                                ; 30 e4
     push ax                                   ; 50
@@ -12440,5 +12453,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 27 98
+    call 01976h                               ; e8 07 98
     add sp, strict byte 00008h                ; 83 c4 08
     mov es, [bp+006h]                         ; 8e 46 06
@@ -12481,5 +12494,5 @@
     sal word [bp-00ah], 1                     ; d1 66 f6
     rcl word [bp-008h], 1                     ; d1 56 f8
-    loop 081bdh                               ; e2 f8
+    loop 081ddh                               ; e2 f8
     push word [bp-008h]                       ; ff 76 f8
     push word [bp-00ah]                       ; ff 76 f6
@@ -12492,8 +12505,8 @@
     mov cx, ss                                ; 8c d1
     lea bx, [bp-01ah]                         ; 8d 5e e6
-    call 07f64h                               ; e8 81 fd
+    call 07f84h                               ; e8 81 fd
     mov ah, al                                ; 88 c4
     test al, al                               ; 84 c0
-    jne short 081feh                          ; 75 15
+    jne short 0821eh                          ; 75 15
     mov es, [bp+006h]                         ; 8e 46 06
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -12509,5 +12522,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-scsi_cmd_packet_:                            ; 0xf820b LB 0x170
+scsi_cmd_packet_:                            ; 0xf822b LB 0x170
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12521,13 +12534,13 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 47 94
+    call 0166eh                               ; e8 27 94
     mov si, 00122h                            ; be 22 01
     mov word [bp-00ch], ax                    ; 89 46 f4
     cmp byte [bp+00ah], 002h                  ; 80 7e 0a 02
-    jne short 08256h                          ; 75 23
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 08276h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 f5 96
+    call 01933h                               ; e8 d5 96
     mov ax, 00b62h                            ; b8 62 0b
     push ax                                   ; 50
@@ -12536,8 +12549,8 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 29 97
+    call 01976h                               ; e8 09 97
     add sp, strict byte 00006h                ; 83 c4 06
     mov dx, strict word 00001h                ; ba 01 00
-    jmp near 08370h                           ; e9 1a 01
+    jmp near 08390h                           ; e9 1a 01
     sub di, strict byte 00008h                ; 83 ef 08
     sal di, 1                                 ; d1 e7
@@ -12554,5 +12567,5 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 08273h                          ; 75 f7
+    jne short 08293h                          ; 75 f7
     xor dx, bx                                ; 31 da
     mov ax, word [bp+006h]                    ; 8b 46 06
@@ -12570,5 +12583,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 0829eh                               ; e2 fa
+    loop 082beh                               ; e2 fa
     and ax, 000f0h                            ; 25 f0 00
     mov cl, byte [bp-006h]                    ; 8a 4e fa
@@ -12589,5 +12602,5 @@
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 082c6h                               ; e2 fa
+    loop 082e6h                               ; e2 fa
     mov dx, bx                                ; 89 da
     out DX, AL                                ; ee
@@ -12596,5 +12609,5 @@
     xor ah, ah                                ; 30 e4
     cmp cx, ax                                ; 39 c1
-    jnc short 082ebh                          ; 73 11
+    jnc short 0830bh                          ; 73 11
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [bp-00eh]                    ; 8b 7e f2
@@ -12604,5 +12617,5 @@
     out DX, AL                                ; ee
     inc cx                                    ; 41
-    jmp short 082d1h                          ; eb e6
+    jmp short 082f1h                          ; eb e6
     mov dx, bx                                ; 89 da
     in AL, DX                                 ; ec
@@ -12610,7 +12623,7 @@
     ; sub ah, ah                                ; 2a e4
     test AL, strict byte 001h                 ; a8 01
-    jne short 082ebh                          ; 75 f7
+    jne short 0830bh                          ; 75 f7
     test AL, strict byte 002h                 ; a8 02
-    je short 08306h                           ; 74 0e
+    je short 08326h                           ; 74 0e
     lea dx, [bx+003h]                         ; 8d 57 03
     xor al, al                                ; 30 c0
@@ -12620,12 +12633,12 @@
     ; sub ah, ah                                ; 2a e4
     mov dx, strict word 00003h                ; ba 03 00
-    jmp short 08370h                          ; eb 6a
+    jmp short 08390h                          ; eb 6a
     mov ax, word [bp+004h]                    ; 8b 46 04
     test ax, ax                               ; 85 c0
-    je short 08315h                           ; 74 08
+    je short 08335h                           ; 74 08
     lea dx, [bx+001h]                         ; 8d 57 01
     mov cx, ax                                ; 89 c1
     in AL, DX                                 ; ec
-    loop 08312h                               ; e2 fd
+    loop 08332h                               ; e2 fd
     mov ax, word [bp+006h]                    ; 8b 46 06
     mov es, [bp-00ch]                         ; 8e 46 f4
@@ -12635,7 +12648,7 @@
     lea ax, [bx+001h]                         ; 8d 47 01
     cmp word [bp+008h], strict byte 00000h    ; 83 7e 08 00
-    jne short 08336h                          ; 75 07
+    jne short 08356h                          ; 75 07
     cmp word [bp+006h], 08000h                ; 81 7e 06 00 80
-    jbe short 08353h                          ; 76 1d
+    jbe short 08373h                          ; 76 1d
     mov dx, ax                                ; 89 c2
     mov cx, 08000h                            ; b9 00 80
@@ -12647,5 +12660,5 @@
     add ax, 00800h                            ; 05 00 08
     mov word [bp+00eh], ax                    ; 89 46 0e
-    jmp short 08326h                          ; eb d3
+    jmp short 08346h                          ; eb d3
     mov dx, ax                                ; 89 c2
     mov cx, word [bp+006h]                    ; 8b 4e 06
@@ -12654,8 +12667,8 @@
     mov es, [bp-00ch]                         ; 8e 46 f4
     cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00
-    je short 0836eh                           ; 74 07
+    je short 0838eh                           ; 74 07
     mov cx, word [es:si+020h]                 ; 26 8b 4c 20
     in AL, DX                                 ; ec
-    loop 0836bh                               ; e2 fd
+    loop 0838bh                               ; e2 fd
     xor dx, dx                                ; 31 d2
     mov ax, dx                                ; 89 d0
@@ -12665,5 +12678,5 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-scsi_enumerate_attached_devices_:            ; 0xf837b LB 0x4cb
+scsi_enumerate_attached_devices_:            ; 0xf839b LB 0x4cb
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -12677,17 +12690,17 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 dd 92
+    call 0166eh                               ; e8 bd 92
     mov di, 00122h                            ; bf 22 01
     mov word [bp-016h], ax                    ; 89 46 ea
     mov word [bp-014h], strict word 00000h    ; c7 46 ec 00 00
-    jmp near 087b9h                           ; e9 1a 04
+    jmp near 087d9h                           ; e9 1a 04
     cmp AL, strict byte 004h                  ; 3c 04
-    jc short 083a6h                           ; 72 03
-    jmp near 0883ch                           ; e9 96 04
+    jc short 083c6h                           ; 72 03
+    jmp near 0885ch                           ; e9 96 04
     mov cx, strict word 00010h                ; b9 10 00
     xor bx, bx                                ; 31 db
     mov dx, ss                                ; 8c d2
     lea ax, [bp-048h]                         ; 8d 46 b8
-    call 0a1a0h                               ; e8 ed 1d
+    call 0a1c0h                               ; e8 ed 1d
     mov byte [bp-048h], 09eh                  ; c6 46 b8 9e
     mov byte [bp-047h], 010h                  ; c6 46 b9 10
@@ -12707,7 +12720,7 @@
     lea bx, [bp-048h]                         ; 8d 5e b8
     mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
-    call 07e8fh                               ; e8 ae fa
+    call 07eafh                               ; e8 ae fa
     test al, al                               ; 84 c0
-    je short 083f7h                           ; 74 12
+    je short 08417h                           ; 74 12
     mov ax, 00b92h                            ; b8 92 0b
     push ax                                   ; 50
@@ -12716,5 +12729,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 82 95
+    call 01976h                               ; e8 62 95
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, word [bp-00242h]                  ; 8b 86 be fd
@@ -12748,5 +12761,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 08445h                               ; e2 fa
+    loop 08465h                               ; e2 fa
     or bx, ax                                 ; 09 c3
     or dx, si                                 ; 09 f2
@@ -12756,11 +12769,11 @@
     mov word [bp-01ch], bx                    ; 89 5e e4
     test dx, dx                               ; 85 d2
-    jne short 08464h                          ; 75 06
+    jne short 08484h                          ; 75 06
     cmp bx, 00200h                            ; 81 fb 00 02
-    je short 08487h                           ; 74 23
-    mov bx, 00da4h                            ; bb a4 0d
+    je short 084a7h                           ; 74 23
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 c4 94
+    call 01933h                               ; e8 a4 94
     push dx                                   ; 52
     push word [bp-01ch]                       ; ff 76 e4
@@ -12770,24 +12783,24 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 f5 94
+    call 01976h                               ; e8 d5 94
     add sp, strict byte 0000ah                ; 83 c4 0a
-    jmp near 087adh                           ; e9 26 03
+    jmp near 087cdh                           ; e9 26 03
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 0849ah                           ; 72 0c
-    jbe short 084a2h                          ; 76 12
+    jc short 084bah                           ; 72 0c
+    jbe short 084c2h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 084aah                           ; 74 16
+    je short 084cah                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 084a6h                           ; 74 0e
-    jmp short 084f1h                          ; eb 57
+    je short 084c6h                           ; 74 0e
+    jmp short 08511h                          ; eb 57
     test al, al                               ; 84 c0
-    jne short 084f1h                          ; 75 53
+    jne short 08511h                          ; 75 53
     mov BL, strict byte 090h                  ; b3 90
-    jmp short 084ach                          ; eb 0a
+    jmp short 084cch                          ; eb 0a
     mov BL, strict byte 098h                  ; b3 98
-    jmp short 084ach                          ; eb 06
+    jmp short 084cch                          ; eb 06
     mov BL, strict byte 0a0h                  ; b3 a0
-    jmp short 084ach                          ; eb 02
+    jmp short 084cch                          ; eb 02
     mov BL, strict byte 0a8h                  ; b3 a8
     mov cl, bl                                ; 88 d9
@@ -12795,16 +12808,16 @@
     xor ch, ch                                ; 30 ed
     mov ax, cx                                ; 89 c8
-    call 016aeh                               ; e8 f6 91
+    call 016aeh                               ; e8 d6 91
     test al, al                               ; 84 c0
-    je short 084f1h                           ; 74 35
+    je short 08511h                           ; 74 35
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 e9 91
+    call 016aeh                               ; e8 c9 91
     mov dh, al                                ; 88 c6
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 e0 91
+    call 016aeh                               ; e8 c0 91
     mov ah, dh                                ; 88 f4
     cwd                                       ; 99
@@ -12814,12 +12827,12 @@
     add AL, strict byte 002h                  ; 04 02
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 cf 91
+    call 016aeh                               ; e8 af 91
     xor ah, ah                                ; 30 e4
     mov word [bp-028h], ax                    ; 89 46 d8
     mov ax, cx                                ; 89 c8
-    call 016aeh                               ; e8 c5 91
+    call 016aeh                               ; e8 a5 91
     xor ah, ah                                ; 30 e4
     mov word [bp-01ah], ax                    ; 89 46 e6
-    jmp near 085deh                           ; e9 ed 00
+    jmp near 085feh                           ; e9 ed 00
     mov ax, word [bp-020h]                    ; 8b 46 e0
     mov bx, word [bp-022h]                    ; 8b 5e de
@@ -12827,5 +12840,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000ch                ; be 0c 00
-    call 0a180h                               ; e8 7d 1c
+    call 0a1a0h                               ; e8 7d 1c
     mov word [bp-02ah], ax                    ; 89 46 d6
     mov word [bp-02ch], bx                    ; 89 5e d4
@@ -12834,13 +12847,13 @@
     mov ax, word [bp-020h]                    ; 8b 46 e0
     test ax, ax                               ; 85 c0
-    jnbe short 0852bh                         ; 77 15
-    je short 0851bh                           ; 74 03
-    jmp near 0859eh                           ; e9 83 00
+    jnbe short 0854bh                         ; 77 15
+    je short 0853bh                           ; 74 03
+    jmp near 085beh                           ; e9 83 00
     cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
-    jnbe short 0852bh                         ; 77 0a
-    jne short 08518h                          ; 75 f5
+    jnbe short 0854bh                         ; 77 0a
+    jne short 08538h                          ; 75 f5
     cmp word [bp-012h], strict byte 00040h    ; 83 7e ee 40
-    jnbe short 0852bh                         ; 77 02
-    jne short 0859eh                          ; 75 73
+    jnbe short 0854bh                         ; 77 02
+    jne short 085beh                          ; 75 73
     mov word [bp-028h], 000ffh                ; c7 46 d8 ff 00
     mov word [bp-01ah], strict word 0003fh    ; c7 46 e6 3f 00
@@ -12849,5 +12862,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 00006h                ; be 06 00
-    call 0a180h                               ; e8 3c 1c
+    call 0a1a0h                               ; e8 3c 1c
     mov si, word [bp-018h]                    ; 8b 76 e8
     add si, dx                                ; 01 d6
@@ -12867,5 +12880,5 @@
     mov dx, si                                ; 89 f2
     mov si, strict word 00008h                ; be 08 00
-    call 0a180h                               ; e8 0c 1c
+    call 0a1a0h                               ; e8 0c 1c
     mov word [bp-02eh], bx                    ; 89 5e d2
     mov word [bp-030h], cx                    ; 89 4e d0
@@ -12876,5 +12889,5 @@
     mov dx, word [bp-01eh]                    ; 8b 56 e2
     mov si, strict word 00010h                ; be 10 00
-    call 0a180h                               ; e8 f1 1b
+    call 0a1a0h                               ; e8 f1 1b
     mov si, word [bp-032h]                    ; 8b 76 ce
     add si, dx                                ; 01 d6
@@ -12882,17 +12895,17 @@
     mov ax, word [bp-02eh]                    ; 8b 46 d2
     adc ax, bx                                ; 11 d8
-    jmp short 085dbh                          ; eb 3d
+    jmp short 085fbh                          ; eb 3d
     test ax, ax                               ; 85 c0
-    jnbe short 085b4h                         ; 77 12
-    jne short 085c0h                          ; 75 1c
+    jnbe short 085d4h                         ; 77 12
+    jne short 085e0h                          ; 75 1c
     cmp word [bp-022h], strict byte 00000h    ; 83 7e de 00
-    jnbe short 085b4h                         ; 77 0a
-    jne short 085c0h                          ; 75 14
+    jnbe short 085d4h                         ; 77 0a
+    jne short 085e0h                          ; 75 14
     cmp word [bp-012h], strict byte 00020h    ; 83 7e ee 20
-    jnbe short 085b4h                         ; 77 02
-    jne short 085c0h                          ; 75 0c
+    jnbe short 085d4h                         ; 77 02
+    jne short 085e0h                          ; 75 0c
     mov word [bp-028h], 00080h                ; c7 46 d8 80 00
     mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
-    jmp short 085d9h                          ; eb 19
+    jmp short 085f9h                          ; eb 19
     mov word [bp-028h], strict word 00040h    ; c7 46 d8 40 00
     mov word [bp-01ah], strict word 00020h    ; c7 46 e6 20 00
@@ -12901,5 +12914,5 @@
     mov dx, word [bp-024h]                    ; 8b 56 dc
     mov si, strict word 0000bh                ; be 0b 00
-    call 0a180h                               ; e8 a7 1b
+    call 0a1a0h                               ; e8 a7 1b
     mov si, dx                                ; 89 d6
     mov word [bp-026h], cx                    ; 89 4e da
@@ -12938,16 +12951,16 @@
     mov word [es:bx+034h], ax                 ; 26 89 47 34
     cmp word [bp-026h], strict byte 00000h    ; 83 7e da 00
-    jne short 08655h                          ; 75 06
+    jne short 08675h                          ; 75 06
     cmp si, 00400h                            ; 81 fe 00 04
-    jbe short 08663h                          ; 76 0e
+    jbe short 08683h                          ; 76 0e
     mov word [es:bx+02ch], 00400h             ; 26 c7 47 2c 00 04
     mov word [es:bx+032h], 00400h             ; 26 c7 47 32 00 04
-    jmp short 0866bh                          ; eb 08
+    jmp short 0868bh                          ; eb 08
     mov word [es:bx+02ch], si                 ; 26 89 77 2c
     mov word [es:bx+032h], si                 ; 26 89 77 32
-    mov bx, 00da4h                            ; bb a4 0d
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 bd 92
+    call 01933h                               ; e8 9d 92
     push word [bp-020h]                       ; ff 76 e0
     push word [bp-022h]                       ; ff 76 de
@@ -12966,5 +12979,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 d6 92
+    call 01976h                               ; e8 b6 92
     add sp, strict byte 00018h                ; 83 c4 18
     mov al, byte [bp-00eh]                    ; 8a 46 f2
@@ -12995,5 +13008,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 5c 8f
+    call 01652h                               ; e8 3c 8f
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -13002,11 +13015,11 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 5b 8f
+    call 01660h                               ; e8 3b 8f
     inc byte [bp-00ch]                        ; fe 46 f4
-    jmp near 087a2h                           ; e9 97 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 087c2h                           ; e9 97 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 1d 92
+    call 01933h                               ; e8 fd 91
     push word [bp-014h]                       ; ff 76 ec
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -13017,5 +13030,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 4c 92
+    call 01976h                               ; e8 2c 92
     add sp, strict byte 00008h                ; 83 c4 08
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -13023,7 +13036,7 @@
     mov byte [bp-00eh], al                    ; 88 46 f2
     test byte [bp-00247h], 080h               ; f6 86 b9 fd 80
-    je short 08741h                           ; 74 05
+    je short 08761h                           ; 74 05
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 08743h                          ; eb 02
+    jmp short 08763h                          ; eb 02
     xor cx, cx                                ; 31 c9
     mov al, byte [bp-00ch]                    ; 8a 46 f4
@@ -13063,6 +13076,6 @@
     inc word [bp-014h]                        ; ff 46 ec
     cmp word [bp-014h], strict byte 00010h    ; 83 7e ec 10
-    jl short 087b9h                           ; 7c 03
-    jmp near 0883ch                           ; e9 83 00
+    jl short 087d9h                           ; 7c 03
+    jmp near 0885ch                           ; e9 83 00
     mov byte [bp-048h], 012h                  ; c6 46 b8 12
     xor al, al                                ; 30 c0
@@ -13086,7 +13099,7 @@
     lea bx, [bp-048h]                         ; 8d 5e b8
     mov ax, word [bp-0024ah]                  ; 8b 86 b6 fd
-    call 07e8fh                               ; e8 9e f6
+    call 07eafh                               ; e8 9e f6
     test al, al                               ; 84 c0
-    je short 08807h                           ; 74 12
+    je short 08827h                           ; 74 12
     mov ax, 00b92h                            ; b8 92 0b
     push ax                                   ; 50
@@ -13095,5 +13108,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 72 91
+    call 01976h                               ; e8 52 91
     add sp, strict byte 00006h                ; 83 c4 06
     mov es, [bp-016h]                         ; 8e 46 ea
@@ -13101,17 +13114,17 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
-    jne short 08823h                          ; 75 0a
+    jne short 08843h                          ; 75 0a
     test byte [bp-00248h], 01fh               ; f6 86 b8 fd 1f
-    jne short 08823h                          ; 75 03
-    jmp near 0839fh                           ; e9 7c fb
+    jne short 08843h                          ; 75 03
+    jmp near 083bfh                           ; e9 7c fb
     test byte [bp-00248h], 0e0h               ; f6 86 b8 fd e0
-    je short 0882dh                           ; 74 03
-    jmp near 087a2h                           ; e9 75 ff
+    je short 0884dh                           ; 74 03
+    jmp near 087c2h                           ; e9 75 ff
     mov al, byte [bp-00248h]                  ; 8a 86 b8 fd
     and AL, strict byte 01fh                  ; 24 1f
     cmp AL, strict byte 005h                  ; 3c 05
-    jne short 0883ah                          ; 75 03
-    jmp near 0870bh                           ; e9 d1 fe
-    jmp short 0882ah                          ; eb ee
+    jne short 0885ah                          ; 75 03
+    jmp near 0872bh                           ; e9 d1 fe
+    jmp short 0884ah                          ; eb ee
     lea sp, [bp-00ah]                         ; 8d 66 f6
     pop di                                    ; 5f
@@ -13122,5 +13135,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-scsi_pci_init_:                              ; 0xf8846 LB 0x2b
+scsi_pci_init_:                              ; 0xf8866 LB 0x2b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13128,8 +13141,8 @@
     push cx                                   ; 51
     push si                                   ; 56
-    call 09f84h                               ; e8 35 17
+    call 09fa4h                               ; e8 35 17
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 08869h                           ; 74 13
+    je short 08889h                           ; 74 13
     mov al, dl                                ; 88 d0
     xor ah, ah                                ; 30 e4
@@ -13139,5 +13152,5 @@
     mov bx, strict word 00004h                ; bb 04 00
     mov dx, si                                ; 89 f2
-    call 0a032h                               ; e8 c9 17
+    call 0a052h                               ; e8 c9 17
     lea sp, [bp-006h]                         ; 8d 66 fa
     pop si                                    ; 5e
@@ -13146,10 +13159,10 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-_scsi_init:                                  ; 0xf8871 LB 0x81
+_scsi_init:                                  ; 0xf8891 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 f1 8d
+    call 0166eh                               ; e8 d1 8d
     mov bx, 00122h                            ; bb 22 01
     mov es, ax                                ; 8e c0
@@ -13162,13 +13175,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088aah                          ; 75 15
+    jne short 088cah                          ; 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 da fa
+    call 0839bh                               ; e8 da fa
     mov dx, 01040h                            ; ba 40 10
     mov ax, 0104bh                            ; b8 4b 10
-    call 08846h                               ; e8 9c ff
+    call 08866h                               ; e8 9c ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 00436h                            ; ba 36 04
@@ -13178,13 +13191,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088cch                          ; 75 15
+    jne short 088ech                          ; 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 b8 fa
+    call 0839bh                               ; e8 b8 fa
     mov dx, strict word 00030h                ; ba 30 00
     mov ax, 01000h                            ; b8 00 10
-    call 08846h                               ; e8 7a ff
+    call 08866h                               ; e8 7a ff
     mov AL, strict byte 055h                  ; b0 55
     mov dx, 0043ah                            ; ba 3a 04
@@ -13194,17 +13207,17 @@
     ; sub ah, ah                                ; 2a e4
     cmp AL, strict byte 055h                  ; 3c 55
-    jne short 088eeh                          ; 75 15
+    jne short 0890eh                          ; 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 96 fa
+    call 0839bh                               ; e8 96 fa
     mov dx, strict word 00054h                ; ba 54 00
     mov ax, 01000h                            ; b8 00 10
-    call 08846h                               ; e8 58 ff
+    call 08866h                               ; e8 58 ff
     mov sp, bp                                ; 89 ec
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_ctrl_extract_bits_:                     ; 0xf88f2 LB 0x1c
+ahci_ctrl_extract_bits_:                     ; 0xf8912 LB 0x1c
     push si                                   ; 56
     push bp                                   ; 55
@@ -13215,12 +13228,12 @@
     mov cl, byte [bp+006h]                    ; 8a 4e 06
     xor ch, ch                                ; 30 ed
-    jcxz 08909h                               ; e3 06
+    jcxz 08929h                               ; e3 06
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 08903h                               ; e2 fa
+    loop 08923h                               ; e2 fa
     pop bp                                    ; 5d
     pop si                                    ; 5e
     retn 00002h                               ; c2 02 00
-ahci_addr_to_phys_:                          ; 0xf890e LB 0x1e
+ahci_addr_to_phys_:                          ; 0xf892e LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -13233,5 +13246,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0891ch                               ; e2 fa
+    loop 0893ch                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -13241,5 +13254,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-ahci_port_cmd_sync_:                         ; 0xf892c LB 0x159
+ahci_port_cmd_sync_:                         ; 0xf894c LB 0x159
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13256,6 +13269,6 @@
     mov bx, word [es:si+00260h]               ; 26 8b 9c 60 02
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 0894fh                          ; 75 03
-    jmp near 08a7dh                           ; e9 2e 01
+    jne short 0896fh                          ; 75 03
+    jmp near 08a9dh                           ; e9 2e 01
     mov al, byte [es:si+00263h]               ; 26 8a 84 63 02
     xor ah, ah                                ; 30 e4
@@ -13270,5 +13283,5 @@
     lea ax, [si+00080h]                       ; 8d 84 80 00
     mov dx, cx                                ; 89 ca
-    call 0890eh                               ; e8 92 ff
+    call 0892eh                               ; e8 92 ff
     mov es, cx                                ; 8e c1
     mov word [es:si+008h], ax                 ; 26 89 44 08
@@ -13338,12 +13351,12 @@
     xchg dx, ax                               ; 92
     test dh, 040h                             ; f6 c6 40
-    jne short 08a0fh                          ; 75 04
+    jne short 08a2fh                          ; 75 04
     test AL, strict byte 001h                 ; a8 01
-    je short 08a13h                           ; 74 04
+    je short 08a33h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08a15h                          ; eb 02
+    jmp short 08a35h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 089e1h                           ; 74 c8
+    je short 08a01h                           ; 74 c8
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -13402,5 +13415,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_cmd_data_:                              ; 0xf8a85 LB 0x262
+ahci_cmd_data_:                              ; 0xf8aa5 LB 0x262
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13427,5 +13440,5 @@
     mov ax, 00080h                            ; b8 80 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a1a0h                               ; e8 dd 16
+    call 0a1c0h                               ; e8 dd 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov word [es:di+00080h], 08027h           ; 26 c7 85 80 00 27 80
@@ -13445,5 +13458,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00008h                ; be 08 00
-    call 0a180h                               ; e8 79 16
+    call 0a1a0h                               ; e8 79 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00085h], dl               ; 26 88 95 85 00
@@ -13456,5 +13469,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00010h                ; be 10 00
-    call 0a180h                               ; e8 53 16
+    call 0a1a0h                               ; e8 53 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00086h], dl               ; 26 88 95 86 00
@@ -13468,5 +13481,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00018h                ; be 18 00
-    call 0a180h                               ; e8 27 16
+    call 0a1a0h                               ; e8 27 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00088h], dl               ; 26 88 95 88 00
@@ -13479,5 +13492,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00020h                ; be 20 00
-    call 0a180h                               ; e8 01 16
+    call 0a1a0h                               ; e8 01 16
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+00089h], dl               ; 26 88 95 89 00
@@ -13490,5 +13503,5 @@
     mov dx, word [es:si]                      ; 26 8b 14
     mov si, strict word 00028h                ; be 28 00
-    call 0a180h                               ; e8 db 15
+    call 0a1a0h                               ; e8 db 15
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov byte [es:di+0008ah], dl               ; 26 88 95 8a 00
@@ -13503,5 +13516,5 @@
     mov bx, word [bp-012h]                    ; 8b 5e ee
     xor cx, cx                                ; 31 c9
-    call 0a130h                               ; e8 59 15
+    call 0a150h                               ; e8 59 15
     push dx                                   ; 52
     push ax                                   ; 50
@@ -13513,5 +13526,5 @@
     mov ax, 0026ah                            ; b8 6a 02
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a08bh                               ; e8 98 14
+    call 0a0abh                               ; e8 98 14
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov dx, word [es:di+0027eh]               ; 26 8b 95 7e 02
@@ -13537,5 +13550,5 @@
     mov ax, word [es:bx+020h]                 ; 26 8b 47 20
     test ax, ax                               ; 85 c0
-    je short 08c83h                           ; 74 39
+    je short 08ca3h                           ; 74 39
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -13555,13 +13568,13 @@
     mov al, byte [bp-008h]                    ; 8a 46 f8
     cmp AL, strict byte 035h                  ; 3c 35
-    jne short 08c90h                          ; 75 06
+    jne short 08cb0h                          ; 75 06
     mov byte [bp-008h], 040h                  ; c6 46 f8 40
-    jmp short 08ca7h                          ; eb 17
+    jmp short 08cc7h                          ; eb 17
     cmp AL, strict byte 0a0h                  ; 3c a0
-    jne short 08ca3h                          ; 75 0f
+    jne short 08cc3h                          ; 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 08ca7h                          ; eb 04
+    jmp short 08cc7h                          ; eb 04
     mov byte [bp-008h], 000h                  ; c6 46 f8 00
     or byte [bp-008h], 005h                   ; 80 4e f8 05
@@ -13570,5 +13583,5 @@
     mov ax, word [bp-00eh]                    ; 8b 46 f2
     mov dx, word [bp-00ch]                    ; 8b 56 f4
-    call 0892ch                               ; e8 73 fc
+    call 0894ch                               ; e8 73 fc
     mov cx, word [bp-00ch]                    ; 8b 4e f4
     mov bx, word [bp-00eh]                    ; 8b 5e f2
@@ -13577,11 +13590,11 @@
     add ax, 0026ah                            ; 05 6a 02
     mov dx, cx                                ; 89 ca
-    call 0a102h                               ; e8 34 14
+    call 0a122h                               ; e8 34 14
     mov es, cx                                ; 8e c1
     mov al, byte [es:bx+003h]                 ; 26 8a 47 03
     test al, al                               ; 84 c0
-    je short 08cddh                           ; 74 05
+    je short 08cfdh                           ; 74 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 08cdfh                          ; eb 02
+    jmp short 08cffh                          ; eb 02
     xor ah, ah                                ; 30 e4
     lea sp, [bp-006h]                         ; 8d 66 fa
@@ -13591,5 +13604,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_deinit_current_:                   ; 0xf8ce7 LB 0x183
+ahci_port_deinit_current_:                   ; 0xf8d07 LB 0x183
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13606,5 +13619,5 @@
     mov byte [bp-00ah], al                    ; 88 46 f6
     cmp AL, strict byte 0ffh                  ; 3c ff
-    je short 08d6ah                           ; 74 61
+    je short 08d8ah                           ; 74 61
     xor ah, ah                                ; 30 e4
     mov CL, strict byte 007h                  ; b1 07
@@ -13652,26 +13665,26 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08d6dh                           ; 74 07
+    je short 08d8dh                           ; 74 07
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08d6fh                          ; eb 05
-    jmp near 08e61h                           ; e9 f4 00
+    jmp short 08d8fh                          ; eb 05
+    jmp near 08e81h                           ; e9 f4 00
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08d3ch                           ; 74 c9
+    je short 08d5ch                           ; 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 0a1a0h                               ; e8 20 14
+    call 0a1c0h                               ; e8 20 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 0a1a0h                               ; e8 11 14
+    call 0a1c0h                               ; e8 11 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 0a1a0h                               ; e8 02 14
+    call 0a1c0h                               ; e8 02 14
     mov al, byte [bp-00ah]                    ; 8a 46 f6
     xor ah, ah                                ; 30 e4
@@ -13779,5 +13792,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_init_:                             ; 0xf8e6a LB 0x250
+ahci_port_init_:                             ; 0xf8e8a LB 0x250
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -13789,5 +13802,5 @@
     mov word [bp-00ah], dx                    ; 89 56 f6
     mov byte [bp-008h], bl                    ; 88 5e f8
-    call 08ce7h                               ; e8 69 fe
+    call 08d07h                               ; e8 69 fe
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
@@ -13840,20 +13853,20 @@
     xchg dx, ax                               ; 92
     test ax, 0c011h                           ; a9 11 c0
-    je short 08ef1h                           ; 74 04
+    je short 08f11h                           ; 74 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 08ef3h                          ; eb 02
+    jmp short 08f13h                          ; eb 02
     xor al, al                                ; 30 c0
     cmp AL, strict byte 001h                  ; 3c 01
-    je short 08ebbh                           ; 74 c4
+    je short 08edbh                           ; 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 0a1a0h                               ; e8 9c 12
+    call 0a1c0h                               ; e8 9c 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 0a1a0h                               ; e8 8d 12
+    call 0a1c0h                               ; e8 8d 12
     lea di, [si+00200h]                       ; 8d bc 00 02
     mov cx, strict word 00060h                ; b9 60 00
@@ -13861,5 +13874,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a1a0h                               ; e8 7c 12
+    call 0a1c0h                               ; e8 7c 12
     mov bl, byte [bp-008h]                    ; 8a 5e f8
     xor bh, bh                                ; 30 ff
@@ -13880,5 +13893,5 @@
     mov ax, di                                ; 89 f8
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0890eh                               ; e8 bb f9
+    call 0892eh                               ; e8 bb f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -13925,5 +13938,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0890eh                               ; e8 4f f9
+    call 0892eh                               ; e8 4f f9
     mov es, [bp-00ah]                         ; 8e 46 f6
     mov di, word [es:si+00260h]               ; 26 8b bc 60 02
@@ -14030,5 +14043,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-@ahci_read_sectors:                          ; 0xf90ba LB 0xaa
+@ahci_read_sectors:                          ; 0xf90da LB 0xaa
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14041,5 +14054,5 @@
     sub di, strict byte 0000ch                ; 83 ef 0c
     cmp di, strict byte 00004h                ; 83 ff 04
-    jbe short 090e5h                          ; 76 13
+    jbe short 09105h                          ; 76 13
     push di                                   ; 57
     mov ax, 00c62h                            ; b8 62 0c
@@ -14049,5 +14062,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 94 88
+    call 01976h                               ; e8 74 88
     add sp, strict byte 00008h                ; 83 c4 08
     xor bx, bx                                ; 31 db
@@ -14063,9 +14076,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e6ah                               ; e8 5a fd
+    call 08e8ah                               ; 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 08a85h                               ; e8 6a f9
+    call 08aa5h                               ; e8 6a f9
     mov bx, ax                                ; 89 c3
     mov es, [bp+006h]                         ; 8e 46 06
@@ -14097,5 +14110,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-@ahci_write_sectors:                         ; 0xf9164 LB 0x88
+@ahci_write_sectors:                         ; 0xf9184 LB 0x88
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14109,5 +14122,5 @@
     sub bx, strict byte 0000ch                ; 83 eb 0c
     cmp bx, strict byte 00004h                ; 83 fb 04
-    jbe short 09192h                          ; 76 13
+    jbe short 091b2h                          ; 76 13
     push bx                                   ; 53
     mov ax, 00c93h                            ; b8 93 0c
@@ -14117,5 +14130,5 @@
     mov ax, strict word 00007h                ; b8 07 00
     push ax                                   ; 50
-    call 01976h                               ; e8 e7 87
+    call 01976h                               ; e8 c7 87
     add sp, strict byte 00008h                ; 83 c4 08
     xor di, di                                ; 31 ff
@@ -14131,9 +14144,9 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e6ah                               ; e8 af fc
+    call 08e8ah                               ; e8 af fc
     mov bx, strict word 00035h                ; bb 35 00
     mov ax, si                                ; 89 f0
     mov dx, cx                                ; 89 ca
-    call 08a85h                               ; e8 c0 f8
+    call 08aa5h                               ; e8 c0 f8
     mov dx, ax                                ; 89 c2
     mov es, cx                                ; 8e c1
@@ -14150,5 +14163,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-ahci_cmd_packet_:                            ; 0xf91ec LB 0x18c
+ahci_cmd_packet_:                            ; 0xf920c LB 0x18c
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14162,13 +14175,13 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 67 84
+    call 0166eh                               ; e8 47 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 09236h                          ; 75 23
-    mov bx, 00da4h                            ; bb a4 0d
+    jne short 09256h                          ; 75 23
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 15 87
+    call 01933h                               ; e8 f5 86
     mov ax, 00ca6h                            ; b8 a6 0c
     push ax                                   ; 50
@@ -14177,10 +14190,10 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 49 87
+    call 01976h                               ; e8 29 87
     add sp, strict byte 00006h                ; 83 c4 06
     mov ax, strict word 00001h                ; b8 01 00
-    jmp near 0936fh                           ; e9 39 01
+    jmp near 0938fh                           ; e9 39 01
     test byte [bp+004h], 001h                 ; f6 46 04 01
-    jne short 09230h                          ; 75 f4
+    jne short 09250h                          ; 75 f4
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov di, word [bp+008h]                    ; 8b 7e 08
@@ -14188,5 +14201,5 @@
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 09245h                               ; e2 fa
+    loop 09265h                               ; e2 fa
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si], bx                      ; 26 89 1c
@@ -14202,5 +14215,5 @@
     mov dx, word [bp+008h]                    ; 8b 56 08
     xor cx, cx                                ; 31 c9
-    call 0a150h                               ; e8 d2 0e
+    call 0a170h                               ; e8 d2 0e
     mov word [es:si+00eh], ax                 ; 26 89 44 0e
     xor di, di                                ; 31 ff
@@ -14220,5 +14233,5 @@
     mov dx, word [es:si+00232h]               ; 26 8b 94 32 02
     xor ax, ax                                ; 31 c0
-    call 08e6ah                               ; e8 af fb
+    call 08e8ah                               ; e8 af fb
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -14228,5 +14241,5 @@
     mov ax, 000c0h                            ; b8 c0 00
     mov dx, word [bp-00ah]                    ; 8b 56 f6
-    call 0a1b0h                               ; e8 e0 0e
+    call 0a1d0h                               ; e8 e0 0e
     mov es, [bp-008h]                         ; 8e 46 f8
     mov word [es:si+018h], di                 ; 26 89 7c 18
@@ -14235,5 +14248,5 @@
     mov ax, word [es:si+01eh]                 ; 26 8b 44 1e
     test ax, ax                               ; 85 c0
-    je short 0930eh                           ; 74 27
+    je short 0932eh                           ; 74 27
     dec ax                                    ; 48
     mov es, [bp-00ah]                         ; 8e 46 f6
@@ -14248,5 +14261,5 @@
     mov ax, si                                ; 89 f0
     mov dx, word [bp-008h]                    ; 8b 56 f8
-    call 08a85h                               ; e8 6c f7
+    call 08aa5h                               ; e8 6c f7
     les bx, [bp-00eh]                         ; c4 5e f2
     mov dx, word [es:bx+004h]                 ; 26 8b 57 04
@@ -14275,7 +14288,7 @@
     mov ax, word [es:bx+006h]                 ; 26 8b 47 06
     or ax, word [es:bx+004h]                  ; 26 0b 47 04
-    jne short 0936dh                          ; 75 05
+    jne short 0938dh                          ; 75 05
     mov ax, strict word 00004h                ; b8 04 00
-    jmp short 0936fh                          ; eb 02
+    jmp short 0938fh                          ; eb 02
     xor ax, ax                                ; 31 c0
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -14284,10 +14297,10 @@
     pop bp                                    ; 5d
     retn 0000ch                               ; c2 0c 00
-wait_ticks_device_init_:                     ; 0xf9378 LB 0x5
+wait_ticks_device_init_:                     ; 0xf9398 LB 0x5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_port_detect_device_:                    ; 0xf937d LB 0x4f6
+ahci_port_detect_device_:                    ; 0xf939d LB 0x4f6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14306,8 +14319,8 @@
     mov bx, word [bp-02ah]                    ; 8b 5e d6
     mov ax, si                                ; 89 f0
-    call 08e6ah                               ; e8 c4 fa
+    call 08e8ah                               ; e8 c4 fa
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 bf 82
+    call 0166eh                               ; e8 9f 82
     mov word [bp-026h], 00122h                ; c7 46 da 22 01
     mov word [bp-024h], ax                    ; 89 46 dc
@@ -14369,11 +14382,11 @@
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, word [bp-028h]                    ; 3b 46 d8
-    jc short 0945ah                           ; 72 11
+    jc short 0947ah                           ; 72 11
     mov ax, word [es:di+002h]                 ; 26 8b 45 02
     cmp ax, word [bp-028h]                    ; 3b 46 d8
-    jne short 094a8h                          ; 75 56
+    jne short 094c8h                          ; 75 56
     mov ax, word [es:di]                      ; 26 8b 05
     cmp ax, word [bp-01ch]                    ; 3b 46 e4
-    jnc short 094a8h                          ; 73 4e
+    jnc short 094c8h                          ; 73 4e
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -14405,11 +14418,11 @@
     mov bx, strict word 0000fh                ; bb 0f 00
     xor cx, cx                                ; 31 c9
-    call 088f2h                               ; e8 51 f4
+    call 08912h                               ; e8 51 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 0943dh                          ; 75 97
-    jmp short 094b1h                          ; eb 09
+    jne short 0945dh                          ; 75 97
+    jmp short 094d1h                          ; eb 09
     cmp word [bp-01eh], strict byte 00000h    ; 83 7e e2 00
-    jne short 094b1h                          ; 75 03
-    jmp near 0986bh                           ; e9 ba 03
+    jne short 094d1h                          ; 75 03
+    jmp near 0988bh                           ; e9 ba 03
     xor ax, ax                                ; 31 c0
     push ax                                   ; 50
@@ -14418,7 +14431,7 @@
     mov ax, word [bp-022h]                    ; 8b 46 de
     mov dx, word [bp-020h]                    ; 8b 56 e0
-    call 088f2h                               ; e8 30 f4
+    call 08912h                               ; e8 30 f4
     cmp ax, strict word 00003h                ; 3d 03 00
-    jne short 094aeh                          ; 75 e7
+    jne short 094ceh                          ; 75 e7
     mov al, byte [bp-008h]                    ; 8a 46 f8
     xor ah, ah                                ; 30 e4
@@ -14451,5 +14464,5 @@
     mov byte [bp-00ch], al                    ; 88 46 f4
     cmp AL, strict byte 004h                  ; 3c 04
-    jnc short 094aeh                          ; 73 9a
+    jnc short 094ceh                          ; 73 9a
     lea ax, [di+00118h]                       ; 8d 85 18 01
     mov es, [bp-01ah]                         ; 8e 46 e6
@@ -14500,7 +14513,7 @@
     mov byte [bp-00eh], bl                    ; 88 5e f2
     test dx, dx                               ; 85 d2
-    jne short 095d9h                          ; 75 54
+    jne short 095f9h                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 095d9h                          ; 75 4f
+    jne short 095f9h                          ; 75 4f
     les bx, [bp-026h]                         ; c4 5e da
     mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
@@ -14516,12 +14529,12 @@
     mov ax, word [bp-026h]                    ; 8b 46 da
     mov dx, es                                ; 8c c2
-    call 08a85h                               ; e8 be f4
+    call 08aa5h                               ; e8 be f4
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp-00ah], al                    ; 88 46 f6
     test byte [bp-00232h], 080h               ; f6 86 ce fd 80
-    je short 095dch                           ; 74 08
+    je short 095fch                           ; 74 08
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 095deh                          ; eb 05
-    jmp near 097aah                           ; e9 ce 01
+    jmp short 095feh                          ; eb 05
+    jmp near 097cah                           ; e9 ce 01
     xor ax, ax                                ; 31 c0
     mov cl, al                                ; 88 c1
@@ -14538,7 +14551,7 @@
     mov word [bp-010h], ax                    ; 89 46 f0
     cmp si, 00fffh                            ; 81 fe ff 0f
-    jne short 09626h                          ; 75 1b
+    jne short 09646h                          ; 75 1b
     cmp di, strict byte 0ffffh                ; 83 ff ff
-    jne short 09626h                          ; 75 16
+    jne short 09646h                          ; 75 16
     mov ax, word [bp-00164h]                  ; 8b 86 9c fe
     mov word [bp-010h], ax                    ; 89 46 f0
@@ -14578,19 +14591,19 @@
     mov al, byte [bp-00ch]                    ; 8a 46 f4
     cmp AL, strict byte 001h                  ; 3c 01
-    jc short 096a0h                           ; 72 0c
-    jbe short 096a8h                          ; 76 12
+    jc short 096c0h                           ; 72 0c
+    jbe short 096c8h                          ; 76 12
     cmp AL, strict byte 003h                  ; 3c 03
-    je short 096b0h                           ; 74 16
+    je short 096d0h                           ; 74 16
     cmp AL, strict byte 002h                  ; 3c 02
-    je short 096ach                           ; 74 0e
-    jmp short 096fah                          ; eb 5a
+    je short 096cch                           ; 74 0e
+    jmp short 0971ah                          ; eb 5a
     test al, al                               ; 84 c0
-    jne short 096fah                          ; 75 56
+    jne short 0971ah                          ; 75 56
     mov BL, strict byte 040h                  ; b3 40
-    jmp short 096b2h                          ; eb 0a
+    jmp short 096d2h                          ; eb 0a
     mov BL, strict byte 048h                  ; b3 48
-    jmp short 096b2h                          ; eb 06
+    jmp short 096d2h                          ; eb 06
     mov BL, strict byte 050h                  ; b3 50
-    jmp short 096b2h                          ; eb 02
+    jmp short 096d2h                          ; eb 02
     mov BL, strict byte 058h                  ; b3 58
     mov dl, bl                                ; 88 da
@@ -14598,17 +14611,17 @@
     xor dh, dh                                ; 30 f6
     mov ax, dx                                ; 89 d0
-    call 016aeh                               ; e8 f0 7f
+    call 016aeh                               ; e8 d0 7f
     test al, al                               ; 84 c0
-    je short 096fah                           ; 74 38
+    je short 0971ah                           ; 74 38
     mov al, bl                                ; 88 d8
     db  0feh, 0c0h
     ; inc al                                    ; fe c0
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 e3 7f
+    call 016aeh                               ; e8 c3 7f
     mov byte [bp-029h], al                    ; 88 46 d7
     mov byte [bp-02ah], dh                    ; 88 76 d6
     mov al, bl                                ; 88 d8
     xor ah, ah                                ; 30 e4
-    call 016aeh                               ; e8 d6 7f
+    call 016aeh                               ; e8 b6 7f
     xor ah, ah                                ; 30 e4
     mov cx, word [bp-02ah]                    ; 8b 4e d6
@@ -14617,12 +14630,12 @@
     mov al, bl                                ; 88 d8
     add AL, strict byte 002h                  ; 04 02
-    call 016aeh                               ; e8 c5 7f
+    call 016aeh                               ; e8 a5 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-032h], ax                    ; 89 46 ce
     mov ax, dx                                ; 89 d0
-    call 016aeh                               ; e8 bb 7f
+    call 016aeh                               ; e8 9b 7f
     xor ah, ah                                ; 30 e4
     mov word [bp-02eh], ax                    ; 89 46 d2
-    jmp short 0970ah                          ; eb 10
+    jmp short 0972ah                          ; eb 10
     push word [bp-010h]                       ; ff 76 f0
     push word [bp-012h]                       ; ff 76 ee
@@ -14631,9 +14644,9 @@
     mov dx, ss                                ; 8c d2
     lea ax, [bp-032h]                         ; 8d 46 ce
-    call 05b7fh                               ; e8 75 c4
-    mov bx, 00da4h                            ; bb a4 0d
+    call 05b9fh                               ; e8 75 c4
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 1e 82
+    call 01933h                               ; e8 fe 81
     push word [bp-010h]                       ; ff 76 f0
     push word [bp-012h]                       ; ff 76 ee
@@ -14658,5 +14671,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 2f 82
+    call 01976h                               ; e8 0f 82
     add sp, strict byte 0001ch                ; 83 c4 1c
     mov al, byte [bp-00ah]                    ; 8a 46 f6
@@ -14691,5 +14704,5 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01652h                               ; e8 ba 7e
+    call 01652h                               ; e8 9a 7e
     mov bl, al                                ; 88 c3
     db  0feh, 0c3h
@@ -14698,10 +14711,10 @@
     mov dx, strict word 00075h                ; ba 75 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 01660h                               ; e8 b9 7e
-    jmp near 0985dh                           ; e9 b3 00
+    call 01660h                               ; e8 99 7e
+    jmp near 0987dh                           ; e9 b3 00
     cmp dx, 0eb14h                            ; 81 fa 14 eb
-    jne short 09804h                          ; 75 54
+    jne short 09824h                          ; 75 54
     cmp ax, 00101h                            ; 3d 01 01
-    jne short 09804h                          ; 75 4f
+    jne short 09824h                          ; 75 4f
     les bx, [bp-026h]                         ; c4 5e da
     mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00
@@ -14717,12 +14730,12 @@
     mov ax, word [bp-026h]                    ; 8b 46 da
     mov dx, es                                ; 8c c2
-    call 08a85h                               ; e8 93 f2
+    call 08aa5h                               ; e8 93 f2
     mov al, byte [bp-00eh]                    ; 8a 46 f2
     mov byte [bp-00ah], al                    ; 88 46 f6
     test byte [bp-00232h], 080h               ; f6 86 ce fd 80
-    je short 09806h                           ; 74 07
+    je short 09826h                           ; 74 07
     mov cx, strict word 00001h                ; b9 01 00
-    jmp short 09808h                          ; eb 04
-    jmp short 0985dh                          ; eb 57
+    jmp short 09828h                          ; eb 04
+    jmp short 0987dh                          ; eb 57
     xor cx, cx                                ; 31 c9
     mov bl, byte [bp-00ch]                    ; 8a 5e f4
@@ -14763,5 +14776,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_mem_alloc_:                             ; 0xf9873 LB 0x43
+ahci_mem_alloc_:                             ; 0xf9893 LB 0x43
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14773,7 +14786,7 @@
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0166eh                               ; e8 eb 7d
+    call 0166eh                               ; e8 cb 7d
     test ax, ax                               ; 85 c0
-    je short 098ach                           ; 74 25
+    je short 098cch                           ; 74 25
     dec ax                                    ; 48
     mov bx, ax                                ; 89 c3
@@ -14782,5 +14795,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0988fh                               ; e2 fa
+    loop 098afh                               ; e2 fa
     mov si, ax                                ; 89 c6
     mov di, dx                                ; 89 d7
@@ -14788,8 +14801,8 @@
     shr di, 1                                 ; d1 ef
     rcr si, 1                                 ; d1 de
-    loop 0989ch                               ; e2 fa
+    loop 098bch                               ; e2 fa
     mov dx, 00413h                            ; ba 13 04
     xor ax, ax                                ; 31 c0
-    call 0167ch                               ; e8 d2 7d
+    call 0167ch                               ; e8 b2 7d
     mov ax, si                                ; 89 f0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14801,5 +14814,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-ahci_hba_init_:                              ; 0xf98b6 LB 0x16e
+ahci_hba_init_:                              ; 0xf98d6 LB 0x16e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14813,5 +14826,5 @@
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, strict word 00040h                ; b8 40 00
-    call 0166eh                               ; e8 a2 7d
+    call 0166eh                               ; e8 82 7d
     mov bx, 00122h                            ; bb 22 01
     mov di, ax                                ; 89 c7
@@ -14830,9 +14843,9 @@
     shr eax, 010h                             ; 66 c1 e8 10
     xchg dx, ax                               ; 92
-    call 09873h                               ; e8 83 ff
+    call 09893h                               ; e8 83 ff
     mov word [bp-010h], ax                    ; 89 46 f0
     test ax, ax                               ; 85 c0
-    jne short 098fah                          ; 75 03
-    jmp near 09a03h                           ; e9 09 01
+    jne short 0991ah                          ; 75 03
+    jmp near 09a23h                           ; e9 09 01
     mov ax, word [bp-010h]                    ; 8b 46 f0
     mov es, di                                ; 8e c7
@@ -14884,5 +14897,5 @@
     xchg dx, ax                               ; 92
     test AL, strict byte 001h                 ; a8 01
-    jne short 09954h                          ; 75 de
+    jne short 09974h                          ; 75 de
     xor ax, ax                                ; 31 c0
     xor cx, cx                                ; 31 c9
@@ -14903,31 +14916,31 @@
     mov bx, strict word 0001fh                ; bb 1f 00
     xor cx, cx                                ; 31 c9
-    call 088f2h                               ; e8 57 ef
+    call 08912h                               ; e8 57 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 099c7h                          ; eb 21
+    jmp short 099e7h                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 099beh                           ; 74 12
+    je short 099deh                           ; 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 0937dh                               ; e8 c4 f9
+    call 0939dh                               ; e8 c4 f9
     dec byte [bp-00eh]                        ; fe 4e f2
-    je short 09a01h                           ; 74 43
+    je short 09a21h                           ; 74 43
     inc byte [bp-00ch]                        ; fe 46 f4
     cmp byte [bp-00ch], 020h                  ; 80 7e f4 20
-    jnc short 09a01h                          ; 73 3a
+    jnc short 09a21h                          ; 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 099d9h                               ; e3 06
+    jcxz 099f9h                               ; e3 06
     sal bx, 1                                 ; d1 e3
     rcl di, 1                                 ; d1 d7
-    loop 099d3h                               ; e2 fa
+    loop 099f3h                               ; e2 fa
     mov ax, strict word 0000ch                ; b8 0c 00
     xor cx, cx                                ; 31 c9
@@ -14945,9 +14958,9 @@
     xchg dx, ax                               ; 92
     test dx, di                               ; 85 fa
-    jne short 099fdh                          ; 75 04
+    jne short 09a1dh                          ; 75 04
     test ax, bx                               ; 85 d8
-    je short 099a6h                           ; 74 a9
+    je short 099c6h                           ; 74 a9
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 099a8h                          ; eb a7
+    jmp short 099c8h                          ; eb a7
     xor ax, ax                                ; 31 c0
     lea sp, [bp-00ah]                         ; 8d 66 f6
@@ -14959,7 +14972,7 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00ah, 09bh, 0e8h, 09ah, 0eeh, 09ah, 0f4h, 09ah, 0fah
-    db  09ah, 000h, 09bh, 006h, 09bh, 00ah, 09bh
-_ahci_init:                                  ; 0xf9a24 LB 0x139
+    db  00bh, 005h, 004h, 003h, 002h, 001h, 000h, 02ah, 09bh, 008h, 09bh, 00eh, 09bh, 014h, 09bh, 01ah
+    db  09bh, 020h, 09bh, 026h, 09bh, 02ah, 09bh
+_ahci_init:                                  ; 0xf9a44 LB 0x139
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -14969,8 +14982,8 @@
     mov ax, 00601h                            ; b8 01 06
     mov dx, strict word 00001h                ; ba 01 00
-    call 09f7ch                               ; e8 47 05
+    call 09f9ch                               ; e8 47 05
     mov dx, ax                                ; 89 c2
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    je short 09a85h                           ; 74 49
+    je short 09aa5h                           ; 74 49
     mov al, ah                                ; 88 e0
     mov byte [bp-008h], ah                    ; 88 66 f8
@@ -14979,8 +14992,8 @@
     xor ah, ah                                ; 30 e4
     mov bx, strict word 00034h                ; bb 34 00
-    call 09fa7h                               ; e8 59 05
+    call 09fc7h                               ; e8 59 05
     mov cl, al                                ; 88 c1
     test cl, cl                               ; 84 c9
-    je short 09a88h                           ; 74 34
+    je short 09aa8h                           ; 74 34
     mov bl, cl                                ; 88 cb
     xor bh, bh                                ; 30 ff
@@ -14993,7 +15006,7 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    call 09fa7h                               ; e8 34 05
+    call 09fc7h                               ; e8 34 05
     cmp AL, strict byte 012h                  ; 3c 12
-    je short 09a88h                           ; 74 11
+    je short 09aa8h                           ; 74 11
     mov bl, cl                                ; 88 cb
     db  0feh, 0c3h
@@ -15002,8 +15015,8 @@
     mov dx, word [bp-00ch]                    ; 8b 56 f4
     mov ax, word [bp-012h]                    ; 8b 46 ee
-    jmp short 09a4bh                          ; eb c6
-    jmp near 09b56h                           ; e9 ce 00
+    jmp short 09a6bh                          ; eb c6
+    jmp near 09b76h                           ; e9 ce 00
     test cl, cl                               ; 84 c9
-    je short 09a85h                           ; 74 f9
+    je short 09aa5h                           ; 74 f9
     add cl, 002h                              ; 80 c1 02
     mov bl, cl                                ; 88 cb
@@ -15017,7 +15030,7 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09fa7h                               ; e8 f9 04
+    call 09fc7h                               ; e8 f9 04
     cmp AL, strict byte 010h                  ; 3c 10
-    jne short 09a85h                          ; 75 d3
+    jne short 09aa5h                          ; 75 d3
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     mov bl, cl                                ; 88 cb
@@ -15026,29 +15039,29 @@
     mov dx, word [bp-00eh]                    ; 8b 56 f2
     mov ax, word [bp-014h]                    ; 8b 46 ec
-    call 09fceh                               ; e8 08 05
+    call 09feeh                               ; 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 09b0ah                         ; 77 37
+    jnbe short 09b2ah                         ; 77 37
     push CS                                   ; 0e
     pop ES                                    ; 07
     mov cx, strict word 00008h                ; b9 08 00
-    mov di, 09a0dh                            ; bf 0d 9a
+    mov di, 09a2dh                            ; bf 2d 9a
     repne scasb                               ; f2 ae
     sal cx, 1                                 ; d1 e1
     mov di, cx                                ; 89 cf
-    mov ax, word [cs:di-065ech]               ; 2e 8b 85 14 9a
+    mov ax, word [cs:di-065cch]               ; 2e 8b 85 34 9a
     jmp ax                                    ; ff e0
     mov byte [bp-006h], 010h                  ; c6 46 fa 10
-    jmp short 09b0ah                          ; eb 1c
+    jmp short 09b2ah                          ; eb 1c
     mov byte [bp-006h], 014h                  ; c6 46 fa 14
-    jmp short 09b0ah                          ; eb 16
+    jmp short 09b2ah                          ; eb 16
     mov byte [bp-006h], 018h                  ; c6 46 fa 18
-    jmp short 09b0ah                          ; eb 10
+    jmp short 09b2ah                          ; eb 10
     mov byte [bp-006h], 01ch                  ; c6 46 fa 1c
-    jmp short 09b0ah                          ; eb 0a
+    jmp short 09b2ah                          ; eb 0a
     mov byte [bp-006h], 020h                  ; c6 46 fa 20
-    jmp short 09b0ah                          ; eb 04
+    jmp short 09b2ah                          ; eb 04
     mov byte [bp-006h], 024h                  ; c6 46 fa 24
     mov CL, strict byte 004h                  ; b1 04
@@ -15059,5 +15072,5 @@
     mov al, byte [bp-006h]                    ; 8a 46 fa
     test al, al                               ; 84 c0
-    je short 09b56h                           ; 74 3b
+    je short 09b76h                           ; 74 3b
     mov bl, al                                ; 88 c3
     xor bh, bh                                ; 30 ff
@@ -15070,7 +15083,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 09ff3h                               ; e8 b9 04
+    call 0a013h                               ; e8 b9 04
     test AL, strict byte 001h                 ; a8 01
-    je short 09b56h                           ; 74 18
+    je short 09b76h                           ; 74 18
     and AL, strict byte 0f0h                  ; 24 f0
     add si, ax                                ; 01 c6
@@ -15079,7 +15092,7 @@
     mov dx, word [bp-010h]                    ; 8b 56 f0
     mov ax, word [bp-016h]                    ; 8b 46 ea
-    call 0a032h                               ; e8 e1 04
+    call 0a052h                               ; e8 e1 04
     mov ax, si                                ; 89 f0
-    call 098b6h                               ; e8 60 fd
+    call 098d6h                               ; e8 60 fd
     lea sp, [bp-004h]                         ; 8d 66 fc
     pop di                                    ; 5f
@@ -15087,5 +15100,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-apm_out_str_:                                ; 0xf9b5d LB 0x39
+apm_out_str_:                                ; 0xf9b7d LB 0x39
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15093,5 +15106,5 @@
     mov bx, ax                                ; 89 c3
     cmp byte [bx], 000h                       ; 80 3f 00
-    je short 09b72h                           ; 74 0a
+    je short 09b92h                           ; 74 0a
     mov al, byte [bx]                         ; 8a 07
     out DX, AL                                ; ee
@@ -15100,29 +15113,25 @@
     db  00ah, 0c0h
     ; or al, al                                 ; 0a c0
-    jne short 09b6ah                          ; 75 f8
+    jne short 09b8ah                          ; 75 f8
     lea sp, [bp-002h]                         ; 8d 66 fe
     pop bx                                    ; 5b
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov BH, strict byte 09bh                  ; b7 9b
-    inc dx                                    ; 42
+    xlatb                                     ; d7
+    wait                                      ; 9b
+    bound bx, [si-06417h]                     ; 62 9c e9 9b
+    add AL, strict byte 09ch                  ; 04 9c
+    bound bx, [si-063d1h]                     ; 62 9c 2f 9c
+    bound bx, [si-06398h]                     ; 62 9c 68 9c
+    xor AL, strict byte 09ch                  ; 34 9c
+    xor AL, strict byte 09ch                  ; 34 9c
+    xor AL, strict byte 09ch                  ; 34 9c
+    cmpsw                                     ; a7
     pushfw                                    ; 9c
-    leave                                     ; c9
-    wait                                      ; 9b
-    in AL, strict byte 09bh                   ; e4 9b
-    inc dx                                    ; 42
+    xor AL, strict byte 09ch                  ; 34 9c
+    xor AL, strict byte 09ch                  ; 34 9c
+    db  0a0h
     pushfw                                    ; 9c
-    db  00fh, 09ch, 042h, 09ch
-    ; setl byte [bp+si-064h]                    ; 0f 9c 42 9c
-    dec ax                                    ; 48
-    pushfw                                    ; 9c
-    adc AL, strict byte 09ch                  ; 14 9c
-    adc AL, strict byte 09ch                  ; 14 9c
-    adc AL, strict byte 09ch                  ; 14 9c
-    xchg word [si-063ech], bx                 ; 87 9c 14 9c
-    adc AL, strict byte 09ch                  ; 14 9c
-    db  080h
-    pushfw                                    ; 9c
-_apm_function:                               ; 0xf9b96 LB 0xf6
+_apm_function:                               ; 0xf9bb6 LB 0xf6
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15132,21 +15141,21 @@
     xor ah, ah                                ; 30 e4
     cmp ax, strict word 0000eh                ; 3d 0e 00
-    jnbe short 09c14h                         ; 77 6c
+    jnbe short 09c34h                         ; 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-06488h]                   ; 2e ff a7 78 9b
+    jmp word [cs:bx-06468h]                   ; 2e ff a7 98 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 09c42h                           ; e9 79 00
+    jmp near 09c62h                           ; e9 79 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
-    mov word [bp+00ch], 0a224h                ; c7 46 0c 24 a2
+    mov word [bp+00ch], 0a244h                ; c7 46 0c 44 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 09c42h                           ; e9 5e 00
+    jmp near 09c62h                           ; e9 5e 00
     mov word [bp+012h], 0f000h                ; c7 46 12 00 f0
     mov word [bp+00ch], 0da40h                ; c7 46 0c 40 da
@@ -15161,12 +15170,12 @@
     mov si, ax                                ; 89 c6
     sal esi, 010h                             ; 66 c1 e6 10
-    jmp near 09c42h                           ; e9 33 00
+    jmp near 09c62h                           ; e9 33 00
     sti                                       ; fb
     hlt                                       ; f4
-    jmp near 09c42h                           ; e9 2e 00
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp near 09c62h                           ; e9 2e 00
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 14 7d
+    call 01933h                               ; e8 f4 7c
     push word [bp+00ch]                       ; ff 76 0c
     push word [bp+012h]                       ; ff 76 12
@@ -15175,5 +15184,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 46 7d
+    call 01976h                               ; e8 26 7d
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+012h]                    ; 8b 46 12
@@ -15187,28 +15196,28 @@
     retn                                      ; c3
     cmp word [bp+010h], strict byte 00003h    ; 83 7e 10 03
-    je short 09c6dh                           ; 74 1f
+    je short 09c8dh                           ; 74 1f
     cmp word [bp+010h], strict byte 00002h    ; 83 7e 10 02
-    je short 09c65h                           ; 74 11
+    je short 09c85h                           ; 74 11
     cmp word [bp+010h], strict byte 00001h    ; 83 7e 10 01
-    jne short 09c75h                          ; 75 1b
+    jne short 09c95h                          ; 75 1b
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d10h                            ; b8 10 0d
-    call 09b5dh                               ; e8 fa fe
-    jmp short 09c42h                          ; eb dd
+    call 09b7dh                               ; e8 fa fe
+    jmp short 09c62h                          ; eb dd
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d18h                            ; b8 18 0d
-    jmp short 09c60h                          ; eb f3
+    jmp short 09c80h                          ; eb f3
     mov dx, 0040fh                            ; ba 0f 04
     mov ax, 00d20h                            ; b8 20 0d
-    jmp short 09c60h                          ; eb eb
+    jmp short 09c80h                          ; 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 09c42h                          ; eb c2
+    jmp short 09c62h                          ; eb c2
     mov word [bp+012h], 00102h                ; c7 46 12 02 01
-    jmp short 09c42h                          ; eb bb
+    jmp short 09c62h                          ; eb bb
     or ah, 080h                               ; 80 cc 80
-    jmp short 09c78h                          ; eb ec
-pci16_select_reg_:                           ; 0xf9c8c LB 0x24
+    jmp short 09c98h                          ; eb ec
+pci16_select_reg_:                           ; 0xf9cac LB 0x24
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15227,5 +15236,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci16_find_device_:                          ; 0xf9cb0 LB 0xf7
+pci16_find_device_:                          ; 0xf9cd0 LB 0xf7
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15241,8 +15250,8 @@
     mov byte [bp-006h], 000h                  ; c6 46 fa 00
     test bl, 007h                             ; f6 c3 07
-    jne short 09cf8h                          ; 75 2d
+    jne short 09d18h                          ; 75 2d
     mov dx, strict word 0000eh                ; ba 0e 00
     mov ax, bx                                ; 89 d8
-    call 09c8ch                               ; e8 b9 ff
+    call 09cach                               ; e8 b9 ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15251,23 +15260,23 @@
     mov byte [bp-008h], al                    ; 88 46 f8
     cmp AL, strict byte 0ffh                  ; 3c ff
-    jne short 09ce6h                          ; 75 06
+    jne short 09d06h                          ; 75 06
     add bx, strict byte 00008h                ; 83 c3 08
-    jmp near 09d78h                           ; e9 92 00
+    jmp near 09d98h                           ; e9 92 00
     test byte [bp-008h], 080h                 ; f6 46 f8 80
-    je short 09cf3h                           ; 74 07
+    je short 09d13h                           ; 74 07
     mov word [bp-00eh], strict word 00001h    ; c7 46 f2 01 00
-    jmp short 09cf8h                          ; eb 05
+    jmp short 09d18h                          ; 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 09d1fh                          ; 75 1e
+    jne short 09d3fh                          ; 75 1e
     mov al, bh                                ; 88 f8
     xor ah, ah                                ; 30 e4
     test ax, ax                               ; 85 c0
-    jne short 09d1fh                          ; 75 16
+    jne short 09d3fh                          ; 75 16
     mov dx, strict word 0001ah                ; ba 1a 00
     mov ax, bx                                ; 89 d8
-    call 09c8ch                               ; e8 7b ff
+    call 09cach                               ; e8 7b ff
     mov dx, 00cfeh                            ; ba fe 0c
     in AL, DX                                 ; ec
@@ -15275,13 +15284,13 @@
     ; sub ah, ah                                ; 2a e4
     cmp al, byte [bp-006h]                    ; 3a 46 fa
-    jbe short 09d1fh                          ; 76 03
+    jbe short 09d3fh                          ; 76 03
     mov byte [bp-006h], al                    ; 88 46 fa
     test di, di                               ; 85 ff
-    je short 09d28h                           ; 74 05
+    je short 09d48h                           ; 74 05
     mov dx, strict word 00008h                ; ba 08 00
-    jmp short 09d2ah                          ; eb 02
+    jmp short 09d4ah                          ; eb 02
     xor dx, dx                                ; 31 d2
     mov ax, bx                                ; 89 d8
-    call 09c8ch                               ; e8 5d ff
+    call 09cach                               ; e8 5d ff
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15294,22 +15303,22 @@
     mov word [bp-00ch], strict word 00000h    ; c7 46 f4 00 00
     test di, di                               ; 85 ff
-    je short 09d59h                           ; 74 0f
+    je short 09d79h                           ; 74 0f
     mov cx, strict word 00008h                ; b9 08 00
     shr dx, 1                                 ; d1 ea
     rcr ax, 1                                 ; d1 d8
-    loop 09d4dh                               ; e2 fa
+    loop 09d6dh                               ; 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 09d69h                          ; 75 08
+    jne short 09d89h                          ; 75 08
     mov ax, word [bp-00ah]                    ; 8b 46 f6
     cmp ax, word [bp-012h]                    ; 3b 46 ee
-    je short 09d6fh                           ; 74 06
+    je short 09d8fh                           ; 74 06
     cmp word [bp-00ch], strict byte 00000h    ; 83 7e f4 00
-    je short 09d75h                           ; 74 06
+    je short 09d95h                           ; 74 06
     dec si                                    ; 4e
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    je short 09d88h                           ; 74 13
+    je short 09da8h                           ; 74 13
     add bx, word [bp-00eh]                    ; 03 5e f2
     mov al, bh                                ; 88 f8
@@ -15318,10 +15327,10 @@
     xor dh, dh                                ; 30 f6
     cmp ax, dx                                ; 39 d0
-    jnbe short 09d88h                         ; 77 03
-    jmp near 09cc6h                           ; e9 3e ff
+    jnbe short 09da8h                         ; 77 03
+    jmp near 09ce6h                           ; e9 3e ff
     cmp si, strict byte 0ffffh                ; 83 fe ff
-    jne short 09d91h                          ; 75 04
+    jne short 09db1h                          ; 75 04
     mov ax, bx                                ; 89 d8
-    jmp short 09d94h                          ; eb 03
+    jmp short 09db4h                          ; eb 03
     mov ax, strict word 0ffffh                ; b8 ff ff
     lea sp, [bp-004h]                         ; 8d 66 fc
@@ -15330,9 +15339,11 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-    mov byte [bp-0615fh], bl                  ; 88 9e a1 9e
-    mov BL, strict byte 09eh                  ; b3 9e
-    db  0c7h, 09eh, 0d9h, 09eh, 0ech, 09eh
-    ; mov word [bp-06127h], 09eech              ; c7 9e d9 9e ec 9e
-_pci16_function:                             ; 0xf9da7 LB 0x1d5
+    test AL, strict byte 09eh                 ; a8 9e
+    rcr word [bp-0612dh], 0e7h                ; c1 9e d3 9e e7
+    sahf                                      ; 9e
+    stc                                       ; f9
+    sahf                                      ; 9e
+    or AL, strict byte 09fh                   ; 0c 9f
+_pci16_function:                             ; 0xf9dc7 LB 0x1d5
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15348,18 +15359,18 @@
     xor ah, ah                                ; 30 e4
     cmp bx, strict byte 00003h                ; 83 fb 03
-    jc short 09dd9h                           ; 72 13
-    jbe short 09e2ch                          ; 76 64
+    jc short 09df9h                           ; 72 13
+    jbe short 09e4ch                          ; 76 64
     cmp bx, strict byte 0000eh                ; 83 fb 0e
-    je short 09e34h                           ; 74 67
+    je short 09e54h                           ; 74 67
     cmp bx, strict byte 00008h                ; 83 fb 08
-    jc short 09de3h                           ; 72 11
+    jc short 09e03h                           ; 72 11
     cmp bx, strict byte 0000dh                ; 83 fb 0d
-    jbe short 09e37h                          ; 76 60
-    jmp short 09de3h                          ; eb 0a
+    jbe short 09e57h                          ; 76 60
+    jmp short 09e03h                          ; eb 0a
     cmp bx, strict byte 00002h                ; 83 fb 02
-    je short 09e02h                           ; 74 24
+    je short 09e22h                           ; 74 24
     cmp bx, strict byte 00001h                ; 83 fb 01
-    je short 09de6h                           ; 74 03
-    jmp near 09f45h                           ; e9 5f 01
+    je short 09e06h                           ; 74 03
+    jmp near 09f65h                           ; 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
@@ -15367,52 +15378,52 @@
     mov word [bp+018h], 04350h                ; c7 46 18 50 43
     mov word [bp+01ah], 02049h                ; c7 46 1a 49 20
-    jmp near 09f75h                           ; e9 73 01
+    jmp near 09f95h                           ; e9 73 01
     cmp word [bp+018h], strict byte 0ffffh    ; 83 7e 18 ff
-    jne short 09e0eh                          ; 75 06
+    jne short 09e2eh                          ; 75 06
     or ah, 083h                               ; 80 cc 83
-    jmp near 09f6eh                           ; e9 60 01
+    jmp near 09f8eh                           ; 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 09cb0h                               ; e8 94 fe
+    call 09cd0h                               ; e8 94 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09e2eh                          ; 75 0d
+    jne short 09e4eh                          ; 75 0d
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09f6eh                           ; e9 42 01
-    jmp short 09e39h                          ; eb 0b
+    jmp near 09f8eh                           ; e9 42 01
+    jmp short 09e59h                          ; eb 0b
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09f75h                           ; e9 41 01
-    jmp near 09f00h                           ; e9 c9 00
-    jmp short 09e5eh                          ; eb 25
+    jmp near 09f95h                           ; e9 41 01
+    jmp near 09f20h                           ; e9 c9 00
+    jmp short 09e7eh                          ; 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 09cb0h                               ; e8 68 fe
+    call 09cd0h                               ; e8 68 fe
     cmp ax, strict word 0ffffh                ; 3d ff ff
-    jne short 09e58h                          ; 75 0b
+    jne short 09e78h                          ; 75 0b
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
     or ah, 086h                               ; 80 cc 86
-    jmp near 09f6eh                           ; e9 16 01
+    jmp near 09f8eh                           ; e9 16 01
     mov word [bp+014h], ax                    ; 89 46 14
-    jmp near 09f75h                           ; e9 17 01
+    jmp near 09f95h                           ; e9 17 01
     cmp word [bp+004h], 00100h                ; 81 7e 04 00 01
-    jc short 09e6bh                           ; 72 06
+    jc short 09e8bh                           ; 72 06
     or ah, 087h                               ; 80 cc 87
-    jmp near 09f6eh                           ; e9 03 01
+    jmp near 09f8eh                           ; e9 03 01
     mov dx, word [bp+004h]                    ; 8b 56 04
     mov ax, word [bp+014h]                    ; 8b 46 14
-    call 09c8ch                               ; e8 18 fe
+    call 09cach                               ; 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 09ee9h                         ; 77 68
+    jnbe short 09f09h                         ; 77 68
     sal bx, 1                                 ; d1 e3
-    jmp word [cs:bx-06265h]                   ; 2e ff a7 9b 9d
+    jmp word [cs:bx-06245h]                   ; 2e ff a7 bb 9d
     mov bx, word [bp+01ch]                    ; 8b 5e 1c
     xor bl, bl                                ; 30 db
@@ -15425,5 +15436,5 @@
     or bx, ax                                 ; 09 c3
     mov word [bp+01ch], bx                    ; 89 5e 1c
-    jmp short 09ee9h                          ; eb 48
+    jmp short 09f09h                          ; eb 48
     mov dx, word [bp+004h]                    ; 8b 56 04
     xor dh, dh                                ; 30 f6
@@ -15432,5 +15443,5 @@
     in ax, DX                                 ; ed
     mov word [bp+01ch], ax                    ; 89 46 1c
-    jmp short 09ee9h                          ; eb 36
+    jmp short 09f09h                          ; eb 36
     mov dx, 00cfch                            ; ba fc 0c
     in eax, DX                                ; 66 ed
@@ -15441,5 +15452,5 @@
     mov word [bp+01ch], ax                    ; 89 46 1c
     mov word [bp+01eh], dx                    ; 89 56 1e
-    jmp short 09ee9h                          ; eb 22
+    jmp short 09f09h                          ; eb 22
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15448,5 +15459,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, AL                                ; ee
-    jmp short 09ee9h                          ; eb 10
+    jmp short 09f09h                          ; eb 10
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov dx, word [bp+004h]                    ; 8b 56 04
@@ -15455,5 +15466,5 @@
     add dx, 00cfch                            ; 81 c2 fc 0c
     out DX, ax                                ; ef
-    jmp near 09f75h                           ; e9 89 00
+    jmp near 09f95h                           ; e9 89 00
     mov ax, word [bp+01ch]                    ; 8b 46 1c
     mov cx, word [bp+01eh]                    ; 8b 4e 1e
@@ -15464,5 +15475,5 @@
     ; mov ax, cx                                ; 8b c1
     out DX, eax                               ; 66 ef
-    jmp short 09f75h                          ; eb 75
+    jmp short 09f95h                          ; eb 75
     mov bx, word [bp+004h]                    ; 8b 5e 04
     mov es, [bp+026h]                         ; 8e 46 26
@@ -15471,5 +15482,5 @@
     mov cx, word [0f380h]                     ; 8b 0e 80 f3
     cmp cx, word [es:bx]                      ; 26 3b 0f
-    jbe short 09f26h                          ; 76 11
+    jbe short 09f46h                          ; 76 11
     mov ax, word [bp+020h]                    ; 8b 46 20
     xor ah, ah                                ; 30 e4
@@ -15477,5 +15488,5 @@
     mov word [bp+020h], ax                    ; 89 46 20
     or word [bp+02ch], strict byte 00001h     ; 83 4e 2c 01
-    jmp short 09f3ah                          ; eb 14
+    jmp short 09f5ah                          ; eb 14
     les di, [es:bx+002h]                      ; 26 c4 7f 02
     mov si, 0f1a0h                            ; be a0 f1
@@ -15489,9 +15500,9 @@
     les bx, [bp-008h]                         ; c4 5e f8
     mov word [es:bx], ax                      ; 26 89 07
-    jmp short 09f75h                          ; eb 30
-    mov bx, 00da4h                            ; bb a4 0d
+    jmp short 09f95h                          ; eb 30
+    mov bx, 00da0h                            ; bb a0 0d
     mov cx, ds                                ; 8c d9
     mov ax, strict word 00004h                ; b8 04 00
-    call 01933h                               ; e8 e3 79
+    call 01933h                               ; e8 c3 79
     mov ax, word [bp+014h]                    ; 8b 46 14
     push ax                                   ; 50
@@ -15502,5 +15513,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 01976h                               ; e8 13 7a
+    call 01976h                               ; e8 f3 79
     add sp, strict byte 00008h                ; 83 c4 08
     mov ax, word [bp+020h]                    ; 8b 46 20
@@ -15514,5 +15525,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_classcode_:                         ; 0xf9f7c LB 0x8
+pci_find_classcode_:                         ; 0xf9f9c LB 0x8
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15520,5 +15531,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_find_device_:                            ; 0xf9f84 LB 0x23
+pci_find_device_:                            ; 0xf9fa4 LB 0x23
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15532,5 +15543,5 @@
     int 01ah                                  ; cd 1a
     cmp ah, 000h                              ; 80 fc 00
-    je short 09f9dh                           ; 74 03
+    je short 09fbdh                           ; 74 03
     mov bx, strict word 0ffffh                ; bb ff ff
     mov ax, bx                                ; 89 d8
@@ -15541,5 +15552,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_byte_:                       ; 0xf9fa7 LB 0x27
+pci_read_config_byte_:                       ; 0xf9fc7 LB 0x27
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15564,5 +15575,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_word_:                       ; 0xf9fce LB 0x25
+pci_read_config_word_:                       ; 0xf9fee LB 0x25
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15586,5 +15597,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_read_config_dword_:                      ; 0xf9ff3 LB 0x3f
+pci_read_config_dword_:                      ; 0xfa013 LB 0x3f
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15601,5 +15612,5 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    jne short 0a023h                          ; 75 14
+    jne short 0a043h                          ; 75 14
     mov al, byte [bp-006h]                    ; 8a 46 fa
     xor ah, ah                                ; 30 e4
@@ -15611,7 +15622,7 @@
     int 01ah                                  ; cd 1a
     test cx, cx                               ; 85 c9
-    je short 0a028h                           ; 74 05
+    je short 0a048h                           ; 74 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a02ah                          ; eb 02
+    jmp short 0a04ah                          ; eb 02
     xor ax, ax                                ; 31 c0
     cwd                                       ; 99
@@ -15621,5 +15632,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-pci_write_config_word_:                      ; 0xfa032 LB 0x1e
+pci_write_config_word_:                      ; 0xfa052 LB 0x1e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15638,5 +15649,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-vds_is_present_:                             ; 0xfa050 LB 0x1d
+vds_is_present_:                             ; 0xfa070 LB 0x1d
     push bx                                   ; 53
     push bp                                   ; 55
@@ -15646,5 +15657,5 @@
     mov es, ax                                ; 8e c0
     test byte [es:bx], 020h                   ; 26 f6 07 20
-    je short 0a068h                           ; 74 06
+    je short 0a088h                           ; 74 06
     mov ax, strict word 00001h                ; b8 01 00
     pop bp                                    ; 5d
@@ -15655,5 +15666,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_real_to_lin_:                            ; 0xfa06d LB 0x1e
+vds_real_to_lin_:                            ; 0xfa08d LB 0x1e
     push bx                                   ; 53
     push cx                                   ; 51
@@ -15666,5 +15677,5 @@
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a07bh                               ; e2 fa
+    loop 0a09bh                               ; e2 fa
     xor cx, cx                                ; 31 c9
     add ax, bx                                ; 01 d8
@@ -15674,5 +15685,5 @@
     pop bx                                    ; 5b
     retn                                      ; c3
-vds_build_sg_list_:                          ; 0xfa08b LB 0x77
+vds_build_sg_list_:                          ; 0xfa0ab LB 0x77
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15688,21 +15699,21 @@
     mov bx, word [bp+006h]                    ; 8b 5e 06
     mov word [es:di+002h], bx                 ; 26 89 5d 02
-    call 0a06dh                               ; e8 c3 ff
+    call 0a08dh                               ; 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 0a050h                               ; e8 93 ff
+    call 0a070h                               ; e8 93 ff
     test ax, ax                               ; 85 c0
-    je short 0a0d2h                           ; 74 11
+    je short 0a0f2h                           ; 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 0a0cfh                           ; 72 02
+    jc short 0a0efh                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
     cbw                                       ; 98
-    jmp short 0a0f9h                          ; eb 27
+    jmp short 0a119h                          ; eb 27
     mov es, si                                ; 8e c6
     mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00
@@ -15721,5 +15732,5 @@
     pop bp                                    ; 5d
     retn 00004h                               ; c2 04 00
-vds_free_sg_list_:                           ; 0xfa102 LB 0x2e
+vds_free_sg_list_:                           ; 0xfa122 LB 0x2e
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15727,7 +15738,7 @@
     push di                                   ; 57
     mov bx, ax                                ; 89 c3
-    call 0a050h                               ; e8 44 ff
+    call 0a070h                               ; e8 44 ff
     test ax, ax                               ; 85 c0
-    je short 0a121h                           ; 74 11
+    je short 0a141h                           ; 74 11
     mov di, bx                                ; 89 df
     mov es, dx                                ; 8e c2
@@ -15735,5 +15746,5 @@
     mov dx, strict word 00000h                ; ba 00 00
     int 04bh                                  ; cd 4b
-    jc short 0a120h                           ; 72 02
+    jc short 0a140h                           ; 72 02
     db  032h, 0c0h
     ; xor al, al                                ; 32 c0
@@ -15746,5 +15757,5 @@
     pop bp                                    ; 5d
     retn                                      ; c3
-__U4M:                                       ; 0xfa130 LB 0x20
+__U4M:                                       ; 0xfa150 LB 0x20
     pushfw                                    ; 9c
     push si                                   ; 56
@@ -15773,5 +15784,5 @@
     retn                                      ; c3
     times 0x4 db 0
-__U4D:                                       ; 0xfa150 LB 0x30
+__U4D:                                       ; 0xfa170 LB 0x30
     pushfw                                    ; 9c
     push DS                                   ; 1e
@@ -15788,5 +15799,5 @@
     push dx                                   ; 52
     push ax                                   ; 50
-    call 0a235h                               ; e8 d0 00
+    call 0a255h                               ; e8 d0 00
     mov cx, word [bp-002h]                    ; 8b 4e fe
     mov bx, word [bp-004h]                    ; 8b 5e fc
@@ -15799,7 +15810,7 @@
     retn                                      ; c3
     times 0xe db 0
-__U8RS:                                      ; 0xfa180 LB 0x10
+__U8RS:                                      ; 0xfa1a0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a18fh                           ; 74 0b
+    je short 0a1afh                           ; 74 0b
     shr ax, 1                                 ; d1 e8
     rcr bx, 1                                 ; d1 db
@@ -15807,9 +15818,9 @@
     rcr dx, 1                                 ; d1 da
     dec si                                    ; 4e
-    jne short 0a184h                          ; 75 f5
+    jne short 0a1a4h                          ; 75 f5
     retn                                      ; c3
-__U8LS:                                      ; 0xfa190 LB 0x10
+__U8LS:                                      ; 0xfa1b0 LB 0x10
     test si, si                               ; 85 f6
-    je short 0a19fh                           ; 74 0b
+    je short 0a1bfh                           ; 74 0b
     sal dx, 1                                 ; d1 e2
     rcl cx, 1                                 ; d1 d1
@@ -15817,7 +15828,7 @@
     rcl ax, 1                                 ; d1 d0
     dec si                                    ; 4e
-    jne short 0a194h                          ; 75 f5
+    jne short 0a1b4h                          ; 75 f5
     retn                                      ; c3
-_fmemset_:                                   ; 0xfa1a0 LB 0x10
+_fmemset_:                                   ; 0xfa1c0 LB 0x10
     push di                                   ; 57
     mov es, dx                                ; 8e c2
@@ -15830,5 +15841,5 @@
     retn                                      ; c3
     times 0x3 db 0
-_fmemcpy_:                                   ; 0xfa1b0 LB 0x3a
+_fmemcpy_:                                   ; 0xfa1d0 LB 0x3a
     push bp                                   ; 55
     db  08bh, 0ech
@@ -15855,16 +15866,13 @@
     add byte [bx+si], al                      ; 00 00
     add byte [bx+si], al                      ; 00 00
-    add byte [bp+si-05dfeh], ah               ; 00 a2 02 a2
-    push ES                                   ; 06
-    mov byte [0a206h], AL                     ; a2 06 a2
-    push ES                                   ; 06
-    mov byte [0a208h], AL                     ; a2 08 a2
-    or byte [bp+si-05df6h], ah                ; 08 a2 0a a2
-    push CS                                   ; 0e
-    mov byte [0a20eh], AL                     ; a2 0e a2
-    adc byte [bp+si-05debh], ah               ; 10 a2 15 a2
-    pop SS                                    ; 17
+    and byte [bp+si-05ddeh], ah               ; 20 a2 22 a2
+    mov byte [es:0a226h], AL                  ; 26 a2 26 a2
+    mov byte [es:0a228h], AL                  ; 26 a2 28 a2
+    sub byte [bp+si-05dd6h], ah               ; 28 a2 2a a2
+    mov byte [cs:0a22eh], AL                  ; 2e a2 2e a2
+    xor byte [bp+si-05dcbh], ah               ; 30 a2 35 a2
+    aaa                                       ; 37
     db  0a2h
-apm_worker:                                  ; 0xfa1ea LB 0x3a
+apm_worker:                                  ; 0xfa20a LB 0x3a
     sti                                       ; fb
     push ax                                   ; 50
@@ -15878,21 +15886,21 @@
     pop ax                                    ; 58
     mov AH, strict byte 053h                  ; b4 53
-    jnc short 0a220h                          ; 73 25
-    jmp word [cs:bp-05e30h]                   ; 2e ff a6 d0 a1
-    jmp short 0a21eh                          ; eb 1c
+    jnc short 0a240h                          ; 73 25
+    jmp word [cs:bp-05e10h]                   ; 2e ff a6 f0 a1
+    jmp short 0a23eh                          ; eb 1c
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0a21eh                          ; eb 18
-    jmp short 0a21eh                          ; eb 16
-    jmp short 0a220h                          ; eb 16
+    jmp short 0a23eh                          ; eb 18
+    jmp short 0a23eh                          ; eb 16
+    jmp short 0a240h                          ; eb 16
     mov AH, strict byte 080h                  ; b4 80
-    jmp short 0a222h                          ; eb 14
-    jmp short 0a220h                          ; eb 10
+    jmp short 0a242h                          ; eb 14
+    jmp short 0a240h                          ; eb 10
     mov ax, 00102h                            ; b8 02 01
-    jmp short 0a21eh                          ; eb 09
-    jmp short 0a21eh                          ; eb 07
+    jmp short 0a23eh                          ; eb 09
+    jmp short 0a23eh                          ; eb 07
     mov BL, strict byte 000h                  ; b3 00
     mov cx, strict word 00000h                ; b9 00 00
-    jmp short 0a21eh                          ; eb 00
+    jmp short 0a23eh                          ; eb 00
     clc                                       ; f8
     retn                                      ; c3
@@ -15900,5 +15908,5 @@
     stc                                       ; f9
     retn                                      ; c3
-apm_pm16_entry:                              ; 0xfa224 LB 0x11
+apm_pm16_entry:                              ; 0xfa244 LB 0x11
     mov AH, strict byte 002h                  ; b4 02
     push DS                                   ; 1e
@@ -15908,9 +15916,9 @@
     add bp, strict byte 00008h                ; 83 c5 08
     mov ds, bp                                ; 8e dd
-    call 0a1eah                               ; e8 b8 ff
+    call 0a20ah                               ; e8 b8 ff
     pop bp                                    ; 5d
     pop DS                                    ; 1f
     retf                                      ; cb
-_DoUInt32Div:                                ; 0xfa235 LB 0x26b
+_DoUInt32Div:                                ; 0xfa255 LB 0x26b
     push bp                                   ; 55
     mov bp, sp                                ; 89 e5
@@ -15930,10 +15938,10 @@
     mov [bp-006h], ds                         ; 8c 5e fa
     cmp word [bx+002h], strict byte 00000h    ; 83 7f 02 00
-    jne short 0a285h                          ; 75 22
+    jne short 0a2a5h                          ; 75 22
     mov ax, word [bx]                         ; 8b 07
     test ax, ax                               ; 85 c0
-    je short 0a282h                           ; 74 19
+    je short 0a2a2h                           ; 74 19
     cmp ax, strict word 00001h                ; 3d 01 00
-    jne short 0a285h                          ; 75 17
+    jne short 0a2a5h                          ; 75 17
     xor ax, ax                                ; 31 c0
     mov word [bp+00ah], ax                    ; 89 46 0a
@@ -15943,35 +15951,35 @@
     mov ax, word [bp-01ah]                    ; 8b 46 e6
     mov word [bp+006h], ax                    ; 89 46 06
-    jmp near 0a48dh                           ; e9 08 02
+    jmp near 0a4adh                           ; 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 0a2abh                           ; 74 18
+    je short 0a2cbh                           ; 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 0a2a6h                          ; 76 05
+    jbe short 0a2c6h                          ; 76 05
     mov ax, strict word 00001h                ; b8 01 00
-    jmp short 0a2cch                          ; eb 26
+    jmp short 0a2ech                          ; eb 26
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a2cch                          ; eb 21
+    jmp short 0a2ech                          ; 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 0a2cah                           ; 74 13
+    je short 0a2eah                           ; 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 0a2c5h                          ; 76 02
-    jmp short 0a2a1h                          ; eb dc
+    jbe short 0a2e5h                          ; 76 02
+    jmp short 0a2c1h                          ; eb dc
     mov ax, strict word 0ffffh                ; b8 ff ff
-    jmp short 0a2cch                          ; eb 02
+    jmp short 0a2ech                          ; eb 02
     xor ax, ax                                ; 31 c0
     test ax, ax                               ; 85 c0
-    jnl short 0a2eeh                          ; 7d 1e
+    jnl short 0a30eh                          ; 7d 1e
     lds bx, [bp-00ch]                         ; c5 5e f4
     mov ax, word [bx]                         ; 8b 07
@@ -15983,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 0a282h                          ; eb 94
-    jne short 0a305h                          ; 75 15
+    jmp short 0a2a2h                          ; eb 94
+    jne short 0a325h                          ; 75 15
     mov ds, [bp-008h]                         ; 8e 5e f8
     mov word [di+002h], ax                    ; 89 45 02
@@ -15991,20 +15999,20 @@
     mov word [bx], strict word 00001h         ; c7 07 01 00
     mov word [bx+002h], ax                    ; 89 47 02
-    jmp near 0a48dh                           ; e9 88 01
+    jmp near 0a4adh                           ; 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 0a320h                           ; 74 11
+    je short 0a340h                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4a0h                               ; e8 88 01
+    call 0a4c0h                               ; e8 88 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a32dh                          ; eb 0d
+    jmp short 0a34dh                          ; eb 0d
     push word [bx]                            ; ff 37
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4a0h                               ; e8 76 01
+    call 0a4c0h                               ; e8 76 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov word [bp-014h], ax                    ; 89 46 ec
@@ -16012,16 +16020,16 @@
     mov ax, word [si+002h]                    ; 8b 44 02
     test ax, ax                               ; 85 c0
-    je short 0a34bh                           ; 74 11
+    je short 0a36bh                           ; 74 11
     push ax                                   ; 50
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4a0h                               ; e8 5d 01
+    call 0a4c0h                               ; e8 5d 01
     add sp, strict byte 00002h                ; 83 c4 02
     add ax, strict word 00010h                ; 05 10 00
-    jmp short 0a358h                          ; eb 0d
+    jmp short 0a378h                          ; eb 0d
     push word [si]                            ; ff 34
     mov ax, 0f000h                            ; b8 00 f0
     mov ds, ax                                ; 8e d8
-    call 0a4a0h                               ; e8 4b 01
+    call 0a4c0h                               ; e8 4b 01
     add sp, strict byte 00002h                ; 83 c4 02
     mov dx, word [bp-014h]                    ; 8b 56 ec
@@ -16034,5 +16042,5 @@
     mov word [bp-016h], ax                    ; 89 46 ea
     test dx, dx                               ; 85 d2
-    je short 0a3c8h                           ; 74 56
+    je short 0a3e8h                           ; 74 56
     mov cx, dx                                ; 89 d1
     xor ch, dh                                ; 30 f5
@@ -16040,8 +16048,8 @@
     mov ax, word [si]                         ; 8b 04
     mov dx, word [si+002h]                    ; 8b 54 02
-    jcxz 0a386h                               ; e3 06
+    jcxz 0a3a6h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a380h                               ; e2 fa
+    loop 0a3a0h                               ; e2 fa
     mov word [bp-018h], ax                    ; 89 46 e8
     mov word [bp-016h], dx                    ; 89 56 ea
@@ -16049,25 +16057,25 @@
     lds bx, [bp-00ch]                         ; c5 5e f4
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jnbe short 0a3a6h                         ; 77 0f
+    jnbe short 0a3c6h                         ; 77 0f
     mov ax, word [bp-016h]                    ; 8b 46 ea
     cmp ax, word [bx+002h]                    ; 3b 47 02
-    jne short 0a3aah                          ; 75 0b
+    jne short 0a3cah                          ; 75 0b
     mov ax, word [bp-018h]                    ; 8b 46 e8
     cmp ax, word [bx]                         ; 3b 07
-    jbe short 0a3aah                          ; 76 04
+    jbe short 0a3cah                          ; 76 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a3ach                          ; eb 02
+    jmp short 0a3cch                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a3d3h                           ; 74 23
+    je short 0a3f3h                           ; 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 0a3d3h                          ; eb 18
+    jmp short 0a3f3h                          ; 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 0a3beh                               ; e2 f8
-    jmp short 0a3b6h                          ; eb ee
+    loop 0a3deh                               ; e2 f8
+    jmp short 0a3d6h                          ; eb ee
     mov ax, word [si]                         ; 8b 04
     mov word [bp-018h], ax                    ; 89 46 e8
@@ -16086,27 +16094,27 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jnbe short 0a3ffh                         ; 77 06
-    jne short 0a403h                          ; 75 08
+    jnbe short 0a41fh                         ; 77 06
+    jne short 0a423h                          ; 75 08
     cmp dx, word [si]                         ; 3b 14
-    jc short 0a403h                           ; 72 04
+    jc short 0a423h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a405h                          ; eb 02
+    jmp short 0a425h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a46ah                           ; 74 61
+    je short 0a48ah                           ; 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 0a420h                         ; 77 0c
+    jnbe short 0a440h                         ; 77 0c
     cmp ax, word [bp-016h]                    ; 3b 46 ea
-    jne short 0a424h                          ; 75 0b
+    jne short 0a444h                          ; 75 0b
     mov ax, word [di]                         ; 8b 05
     cmp ax, word [bp-018h]                    ; 3b 46 e8
-    jc short 0a424h                           ; 72 04
+    jc short 0a444h                           ; 72 04
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a426h                          ; eb 02
+    jmp short 0a446h                          ; eb 02
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a450h                           ; 74 26
+    je short 0a470h                           ; 74 26
     mov ax, word [bp-018h]                    ; 8b 46 e8
     mov ds, [bp-008h]                         ; 8e 5e f8
@@ -16117,8 +16125,8 @@
     xor dx, dx                                ; 31 d2
     mov cx, word [bp-012h]                    ; 8b 4e ee
-    jcxz 0a448h                               ; e3 06
+    jcxz 0a468h                               ; e3 06
     sal ax, 1                                 ; d1 e0
     rcl dx, 1                                 ; d1 d2
-    loop 0a442h                               ; e2 fa
+    loop 0a462h                               ; e2 fa
     lds bx, [bp-010h]                         ; c5 5e f0
     or word [bx], ax                          ; 09 07
@@ -16129,24 +16137,24 @@
     mov ds, [bp-006h]                         ; 8e 5e fa
     cmp ax, word [si+002h]                    ; 3b 44 02
-    jc short 0a466h                           ; 72 06
-    jne short 0a46ch                          ; 75 0a
+    jc short 0a486h                           ; 72 06
+    jne short 0a48ch                          ; 75 0a
     cmp dx, word [si]                         ; 3b 14
-    jnc short 0a46ch                          ; 73 06
+    jnc short 0a48ch                          ; 73 06
     mov AL, strict byte 001h                  ; b0 01
-    jmp short 0a46eh                          ; eb 04
-    jmp short 0a48dh                          ; eb 21
+    jmp short 0a48eh                          ; eb 04
+    jmp short 0a4adh                          ; eb 21
     xor al, al                                ; 30 c0
     test al, al                               ; 84 c0
-    je short 0a481h                           ; 74 0f
-    jmp short 0a48dh                          ; eb 19
+    je short 0a4a1h                           ; 74 0f
+    jmp short 0a4adh                          ; 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 0a477h                               ; e2 f8
-    jmp short 0a487h                          ; eb 06
+    loop 0a497h                               ; e2 f8
+    jmp short 0a4a7h                          ; 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 0a409h                           ; e9 7c ff
+    jmp near 0a429h                           ; e9 7c ff
     mov ax, word [bp-01ch]                    ; 8b 46 e4
     mov dx, word [bp-01ah]                    ; 8b 56 e6
@@ -16157,5 +16165,5 @@
     retn                                      ; c3
     times 0x6 db 0
-_ASMBitLastSetU16:                           ; 0xfa4a0 LB 0x18
+_ASMBitLastSetU16:                           ; 0xfa4c0 LB 0x18
     push bp                                   ; 55
     db  08bh, 0ech
@@ -16163,10 +16171,10 @@
     mov cx, word [bp+004h]                    ; 8b 4e 04
     test cx, cx                               ; 85 c9
-    je short 0a4b4h                           ; 74 0a
+    je short 0a4d4h                           ; 74 0a
     mov ax, strict word 00010h                ; b8 10 00
     sal cx, 1                                 ; d1 e1
-    jc short 0a4b6h                           ; 72 05
+    jc short 0a4d6h                           ; 72 05
     dec ax                                    ; 48
-    jmp short 0a4adh                          ; eb f9
+    jmp short 0a4cdh                          ; eb f9
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16174,6 +16182,6 @@
     retn                                      ; c3
 
-  ; Padding 0x3548 bytes at 0xfa4b8
-  times 13640 db 0
+  ; Padding 0x3528 bytes at 0xfa4d8
+  times 13608 db 0
 
 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO
@@ -16222,5 +16230,5 @@
     add bp, strict byte 00008h                ; 83 c5 08
     push ebp                                  ; 66 55
-    mov bp, 0a226h                            ; bd 26 a2
+    mov bp, 0a246h                            ; bd 46 a2
     add byte [bx+si], al                      ; 00 00
     push ebp                                  ; 66 55
@@ -16686,5 +16694,5 @@
     cmp AL, strict byte 009h                  ; 3c 09
     jne short 0e0b6h                          ; 75 03
-    jmp near 0e368h                           ; e9 b2 02
+    jmp near 0e350h                           ; e9 9a 02
     cmp AL, strict byte 005h                  ; 3c 05
     je short 0e044h                           ; 74 8a
@@ -16829,5 +16837,5 @@
     mov dx, 0c800h                            ; ba 00 c8
     call 01600h                               ; e8 f0 33
-    call 0501ch                               ; e8 09 6e
+    call 0503ch                               ; e8 29 6e
     pop DS                                    ; 1f
     mov ax, 0ff53h                            ; b8 53 ff
@@ -16895,5 +16903,5 @@
     mov word [001c2h], ax                     ; a3 c2 01
     call 0ede3h                               ; e8 32 0b
-    jmp short 0e31bh                          ; eb 68
+    jmp short 0e303h                          ; eb 50
 biosorg_check_before_or_at_0E2C1h:           ; 0xfe2b3 LB 0x10
     times 0xe db 0
@@ -16910,5 +16918,5 @@
     int 002h                                  ; cd 02
     iret                                      ; cf
-hard_drive_post:                             ; 0xfe2d2 LB 0xbf
+hard_drive_post:                             ; 0xfe2d2 LB 0xa7
     db  033h, 0c0h
     ; xor ax, ax                                ; 33 c0
@@ -16929,12 +16937,4 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001dah], ax                     ; a3 da 01
-    mov ax, strict word 0003dh                ; b8 3d 00
-    mov word [00104h], ax                     ; a3 04 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [00106h], ax                     ; a3 06 01
-    mov ax, strict word 0004dh                ; b8 4d 00
-    mov word [00118h], ax                     ; a3 18 01
-    mov ax, 09fc0h                            ; b8 c0 9f
-    mov word [0011ah], ax                     ; a3 1a 01
     retn                                      ; c3
     mov ax, 0f8c9h                            ; b8 c9 f8
@@ -16946,16 +16946,16 @@
     mov ax, 0f000h                            ; b8 00 f0
     mov word [001d6h], ax                     ; a3 d6 01
-    call 0e76fh                               ; e8 39 04
+    call 0e76fh                               ; e8 51 04
     push CS                                   ; 0e
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 01cc5h                               ; e8 89 39
-    call 02154h                               ; e8 15 3e
+    call 01cc5h                               ; e8 a1 39
+    call 02154h                               ; e8 2d 3e
     sti                                       ; fb
-    call 09a24h                               ; e8 e1 b6
+    call 09a44h                               ; e8 19 b7
     cli                                       ; fa
-    call 08871h                               ; e8 2a a5
-    call 0ed4ch                               ; e8 02 0a
-    call 0e2d2h                               ; e8 85 ff
+    call 08891h                               ; e8 62 a5
+    call 0ed4ch                               ; e8 1a 0a
+    call 0e2d2h                               ; e8 9d ff
     push CS                                   ; 0e
     pop DS                                    ; 1f
@@ -16963,12 +16963,12 @@
     mov ax, 0c800h                            ; b8 00 c8
     mov dx, 0f000h                            ; ba 00 f0
-    call 01600h                               ; e8 a7 32
-    call 01799h                               ; e8 3d 34
-    call 03c35h                               ; e8 d6 58
+    call 01600h                               ; e8 bf 32
+    call 01799h                               ; e8 55 34
+    call 03c55h                               ; e8 0e 59
     sti                                       ; fb
     int 019h                                  ; cd 19
     sti                                       ; fb
     hlt                                       ; f4
-    jmp short 0e363h                          ; eb fd
+    jmp short 0e34bh                          ; eb fd
     cli                                       ; fa
     hlt                                       ; f4
@@ -16992,6 +16992,6 @@
     sti                                       ; fb
     retf 00002h                               ; ca 02 00
-biosorg_check_before_or_at_0E3FCh:           ; 0xfe391 LB 0x6d
-    times 0x6b db 0
+biosorg_check_before_or_at_0E3FCh:           ; 0xfe379 LB 0x85
+    times 0x83 db 0
     db  'XM'
 int13_handler:                               ; 0xfe3fe LB 0x3
@@ -17074,5 +17074,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 065dfh                               ; e8 96 7e
+    call 065ffh                               ; e8 b6 7e
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -17183,5 +17183,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 05885h                               ; e8 3b 70
+    call 058a5h                               ; e8 5b 70
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -17208,5 +17208,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 05885h                               ; e8 13 70
+    call 058a5h                               ; e8 33 70
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -17263,5 +17263,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 05324h                               ; e8 5e 69
+    call 05344h                               ; e8 7e 69
     pop ES                                    ; 07
     pop di                                    ; 5f
@@ -17293,5 +17293,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 06f17h                               ; e8 2d 85
+    call 06f37h                               ; e8 4d 85
     pop DS                                    ; 1f
     pop ES                                    ; 07
@@ -17329,5 +17329,5 @@
     cld                                       ; fc
     push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
-    jmp near 03c79h                           ; e9 ff 4f
+    jmp near 03c99h                           ; e9 1f 50
 jmp_call_ret_int13_out:                      ; 0xfec7a LB 0x4a
     db  0ffh
@@ -17338,8 +17338,8 @@
     push cx                                   ; 51
     push dx                                   ; 52
-    call 03c4dh                               ; e8 c9 4f
+    call 03c6dh                               ; e8 e9 4f
     cmp AL, strict byte 000h                  ; 3c 00
     je short 0ecbfh                           ; 74 37
-    call 03c63h                               ; e8 d8 4f
+    call 03c83h                               ; e8 f8 4f
     pop dx                                    ; 5a
     push dx                                   ; 52
@@ -17366,5 +17366,5 @@
     cld                                       ; fc
     push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
-    jmp near 04287h                           ; e9 dc 55
+    jmp near 042a7h                           ; e9 fc 55
     and dl, 0e0h                              ; 80 e2 e0
     db  03ah, 0c2h
@@ -17406,5 +17406,5 @@
     jne short 0ecdeh                          ; 75 08
     push word [cs:0ec7ah]                     ; 2e ff 36 7a ec
-    jmp near 031ffh                           ; e9 21 45
+    jmp near 0321fh                           ; e9 41 45
 int13_notfloppy:                             ; 0xfecde LB 0x14
     cmp dl, 0e0h                              ; 80 fa e0
@@ -17412,5 +17412,5 @@
     shr ebx, 010h                             ; 66 c1 eb 10
     push bx                                   ; 53
-    call 046dah                               ; e8 ef 59
+    call 046fah                               ; e8 0f 5a
     pop bx                                    ; 5b
     sal ebx, 010h                             ; 66 c1 e3 10
@@ -17419,7 +17419,7 @@
     cmp ah, 040h                              ; 80 fc 40
     jnbe short 0ecfch                         ; 77 05
-    call 05c6ah                               ; e8 70 6f
+    call 05c8ah                               ; e8 90 6f
     jmp short 0ecffh                          ; eb 03
-    call 060b4h                               ; e8 b5 73
+    call 060d4h                               ; e8 d5 73
 int13_out:                                   ; 0xfecff LB 0xb
     pop DS                                    ; 1f
@@ -17655,5 +17655,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 078c4h                               ; e8 e0 88
+    call 078e4h                               ; e8 00 89
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -17713,5 +17713,5 @@
     mov ax, strict word 00001h                ; b8 01 00
     push ax                                   ; 50
-    call 04d79h                               ; e8 a9 5c
+    call 04d99h                               ; e8 c9 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17720,5 +17720,5 @@
     mov ax, strict word 00002h                ; b8 02 00
     push ax                                   ; 50
-    call 04d79h                               ; e8 9c 5c
+    call 04d99h                               ; e8 bc 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17727,5 +17727,5 @@
     mov ax, strict word 00003h                ; b8 03 00
     push ax                                   ; 50
-    call 04d79h                               ; e8 8f 5c
+    call 04d99h                               ; e8 af 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17734,5 +17734,5 @@
     mov ax, strict word 00004h                ; b8 04 00
     push ax                                   ; 50
-    call 04d79h                               ; e8 82 5c
+    call 04d99h                               ; e8 a2 5c
     inc sp                                    ; 44
     inc sp                                    ; 44
@@ -17901,5 +17901,5 @@
     cmp ah, 0c2h                              ; 80 fc c2
     je short 0f895h                           ; 74 15
-    call 06836h                               ; e8 b3 6f
+    call 06856h                               ; e8 d3 6f
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -17914,8 +17914,8 @@
     popfw                                     ; 9d
     jmp short 0f8afh                          ; eb 1f
-    call 09b96h                               ; e8 03 a3
+    call 09bb6h                               ; e8 23 a3
     jmp short 0f883h                          ; eb ee
 int15_handler_mouse:                         ; 0xff895 LB 0x5
-    call 07524h                               ; e8 8c 7c
+    call 07544h                               ; e8 ac 7c
     jmp short 0f883h                          ; eb e9
 int15_handler32:                             ; 0xff89a LB 0x15
@@ -17928,5 +17928,5 @@
     push si                                   ; 56
     push di                                   ; 57
-    call 06b79h                               ; e8 d4 72
+    call 06b99h                               ; e8 f4 72
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -17975,5 +17975,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 07452h                               ; e8 71 7b
+    call 07472h                               ; e8 91 7b
     pop cx                                    ; 59
     jcxz 0f8f1h                               ; e3 0d
@@ -18023,5 +18023,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 070efh                               ; e8 ca 77
+    call 0710fh                               ; e8 ea 77
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -18126,5 +18126,5 @@
     pop DS                                    ; 1f
     cld                                       ; fc
-    call 071aeh                               ; e8 30 73
+    call 071ceh                               ; e8 50 73
     pop di                                    ; 5f
     pop si                                    ; 5e
@@ -18238,3 +18238,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, 0bah
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 03eh
Index: trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
===================================================================
--- trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 69111)
+++ trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum	(revision 69128)
@@ -1,1 +1,1 @@
-395b7dc64d6a9731ef4cbcdc422c13c7 *VBoxPcBios8086.rom
+8c9d346ad1de9d89b0099b21159482dd *VBoxPcBios8086.rom
